久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4272|回復: 2
收起左側

單片機數字鐘系統設計報告 帶仿真工程文件和源碼

[復制鏈接]
ID:211150 發表于 2017-6-22 09:55 | 顯示全部樓層 |閱讀模式
proteus仿真工程圖:
萬年歷.png 學習目標.png
  
任務描述
  
重難點
完成數字鐘系統的軟硬件設計與調試,系統主要功能要求如下:
  
     1. 在給定電路圖基礎上,完成數字鐘系統設計;
  
     2. 可以顯示時間、日期、定時時間,具有鬧鐘功能;
  
3. 設計按鍵校準并設置時間、日期、鬧鐘時間,切換顯示內容(時間、公歷日期、鬧鐘時間);
  
4. 鬧鐘時間到,數碼管做相應顯示,蜂鳴器響;
  
5. 萬年歷功能,重點是大月、小月的設置,平年、閏年2月份的設置;
51單片機程序圖:
#include<reg51.h>
#define uchar unsigned char
unsigned char duanma[13]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xa3,0xa1};           // 段碼
unsigned char weima[6]={0x01,0x02,0x04,0x08,0x10,0x20};                                         //位碼
unsigned char saomiao,jishu1,jishu2,shi,fen,miao,banmiao,jishu3,jishu22,nlmiao,Y1,Y2,Y3,nzs,nzf,nzm,year,month,day,jishu4;
unsigned char xianshi[6]={0,0,0,0,0,0};
unsigned char flag;
bit naoling;
bit kaiting=0;
sbit D1=P3^0;
sbit D2=P3^1;
sbit k1=P3^4;         //停止   運行
sbit k2=P3^5;         //時+1
sbit k3=P3^6;         //分+1
sbit k4=P3^7;         //秒+1
sbit k5=P0^1;         //鬧鐘時+1
sbit k6=P0^2;         //鬧鐘分+1
sbit k7=P0^3;         //鬧鐘秒
sbit k8=P0^4;          // 年+1
sbit k9=P0^5;           // 月+1
sbit k10=P0^6;                // 日+1
sbit sm=P3^2;
sbit QH=P0^0;
void chushihua (void)
{
  TMOD=0x11;
   EA=1;
   ET0=1;TR0=1;ET1=1;
   TH0=(65536-5000)/256;
   TL0=(65536-5000)%256;
   TH1=(65536-1000)/256;
   TL1=(65536-1000)%256;
   Y1=shi;Y2=fen;Y3=miao;
}
void date(void)
  {
    day++;
        if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
          {
                  if(day==32)day=1;
          }
        if((month==4)||(month==6)||(month==9)||(month==11))
          {
                  if(day==31)day=1;
          }
        if(month==2)
          {
                  if(((((year+2000)%4)==0)&&(((year+2000)%100)!=0))||(((year+2000)%400)==0))
                  {
                    if(day==30)day=1;
                  }
                else if(day==29)day=1;
                 
          }
        if(day==1)
          {
            month++;
                if(month==13)
                  {
                    month=1;
                        year++;
                        if(year==100)year=0;
                  }
          }
  }

void yanshi (void)
  {
    unsigned char i,j,k;
    for(i=250;i>0;i--)
    for(j=100;j>0;j--);
    for(k=100;k>0;k--);
  }
  void naol (void)         interrupt  3
  {
   TH1=(65536-1000)/256;
   TL1=(65536-1000)%256;
           D1=~D1;
        
  }
  
void shuzizhongduan (void)         interrupt  1
{

        


        
     TH0=(65536-5000)/256;
     TL0=(65536-5000)%256;
         if(flag==0)
         {
         
          Y1=shi;Y2=fen;Y3=miao;
         }
         if(flag==1)
         {
         
          Y1=nzs;Y2=nzf;Y3=nzm;
         }
         if(flag==2)
         {
         
          Y1=year;Y2=month;Y3=day;
         }
    xianshi[0]=duanma[Y1/10];
    xianshi[1]=duanma[Y1%10];
        xianshi[2]=duanma[Y2/10];
        xianshi[3]=duanma[Y2%10];
        xianshi[4]=duanma[Y3/10];
        xianshi[5]=duanma[Y3%10];
        jishu1++;
        if(jishu1==6)
        {
        jishu1=0;
        }
        P2=  weima[jishu1];//位碼
    P1=xianshi[jishu1];//段碼  
        
        jishu2++;
        if(jishu2==100)
        {
        if(naoling)
        nlmiao++;
        }
        jishu2++;
        banmiao++;
        if(banmiao==100)
        {
        banmiao=0;
        D1=~D1;
        D2=~D2;
        
        }
        jishu3++;
        if(jishu3==200)
        {
        jishu3=0;
        if(kaiting==0)
{
        miao++;
        }
        if(naoling)
        {
        sm=~sm;
        }
        if(miao==60)
        {
        miao=0;
        fen++;
        if(fen==60)
        {
        fen=0;
        shi++;
        if(shi==24)
        {
        shi=0;
        date();

        }
        }
        }
        
        
        }

        
        
        }
        
        
        


void main (void)
{
year=17;month=6;day=15;
shi=23;fen=58;miao=46;
chushihua();
while(1)
{
if(QH==0)
{
flag++;
if(flag==3)  flag=0;
if(flag==0)
  {
   
    Y1=shi,Y2=fen,Y3=miao;
  }
  if(flag==1)
  {
    Y1=nzs;Y2=nzf;Y3=nzm;
  }
  if(flag==2)
  {
    Y1=year;Y2=month;Y3=day;
  }
    while(QH==0) ;
}
   P0 = 0xff;
saomiao=P0;
if(saomiao!=0xff)
{
   saomiao=P0;
    yanshi();
        if(saomiao!=0xff)
        {
if(flag==1)
{
  if(k5==0)
  {
  if(nzs==23)
  {
    nzs=0;

  }
  else
   nzs++;
  }
  if(k6==0)
  {
  if(nzf==60)
  {
   nzf=0;

  }
  else
  nzf++;
  }
   if(k7==0)
   {
  if(nzm==60)
  {
  nzm=0;
  }
  else
   nzm++;
   }
           }
        }
}
P0 = 0xff;
saomiao=P0;
if(saomiao!=0xff)
{
  
   saomiao=P0;
    yanshi();
        if(saomiao!=0xff)
        {
if(flag==2)
{
  if(k8==0)
  {
  if(year==99)
  {
   year=17;
  }
  else
  year++;
  }

  if(k9==0)
  {
  if(month==12)
  {
  month=1;
  }
  else
  month++;
  }
   if(k10==0)
        {
        day++;
        if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
          {
                  if(day==32)day=1;
          }
        if((month==4)||(month==6)||(month==9)||(month==11))
          {
                  if(day==31)day=1;
          }
        if(month==2)
          {
                  if(((((year+2000)%4)==0)&&(((year+2000)%100)!=0))||(((year+2000)%400)==0))
                  {
                    if(day==30)day=1;
                  }
                else if(day==29)day=1;
                 
          }
        
        
        }
          }   
        }
        }



if((shi==nzs)&&(fen==nzf)&&(miao==nzm))
{
TR1=1;
naoling=1;
}
if(nlmiao==5)
{
  nlmiao=0;
  TR1=0;
  naoling=0;
}
P3 = 0xff;
saomiao=P3;
if(saomiao!=0xff)
{
   
   saomiao=P3;
    yanshi();
        if(saomiao!=0xff)
        {
   if(k1==0)
   {
    kaiting=~kaiting;
            
   }
if((k2==0)&&(kaiting==1))
  {
   if(shi==23)
         {
          shi=0;
                     }
          else
          shi ++;

   }
   if((k3==0)&&(kaiting==1))
   {
           if(fen==59)
        {
         fen=0;
         }
          else
           fen ++;
                }
        
            if((k4==0)&&(kaiting==1))
            {
          if(miao==59)
           {
                   miao=0;
                 }
             else  
                 miao ++;
           
                   }
        
         while(P3!=0xff);
         
         
   
   


}

  }

}
   
}


                                 
1. 蜂鳴器的控制;
  
2. 萬年歷算法;
  
3. 各種信息的交替顯示;
  
4.系統的統調。

0.png

全部資料下載地址:
7組.rar (39.85 KB, 下載次數: 45)
回復

使用道具 舉報

ID:344229 發表于 2018-6-3 22:05 | 顯示全部樓層
這個可以直接用嗎·
回復

使用道具 舉報

ID:350754 發表于 2018-6-13 00:43 | 顯示全部樓層

RE: 單片機數字鐘系統設計報告 帶仿真工程文件和源碼

我按照這個程序做了之后發現proteus的仿真結果顯示不完整,我不知道什么錯誤(就是它們沒有同步在一起),因為我不知道怎么發圖片,也顯示不出來,我該怎么辦?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九九亚洲 | 成人做爰69片免费观看 | 日韩欧美中文字幕在线观看 | 午夜影院操 | 美女黄网 | 国产日韩欧美 | 日韩欧美在线精品 | 国产91久久精品一区二区 | 国产视频久久久 | 久草成人 | 精精国产xxxx视频在线 | 中文字幕在线视频观看 | 久久精品99久久 | 国产高清视频在线 | 成人性生交大片免费看r链接 | 午夜欧美一区二区三区在线播放 | 精品国产伦一区二区三区观看体验 | 国产福利视频导航 | 亚洲午夜精品一区二区三区他趣 | 日韩精品 电影一区 亚洲 | 久久九精品 | 日韩中文字幕视频在线观看 | 亚洲精品一区二区 | 久草在线免费资源 | 欧美成人在线网站 | 一区二区三区欧美在线 | 国产精品精品视频一区二区三区 | 成人a免费 | 国精产品一区一区三区免费完 | 色av一区二区 | 国产99视频精品免视看9 | 成人精品一区二区三区中文字幕 | 九九伦理片| 欧美一级免费看 | 日韩免费视频 | 国产一区二区三区视频在线观看 | 日韩av看片| 一区二区视频在线 | 一区二区三区欧美在线观看 | 欧美精品一区二区蜜桃 | 国产视频线观看永久免费 |