|
設(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í)功能。通過利用Proteus軟件,仿真實(shí)現(xiàn)設(shè)計(jì)的數(shù)字時(shí)鐘顯示。
附件含Proteus仿真及程序
整體電路仿真圖
單片機(jī)源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit sda=P1^1;
- sbit scl=P1^0;
- void delay();
- void delay1();
- void start();
- void stop();
- uchar read(uchar address0,uchar wordaddress,uchar address1);
- uchar year=0,month=0,date=0,hour=0,minute=0,second=0;
- void main()
- {
- while(1)
- { second=read(0xd0,0x00,0xd1);
- minute=read(0xd0,0x01,0xd1);
- hour=read(0xd0,0x02,0xd1);
- date=read(0xd0,0x04,0xd1);
- month=read(0xd0,0x05,0xd1);
- year=read(0xd0,0x06,0xd1);
- P0=hour;
- P2=minute;
- P3=second;
- delay1();
- P0=year;
- P2=month;
- P3=date;
- delay1();
- }
- }
- void delay1()
- {
- uint i,j;
- for(i=0;i<1000;i++)
- for(j=0;j<125;j++);
- }
- void start()
- {
- scl=1;
- delay();
- sda=1;
- delay();
- sda=0;
- delay();
- }
- void delay()
- { uchar i=125;
- while(i>0)
- i--;
- }
- void stop()
- {
- scl=1;
- delay();
- sda=0;
- delay();
- sda=1;
- delay();
- }
- uchar read(uchar address0,uchar wordaddress,uchar address1)
- {
- uchar a,a0,i,n,data1;
- start();
- for(n=0;n<3;n++)
- {
- if(n==0)a0=address0;
- else if(n==1)a0=wordaddress;
- else if(n==2)
- {
- start();
- a0=address1;
- }
- for(i=0;i<8;i++)
- {
- scl=0;
- delay();
- a=a0;
- a=a&0x80;
- if(a==0x80)
- sda=1;
- else
- sda=0;
- delay();
- scl=1;
- delay();
- scl=0;
- delay();
- a0=a0<<1;
- }
- sda=1;
- delay();
- scl=1;
- delay();
- scl=0;
- }
- for(i=0;i<8;i++)
- {
- data1=data1<<1;
- sda=1;
- delay();
- scl=0;
- delay();
- scl=1;
- delay();
- if(sda==1)
- data1|=0x01;
- }
- scl=0;
- delay();
- sda=1;
- delay();
- stop();
- return data1;
- }
復(fù)制代碼
所有資料51hei提供下載:
數(shù)字時(shí)鐘.rar
(93.68 KB, 下載次數(shù): 192)
2020-5-27 13:46 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|