【资源下载】下载地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
基于51单片机的电子时钟的设计,从硬件和软件两个方面给出了具体实现过程。该时钟的设计采用功能分块的思想方法,将硬件电路划分为开关电路,显示驱动电路和数码管电路等若干独立模块,而软件的实现则由闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等组成。
文中给出了各个模块的电路图,并用Proteus的ISIS软件对电子时钟系统的各个功能进行了仿真,并给出了相应的仿真结果图像
uchar hour=0, minute=0,flag=0; void display(uint ge,uint shi,uint fg,uint fs,uint xg,uint xs); void fm(); uchar code wm[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; uchar code dm[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; sbit ke1=P0^4; // 正常调时 sbit ke2=P0^5; //正常调分 sbit ke4=P0^7; //正常调星期(也可不接) sbit k3=P0^6;//闹钟调时 sbit k5=P0^3; // 闹钟调分 sbit k6=P0^2;//切换闹钟模式 void delay(uint s) { uint x,y; for(x=s;x>0;x--) for(y=110;y>0;y--); } void timer()interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; a++; } void key() { P0=0xfe; delay(10); if(ke1==0) { k++; if(k==24) k=0; while(!ke1); } if(ke2==0)