#電熱水器自動控溫系統(tǒng)下位機_第1頁
#電熱水器自動控溫系統(tǒng)下位機_第2頁
#電熱水器自動控溫系統(tǒng)下位機_第3頁
#電熱水器自動控溫系統(tǒng)下位機_第4頁
#電熱水器自動控溫系統(tǒng)下位機_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、電路圖電熱水器自動控溫系統(tǒng)的設(shè)計和實現(xiàn)下位機#include math.h#include reg51.#include INTRIN#define N 4S.Hsbit adcstartale = sbit adc_con=P2 sbit adcoe= sbit key1=P sbit key2=P =PP3710;11;3;P37;6sbit key4=P sbit int_0=P32;sbit int_1=P33; sbit P15=P15;=P16;void delay(); void delay1();void inituart(voi unsigned cha void fillb

2、uff();void shooid r gbu void led(); ;); ettemper();void keyproc void filter();void send_char();ledtab/ 段碼le=0 x0-9,-deco ledtable1 碼 0.-9. unsigned unsigned unsigned unsignedg;ess() ;unsigned/ 鍵值/ 是否按鍵按下圖 1-2 下位機電路圖,0 x80/ 主函數(shù)void main()EX1=1; / 允許 INT1 中斷EA=1; / 中斷總允許IT1=1; / INT1 邊沿觸發(fā)方式level=0; /

3、初始鍵值levelflag=0;/ 無鍵按下標(biāo)志temperflag=0; / 鍵值temper=0; /adc 初始值P16=0;inituart();/ 串口初始化while(1)filter();delay1();showbuff(); / 顯示溫度值led();if(levelflag|temperflag)send_char();/ 如果有按鍵按下或者采集到的值和前一刻不相同 時,將 / 溫度或檔位發(fā)給上位機/ 延時函數(shù)void delay()int i,j;for(i=0;i50;i+) for(j=0;j1;j+);void delay1()int i,j;for(i=0;i15

4、0;i+) for(j=0;j25;j+);/ 檢測void led()if(level=1) if(video_buff3=level)|(video_buff3=level+1)&(video_buff 4=0) P16=0;else P16=1;/ 如果有按鍵按下或者采集到的值和前一刻不相同時,將溫 度或檔位發(fā)給上位機else if(video_buff3=level)&(video_buff4!=0)|(video_buff3= =level+1)&(video_buff4=0) P16=0;else P16=1; / 如果有按鍵按下或者采集到的值和前一刻不相同時,將溫 度或檔位發(fā)給上

5、位機/ 得到采樣值unsigned char gettemper() unsigned char adcdata;EA=0; adc_con=0; adcstartale=0; adcstartale=1;P0=0 xff; while(int_0=0); adcoe=0; adcdata=P0; adcoe=1;/ 采樣時關(guān)閉所有中斷_nop_();_nop_();/ 啟動 A/D 轉(zhuǎn)換,下降沿有效/ 等待轉(zhuǎn)換完成/ 允許讀 ADC0808/ 將轉(zhuǎn)換后的數(shù)據(jù)送單片機的 P0 口/ 不允許讀 ADC0808if(temper!=adcdata) temperflag=1; / 相 鄰 兩 次

6、采 樣 值 不 同 時 , temperflag 置 1EA=1; / 打開所有中斷return adcdata;/ 處理采樣值,填充顯示緩沖區(qū) void fillbuff()unsigned int tmp;tmp=temper*1.96078; video_buff0=level; / video_buff1=10; video_buff2=10;video_buff3=tmp/100; tmp=tmp%100; video_buff4=tmp/10; tmp=tmp%10; video_buff5=tmp;填充檔位/ 填充 -/ 填充 -/ 填充十位/ 填充個位/ 填充小數(shù)點位/ 將檔位

7、、溫度值顯示在數(shù)碼管上void showbuff()unsigned char ii,j,k;2unsigned char p=0 x1;unsigned char xdata *i;P15=0;for(ii=0;ii6;ii+) i=0 xfff3; / 控制口地址 *i=0 x80; / 控制寫入控制口 j=video_buffii;if(ii=4) k=ledtable1j; else k=ledtablej;i=i-3;/ 位碼地址*i=p;/ 送位碼到 PA 口i=i+1;/ 段碼地址*i=k;/ 送段碼到 PB 口p=1;/ 從左向右依次點亮數(shù)碼管delay();P15=1;/ 鍵

8、盤中斷處理程序unsigned char i; for(i=0;i30;i+); if(int_1) return; / if(!key1)level=1; / if(!key2)level=2; / if(!key3)level=3; / if(!key4)level=4; / levelflag=1; video_buff0=level;void keyprocess() interrupt 2 當(dāng) INT1=1 時,無中斷,無按鍵按下 如果 key1=0,則 1 鍵按下 如果 key21=0,則 2 鍵按下 如果 key3=0,則 3 鍵按下 如果 key4=0,則 4 鍵按下/ 有按鍵

9、按下/ 均值濾波void filter() / 對四次采樣進行求平均 , 考慮到實際中溫度的變化是一個比 較緩慢的過程,/ 相鄰的幾次采樣變化幅度不大,且為計算簡便, N 取值為 4int sum=0,count;for (count=0;count=1&level=4)video_buff0=level; / 將接收到的檔位值填寫顯示緩沖區(qū)if(TI=1) / 如果 TI=1 ,發(fā)送完數(shù)據(jù)TI=0; / 軟件清零/ 串口初始化void inituart()SCON=0X50 ;/ / 方式 1,8 位數(shù)據(jù),允許接收 sm0 sm1 sm2 ren tb8 rb8 ti riTMOD=0X20

10、/; 設(shè)置 timer1 ,方式 2 (方式 2,自動重裝入初值的 8 位計數(shù) 器, 串行通信時用)TH1=0XFD; / 初始值TL1 = 0 xfd;TR1=1; / 啟動 timer1 ,開始計時ES=1; /開啟串口中斷/ 向上位機發(fā)送檔位、溫度void send_char()if(!TI)if(temperflag=1) / 溫度有變化SBUF=video_buff3+0 x30; while(TI=0);SBUF=video_buff4+0 x30; while(TI=0);SBUF=.; while(TI=0);SBUF=video_buff5+0 x30; while(TI=0);SBUF=-;while(TI=0); temperflag=0;if(levelflag=1)levelflag=0;SBUF=video_buff0+0 x30; while(!TI);SBUF=-; while(TI=0);/ 發(fā)送十位給上位機/ 等待發(fā)送完 ,

溫馨提示

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

評論

0/150

提交評論