51单片机的数字钟程序.docx_第1页
51单片机的数字钟程序.docx_第2页
51单片机的数字钟程序.docx_第3页
51单片机的数字钟程序.docx_第4页
51单片机的数字钟程序.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include typedef unsigned int uint;typedef unsigned char uchar;sbit LED_Bit1 = P24;sbit LED_Bit2 = P25;sbit LED_Bit3 = P26;sbit LED_Bit4 = P27;sbit KEY0 = P37;sbit KEY1 = P36;sbit KEY2=P35;sbit KEY3=P34;sbit buzzer=P30;sbit led_0=P10;sbit led_1=P11;sbit led_2=P12;sbit led_3=P13;sbit led_4=P14;sbit led_5=P15;sbit led_6=P16;sbit led_7=P17;uchar Count = 0;Count1=0;uchar Second1=0;uchar hour=10,minute=23,Second = 0;uchar month=8,day=1;uchar clockhour=0,clockminute=0;uint mode=0,clockflag=0,year=2011;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;void Delay(uint m)uint x,y;for(x = m;x 0;x-)for(y = 110;y 0;y-);void Timer_Init(void)TMOD = 0x11;TH0 = (65536 - 10000)/256;TL0 = (65536 - 10000)%256;TH1 = (65536 - 10000)/256; TL1 = (65536 - 10000)%256;TR0 = 1;ET0 = 1;ET1=1;TR1=1;EA = 1;void LED_DynamicDisplay(uchar Bit1,uchar Bit2,uchar Bit3,uchar Bit4)LED_Bit1 = 0;LED_Bit2 = 1;LED_Bit3 = 1;LED_Bit4 = 1;P0=tableBit1;if(mode=2|mode=9|mode=7)if(Count50)P0=tableBit1&0x7f;/else/P0=tableBit1;Delay(1);P0 = 0xFF; /消?影LED_Bit1 = 1;LED_Bit2 = 0;LED_Bit3 = 1;LED_Bit4 = 1;P0=tableBit2; if(mode=0) if(Count50)P0=tableBit2&0x7f;if(mode=3)P0=tableBit2&0x7f;/if(mode=2|mode=1|mode=4|mode=5) /P0=tableBit2;Delay(1);P0 = 0xFF; /消?影LED_Bit1 = 1;LED_Bit2 = 1;LED_Bit3 = 0;LED_Bit4 = 1;P0=tableBit3;if(mode=1|mode=6|mode=8)if(Count= 100)Second+;Count = 0;if(Second=60)Second=0;minute+;if(minute = 60)minute = 0;hour+;if(hour=24)day+;hour=0;if(month=1|month=3|month=5|month=7|month=8|month=10|month=12)if(day=32)month+;day=1;elseif(day=31)month+;day=1;if(month=13)month=1;year+;void KeyScan()if(KEY2=0)Delay(5);if(KEY2=0)mode+;if(mode=3)TR1=0 ;TH1 = (65536 - 10000)/256; TL1 = (65536 - 10000)%256;TR1=1 ;Second1=0;if(mode=10)mode=0;while(!KEY2);if(KEY3=0)Delay(5);if(KEY3=0)if(buzzer=1)clockflag=0;mode=0;TR0=1;while(!KEY3);if(KEY0 = 0)Delay(5);if(KEY0 = 0)if(mode=3)TR1=0;if(mode=1)TR0=0;minute+;if(mode=2)hour+;if(mode=4)year+;if(mode=6)day+;if(mode=7)month+;if(mode=8)clockminute+;clockflag+;if(mode=9)clockflag+;clockhour+;while(!KEY0);if(KEY1 = 0)Delay(5);if(KEY1 = 0)if(mode=3)TH1 = (65536 - 10000)/256;TL1 = (65536 - 10000)%256; Count1 = 0;Second1 = 0;TR1=1;if(mode=4)year-;if(mode=6)day-;if(mode=7)month-;while(!KEY1);SecondCounterSetVaule(); int main()Timer_Init();while(1)if(clockflag)if(hour=clockhour&minute=clockminute)buzzer=1;KeyScan();LED_DynamicDisplay(hour/10,hour%10,minute/10,minute%10); while(mode=3)KeyScan();LED_DynamicDisplay(Second1/10,Second1%10,Count1/10,Count1%10);while(mode=4)KeyScan();LED_DynamicDisplay(year/1000,year/100%10,year%100/10,year%10);while(mode=5|mode=6|mode=7)KeyScan();LED_DynamicDisplay(month/10,month%10,day/10,day%10);while(mode=8|mode=9) KeyScan();LED_DynamicDisplay(clockhour/10,clockhour%10,clockminute/10,clockminute%10);return 0;void timer0(void) interrupt 1 using 1Count+;TH0 = (65536 - 10000)/256;TL0 = (65536 - 10000)%256;v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论