1. 程式人生 > 實用技巧 >592【畢設課設】基於51微控制器的簡易電子鐘加鬧鐘設計

592【畢設課設】基於51微控制器的簡易電子鐘加鬧鐘設計

【資源下載】下載地址如下:
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)