|
空調(diào)溫度控制器,LCD1206顯示,按鍵設(shè)定溫度和控制風(fēng)力,流水燈模擬風(fēng)力,紅色LED指示燈代表加熱電機(jī)工作,藍(lán)色LED指示燈代表制冷電機(jī)工作。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei圖片20200912081952.png (20.66 KB, 下載次數(shù): 39)
下載附件
2020-9-12 08:20 上傳
溫度高于設(shè)定溫度,降溫指示燈亮
51hei圖片20200912081938.png (21.01 KB, 下載次數(shù): 41)
下載附件
2020-9-12 08:20 上傳
溫度低于設(shè)定溫度,加熱指示燈亮
51hei圖片20200912081959.jpg (80.95 KB, 下載次數(shù): 45)
下載附件
模塊化編程
2020-9-12 08:20 上傳
單片機(jī)源程序如下:
- /*用于QX—mini5學(xué)習(xí)板*/
- #include <reg52.h>
- #include "LCD1602.h"
- #include "DS18B20.h"
- //#include "uart.h"
- sbit jdq = P0^0; //用蜂鳴器代替繼電器
- sbit key1=P3^5; //設(shè)定溫度加
- sbit key2=P3^4; //設(shè)定溫度減
- sbit key3=P3^3; //設(shè)定風(fēng)力加
- sbit key4=P3^2; //設(shè)定風(fēng)力減
- uint num=260; //設(shè)定溫度初始值
- uchar num1=0; //設(shè)定風(fēng)力初始值
- uchar code table[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//風(fēng)級(jí)
- //
- //void uart_init(void)
- //{
- // TMOD=0x20; //用定時(shí)器設(shè)置串口波特率
- // TH1=0xfd;
- // TL1=0xfd;
- // TR1=1;
- // REN=1; //串口初始化
- // SM0=0;
- // SM1=1;
- // EA=1; //開(kāi)啟總中斷
- // ES=1; //開(kāi)啟串口中斷
- //}
- void keyscan() //設(shè)定溫度按鍵掃描函數(shù)
- {
- if(key1==0)
- {
- delay(10);
- if(key1==0)
- {
- while(!key1);
- num++;
- }
- }
- if(key2==0)
- {
- delay(10);
- if(key2==0)
- {
- while(!key2);
- num--;
- }
- }
- }
- void keyscan1() //設(shè)定風(fēng)級(jí)按鍵掃描函數(shù)
- {
- if(key3==0)
- {
- delay(10);
- if(key3==0)
- {
- while(!key3);
- num1++;
- P1=table[num1];
- if(num1==9)
- {
- num1=0;
- P1=0xff;
- }
- }
- }
- if(key4==0)
- {
- delay(10);
- if(key4==0)
- {
- while(!key4);
- num1--;
- P1=table[num1];
- if(num1==255)
- num=0;
- }
- }
- }
- void main(void) //主函數(shù)
- {
- uint temp;
- LCD_init( ); //LCD初始化
- // uart_init();
- string(0x80,"TE:");
- string(0x80+0x40,"SE:");
- string(0x80+0x0a,"WP:");
-
- while(1)
- {
- tmpchange(); //開(kāi)始轉(zhuǎn)換溫度
-
- temp = tmp(); //讀取到溫度賦給temp
-
- keyscan(); //設(shè)置溫度
- keyscan1(); //設(shè)置風(fēng)級(jí)
- if(temp/10 > num/10) //讀取溫度大于設(shè)定溫度
- {
- jdq = 0; //蜂鳴器報(bào)警(繼電器吸合)
- }
- if(temp/10 < num/10) //讀取溫度小于設(shè)定溫度
- {
- jdq = 1; //蜂鳴器關(guān)閉(繼電器斷開(kāi))
- }
-
- write_command(0x80+0x03); //第一行第四位開(kāi)始顯示
- write_data(0x30+temp/100);
- write_data(0x30+temp/10%10);
- write_data('.');
- write_data(0x30+temp%10);
- write_data(' ');
- write_data('C');
- write_command(0x80+0x43); //第二行第四位開(kāi)始顯示
- write_data(0x30+num/100);
- write_data(0x30+num/10%10);
- write_data('.');
- write_data(0x30+num%10);
- write_data(' ');
- write_data('C');
-
- write_command(0x80+0x0d); //第一行第13位開(kāi)始顯示
- write_data(0x30+num1%10);
- // SBUF = temp;
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
空調(diào)溫度控制器.zip
(166.8 KB, 下載次數(shù): 117)
2020-9-12 08:23 上傳
點(diǎn)擊文件名下載附件
包含程序和仿真文件,實(shí)測(cè)有效 下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|