久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4092|回復: 5
打印 上一主題 下一主題
收起左側

各位大神,為什么我寫的ds1302的程序在掉電后數據初始化了

[復制鏈接]
跳轉到指定樓層
樓主
ID:95423 發表于 2015-11-13 13:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define LCD1602_DATAPINS P0
sbit LCD1602_E=P2^7;
sbit LCD1602_RW=P2^5;
sbit LCD1602_RS=P2^6;
sbit DSIO=P3^4;
sbit RST=P3^5;
sbit SCLK=P3^6;
void Ds1302Write(uchar addr, uchar dat);
uchar Ds1302Read(uchar addr);
void Ds1302Init();
void Ds1302ReadTime();
void LcdDisplay();
void LcdInit();
void LcdWriteCom(uchar com);
void LcdWriteData(uchar dat);
void Lcd1602_Delay1ms(uint c);
void _nop_();
extern uchar TIME[7];
uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d};
uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};
uchar TIME[7] = {0, 0, 0x12, 0x01, 0x01, 0x02, 0x13};
void main()
{
LcdInit();
Ds1302Init();
while(1)
{
  Ds1302ReadTime();
  LcdDisplay();}}                        
void LcdDisplay()
{
LcdWriteCom(0x80+0X40);
LcdWriteData('0'+TIME[2]/16);   
LcdWriteData('0'+(TIME[2]&0x0f));     
LcdWriteData('-');
LcdWriteData('0'+TIME[1]/16);   
LcdWriteData('0'+(TIME[1]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[0]/16);   
LcdWriteData('0'+(TIME[0]&0x0f));
LcdWriteCom(0x80);
LcdWriteData('2');
LcdWriteData('0');
LcdWriteData('0'+TIME[6]/16);   
LcdWriteData('0'+(TIME[6]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[4]/16);   
LcdWriteData('0'+(TIME[4]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[3]/16);  
LcdWriteData('0'+(TIME[3]&0x0f));
LcdWriteCom(0x8D);
LcdWriteData('0'+(TIME[5]&0x07));}   
void Ds1302Write(uchar addr, uchar dat)
{
uchar n;
RST = 0;
_nop_();
SCLK = 0;
_nop_();
RST = 1;
_nop_();
for (n=0; n<8; n++)
{
  DSIO = addr & 0x01;
  addr >>= 1;
  SCLK = 1;
  _nop_();
  SCLK = 0;
  _nop_();
}
for (n=0; n<8; n++)
{
  DSIO = dat & 0x01;
  dat >>= 1;
  SCLK = 1;
  _nop_();
  SCLK = 0;
  _nop_();
}
   
RST = 0;
_nop_();
}
uchar Ds1302Read(uchar addr)
{
uchar n,dat,dat1;
RST = 0;
_nop_();
SCLK = 0;
_nop_();
RST = 1;
_nop_();
for(n=0; n<8; n++)
{
  DSIO = addr & 0x01;
  addr >>= 1;
  SCLK = 1;
  _nop_();
  SCLK = 0;
  _nop_();
}
_nop_();
for(n=0; n<8; n++)            
{
  dat1 = DSIO;
  dat = (dat>>1) | (dat1<<7);
  SCLK = 1;
  _nop_();
  SCLK = 0;
  _nop_();
}
RST = 0;
_nop_();
SCLK = 1;
_nop_();
DSIO = 0;
_nop_();
DSIO = 1;
_nop_();
return dat;
}
void Ds1302Init()
{
uchar n;
Ds1302Write(0x8E,0X00);   
for (n=0; n<7; n++)
{
  Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);
}
Ds1302Write(0x8E,0x80);   
}
void Ds1302ReadTime()
{
uchar n;
for (n=0; n<7; n++)
{
  TIME[n] = Ds1302Read(READ_RTC_ADDR[n]);
}
  
}
void LcdWriteCom(uchar com)   
{
LCD1602_E = 0;     
LCD1602_RS = 0;   
LCD1602_RW = 0;   
LCD1602_DATAPINS = com;     
Lcd1602_Delay1ms(1);  
LCD1602_E = 1;           
Lcd1602_Delay1ms(5);   
LCD1602_E = 0;
}
void LcdWriteData(uchar dat)   
{
LCD1602_E = 0;
LCD1602_RS = 1;
LCD1602_RW = 0;
LCD1602_DATAPINS = dat;
Lcd1602_Delay1ms(1);
LCD1602_E = 1;   
Lcd1602_Delay1ms(5);   
LCD1602_E = 0;
}
void LcdInit()
{
  LcdWriteCom(0x38);  
LcdWriteCom(0x0c);  
LcdWriteCom(0x06);  
LcdWriteCom(0x01);  
LcdWriteCom(0x80);}
void Lcd1602_Delay1ms(uint c)  
{
    uchar a,b;
for (; c>0; c--)
{
   for (b=199;b>0;b--)
   {
     for(a=1;a>0;a--);
   }      
}
     
}
void _nop_()
{int i,j;
{for(i=5;i>0;i--)
for(j=10;j>0;j--);}}

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

使用道具 舉報

沙發
ID:91114 發表于 2015-11-13 13:57 | 只看該作者
沒有接電池吧?跟程序沒關系!
回復

使用道具 舉報

板凳
ID:95678 發表于 2015-11-13 19:45 | 只看該作者
你初始化成功了么?
回復

使用道具 舉報

地板
ID:95423 發表于 2015-11-13 20:12 | 只看該作者
嗯,問題已解決,是CE與SCLK的問題,謝謝回復。
回復

使用道具 舉報

5#
ID:922224 發表于 2021-5-30 16:11 | 只看該作者
lantianbaiyun 發表于 2015-11-13 20:12
嗯,問題已解決,是CE與SCLK的問題,謝謝回復。

你是怎么解決的
我重新上電后時間變成000000了
回復

使用道具 舉報

6#
ID:930029 發表于 2021-5-31 15:48 | 只看該作者
電池接對了嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 这里只有精品999 | 国产人免费人成免费视频 | 精品国产91久久久久久 | 欧美精品日韩精品国产精品 | 亚洲精品久久久久久久久久久久久 | av在线免费看网址 | 欧美性猛交一区二区三区精品 | 国产精品福利视频 | 国产精品视频一二三 | 国产精品久久久久久吹潮 | 久久宗合色| 久久久国产一区二区三区四区小说 | 国产精品成人在线 | 一区二区久久 | 国产日产久久高清欧美一区 | 综合网伊人 | 亚洲国产成人av好男人在线观看 | 久久国产精品无码网站 | 欧美在线天堂 | 九九综合九九 | 成人在线观看中文字幕 | 久久久精品一区 | 一级片免费视频 | 欧美精品一区二区免费视频 | 欧美二区在线 | 欧美综合精品 | 久久久久国产精品www | 亚洲国产欧美日韩 | 人人干人人干人人干 | 久久久www | 中文字幕精品视频 | 久久综合影院 | 国产激情在线观看视频 | 欧美一区二区精品 | 国产精品久久一区二区三区 | 免费精品视频一区 | 国产在线高清 | 日韩精品一区二区三区第95 | 国产在线资源 | 黄色一级大片在线免费看产 | 欧美成人精品在线观看 |