這是一款51單片機智能溫控器C語言源程序,程序功能:速成有時鐘顯示,使用DS18B20進行溫度檢測,控制溫度可通過按鍵進行設置,輸出通過繼電器械驅動加熱器進行加熱。是一款功能較為完善的溫度控制板,適合單片機愛好者進行溫度控制的電子制作實作項目。電路簡單,容易制作,調試容易。
#include ‘reg51.h’
#include ‘intrins.h’
#include‘a(chǎn)bsacc.h’
#define uchar unsigned char
#define uint unsigned int
#define BUSY 0x80 //lcd忙檢測標志
#define DATAPORT P0 //定義P0口為LCD通訊端口
#define PLAYE_ADDR XBYTE[0XBFFF] //語音報警地址
sbit RED_ALARM=P1^0; //紅色指示燈
sbit WRITE_ALARM=P1^1; //白色指示燈
sbit GREEN_ALARM=P1^2; //綠色指示燈
sbit P1_4=P1^4; //時鐘調整
sbit P1_5=P1^5; //時鐘加
sbit P1_6=P1^6; //時鐘減
sbit DQ = P1^7; //定義ds18b20通信端口
sbit LCM_RS=P2^0; //數(shù)據(jù)/命令端
sbit LCM_RW=P2^1; //讀/寫選擇端
sbit LCM_EN=P2^2; //LCD使能信號
sbit ad_busy=P3^2; //adc中斷方式接口
sbit RECLED_EOC=P3^5; //ISD1420放音結束查詢標志
sbit OUT=P3^7;
uchar ad_data; //ad采樣值存儲
uchar seconde=0; //定義并初始化時鐘變量
uchar minite=0;
uchar hour=12;
uchar mstcnt=0;
uchar temp1,temp2,temp; //溫度顯示變量
uchar t,set;
uchar T;
bit ON_OFF;
bit outflag;
uchar code str0[]={“--- : : ---OF”};
uchar code str1[]={“SET: C SA: 。 C”};
void delay_LCM(uint); //LCD延時子程序
void initLCM( void); //LCD初始化子程序
void lcd_wait(void); //LCD檢測忙子程序
void WriteCommandLCM(uchar WCLCM,uchar BusyC); //寫指令到ICM子函數(shù)
void WriteDataLCM(uchar WDLCM); //寫數(shù)據(jù)到LCM子函數(shù)
void DisplayOneChar(uchar X,uchar Y,uchar DData); //顯示指定坐標的一個字符子函數(shù)
void DisplayListChar(uchar X,uchar Y,uchar code *DData); //顯示指定坐標的一串字符子函數(shù)
評論
查看更多