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

QQ登錄

只需一步,快速開始

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

單片機(jī)+ds1302讀取問題00:00

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:370473 發(fā)表于 2020-3-3 10:09 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include"delay.h"
#include"stc8.h"
#include"ds1302.h"
sbit SCK=P1^4;//DS1302的時(shí)鐘引腳        
sbit SDA=P1^5;//DS1302的數(shù)據(jù)引腳        
sbit RST=P1^6;//DS1302的片選引腳

int m,h;
int readm(){return m;}
int readh(){return h;}
/****************************************************************************/
void ds1302_byte_write(unsigned char temp)
{
unsigned char i;
for (i=0;i<8;i++)//共8位  
  {
   SDA=(bit)(temp&0x01);//送出一位(從最低位開始)
   SCK=1;//上升沿
   delay_ms(15);//延時(shí)
   SCK=0;//下降沿
   temp>>=1;//移位
  }
}


/******************************DS1302讀字節(jié)****************************************/
unsigned char ds1302_byte_read(void )
{
unsigned char i,temp=0;
for(i=0;i<8;i++)//共8位
  {
   SDA=1;//數(shù)據(jù)引腳置位
   temp>>=1;//移位
   if(SDA)//讀數(shù)據(jù)
   temp|=0x80;
   SCK=1;//上升沿
   delay_ms(15);//延時(shí)
   SCK=0;//下降沿
  }
return(temp);//返回?cái)?shù)據(jù)
}


/***********************************************************************************/
void ds1302_write( unsigned char add,unsigned char dat )   
{
RST=0;//片選置0
SCK=0;//時(shí)鐘置0
RST=1;//片選置位
ds1302_byte_write(add);//寫地址
ds1302_byte_write(dat);//寫數(shù)據(jù)
RST=0;//片選置0
}


/************************************************************************************/
unsigned char ds1302_read (unsigned char add)
{
unsigned char dat;
RST=0;//片選置0
SCK=0;//時(shí)鐘置0
RST=1;//片選置位
ds1302_byte_write(add);//寫地址
dat=ds1302_byte_read();//讀數(shù)據(jù)
RST=0;//片選置0
return(dat);//返回?cái)?shù)據(jù)
}


/****************************************************************************************/
void read(){
static int hh,mm;
   mm=ds1302_read(0x83);//讀取分鐘
   m=((mm&0x70)>>4)*10+(mm&0x0f);//轉(zhuǎn)換為10進(jìn)制
   hh=ds1302_read(0x85);//讀取小時(shí)
   h=((hh&0x70)>>4)*10+(hh&0x0f);//轉(zhuǎn)換為10進(jìn)制
}

/******************************************************************************************/
void ds1302_init(void)
{
ds1302_write(0x8e,0x00);//允許寫操作
ds1302_write(0x80,0x00);//初始化秒(00)
ds1302_write(0x82,0x00);//初始化分(00)
ds1302_write(0x84,0x12);//初始化時(shí)(12)
ds1302_write(0xc0,0x07);//初始化鬧鐘小時(shí)(07)
ds1302_write(0xc2,0x00);//初始化鬧鐘分鐘(00)
ds1302_write(0xc4,0x00);//初始化鬧鐘開關(guān)(關(guān))
//ds1302_write(0x90,0xab); //二個(gè)二極管加8K電阻充電
ds1302_write(0x8e,0x80);//寫保護(hù)
}
/***************************************************************************************/
#include "stc8.h"
#include"delay.h"
#include"lcddriver.h"
#include"ds1302.h"
void main(void)
{

init();
ds1302_init();
while(1){ delay(2000);
diplaynum2(0,readh());//00
diplaynum2(4,readm());//00
}
}



哪個(gè)地方讀錯(cuò)了怎么是00 00
求救

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

使用道具 舉報(bào)

沙發(fā)
ID:584814 發(fā)表于 2020-3-9 17:24 | 只看該作者
這個(gè)東東網(wǎng)上大把現(xiàn)成的,下載一下對(duì)比一下就可以了。
回復(fù)

使用道具 舉報(bào)

板凳
ID:734462 發(fā)表于 2020-5-3 14:39 | 只看該作者
你好  這個(gè)問題你解決了嗎  我也遇到了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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