|
51單片機做的智能溫控器設計:ADC0809,proteus與程序,用一個可變電阻代替熱敏電阻來實現(xiàn)仿真控制.
下面是仿真原理圖:
0.png (37.03 KB, 下載次數(shù): 145)
下載附件
2017-4-12 15:59 上傳
0.png (35.11 KB, 下載次數(shù): 150)
下載附件
2017-4-12 16:01 上傳
51單片機源程序:
- //設計要求:智能溫控設
- //用ADC0809檢測溫度,如果大于設定溫度則斷開回路,小于
- //則進行加熱,等于設定溫度則保持不變
- //其中分別用數(shù)碼管顯示設定溫度與實際溫度
- //用兩個按鍵進行加減設定溫度
- //收獲ADC0809高位應該與單片機低位連接
- //在讀取溫度時必須先將P1口復位為1,不然會發(fā)生短路現(xiàn)象
- #include<reg51.h>
- #include<intrins.h>
- #define Duan P0
- sbit wei1=P2^0;//數(shù)碼管選通
- sbit wei2=P2^1;
- sbit wei3=P2^2;
- sbit wei4=P2^3;
- sbit Relay=P2^4;//控制電路繼電器閉合,使加熱
- sbit Start=P2^5;//AD0809開始轉化端口
- sbit EOC=P2^6; //ADC0809轉化標志口
- void System_Init(); //系統(tǒng)初始化
- unsigned char M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數(shù)碼管段位
- char shezhi=50;
- int val;//轉化值
- char i=0;
- void delay1ms(void) //誤差 0us
- {
- unsigned char a,b,c;
- for(c=1;c>0;c--)
- for(b=142;b>0;b--)
- for(a=2;a>0;a--);
- }
- void main()
- {
- System_Init();
- while(1)
- {
- P1=0xff;
- Start=0;
- Start=1; //開始轉化
- _nop_();
- Start=0;
- _nop_();
- while(!EOC); //轉化結束
- val=(P1*100/256); //量程轉化
- if(val>shezhi)//是否繼續(xù)加熱
- Relay=0;
- else
- Relay=1;
- }
- }
- void System_Init()
- {
- TMOD=0x01;
- EA=1;
- ET0=1;
- TH0=(65535-5000)/256;
- TL0=(65535-5000)%256;
- TR0=1;
- EX0=1;
- EX1=1;
-
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
0.png (41.84 KB, 下載次數(shù): 150)
下載附件
2017-4-12 15:58 上傳
全部資料下載(仿真工程文件和源碼):
智能溫控器.zip
(84.57 KB, 下載次數(shù): 260)
2017-4-12 11:46 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|