找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3703|回復(fù): 2
收起左側(cè)

基于51單片機(jī)的74HC595時(shí)鐘顯示程序

[復(fù)制鏈接]
ID:82098 發(fā)表于 2018-8-27 21:44 | 顯示全部樓層 |閱讀模式
基于51單片機(jī)的74HC595時(shí)鐘顯示

單片機(jī)源程序如下:
  1. #include <REGX51.H>
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. sbit sda=P2^0;
  5. sbit sclk=P2^2;
  6. sbit rclk=P2^1;


  7. uchar hou,min,sec;


  8. uchar code table[]=        { 0x84, 0xF5, 0x4C, 0x64, 0x35, 0x26, 0x06, 0xF4, 0x04, 0x24, 0x14, 0x07, 0x8E, 0x45, 0x0E, 0x1E, 0x7F, 0xFB, 0xFF };

  9. void rck(void)
  10. {
  11.         rclk=0;
  12.         rclk=1;
  13.         rclk=0;
  14. }

  15. void shift(uchar dat)
  16. {
  17.         uchar i;
  18.         rclk=0;
  19.         dat=table[dat];
  20.         for(i=0;i<8;i++)
  21.         {
  22.                 sclk=0;
  23.                 sda=(dat<<i)&0x80;
  24.                 sclk=1;       
  25.         }
  26. }


  27. void init(void)
  28. {
  29.         TMOD=0x01;
  30.         TH0=(65536-50000)/256;
  31.         TL0=(65536-50000)%256;
  32.         TR0=1;
  33.         ET0=1;
  34.         EA=1;
  35. }
  36. void main(void)                               
  37. {        uchar sec1=255;
  38.     init();
  39.         while(1)
  40.         {
  41.                 if(sec1!=sec)
  42.                 {
  43.                         shift(sec%10);
  44.                         shift(sec/10);
  45.                         shift(16);
  46.                         shift(min%10);
  47.                         shift(min/10);
  48.                         shift(16);
  49.                         shift(hou%10);
  50.                         shift(hou/10);
  51.                         rck();
  52.                         sec1=sec;
  53.                 }
  54.        
  55.         }       
  56. }
  57. void time0(void) interrupt 1
  58. {       
  59.     static uchar tcount;
  60.     TH0=(65536-50000)/256;
  61.         TL0=(65536-50000)%256;
  62.         tcount++;
  63.         if(tcount==20)
  64.         {
  65.                 tcount=0;
  66.                 sec++;
  67.                 if(sec==60)
  68.                 {
  69.                         sec=0;
  70.                         min++;
  71.                         if(min==60)
  72.                         {
  73.                                 min=0;
  74.                                 hou++;
  75.                                 if(hou==24)
  76.                                 {
  77.                                         hou=0;
  78.                                 }
  79.                         }
  80.                 }
  81.         }
  82. }
復(fù)制代碼

所有資料51hei提供下載:
基于51單片機(jī)的74HC595時(shí)鐘顯示程序.rar (12.28 KB, 下載次數(shù): 48)


回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2018-8-27 23:01 | 顯示全部樓層
補(bǔ)全原理圖即可獲得100+黑幣
回復(fù)

使用道具 舉報(bào)

ID:778921 發(fā)表于 2021-12-11 22:50 | 顯示全部樓層
有仿真圖參考嗎
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表