|
#include <AT89X52.h> #define uint unsigned int#define uchar unsigned char //宏定義#define SET P3_1 //定義調(diào)整鍵#define DEC P3_2 //定義減少鍵#define ADD P3_3 //定義增加鍵#define BEEP P3_6 //定義蜂鳴器#define ALAM P1_2 //定義燈光報(bào)警#define DQ P3_7 //定義DS18B20總線I/O bit shanshuo_st; //閃爍間隔標(biāo)志bit beep_st; //蜂鳴器間隔標(biāo)志sbit DIAN = P0^5; //小數(shù)點(diǎn)uchar x=0; //計(jì)數(shù)器signed char m; //溫度值全局變量uchar n; //溫度值全局變量uchar set_st=0; //狀態(tài)標(biāo)志signed char shangxian=38; //上限報(bào)警溫度,默認(rèn)值為38signed char xiaxian=5; //下限報(bào)警溫度,默認(rèn)值為38//uchar code LEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};uchar code LEDData[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0xCF,0xDA,0x9B,0xDC,0x9B,0x8B};///*****顯示開機(jī)初始化等待畫面*****/void Disp_init(void) { P0 = ~0x80; //顯示---- P2 = 0x7F; Delay(200); P2 = 0xDF; Delay(200); P2 = 0xF7; Delay(200); P2 = 0xFD; Delay(200); P2 = 0xFF; //關(guān)閉顯示}/*****顯示溫度子程序*****/void Disp_Temperature(void) //顯示溫度{ P0 = ~0x98; //顯示C P2 = 0x7F; Delay(100); P2=0xff; P0=~LEDData[n]; //顯示個(gè)位 P2 = 0xDF; Delay(100); P2=0xff; P0 =~LEDData[m%10]; //顯示十位 DIAN = 0; //顯示小數(shù)點(diǎn) P2 = 0xF7; Delay(100); P2=0xff; P0 =~LEDData[m/10]; //顯示百位 P2 = 0xFD; Delay(100); P2 = 0xff; //關(guān)閉顯示}/*****顯示報(bào)警溫度子程序*****/void Disp_alarm(uchar baojing){ P0 =~0x98; //顯示C P2 = 0x7F; Delay(100); P2=0xff; P0 =~LEDData[baojing%10]; //顯示十位 P2 = 0xDF; Delay(100); P2=0xff; P0 =~LEDData[baojing/10]; //顯示百位 P2 = 0xF7; Delay(100); P2=0xff; if(set_st==1)P0 =~0xCE; else if(set_st==2)P0 =~0x1A; //上限H、下限L標(biāo)示 P2 = 0xFD; Delay(100); P2 = 0xff; //關(guān)閉顯示 |
|