找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

DS1307設(shè)計(jì)數(shù)字時(shí)鐘(proteus仿真+單片機(jī)程序)

  [復(fù)制鏈接]
ID:579078 發(fā)表于 2020-5-27 13:47 | 顯示全部樓層 |閱讀模式
     設(shè)計(jì)一個(gè)由6個(gè)LED數(shù)碼管作為顯示器,以AT89C51單片機(jī)作為主控器,以DS1307作為時(shí)鐘芯片,能進(jìn)行“時(shí)分秒”以及“年月日”變換顯示的一個(gè)具有較高精度,并且可以自動(dòng)校準(zhǔn)時(shí)間的實(shí)時(shí)數(shù)字時(shí)鐘。

本設(shè)計(jì)具體實(shí)現(xiàn)采用了一塊DS1307芯片、六個(gè)BCD碼數(shù)碼管、51單片機(jī)和其他元件構(gòu)成。設(shè)計(jì)的數(shù)字時(shí)鐘可以完成00:00:00到23:59:59顯示時(shí)、分、秒,并且可以自動(dòng)切換閃爍顯示年、月、日計(jì)時(shí)功能。通過(guò)利用Proteus軟件,仿真實(shí)現(xiàn)設(shè)計(jì)的數(shù)字時(shí)鐘顯示。

附件含Proteus仿真及程序

整體電路仿真圖

整體電路仿真圖


單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit sda=P1^1;
  6. sbit scl=P1^0;
  7. void delay();
  8. void delay1();
  9. void start();
  10. void stop();
  11. uchar read(uchar address0,uchar wordaddress,uchar address1);
  12. uchar year=0,month=0,date=0,hour=0,minute=0,second=0;
  13. void main()
  14. {          

  15.         while(1)
  16.         {        second=read(0xd0,0x00,0xd1);
  17.                 minute=read(0xd0,0x01,0xd1);
  18.                 hour=read(0xd0,0x02,0xd1);       
  19.                 date=read(0xd0,0x04,0xd1);          
  20.                 month=read(0xd0,0x05,0xd1);
  21.                 year=read(0xd0,0x06,0xd1);
  22.                         P0=hour;
  23.                         P2=minute;
  24.                         P3=second;
  25.             delay1();
  26.                         P0=year;
  27.                         P2=month;
  28.                         P3=date;       
  29.             delay1();
  30. }
  31. }
  32. void delay1()
  33. {               
  34.         uint i,j;
  35.         for(i=0;i<1000;i++)
  36.         for(j=0;j<125;j++);
  37.         }
  38. void start()
  39. {
  40.         scl=1;
  41.         delay();
  42.         sda=1;
  43.         delay();       
  44.         sda=0;
  45.         delay();
  46. }
  47. void delay()
  48. {        uchar i=125;
  49.         while(i>0)
  50.         i--;       
  51. }

  52. void stop()
  53. {
  54.         scl=1;
  55.         delay();
  56.         sda=0;
  57.         delay();
  58.         sda=1;
  59.         delay();
  60. }
  61. uchar read(uchar address0,uchar wordaddress,uchar address1)
  62. {
  63.         uchar a,a0,i,n,data1;
  64.         start();
  65.         for(n=0;n<3;n++)
  66.         {
  67.                 if(n==0)a0=address0;
  68.         else if(n==1)a0=wordaddress;
  69.         else if(n==2)
  70.                 {
  71.                 start();
  72.                 a0=address1;
  73.                 }
  74.         for(i=0;i<8;i++)
  75.                 {
  76.                 scl=0;
  77.                 delay();
  78.                 a=a0;
  79.                 a=a&0x80;
  80.                 if(a==0x80)
  81.                         sda=1;
  82.                 else
  83.                         sda=0;                
  84.                 delay();
  85.                 scl=1;        
  86.                 delay();
  87.                 scl=0;
  88.                 delay();
  89.                 a0=a0<<1;
  90.                 }
  91.         sda=1;
  92.         delay();
  93.         scl=1;
  94.         delay();
  95.         scl=0;
  96.         }
  97.         for(i=0;i<8;i++)
  98.         {
  99.                 data1=data1<<1;
  100.                 sda=1;
  101.                 delay();
  102.                 scl=0;
  103.                 delay();
  104.                 scl=1;
  105.                 delay();
  106.                 if(sda==1)
  107.                         data1|=0x01;  
  108.         }
  109.         scl=0;            
  110.         delay();
  111.         sda=1;
  112.         delay();
  113.         stop();
  114.         return data1;
  115. }
復(fù)制代碼
51hei.png
所有資料51hei提供下載:
數(shù)字時(shí)鐘.rar (93.68 KB, 下載次數(shù): 192)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:767225 發(fā)表于 2020-6-2 11:27 | 顯示全部樓層
程序圖沒(méi)錯(cuò)
回復(fù)

使用道具 舉報(bào)

ID:767371 發(fā)表于 2020-6-2 11:51 | 顯示全部樓層
如果要具備定時(shí)啟鬧功能,怎么搞一下
回復(fù)

使用道具 舉報(bào)

ID:748788 發(fā)表于 2020-7-25 14:48 | 顯示全部樓層
不錯(cuò),可以仿真,有原程序,方便學(xué)習(xí),謝謝
ClipBoard.jpg

回復(fù)

使用道具 舉報(bào)

ID:833749 發(fā)表于 2020-12-31 15:26 來(lái)自手機(jī) | 顯示全部樓層
愛(ài)科技51 發(fā)表于 2020-6-2 11:51
如果要具備定時(shí)啟鬧功能,怎么搞一下

同求,有方法沒(méi)
回復(fù)

使用道具 舉報(bào)

ID:833749 發(fā)表于 2021-1-3 18:28 來(lái)自手機(jī) | 顯示全部樓層
有加定時(shí)啟鬧功能的嗎
回復(fù)

使用道具 舉報(bào)

ID:1057281 發(fā)表于 2022-12-13 11:33 | 顯示全部樓層
怎么顯示年月日
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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