首页 51单片机数码管电子时钟程序

51单片机数码管电子时钟程序

举报
开通vip

51单片机数码管电子时钟程序#include #define uint unsigned int #define uchar unsigned char uchar miao,fen,shi,m,f,s,num,num2,num1,num4; uchar code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; sbit beep=P3^7; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y...

51单片机数码管电子时钟程序
#include #define uint unsigned int #define uchar unsigned char uchar miao,fen,shi,m,f,s,num,num2,num1,num4; uchar code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; sbit beep=P3^7; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void xiansi( uchar aa,uchar bb,uchar cc) { P2=0xdb; P0=0xbf; delay(1); P0=0xff; // num2++; if(num1==1&num2==0|num1==1&num2==1) { P2=0xff; P0=table1[aa%10]; delay(1); P0=0xff; P2=0xff; P0=table1[aa/10]; delay(1); P0=0xff; } else { P2=0xfe; P0=table1[aa%10]; delay(1); P0=0xff; P2=0xfd; P0=table1[aa/10]; delay(1); P0=0xff; } if(num1==2&num2==0|num1==2&num2==1) { P2=0xff; P0=table1[bb%10]; delay(1); P0=0xff; P2=0xff; P0=table1[bb/10]; delay(1); P0=0xff; } else { P2=0xf7; P0=table1[bb%10]; delay(1); P0=0xff; P2=0xef; P0=table1[bb/10]; delay(1); P0=0xff; } if(num1==3&num2==0|num1==3&num2==1) { P2=0xff; P0=table1[cc%10]; delay(1); P0=0xff; P2=0xff; P0=table1[cc/10]; delay(1); P0=0xff; } else { P2=0xbf; P0=table1[cc%10]; delay(1); P0=0xff; P2=0x7f; P0=table1[cc/10]; delay(1); P0=0xff; } //if(num2==256)num2=1; } void jishi( ) //计时函数 { if(num==20) //重复计数20次为一秒钟{ beep=1; num=0; miao++; if(miao==60) { miao=0; fen++; if(fen==60) { fen=0; shi++; if(shi==24) shi=0; } } if(miao==0&fen==0)beep=~beep; } xiansi(miao,fen,shi); } void init(void) //初始化函数 { TMOD=0x01; TH0=0x3c; TL0=0xb0; TH1=0x3c; TL1=0xb0; EA=1; ET0=1; TR0=1; // 定时/计数器0计时开始 ET1=1; TR1=1; // 定时/计数器1计时开始 } void key()//按键函数 { P1=0xfe; //功能键 if(P1==0xee) { delay(10); if(P1==0xee) { beep=0; while(P1==0xee)xiansi(miao,fen,shi); beep=1; num1++; TR0=0; if(num1==4){num1=0;TR0=1;} xiansi(miao,fen,shi); } } if(num1!=0) { if(P1==0xde) //时间加 { delay(10); if(P1==0xde) { beep=0; while(P1==0xde)xiansi(miao,fen,shi); beep=1; switch(num1) { case 1 : miao++; if(miao==60)miao=0; break; case 2 : fen++; if(fen==60)fen=0; break; case 3 : shi++; if(shi==24)shi=0; break; } } } if(P1==0xbe);//时间减 { delay(10); if(P1==0xbe) { beep=0; while(P1==0xbe)xiansi(miao,fen,shi); beep=1; switch(num1) { case 1 : miao--; if(miao==-1)miao=59; break; case 2 : fen--; if(fen==-1)fen=59; break; case 3 : shi--; if(shi==-1)shi=23; break; } } } } } void main() ////////////////////////主函数{ init(); while(1) { jishi(); key(); } } void zhongduan() interrupt 1 //中断函数 { TH0=0x3c; //初值重装 TL0=0xb0; num++; } void zhongduan1() interrupt 3 //中断函数{ TH1=0x3c; //初值重装 TL1=0xb0; num2++; if(num2==3)num2=0; }
本文档为【51单片机数码管电子时钟程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_954223
暂无简介~
格式:doc
大小:25KB
软件:Word
页数:13
分类:互联网
上传时间:2019-02-16
浏览量:97