- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【单片机】c51 数字时钟 (带年月日显示)
显示当前时间: 9 点 58 分 34 秒 (第一个零表示闹钟未开启)
当前日期: 10 年 4 月六日
摘要 :本设计以单片机为核心, LED 数码管动态扫描显示。采用矩阵式键盘输
入能任意修改当前时间日期和设定闹钟时间。具有显示年月日(区分闰年和二
月),闹钟报警和整点报时功能
说明
系统的功能选择由 7 个按键完成。
其中 P3.0,P3.1 分别对应调整当前时间的时和分,
P3.2 为外部中断 0,控制闹钟功能的开启 / 关闭 (开启时数码管第一位显示字母’
c ’)
P3.3 用作外部中断 1,当前时间的显示与闹铃时间显示切换,闹钟显示时按
P3.0,P3.1 可进行闹钟时分的设定, 此时,led1 灯灭。 闹铃时间到切闹钟开关开
启时,闹铃响一分钟。
P3.5\P3.6\P3.7 对年月日进行调整 (第一次按 P3.5, 就进入了年月日的显示, 现
在就可对日期进行调整)。按 P3.1 回到当前时间的显示状态。
整点到时:报警对应小时的次数。
程序如下:
#includereg51.h
#includeintrins.h
#includestdio.h
#define uchar unsigned char
#define uint unsigned int
uchar data keyvalue; // 查到的键值
uchar data keys; // 转换出的数字
uchar dis[8];
uchar code
seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x40,0x00,0x
39,0xf7};
// 0 1 2 3 4 5 6 7 8 9 -
灭灯 c n
sbit led_duan=P2^6; // 段选通
sbit led_wei=P2^7; // 位选通
sbit speaker=P2^3; // 蜂鸣器
sbit minitek=P3^0; // 分校正 按键
sbit hourk=P3^1; // 小时校正 按键
sbit p3_4=P3^4; //
sbit yeark=P3^5; // 年
sbit monthk=P3^6; // 月
sbit dayk=P3^7; // 日
uchar data wei,i;
bit leap_year; // 闰年标志位
bit dis_nyr;
bit cal_year=1;
bit calculate=1; // 显示 年月日 与 当前时间切换标志
uchar data c_min; // 闹钟‘分寄存单元
uchar data c_hou; // 闹钟、小时寄存单元
uchar data second; // 秒
uchar data minite; // 分变量
uchar data hour; // 小时变量
uchar data year,month,day; // 定义年月日变量
uchar data CNTA;
uchar data speaker_num; // 蜂鸣次数
bit beep; // 整点报时标志
bit run; // 运行标志
bit flash; // 灭灯标志
bit clarm_switch; // 闹钟开关标志
bit baoshi; // 报时开关标志
sbit led1=P1^6; // 按键标识指示灯
sbit
文档评论(0)