




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字时钟完整程序(8位数码管显示) Protues仿真电路可从本页附件下载! /*基于单片机内部定时计数器的数字钟设计1、用单片机内部定时计数器T0进行计时;2、用8位数码管显示日期、时间;3、用INT0所接按键进行日期/时间显示切换。 */#include#define uchar unsigned char /宏定义#define uint unsigned int /宏定义uchar temp=0;/定义定时器溢出计数变量,每隔50ms产生1次溢出,temp加1bit flag=0;/定义时间/日期显示切换标志位,flag=0显示时间,flag=1显示日期uchar year=11;/定义年变量并赋初值11年uchar month=05,day=23;/定义月、日变量,并赋初值5月23日uchar hour=12,minute=00,second=00;/定义时、分、秒变量,并赋初值12时00分00秒uchar data month_day12=31,0,31,30,31,30,31,31,30,31,30,31;/定义每月天数表uchar code duan=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e;/共阳七段码表uchar code wei=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/共阳位码表 /*-定时计数器T0及中断初始化函数-*/void init_t0(void) TMOD=0x01;/设置定时器T0为工作方式1 TH0=(65536-50000)/256;/赋T0高8位初值,定时50ms TL0=(65536-50000)%256;/赋T0低8位初值 EA=1;/开总中断 ET0=1;/开启定时器T0中断 TR0=1;/启动定时器T0 /*-外部中断INT0初始化函数-*/void init_int0(void) EX0=1;/开启INT0中断 /*-1ms延时函数-*/void delay(uint n) uint i,j; for(i=n;i0;i-) for(j=114;j0;j-); /*时分秒、年月日计数程序采用定时计数器T0计数实现中断程序,每当定时计数器溢出时触发中断,执行该程序实现计时*/void time0() interrupt 1 TH0=(65536-50000)/256;/重装初值TL0=(65536-50000)%256; if(temp=20) temp=0; if(second=59) second=0; if(minute=59) minute=0; if(hour=23) hour=0; if(day=month_daymonth-1)/判断日期是否到了每月最后一天 day=1; if(month=12) month=1; year+; else month+; else day+; else hour+; else minute+; else second+; else temp+; /*INT0中断程序,每当按下INT0所接按键一次时触发中断,执行该程序实现时间/日期显示切换*/void into() interrupt 0 flag=!flag; /*-主函数-*/void main() uchar i; init_t0();/定时计数器T0及中断初始化 init_int0();/外部中断INT0初始化 while(1) if(flag=0)/若flag0,则显示“时-分-秒“ for(i=0;i=7;i+) P2=weii;/输出位码 if(i=0) P0=duansecond%10; /输出秒个位段码 else if(i=1) P0=duansecond/10; /输出秒十位段码 else if(i=2) P0=0xbf;/显示- else if(i=3) P0=duanminute%10; /输出分个位段码 else if(i=4) P0=duanminute/10; /输出分十位段码 else if(i=5) P0=0xbf;/显示- else if(i=6) P0=duanhour%10; /输出时个位段码 else P0=duanhour/10; /输出时十位段码 delay(5); /延时5ms else/若flag1,则显示“年-月-日” for(i=0;i=7;i+) P2=weii;/输出位码 if(i=0) P0=duanday%10; /输出日个位段码 else if(i=1) P0=duanday/10; /输出日十位段码 else if(i=2) P0=0xbf;/显示- else if(i=3) P0=duanmonth%10; /输出月个位段码 else if(i=4) P0=duanmonth/10; /输出月十位段码 el
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46270-2025农业机械北斗自动驾驶系统
- 2025贵州医科大学第三附属医院第十三届贵州人才博览会引才5人模拟试卷附答案详解(黄金题型)
- 2025黑龙江黑河市爱辉区花园社区卫生服务中心招聘非事业编制人员7人考前自测高频考点模拟试题带答案详解
- 2025湖南省儿童医院高层次人才公开招聘16人模拟试卷及答案详解(夺冠)
- 2025北京市昌平区人民法院招聘辅助书记员2人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025北京市海淀区中关村第二小学科学城北区分校招聘考前自测高频考点模拟试题及答案详解(有一套)
- 2025年甘肃省兰州眼科医院(兰州市第一人民医院眼科)招聘模拟试卷带答案详解
- 2025年中国环保绝缘管行业市场分析及投资价值评估前景预测报告
- 2025年甘肃酒泉玉门市招聘村级后备干部模拟试卷(含答案详解)
- 2025第十三届贵州人才博览会贵州水利水电职业技术学院引进人才12人模拟试卷(含答案详解)
- 《劝学》理解性默写课件-统编版高中语文必修上册
- 经口腔镜甲状腺切除术
- 煤矿回收材料管理制度
- DB32T 5124.1-2025 临床护理技术规范 第1部分:成人危重症患者目标温度管理
- DB34T 4985-2025“多规合一”实 用性村庄规划编制规程
- 山东省威海市荣成市实验中学(五四制)2024-2025学年八年级上学期期末考试数学试题(含部分答案)
- 2025年云南事业单位a类真题及答案
- 《非甾体抗炎药物》课件
- 烟道供货及安装合同模板
- 美容皮肤临床技术操作规范方案
- 2025年机关意识形态工作要点
评论
0/150
提交评论