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

標題: 單片機74hc595串行數(shù)碼管時鐘顯示程序+Proteus仿真 [打印本頁]

作者: skcxks    時間: 2019-6-1 00:06
標題: 單片機74hc595串行數(shù)碼管時鐘顯示程序+Proteus仿真
分享給大家 簡要:本文主要內容是用8051系列和74HC595構成的的數(shù)字鐘的電路設計。
一、硬件設計
利用8951的端口進行控制74HC595的RCK,SCK和/G腳,控制顯示部分的內容。為了節(jié)約89X51的端口,采用兩片74HC595級聯(lián)的方式,一片595控制八位數(shù)碼管的段碼端,一片595控制八位數(shù)碼管的片選端,因此我們在選不同位數(shù)碼管的同時,加以輸入不一樣的內容,這樣我們采用動態(tài)顯示的方法,可以利用八位數(shù)碼管進行時鐘顯示的目的。因為595采用級聯(lián)的方式,我們在給595數(shù)據(jù)的時候,應該先進行后聯(lián)一片595的數(shù)據(jù)傳輸。舉個例子,比方說我們采用第一片進行位選的控制,然后級聯(lián)的一片595進行段碼的輸出。那么我們在向兩片595采用數(shù)據(jù)傳輸?shù)臅r候,就應該先進行數(shù)據(jù)顯示的傳輸,而不是進行位選數(shù)據(jù)的傳輸。總之,我們要根據(jù)兩片595的硬件設計不一樣,在軟件控制部分做好軟件部分的設計。



圖中共由三個部分構成,即:單片控制部分,數(shù)據(jù)傳輸顯示部分和按鍵調整部分。
單片控制部分核心器件由8051系列構成,外圍部分這里不給出。
數(shù)據(jù)傳輸顯示部分又由兩片74HC595和兩個四位的數(shù)碼管組成。
按鍵調整部分主要是三個按鍵,對秒,分,小時的校準和調節(jié)。

二、軟件部分
  1. #include <AT89X51.H>
  2. unsigned int tcount;
  3. unsigned char m;
  4. static unsigned char second,minute,hour;

  5. unsigned char code fseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  6. unsigned char code segbit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
  7. unsigned char  disbuf[8]={0,0,0,0,0,0,0,0};



  8. //數(shù)據(jù)傳輸//
  9. void sdata(void)
  10. {unsigned char b,c,num;

  11.          if(b==0)
  12.         {        
  13.           b++;
  14.         num=segbit[m];
  15.           for(c=0;c<8;c++)
  16.                   {P3_2=0;
  17.                    P3_3=num&0x80;
  18.                    num<<=1;
  19.                    P3_2=1;
  20.            }
  21.         
  22.         }

  23.         if(b==1)

  24.         {  
  25.             b--;
  26.           if(m==2||m==5)
  27.           {num=0xbf;}
  28.           else
  29.            {num=fseg[disbuf[m]];}

  30.                  for(c=0;c<8;c++)
  31.                    {  P3_2=0;
  32.                          P3_3=num&0x80;
  33.                          num<<=1;
  34.                          P3_2=1;
  35.                    }
  36.         
  37.         }
  38.              m++;
  39.              if(m==8)
  40.                  {m=0;
  41.                      }
  42. }
  43. //數(shù)據(jù)傳輸//

  44. //延時單位//

  45. void delay (unsigned char h)
  46.   {        while(h--);
  47.   }
  48.   //延時單位//


  49. //數(shù)據(jù)輸出//
  50. void out(void)
  51. {P3_4=0;
  52.   delay(50);
  53.   P3_4=1;
  54. }
  55. //數(shù)據(jù)輸出//

  56.   //按鍵控制//
  57.   void bcon(void)
  58.    {if(P3_5==0)
  59.      {delay(100);
  60.            if(P3_5==0)
  61.             {second=0;
  62.                   while(P3_5==0);
  63.                   
  64.                 }
  65.          }
  66.          disbuf[0]=second%10;
  67.         disbuf[1]=second/10;

  68.         if(P3_6==0)
  69.      {delay(100);
  70.            if(P3_6==0)
  71.             {minute++;
  72.                   while(P3_6==0);
  73.                   if(minute==60)
  74.                    {minute=0;
  75.                    }
  76.                 }
  77.          }
  78.         disbuf[3]=minute%10;
  79.         disbuf[4]=minute/10;


  80.          if(P3_7==0)
  81.      {delay(100);
  82.            if(P3_7==0)
  83.             {hour++;
  84.                   while(P3_7==0);
  85.                    if(hour==24)
  86.                     {hour=0;
  87.                         }
  88.                 }
  89.          }
  90.         
  91.         disbuf[6]=hour%10;
  92.         disbuf[7]=hour/10;
  93.         
  94.         disbuf[0]=second%10;
  95.         disbuf[1]=second/10;
  96.         disbuf[3]=minute%10;
  97.         disbuf[4]=minute/10;
  98.         disbuf[6]=hour%10;
  99.         disbuf[7]=hour/10;

  100.    }
  101.    //鍵盤控制//
  102.   
  103.   //主函數(shù)//



  104. void main(void)
  105. {        
  106.   TMOD=0x02;
  107.   TH0=0x06;
  108.   TL0=0x06;
  109.   TR0=1;
  110.   ET0=1;
  111.   EA=1;

  112.   while(1)
  113.   {
  114.    bcon();
復制代碼
五、小結
本文主要利用74HC595芯片構成數(shù)字顯示的一個例子,在硬件設計和軟件控制部分,只要二者互相結合,可以得到不同的電路,效果也可以不一樣,這主要給讀者自己去發(fā)揮。



全部資料51hei下載地址:
595串行時鐘顯示.rar (72.67 KB, 下載次數(shù): 284)


作者: Nilo    時間: 2019-6-1 22:33
謝謝分享。。。!
作者: 236131948    時間: 2019-6-18 10:05
新手,剛好想實現(xiàn)595的時鐘電路軟件,下來學習
作者: 歐陽云天    時間: 2019-6-18 18:45
請教一下,595寫數(shù)據(jù)的時候是寫最后一片再倒回來嗎?
作者: dong123d    時間: 2019-6-18 20:32

請教一下,595寫數(shù)據(jù)的時候是寫最后一片再倒回來嗎
作者: iaskall    時間: 2019-12-27 20:45
值得參考
作者: jxdianqi    時間: 2020-4-12 23:05
收下啦,謝謝分享
作者: 1401372496    時間: 2020-4-13 10:32
有匯編版的嗎

作者: elec_hangzhou    時間: 2021-11-2 16:34
某一個寶上的都沒有C51的程序, 剛好又買了595模塊,學習一下,謝謝分享。
作者: kz0018    時間: 2022-11-13 11:46
驅動數(shù)碼管還是7219比較方便好用,但595有價格優(yōu)勢,線路布局也方便點兒。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 91在线资源 | 国产一区二区三区免费观看视频 | 日韩欧美在线一区 | 秋霞在线一区二区 | 欧美h | 欧美一区二区三区在线观看 | 丁香久久| 日韩亚洲欧美综合 | 日韩视频精品在线 | 欧美国产激情 | 一级大黄色片 | 免费亚洲婷婷 | 欧美激情国产精品 | 色花av| 亚洲国产成人精品久久久国产成人一区 | 韩国久久精品 | 精品国产18久久久久久二百 | 色99视频 | 欧美a级成人淫片免费看 | 在线观看中文字幕 | 中文字幕不卡一区 | 久久亚洲美女 | 久精品久久 | 日韩三级 | 中文成人在线 | 国产高清免费视频 | 五十女人一级毛片 | 精品福利在线 | 一级片免费视频 | 欧美久久视频 | 成人在线亚洲 | 国产在线一区观看 | 一区日韩 | 国产精品免费在线 | 91色啪| 色婷婷av久久久久久久 | 欧美日韩一区在线 | 国产精品18hdxxxⅹ在线 | 激情六月天 | 91免费在线视频 | 一区二区三区国产视频 |