1、万年历上传了半天传不上去,说什么有非法内容,我晕,就几个程序还难到是木马不成/*=使用1602液晶显示DS1302+c51时钟 注:AT89C51使用12M晶振=*/#include #include #include #define delayNOP() ; _nop_() ;_nop_() ;_nop_() ;_nop_() ; ;#define LCM_RW P2_1 /定义引脚#define LCM_RS P2_0#define LCM_E P2_2#define LCM_Data P0#define Busy 0x80 /用于检测LCM状态字中的Busy标识#define uchar
2、 unsigned charsbit T_CLK=P15;sbit T_IO =P16;sbit T_RST=P14;sbit ACC0=ACC0;sbit ACC7=ACC7;sbit LED=P20; /背光灯输出 (因本实验板无此功能 所以此项功能无效)sbit system=P11; /模式sbit TimerUp=P12; /时间加sbit TimerDown=P10; /时间减sbit Speaker=P21; /蜂鸣器void Set(uchar,uchar); /根据选择调整相应项目void RTInputByte(uchar); /输入 1Byte */uchar RTOut
3、putByte(void); /输出 1Byte */void W1302(uchar, uchar); /向DS1302写入一个字节uchar R1302(uchar); /从DS1302读出一个字节void Set1302(uchar * ); /设置时间 void KeySound(); /按键音void ClockSound(); /闹铃蜂鸣声uchar id,msec,model,LedTime,d;bit a,b; /闪烁标志位 uchar inittime7=0x00,0x10,0x19,0x29,0x03,0x04,0x06; /初始化后设置为:06年3月29日星期3 19点1
4、0分0秒void Out_LCM(void); /显示屏幕void model0(void); /显示输出void model1(void);void model2(void);void model3(void);void model4(void);void model5(void);void model6(void); void id_case1_key(); /项目调整void Modset(); /模式键处理void WriteDataLCM(uchar WDLCM);void WriteCommandLCM(uchar WCLCM,BuysC);uchar ReadStatusLCM(
5、void);void LCMInit(void);void OutputInformation(uchar X, uchar Y, uchar DData);void DisplayListChar(uchar X, uchar Y, uchar code *DData);void Delay5Ms(void);void Delay400Ms(void);void systemsetup(void); /进入系统设置uchar code systemp=System.setup; /字符串输出(系统设定)uchar code TIMER=Time; /字符串输出(时间)uchar code D
6、ATE=Date; /字符串输出(日期)uchar code alarmclock=Clock; /字符串输出(闹铃)uchar code lamp=Lamp; /字符串输出(背光灯)uchar code reset=Reset; /字符串输出(时间归零)uchar code exit=Exit; /字符串输出(退出)uchar code set=Set; /字符串输出(设置)uchar code sec=sec; /字符串输出(秒)uchar code ClockSet=ClockSet; /字符串输出(闹铃设置)uchar code ClockOn=ON; /字符串输出(ON)uchar
7、code ClockOff=OFF; /字符串输出(OFF)void timesetup(void); /时间设置void datesetup(void); /日期设置void alarmclockset(void); /闹铃设置void lampsetup(void); /背光灯设置 void timereset(void); /时间清零/*/void delay1(int ms) unsigned char y ; while(ms-) for(y = 0 ; ymax) item=min; if(itemmin) item=max; W1302(0x8e,0x00); /允许写操作 W1
8、302(address,item/10*16+item%10); /写入DS1302 /转成BCD码 W1302(0x8e,0x80); /写保护,禁止写操作 /屏幕显示void Out_LCM(void) switch(model) case 0: model0(); break; case 1: model1(); break; case 2: model2(); break; /在不同的条件下显示不同的字符 case 3: model3(); break; case 4: model4(); break; case 5: model5(); break; case 6: model6()
9、; break; /*model为零时第一行显示时间,不为零时显示system setup*/void model0() DisplayListChar(0,0,TIMER); /显示固定字符串(Time) OutputInformation(13,0,0x20); /不显示 OutputInformation(4,0,0x20); /不显示 OutputInformation(4,1,0x20); /不显示 OutputInformation(15,1,0x20); /不显示 OutputInformation(7,1,0x2f); /显示固定字符 / OutputInformation(1
10、0,1,0x2f); /显示固定字符 / OutputInformation(13,1,0x2f); /显示固定字符 / DisplayListChar(0,1,DATE); /显示固定字符串Date(日期) if(a=1) /冒号闪烁 OutputInformation(7,0,0x3a); OutputInformation(10,0,0x3a); else OutputInformation(7,0,0x20); OutputInformation(10,0,0x20); /*model为零时第二行显示日期,不为零显示设置项目*/ OutputInformation(5,1,R1302(
11、0x8d)/16+0x30); /显示年 OutputInformation(6,1,R1302(0x8d)%16+0x30); OutputInformation(8,1,R1302(0x89)/16+0x30); /显示月 OutputInformation(9,1,R1302(0x89)%16+0x30); OutputInformation(11,1,R1302(0x87)/16+0x30); /显示日 OutputInformation(12,1,R1302(0x87)%16+0x30); OutputInformation(14,1,R1302(0x8b)%16+0x30); /显
12、示星期 OutputInformation(5,0,R1302(0x85)/16+0x30); /显示小时 OutputInformation(6,0,R1302(0x85)%16+0x30); OutputInformation(8,0,R1302(0x83)/16+0x30); /显示分钟 OutputInformation(9,0,R1302(0x83)%16+0x30); OutputInformation(11,0,R1302(0x81)/16+0x30); /显示秒 OutputInformation(12,0,R1302(0x81)%16+0x30); /*model不为零时显示
13、系统设置*/ /model为1时time闪烁,按下模式键后进入时间调整void model1() /*判断ID的值来显示项目*/ OutputInformation(0,0,0x20); /不显示 OutputInformation(1,0,0x20); DisplayListChar(2,0,systemp); /第一行显示system setup if(id=0) /为0时显示TIME date lalcak OutputInformation(9,1,0x20); /不显示 OutputInformation(4,1,0x20); /不显示 OutputInformation(15,1,0x20); /不显示 DisplayListChar(5,1,DATE); /显示date DisplayListChar(10,1,alarmclock);/显示lalcak if(a=1) OutputInformation(0,1,0x20); /不显示 OutputInformation(1,1,0x20); /
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1