2022年非常详细单片机数码管LED显示电子钟 .pdf

上传人:H****o 文档编号:40176637 上传时间:2022-09-08 格式:PDF 页数:5 大小:75.14KB
返回 下载 相关 举报
2022年非常详细单片机数码管LED显示电子钟 .pdf_第1页
第1页 / 共5页
2022年非常详细单片机数码管LED显示电子钟 .pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年非常详细单片机数码管LED显示电子钟 .pdf》由会员分享,可在线阅读,更多相关《2022年非常详细单片机数码管LED显示电子钟 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、单片机数码管 LED 显示电子钟(C 语言)转载收藏人:shengshiguanjia2010-11-24|阅:862 转:50|来源|分享单片机 数码管 LED 显示电子钟(C 语言)转载2010-10-22 01:32/*标题:数码管显示电子钟(C 语言)*作者:wentao*日期:2007.3.3*软件:Keil C51 V8.02*芯片:AT89X51*说明:实验板实测通过,数码管为 8 位共阳*声明:自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途!*/#include#include#define uchar unsigned char voiddelay_ms(uch

2、arms);/延时毫秒 12M,ms 最大值255 voidkey_scan();/按键扫描voidkey_to();/按键处理ucharcodedis_code11=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,/段码表/0 1 2 3 4 对应内容名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 5 页 -0 x92,0 x82,0 xf8,0 x80,0 x90,0 xbf;/5 6 7 8 9 -uchardatadis8;/dis0为秒个位值,dis1为秒十位值/dis2,dis5为-段码的偏移量/dis3为分个位值,dis4为分十位值/dis6为时个位值,

3、dis7为时十位值uchardatasec=0;/秒计数器(00s-59s)uchardatamin=0;/分计数器(00m-59m)uchardatahou=0;/时计数器)00h-23h)uchardatacou =0;/软计数器,对 10ms时基信号累加到 1s uchardatadis_b;/dis_b为位码选通数码管uchardatadis_r;/dis_r 为取段码时的偏移量uchardatakey_v=0;/存储键值uchardatakey_t=0;/按键扫描中临时存储键值voidmain()P2=0 xff;/关所有数码管P1=0 xff;/p1为准双向口,作输入时先写 1 d

4、is2=10;/-在段码表中偏移量为 10 dis5=10;/-在段码表中偏移量为 10 dis_b=0 x7f;/初始选通 P2.7 口数码管 dis_r=0;/初始化偏移量为0 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -TMOD=0 x11;/定时/计数器 0,1 工作于方式 1 TH0=0 xd8;/预置定时常数55536(d8f0),产生 10ms时基信号TL0=0 xf0;TH1=0 xfc;/预置定时常数64536(fc18),产生 1ms间隔用于动态显示TH1=0 x18;EA=1;/开总中断ET0=1;/定时/计数器 0允许中断ET1=1;/定时/

5、计数器 1允许中断TR0=1;/开闭定时/计数器 0 TR1=1;/启动定时/计数器 1 while(1)key_t=P1;/读入键值if(key_t!=key_v)/键值改变 delay_ms(10);/延时10ms消抖 key_t=P1;/再次读入键值if(key_t!=key_v)/键值仍未改变则不是抖动 key_v=key_t;/保存键值 key_to();/键处理 voidkey_to()/按键处理子程序 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -if(key_v=0 xef)/P1.4口键值 if(min=59)/分计数已加到 59 min=0;/清零

6、之else min+;/否则加 1 else if(key_v=0 xdf)/P1.5口键值 if(hou=23)/时计数已加到 23 hou=0;/清零之else hou+;/否则加 1 voidtiem0(void)interrupt1/T/C0中断服务程序(产生 10ms时基信号)cou+;/软计数器加 1 if(cou=100)/计数值到100(1s)cou=0;/软计数器清零 sec+;/秒计数器加 1(进位 10ms*100=1s)if(sec=60)/秒计数值到 60 sec=0;/秒计数器清零 min+;/名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -

7、/分计数器加 1(进位 60s=1m)if(min=60)/分计数到 60 min=0;/分计数器清零 hou+;/时计数器加 1(进位 60m=1h)if(hou=23)/时计数到 23 hou=0;/时计数器清零 TH0=0 xd8;/重置定时常数TL0=0 xf0;voidtime1(void)interrupt3/T/C1中断服务程序(延时 1ms数码管动态显示)dis0=sec%10;/秒计数器个位赋绐 dis0 dis1=sec/10;/秒计数器十位赋绐 dis1 dis3=min%10;/分计数器个位赋绐 dis3 dis4=min/10;/分计数器十位赋绐 dis4 dis6=hou%10;/时计数器个位赋绐 dis6 dis7=hou/10;/时计数器十位赋绐 dis7 P0=dis_codedisdis_r;/段码送 P0口(dis0.dis7)P2=dis_b;/位码送 P2口 dis_r+;/偏移量加 1,下次中断时显示下个数 dis_r&=0 x07;/dis_r增到 8 时自动清 0(使之在 0 到 7 间循环)名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁