ʱÖÓµç·ͼ£º
PCB°å£º
µ¥Æ¬»ú³ÌÐò£º
/*==================================================================== µ÷ÊÔÒªÇó£º
1.MCU:AT89S52оƬ»òAT89C52 2.¾§Õñ:12MHz
¹¦ÄÜ£º¶à¹¦ÄÜʱÖÓ+ζȼÆ
====================================================================*/
#include
#define uchar unsigned char #define uint unsigned int
sbit dis_bit1=P2^7;//¶¨ÒåÊýÂë¹Ü¿ØÖÆ¿Ú sbit dis_bit2=P2^6;//¶¨ÒåÊýÂë¹Ü¿ØÖÆ¿Ú sbit dis_bit3=P2^4;//¶¨ÒåÊýÂë¹Ü¿ØÖÆ¿Ú sbit dis_bit4=P2^3;//¶¨ÒåÊýÂë¹Ü¿ØÖÆ¿Ú sbit dis_bit5=P2^1;//¶¨ÒåÊýÂë¹Ü¿ØÖÆ¿Ú sbit dis_bit6=P2^0;//¶¨ÒåÊýÂë¹Ü¿ØÖÆ¿Ú sbit led1_bit=P2^2;//¶¨Ê±LEDµÄ¿ØÖÆ¿Ú
sbit led2_bit=P2^5;//¶¨Ê±LEDµÄ¿ØÖÆ¿Ú sbit s1_bit=P1^0; //¶¨ÒåS1¿ØÖÆ¿Ú sbit s2_bit=P1^1; //¶¨ÒåS2¿ØÖÆ¿Ú sbit s3_bit=P1^2; //¶¨ÒåS3¿ØÖÆ¿Ú
sbit dq_ds18b20=P3^3;//¶¨Òå¿ØÖÆDS18B20 sbit speak=P3^7; //¶¨Òå·äÃùÆ÷¿ØÖÆ¿Ú
sbit clk_ds1302=P3^6;//¶¨Òå¿ØÖÆDS1302µÄʱÖÓÏß sbit io_ds1302=P3^5;//¶¨Òå¿ØÖÆDS1302µÄ´®ÐÐÊý¾Ý sbit rest_ds1302=P3^4;
#define smg_data P0//¶¨ÒåÊýÂë¹ÜÊý¾Ý¿Ú
void delay_3us();//3USµÄÑÓʱ³ÌÐò
void delay_8us(uint t);//8USÑÓʱ»ù×¼³ÌÐò
void delay_50us(uint t);//ÑÓʱ50*T΢ÃÊýµÄÉùÃ÷ void display1(uchar dis_data);//ÊýÂë¹Ü1ÏÔʾ×Ó³ÌÐò void display2(uchar dis_data);//ÊýÂë¹Ü2ÏÔʾ×Ó³ÌÐò void display3(uchar dis_data);//ÊýÂë¹Ü3ÏÔʾ×Ó³ÌÐò void display4(uchar dis_data);//ÊýÂë¹Ü4ÏÔʾ×Ó³ÌÐò void display5(uchar dis_data);//ÊýÂë¹Ü5ÏÔʾ×Ó³ÌÐò void display6(uchar dis_data);//ÊýÂë¹Ü6ÏÔʾ×Ó³ÌÐò void init_t0();//¶¨Ê±Æ÷0³õʼ»¯º¯Êý void dis_led();//LED´¦Àíº¯Êý void judge_s1();//S1°´¼ü´¦Àíº¯Êý void judge_s2();//S2°´¼ü´¦Àíº¯Êý void judge_s3();//S3°´¼ü´¦Àíº¯Êý
void dis(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1);//ÏÔʾ×Ó³ÌÐò
void dis_san(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1,uchar san);//ÉÁ˸ÏÔʾ×Ó³ÌÐò
void judge_dis();//ÏÔʾ´¦Àíº¯Êý void judge_clock();//ÏÔʾ´¦Àíº¯Êý void set_ds1302();//ÉèÖÃʱ¼ä
void get_ds1302();//¶ÁÈ¡µ±Ç°Ê±¼ä
void w_1byte_ds1302(uchar t);//ÏòDS1302дһ¸ö×Ö½ÚµÄÊý¾Ý uchar r_1byte_ds1302();//´ÓDS1302¶ÁÒ»¸ö×Ö½ÚµÄÊý¾Ý
//***********************************************************************
//DS18B20²âκ¯Êý¶¨Òå
void w_1byte_ds18b20(uchar value);//ÏòDS18B20дһ¸ö×Ö½Ú uchar r_1byte_ds18b20(void);//´ÓDS18B20¶Áȡһ¸ö×Ö½ÚµÄÊý¾Ý void rest_ds18b20(void);//DS18B20¸´Î»³ÌÐò void readtemp_ds18b20(void);//¶ÁÈ¡ÎÂ¶È void dis_temp();//ζÈÏÔʾº¯Êý
//¹²ÑôÊýÂë¹Ü¶ÏÂë±í
const uchar tabl1[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92, // 0 1 2 3 4 5
0x82,0xf8,0x80,0x90,0x86,0x87,0xFF, //6 7 8 9 E T B 0xc6,0xbf,0xff}; // C - const uchar tabl3[]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}; uchar t0_crycle;
uchar hour_count,minute_count,second_count,msecond_count; uchar clock_hour,clock_minute; uchar countdown_second;
uchar countdown_hour,countdown_minute;
uchar clock_en;//ÄÖÖӹرպͿªÆôµÄ±êÖ¾£¬1¿ªÆô£¬0¹Ø±Õ uchar flag1,second_flag,zancun1,zancun2,zancun3; uchar zancun4,zancun5,zancun6,zancun7; uchar clock_flag,countdown_flag;
uchar msecond_minute,msecond_second,msecond_msecond,msecond_flag;//Ãë±íÏà¹Ø²ÎÊý
uint speak_count;
uchar templ,temph,temp_flag;
uchar t_b,t_s,t_g,t_x,temp_flag2;//´Ó×óµ½ÓÒ·Ö±ð´æ´¢Î¶ȰÙλ£¬Ê®Î»£¬¸öλ£¬Ð¡Êýλ
uchar tab23[3];//={0x40,0x59,0x23,0x28,0x11,0x06,0x09};//ÉϵçʱĬÈϵÄʱ¼ä //Ö÷³ÌÐò void main() {
P3=0x00; flag1=0; zancun3=0;
msecond_minute=0;//ÖÃÃë±íÏà¹Ø²ÎÊýΪ0 msecond_second=0; msecond_msecond=0; speak=1;//¹Ø±Õ·äÃùÆ÷ speak_count=0; clock_hour=0; clock_minute=0; clock_flag=0;
countdown_flag=0;//µ¹¼ÆÊ±±ê־λΪ0