51单片机数码管显示时钟程序(共7页).doc

上传人:飞****2 文档编号:14403892 上传时间:2022-05-04 格式:DOC 页数:7 大小:22.50KB
返回 下载 相关 举报
51单片机数码管显示时钟程序(共7页).doc_第1页
第1页 / 共7页
51单片机数码管显示时钟程序(共7页).doc_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《51单片机数码管显示时钟程序(共7页).doc》由会员分享,可在线阅读,更多相关《51单片机数码管显示时钟程序(共7页).doc(7页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上#include/#include#include#define uchar unsigned char#define uint unsigned intsbit dula=P26;sbit wela=P27;sbit key1=P34;sbit key2=P35;sbit key3=P36;sbit beep=P23;unsigned code table=0x3f , 0x06 , 0x5b , 0x4f ,0x66 , 0x6d , 0x7d , 0x07 ,0x7f , 0x6f , 0x77 , 0x7c,0x39 , 0x5e , 0x79 , 0x71

2、;uchar num1,num2,s,s1,m,m1,f,f1,num,numf,nums,dingshi;uchar ns,ns1,nf,nf1,numns,numnf;void delay(uint z); void keyscan ();void keyscan1 ();void alram();void display(uchar m,uchar m1,uchar f,ucharf1,uchars,uchars1);void display0(uchar nf,uchar nf1,uchar ns,uchar ns1); void main() TMOD=0x01;/设定定时器0工作方

3、式1 TH0=(65536-46080)/256 ;TL0=(65536-46080)%256 ;EA=1;/开总中断ET0=1;/开定时器0中断TR0=1;/启动定时器0中断numns=12;numnf=0; while(1) if(dingshi=0) keyscan (); display(m,m1,f,f1,s,s1); alram(); else keyscan1 (); display0(nf,nf1,ns,ns1); void keyscan () if(key1=0) delay(10); if(key1=0) nums+; if (nums=24) nums=0; while

4、(!key1);display(m,m1,f,f1,s,s1); if(key2=0) delay(10); if(key2=0) numf+; if (numf=60) numf=0; while(!key2); display(m,m1,f,f1,s,s1); if(key3=0) delay(10); if(key3=0) dingshi=dingshi; while(!key3) display(m,m1,f,f1,s,s1); /* if(key4=0) delay(10); if(key4=0) flag=1; while(!key4); display(m,m1,f,f1,s,s

5、1); */ void keyscan1() if(key1=0) delay(10); if(key1=0) numns+; if (numns=24) numns=0; while(!key1);/ display(nf,nf1,ns,ns1); if(key2=0) delay(10); if(key2=0) numnf+; if (numnf=60) numnf=0; while(!key2);/ display(nf,nf1,ns,ns1); if(key3=0) delay(10); if(key3=0) dingshi=0; while(!key3);/ display(m,m1

6、,f,f1,s,s1); void alram() if(numnf=numf)&(numns=nums) beep=0; if(numnf+1=numf)&(numns=nums)&(dingshi=0)/一分钟报时提示 beep=1; void display0(uchar nf,uchar nf1,uchar ns,uchar ns1)/闹钟显示函数 nf=numnf%10; nf1=numnf/10; ns=numns%10; ns1=numns/10;/* wela=1; P0=0xc0;/送位选数据 wela=0; P0=0xff;*/ dula=1; P0=tablens1; d

7、ula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1); dula=1; P0=tablens|0x80; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1); dula=1; P0=tablenf1; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1); dula=1; P0=tablenf; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1); void display(uchar m,uchar

8、m1,uchar f,ucharf1,uchars,uchars1)/时间显示 dula=1; P0=tablem1; /秒位第1位 dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); dula=1; P0=tablem; /秒位第2位 dula=0; P0=0xff; wela=1; P0=0xdf; wela=0; delay(1); dula=1; P0=tables1; /时位第一位 dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1); dula=1; P0=tables|0x80;

9、dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1); dula=1; P0=tablef1;/分位第一位 dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1); dula=1; P0=tablef|0x80; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1); void T0_timer() interrupt 1 TH0=(65536-46080)/256 ;TL0=(65536-46080)%256 ;num2+; if(num2=20) num+; num2=0; m=num%10; m1=num/10; f=numf%10; f1=numf/10; s=nums%10; s1=nums/10; if(num=59) num=0; numf+; if(numf=59) numf=0; nums+; if (nums=24) nums=0; void delay(uint z) uint x,y; for(x=110;x0;x-) for(y=z;y0;y-);专心-专注-专业

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

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com