《单片机程序(000001).pdf》由会员分享,可在线阅读,更多相关《单片机程序(000001).pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、/=日历时钟/=/日历时钟/按 K1,进入设置状态/按 k2,停止闹钟声音/按 k3,依次进入闹钟功能是否启用,闹钟时,分秒,年,月,日及时间时,分,秒的设置,直到退出设置状态/按 k4,调整是否起用闹钟和调节闹钟时,分,秒,年,月,日,时间的时,分,秒的数字/LCD 第二排中间显示小喇叭,表示启用闹钟功能,无则禁止闹钟功能(可在调整状态进行设置)/正常状态,LCD 上排最前面显示自定义字符,LCD 下排最前面闪动willar/设置状态,LCD 上排最前面显示P,下排最前面在设置闹钟时间时显示alarm:,其它状态显示time/年代变化2000-2099,星期自动转换/程序中有自定义字符写入#
2、include#include unsigned char code dis_week=SUN,MON,TUE,WED,THU,FRI,SAT;unsigned char code para_month13=0,0,3,3,6,1,4,6,2,5,0,3,5;/星期月参变数unsigned char datadis_buf116;/lcd 上排显示缓冲区unsigned char datadis_buf216;/lcd 下排显示缓冲区unsigned char datayear,month,date,week;/年、月、日、星期unsigned char dataarmhour,armmin,
3、armsec;/闹钟时、分、秒unsigned char datahour,min,sec,sec100;/时、分、秒、百分之一秒unsigned char dataflag,vkey,skey;/设置状态计数标志、按键先前值、按键当前值bitalarm;/标识是否启用闹钟,1-启用,0-关闭sbitrs=P20;/LCD 数据/命令选择端(H/L)sbitrw=P21;/LCD 读/写选择端(H/L)sbitep=P22;/LCD 使能控制sbit PRE=P16;/调整键(k3)sbit SET=P17;/调整键(k4)sbit SPK=P37;void delayms(unsigned
4、char ms);/延时程序bitlcd_busy();/测试 LCD 忙碌状态程序void lcd_wcmd(char cmd);/写入指令到LCD 程序void lcd_wdat(char dat);/写入数据到LCD 程序void lcd_pos(char pos);/LCD 数据指针位置程序void lcd_init();/LCD 初始化设定程序void pro_timedate();/时间日期处理程序void pro_display();/显示处理程序void pro_key();/按键处理程序void time_alarm();/定时报警功能(闹钟)unsigned char sc
5、an_key();/按键扫描程序unsigned char week_proc();/星期自动计算与显示函数bit leap_year();/判断是否为闰年void lcd_sef_chr();/LCD 自定义字符程序voidupdate_disbuf(unsignedchar t1,unsignedchar t2,unsignedchar dis_h,unsignedchardis_m,unsigned char dis_s);/更新显示缓冲区函数/延时程序void delay(unsigned char ms)while(ms-)unsigned char i;for(i=0;i 250;
6、i+)_nop_();/执行一条 _nop_()指令为一个机器周期_nop_();_nop_();_nop_();/测试 LCD 忙碌状态bit lcd_busy()bit result;rs=0;rw=1;ep=1;_nop_();_nop_();_nop_();_nop_();result=(bit)(P0&0 x80);/LCD 的 D0-D7 中,D7=1 为忙碌,D7=0 为空闲ep=0;return result;/写入指令到LCDvoid lcd_wcmd(char cmd)文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1
7、T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F
8、6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G
9、7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V
10、3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I
11、4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S
12、3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:
13、CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3while(lcd_busy();/当 lcd_busy 为 1 时,再次检测LCD 忙碌状态,lcd-busy 为 0 时,开始写指令rs=0;rw=0;ep=0;_nop_();_nop_();P0=cmd;_nop_();_nop_();_nop_();_nop_()
14、;ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;/写入数据到LCDvoid lcd_wdat(char dat)while(lcd_busy();/当 lcd_busy 为 1 时,再次检测LCD 忙碌状态,lcd-busy 为 0 时,开始写数据rs=1;rw=0;ep=0;P0=dat;_nop_();_nop_();_nop_();_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;/LCD 数据指针位置程序void lcd_pos(char pos)文档编码:CR10L1T5R10F6 HO5G7N4
15、V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 Z
16、U2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3
17、L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档
18、编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR1
19、0L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R
20、10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 H
21、O5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3lcd_wcmd(pos|0 x80);/数据指针=80+地址码(00H27H,40H67H)/设定二个自定义字符,(注意:LCD1602 中自定义字符的地址为0 x00-0 x07,即可定义8 个字符)/这里我们设定把
22、一个自定义字符放在0 x00 位置(000),另一个放在0 x01 位子(001)void lcd_sef_chr()/第一个自定义字符lcd_wcmd(0 x40);/01 000 000第 1 行地址(D7D6 为地址设定命令形式D5D4D3为字符存放位置(0-7),D2D1D0 为字符行地址(0-7))lcd_wdat(0 x1f);/XXX11111第 1 行数据(D7D6D5 为 XXX,表示为任意数(一般用 000),D4D3D2D1D0为字符行数据(1-点亮,0-熄灭)lcd_wcmd(0 x41);/01 000 001第 2 行地址lcd_wdat(0 x11);/XXX10
23、001第 2 行数据lcd_wcmd(0 x42);/01 000 010第 3 行地址lcd_wdat(0 x15);/XXX10101第 3 行数据lcd_wcmd(0 x43);/01 000 011第 4 行地址lcd_wdat(0 x11);/XXX10001第 4 行数据lcd_wcmd(0 x44);/01 000 100第 5 行地址lcd_wdat(0 x1f);/XXX11111第 5 行数据lcd_wcmd(0 x45);/01 000 101第 6 行地址lcd_wdat(0 x0a);/XXX01010第 6 行数据lcd_wcmd(0 x46);/01 000 11
24、0第 7 行地址lcd_wdat(0 x1f);/XXX11111第 7 行数据lcd_wcmd(0 x47);/01 000 111第 8 行地址lcd_wdat(0 x00);/XXX00000第 8 行数据/第二个自定义字符lcd_wcmd(0 x48);/01 001 000第 1 行地址lcd_wdat(0 x01);/XXX00001第 1 行数据lcd_wcmd(0 x49);/01 001 001第 2 行地址lcd_wdat(0 x1b);/XXX11011第 2 行数据lcd_wcmd(0 x4a);/01 001 010第 3 行地址lcd_wdat(0 x1d);/XX
25、X11101第 3 行数据lcd_wcmd(0 x4b);/01 001 011第 4 行地址lcd_wdat(0 x19);/XXX11001第 4 行数据lcd_wcmd(0 x4c);/01 001 100第 5 行地址lcd_wdat(0 x1d);/XXX11101第 5 行数据lcd_wcmd(0 x4d);/01 001 101第 6 行地址lcd_wdat(0 x1b);/XXX11011第 6 行数据lcd_wcmd(0 x4e);/01 001 110第 7 行地址lcd_wdat(0 x01);/XXX00001第 7 行数据lcd_wcmd(0 x4f);/01 001
26、 111第 8 行地址lcd_wdat(0 x00);/XXX00000第 8 行数据文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:
27、CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1
28、T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F
29、6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G
30、7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V
31、3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I
32、4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3/LCD 初始化设定void lcd_init()lcd_wcmd(0 x38);
33、/设置 LCD 为 16X2 显示,5X7 点阵,八位数据借口delay(1);lcd_wcmd(0 x0c);/LCD 开显示及光标设置(光标不闪烁,不显示-)delay(1);lcd_wcmd(0 x06);/LCD 显示光标移动设置(光标地址指针加1,整屏显示不移动)delay(1);lcd_wcmd(0 x01);/清除 LCD 的显示内容delay(1);/闰年的计算bit leap_year()bit leap;if(year%4=0&year%100!=0)|year%400=0)/闰年的条件leap=1;elseleap=0;return leap;/星期的自动运算和处理uns
34、igned char week_proc()unsigned char num_leap;unsigned char c;num_leap=year/4-year/100+year/400;/自 00 年起到 year 所经历的闰年数if(leap_year()&month 59)sec=0;min+;if(min59)min=0;hour+;if(hour23)hour=0;date+;if(month=1|month=3|month=5|month=7|month=8|month=10|month=12)if(date31)date=1;month+;/大月 31 天if(month=4|
35、month=6|month=9|month=11)if(date30)date=1;month+;/小月 30 天if(month=2)if(leap_year()/闰年的条件if(date29)date=1;month+;/闰年 2 月为 29 天elseif(date28)date=1;month+;/平 年 2 月 为 28 天if(month12)month=1;year+;if(year99)year=0;week_proc();if(sec=armsec&min=armmin&hour=armhour)if(alarm)TR1=1;/闹钟启用时,报警时间到,启动 Timer1/显示
36、处理程序void pro_display()unsigned char i;lcd_pos(0 x00);for(i=0;i=15;i+)lcd_wdat(dis_buf1i);lcd_pos(0 x40);for(i=0;i=100)/1 秒时间(100*10ms=1000ms=1s)sec100=0;pro_timedate();/调用时间和日期处理程序if(sec&0 x01)/willar 闪一秒,停一秒update_disbuf(0 x00,hour,min,sec);/0 x00 表示显示 00 位置的自定义字符elseupdate_disbuf(0 x00,willar,hour
37、,min,sec);pro_display();/调用显示处理函数/按键扫描程序unsigned charscan_key()skey=0 x00;/给变量 vkey 置初值skey|=PRE;/读取 PRE 键的状态skey=skey23)armhour=0;update_disbuf(0 x50,alarm:,armhour,armmin,armsec);/更新显示数据pro_display();/调用显示处理lcd_pos(0 x49);break;/光 标 回 到 原 调整位置case2:armmin+;if(armmin59)armmin=0;update_disbuf(0 x50,
38、alarm:,armhour,armmin,armsec);pro_display();lcd_pos(0 x4c);break;case3:armsec+;if(armsec59)armsec=0;update_disbuf(0 x50,alarm:,armhour,armmin,armsec);pro_display();lcd_pos(0 x4f);break;case4:year+;if(year 99)year=0;week_proc();/星期自动运算update_disbuf(0 x50,time:,hour,min,sec);pro_display();lcd_pos(0 x0
39、5);break;case5:month+;if(month12)month=1;week_proc();/星期自动运算update_disbuf(0 x50,time:,hour,min,sec);pro_display();lcd_pos(0 x08);break;case6:date+;if(month=1|month=3|month=5|month=7|month=8|month=10|month=12)if(date31)date=1;/大月 31 天if(month=4|month=6|month=9|month=11)if(date30)date=1;/小月 30 天if(mon
40、th=2)if(leap_year()/闰年的条件if(date29)date=1;/闰年 2 月为 29 天文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I
41、4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S
42、3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:
43、CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1
44、T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F
45、6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G
46、7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3elseif(date28)date=1;/平年 2 月为
47、 28 天week_proc();/星期自动运算update_disbuf(0 x50,time:,hour,min,sec);pro_display();lcd_pos(0 x0b);break;case7:hour+;if(hour23)hour=0;update_disbuf(0 x50,time:,hour,min,sec);pro_display();lcd_pos(0 x49);break;case8:min+;if(min59)min=0;update_disbuf(0 x50,time:,hour,min,sec);pro_display();lcd_pos(0 x4c);br
48、eak;case9:sec+;if(sec59)sec=0;update_disbuf(0 x50,time:,hour,min,sec);pro_display();lcd_pos(0 x4f);break;default:break;/Timer1 中断处理程序,产生报警的声音void timer1()interrupt 3TH1=0 xff;TL1=0 x00;SPK=SPK;/外部中断INT1 中断处理程序,停止报警声音void int1()interrupt 2if(TR1)TR1=0;文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR
49、10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5
50、R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6 HO5G7N4V4V3 ZU2I4N3L2S3文档编码:CR10L1T5R10F6