找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1843|回復: 0
打印 上一主題 下一主題
收起左側(cè)

藍橋杯 DS1302驅(qū)動程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:230970 發(fā)表于 2018-4-13 14:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/*
  程序說明: DS1302驅(qū)動程序
  軟件環(huán)境: Keil uVision 4.10
  硬件環(huán)境: CT107單片機綜合實訓平臺 8051,12MHz
  日    期: 2011-8-9
*/

#include <reg52.h>
#include <intrins.h>

sbit SCK=P1^7;               
sbit SDA=P2^3;               
sbit RST = P1^3;   // DS1302復位                                                                                                

void Write_Ds1302_Byte(unsigned  char temp)
{
        unsigned char i;
        for (i=0;i<8;i++)            
        {
                SCK=0;
                SDA=temp&0x01;
                temp>>=1;
                SCK=1;
        }
}   

void Write_Ds1302( unsigned char address,unsigned char dat )     
{
         RST=0;
        _nop_();
         SCK=0;
        _nop_();
         RST=1;        
           _nop_();  
         Write_Ds1302_Byte(address);        
         Write_Ds1302_Byte(dat);               
         RST=0;
}

unsigned char Read_Ds1302 ( unsigned char address )
{
         unsigned char i,temp=0x00;
         RST=0;
        _nop_();
         SCK=0;
        _nop_();
         RST=1;
        _nop_();
         Write_Ds1302_Byte(address);
         for (i=0;i<8;i++)         
         {               
                SCK=0;
                temp>>=1;        
                 if(SDA)
                 temp|=0x80;        
                 SCK=1;
        }
         RST=0;
        _nop_();
         RST=0;
        SCK=0;
        _nop_();
        SCK=1;
        _nop_();
        SDA=0;
        _nop_();
        SDA=1;
        _nop_();
        return (temp);                        
}

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表