51單片機(jī)智能溫控器C語(yǔ)言源程序
這是一款51單片機(jī)智能溫控器C語(yǔ)言源程序,程序功能:速成有時(shí)鐘顯示,使用DS18B20進(jìn)行溫度檢測(cè),控制溫度可通過按鍵進(jìn)行設(shè)置,輸出通過繼電器械驅(qū)動(dòng)加熱器進(jìn)行加熱。是一款功能較為完善的溫度控制板,適合單片機(jī)愛好者進(jìn)行溫度控制的電子制作實(shí)作項(xiàng)目。電路簡(jiǎn)單,容易制作,調(diào)試容易。
#include 'reg51.h'
#include 'intrins.h'
#include'absacc.h'
#define uchar unsigned char
#define uint unsigned int
#define BUSY 0x80 //lcd忙檢測(cè)標(biāo)志
#define DATAPORT P0 //定義P0口為L(zhǎng)CD通訊端口
#define PLAYE_ADDR XBYTE[0XBFFF] //語(yǔ)音報(bào)警地址
sbit RED_ALARM=P1^0; //紅色指示燈
sbit WRITE_ALARM=P1^1; //白色指示燈
sbit GREEN_ALARM=P1^2; //綠色指示燈
sbit P1_4=P1^4; //時(shí)鐘調(diào)整
sbit P1_5=P1^5; //時(shí)鐘加
sbit P1_6=P1^6; //時(shí)鐘減
sbit DQ = P1^7; //定義ds18b20通信端口
sbit LCM_RS=P2^0; //數(shù)據(jù)/命令端
sbit LCM_RW=P2^1; //讀/寫選擇端
sbit LCM_EN=P2^2; //LCD使能信號(hào)
sbit ad_busy=P3^2; //adc中斷方式接口
sbit RECLED_EOC=P3^5; //ISD1420放音結(jié)束查詢標(biāo)志
sbit OUT=P3^7;
uchar ad_data; //ad采樣值存儲(chǔ)
uchar seconde=0; //定義并初始化時(shí)鐘變量
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延時(shí)子程序
void initLCM( void); //LCD初始化子程序
void lcd_wait(void); //LCD檢測(cè)忙子程序
void WriteCommandLCM(uchar WCLCM,uchar BusyC); //寫指令到ICM子函數(shù)
void WriteDataLCM(uchar WDLCM); //寫數(shù)據(jù)到LCM子函數(shù)
void DisplayOneChar(uchar X,uchar Y,uchar DData); //顯示指定坐標(biāo)的一個(gè)字符子函數(shù)
void DisplayListChar(uchar X,uchar Y,uchar code *DData); //顯示指定坐標(biāo)的一串字符子函數(shù)
void init_timer0(void); //定時(shí)器初始化