單片機三相脈沖觸發(fā)C程序_第1頁
單片機三相脈沖觸發(fā)C程序_第2頁
單片機三相脈沖觸發(fā)C程序_第3頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、/整個控制過程為先鍵入所要的控制角,控制角被計算成相應的觸發(fā)延時時間,/并等待當單片機檢測到外部中斷信號。當檢測到外部中斷信號后啟動定時器1延時相應的時間,/之后接著啟動定時器0并產(chǎn)生發(fā)出六脈沖信號經(jīng)過變換放大觸發(fā)相應的晶閘管導通,以獲得相應的電壓#i nclude<AT89X52.h>#in clude<reg52.h>#in clude<math.h>#defi ne uint un sig ned int#defi ne uchar un sig ned charuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6

2、d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0;uchar temp;uchar num;/鍵盤返回值uchar jishu;uchar ge;uchar shi;uchar shijia n;float din gshi;uint din gshi_1;sbit dula=P2A6;sbit wela=P2A7;/sbit A_仁 P2A6;/sbit B_仁 P2A7;sbit ug_1=P1A2; /脈沖輸出引腳定義1.2-7sbit ug_2=P1A3;sbit ug_3=P1A4;sbit ug_4=P1A5;sbit ug

3、_5=P1A6;sbit ug_6=P1A7;uchar js=0;/六脈沖計數(shù)器void ini t() 定時器、中斷初始化函數(shù) TMOD=Ox11;EA=1;ET0=1;ET仁 1;TR1=0;TR0=0;IP=0x08;T1wei gao you xian jiIP=0x09?IPH=0x01;IT0=1;/外中斷0為下降沿觸發(fā)TCON中設(shè)置TH0=(65536-1667)/256;定時時間,即脈沖寬度TL0=(65536-1667)%256;void delay(uint z)/1ms 延時ui nt x,y;for(x=z;x>0;x-)for(y=110;y>0;y-)

4、;void display(uchar shi, uchar ge)dula=1;PO=tableshi;dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delay(5);dula=1;PO=tablege;dula=O;PO=Oxff;wela=1;P0=0xfd;wela=O;delay(5);uchar Keyboard。P3=0xfe;temp=P3;temp=temp&0 xf0;while(temp!=OxfO)delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0) jishu+;temp=P3;

5、switch(temp) case Oxee:num=1;break;case Oxde:num=2;break;case Oxbe:num=3;break;case 0x7e:num=4; break;while(temp!=OxfO)松手檢測temp=P3;temp=temp&0xf0;P3=0xfd;temp=P3;temp=temp&0 xf0;while(temp!=0xf0)delay(5);temp=P3;temp=temp&OxfO;while(temp!=OxfO) jishu+;temp=P3;switch(temp)case 0xed: num=5

6、;break;case 0xdd: num=6;break;case 0xbd: num=7;break;case 0x7d: num=8;break;while(temp!=0xf0)temp=P3;temp=temp&OxfO;P3=0xfb;temp=P3;temp=temp&0 xf0;while(temp!=OxfO)delay(5);temp=P3;temp=temp&OxfO;while(temp!=0xf0) jishu+; temp=P3;switch(temp)case 0xeb:num=9; break;case 0xdb:num=10;break

7、;case 0xbb:num=11;break;case 0x7b:num=12;break;while(temp!=OxfO)temp=P3; temp=temp&OxfO;P3=0xf7;temp=P3;temp=temp&0 xf0;while(temp!=0xf0)delay(5);temp=P3;temp=temp&OxfO;while(temp!=0xf0) jishu+;temp=P3;switch(temp)return num;void mai n()ini t();case 0xe7:num=13; break;case 0xd7:num=14; b

8、reak;case 0xb7:num=15;break;case 0x77:num=16; break;while(temp!=OxfO)temp=P3;temp=temp&0xf0;EX0=1;dula=1;P0=0x3f;dula=0;P0=0xff;wela=1;PO=Oxfc;wela=O;delay(5);while(1)Keyboard。;if(jishu=1)/ 按鍵一次 shiweishi=num;if(jishu=2)/ 按鍵兩次 geweige=num;jishu=O;shijia n=shi*10+ge;dingshi=(shijian+30)/360)*20;*

9、1000;F=50HZ,工頻電源,T=20MSdisplay(shi-1,ge-1);/*從同步電壓跳躍點算起經(jīng)控制角a +30 °的延時,將a+30 °轉(zhuǎn)化為C/T1的時間常數(shù),在同步電壓跳躍點開始定時,C/T1溢出時,在中斷中置入新的時間常數(shù),其數(shù)據(jù)對應的定時時間為工頻交流電的30。脈寬時間,并且啟動TO,在T0中斷中輸出6路脈沖。*/3最后進入的中斷void zhongduan() interrupt 1/定時器 t0 中斷函數(shù)js+; /js為6脈沖計數(shù)值,執(zhí)行完該語句JS=1TH0=(65536-1667)/256;TL0=(65536-1667)%256;if(

10、js=1)ug_6=0;ug_1=0;if(js=2)ug_1=1;ug_2=1;if(js=3)ug_1=0;ug_2=0;if(js=4)ug_2=1;ug_3=1;if(js=5)ug_2=0;ug_3=0;if(js=6)ug_3=1;ug_4=1;if(js=7)ug_3=0;ug_4=o;if(js=8)ug_4=1;ug_5=1;if(js=9)ug_4=0;ug_5=0;if(js=10)ug_5=1;ug_6=1;if(js=11)ug_5=0;ug_6=o;if(js=12)ug_6=1;ug_1=1;js=0;2其次進入的中斷void T1_din gshi() in terrupt 3TR1=0;TH0=(65536-1667)/256;脈寬定時時間為脈沖寬度30。所對應的時間約1.667MS ,其中晶振12MHZ,工頻f=50HZTL0=(65536-1667)%256;TR0=1;/啟動定時器0/1首先進入的中斷同步脈沖為矩形脈沖(經(jīng)變換過的)且為反向(經(jīng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論