/******************************************************************** * 程序名:多功能电子时钟 51 单片机LCD12864+DS12CR887+DS18B20 * 功 能: 这个时钟功能是蛮多的,但很耗电!三节5 号电池连两天都顶不了,建议用5V 400mA 电源。还有这个时钟制作要注意的 是 DS12C887 芯片和DS12887 和 DS12CR887 是有所不同的,有些要用16 进编码,有些直接是10 进编码, 但是为了农历转化方便,建议用DS12C887, DS12C887 功能也比较多,多了世纪的数据。 因为用到的数据是16 进的。还有程序比较大,建议用STC89C54 以上。 蜂鸣器建议用无源蜂鸣器,音乐闹铃会更好。 * 编程者: ONE421 * 编程时间:2009/09 电路图在后面 *********************************************************************/ #include #include #include #ifndef __SOUNDPLAY_H_REVISION_FIRST__ //音乐相关 #define __SOUNDPLAY_H_REVISION_FIRST__ //音乐相关 #define uint unsigned int #define uchar unsigned char void nl(); //农历 /*定义全局变量---------------------------------------------------------------*/ uchar sec,min,hour, day, date, month,year,cen,r1_h,r1_m,r1_of,r2_h,r2_m,r2_of; data uchar year_moon,month_moon,date_moon,cen_m,week; uint bt,rt,rr,rtt,rrt; bit c_moon; //农历 世纪 bit c; //公历 世纪 bit w = 0; //调时标志位 bit r = 0; //调整闹铃 /*定义12864 液晶屏数据线------------------------------------------------------*/ sbit LCM_RS = P1^6; //模式位,为0 输入指令,为1 输入数据 sbit LCM_RW = P1^7; //读写位,为0 读,为1 写 sbit LCM_EN = P3^3; //使能位 sbit LCM_BLA = P1^5; #define Lcd_Bus P0 //LCM12864 数据总线 /*定义DS12CR887 数据线--------------------------------------------------------*/ sbit DS_CS = P3^5; sbit DS_AS = P3^4; sbit DS_RW = P3^6; sbit DS_DS = P3^7; #define Ds_Bus P2 //DS12CR887 数据总线 /*定义按键-------------------------------------------------------------------*/ sbit K1 = P1^3; //K1-设置 sbit K2 = P1^0; //K2-确认 sbit K3 = P1^2; //K3-加 sbit K4 = P1...