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

QQ登錄

只需一步,快速開始

搜索
查看: 2366|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)+ds1307與數(shù)碼管的電子時(shí)鐘程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1057637 發(fā)表于 2022-12-14 23:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#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;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:102963 發(fā)表于 2022-12-15 18:55 | 只看該作者
樓主,你的電路圖呢?沒電路圖,不知道你這咋接的啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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