基于单片机时钟设计

基于单片机时钟设计

ID:12803155

大小:30.50 KB

页数:5页

时间:2018-07-19

基于单片机时钟设计_第1页
基于单片机时钟设计_第2页
基于单片机时钟设计_第3页
基于单片机时钟设计_第4页
基于单片机时钟设计_第5页
资源描述:

《基于单片机时钟设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于天祥单片机的时钟设计,用到的是单片机内部的晶振,没有用时钟芯片操作时使用四个独立按键用的是数码管显示没有用液晶显示随后更新液晶显示系列#include#defineuintunsignedint#defineucharunsignedcharsbitkey1=P3^4;sbitkey2=P3^5;sbitkey3=P3^6;sbitkey4=P3^7;sbita=P2^6;sbitb=P2^7;sbitled=P1^0;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x

2、7c,0x39,0x5e,0x79,0x71};voidshuma(uchar,uchar,uchar,uchar,uchar,uchar);voiddelay(uint);ucharnum,num1,num2,shi,ge,fen1,fen2,num3,shi1,shi2,num4;voidkeyscan();voidmain(){TMOD=0x11;EA=1;TH0=(65536-45872)/256;TL0=(65536-45872)%256;ET0=1;TR0=1;TH1=(65536-45872)/256;TL1=(65536-45872)%256;ET1=1;TR1=1;whi

3、le(1){keyscan();if(num2==20){num2=0;num++;if(num==60){num=0;num3=num3+1;if(num3==60){num3=0;num4=num4+1;if(num4==24)num4=0;}}}fen2=num3/10;fen1=num3%10;shi=num/10;ge=num%10;shi2=num4/10;shi1=num4%10;shuma(shi,ge,fen2,fen1,shi2,shi1);}}voidshuma(ucharshi,ucharge,ucharfen2,ucharfen1,ucharshi2,uchars

4、hi1)//数码管循环{a=1;P0=table[shi];a=0;P0=0xef;b=1;P0=0xef;b=0;delay(2);a=1;P0=table[ge];a=0;P0=0xff;b=1;P0=0xdf;b=0;delay(2);a=1;P0=table[fen2];a=0;P0=0xff;b=1;P0=0xfb;b=0;delay(2);a=1;P0=table[fen1];a=0;P0=0xff;b=1;P0=0xf7;b=0;delay(2);a=1;P0=table[shi2];a=0;P0=0xff;b=1;P0=0xfe;b=0;delay(2);a=1;P0=ta

5、ble[shi1];a=0;P0=0xff;b=1;P0=0xfd;b=0;delay(2);}voiddelay(uintx)//延迟{uinti,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}voidkeyscan(){if(key1==0)//S2键键入加一{delay(10);//去抖延时if(key1==0){num4++;if(num4==24)num4=0;while(!key1)shuma(shi,ge,fen2,fen1,shi2,shi1);//经典之处:按下一次按键未松手时,key1=0,停止在while的死循环中,不会再给num加数}}

6、if(key2==0)//S2键键入减一{delay(10);if(key2==0){num3++;if(num3==60){num3=0;num4++;if(num4==24)num4=0;}while(!key2)shuma(shi,ge,fen2,fen1,shi2,shi1);}}if(key3==0)//置零{delay(10);num=0;while(!key3)shuma(shi,ge,fen2,fen1,shi2,shi1);}if(key4==0)//是否定时器{delay(10);if(key4==0);{num4=23;num3=59;num=58;while(!ke

7、y4)shuma(shi,ge,fen2,fen1,shi2,shi1);//TR0=~TR0;//定时器的状态}}}voidT0_time()interrupt1//中断后LED闪烁{TH0=(65536-45872)/256;TL0=(65536-45872)%256;num1++;if(num1==20){num1=0;led=~led;}}voidT1_time()interrupt3//中断后数码管{TH1=(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。