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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

為什么我的1302萬年歷不走時間

[復制鏈接]
跳轉到指定樓層
樓主
ID:537608 發表于 2019-5-16 10:47 來自觸屏版 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
30黑幣
我用的是ds1302+stc15+1602,單片機運行后,1602只顯示一個初始的時間,靜止不動,我把rst的引線拔掉后,1602顯示??,再把1602插上后時間刷新,并且增加了拔掉的這一段時間,求大神指教

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

使用道具 舉報

沙發
ID:512205 發表于 2019-5-16 11:38 | 只看該作者
如果要幫你查看問題,你就要吧程序貼出來,如果是要程序,你搜一下,論壇有一堆可參考
回復

使用道具 舉報

板凳
ID:96682 發表于 2019-5-16 12:05 | 只看該作者
首先得確定程序是以 STC 15 編寫的么
回復

使用道具 舉報

地板
ID:537608 發表于 2019-5-16 12:30 | 只看該作者
這是我的程序
回復

使用道具 舉報

5#
ID:537608 發表于 2019-5-16 12:31 | 只看該作者
#include        "15W4KxxS4.H"
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit io=P1^6;
sbit sck=P1^5;
sbit rst=P2^5;
sbit rs=P2^4;      
sbit rw=P2^3;     
sbit en=P2^1;        
uchar writetime[]={19,1,5, 15, 9, 15, 0};
uchar writeadd[7]={0x8c, 0x8a, 0x88,0x86, 0x84,0x82, 0x80};//ds1302D′μ?μ??·
uchar readadd[7]={0x8d,0x8b, 0x89, 0x87,0x85,0x83, 0x81};


//************************************************//
void delay(uchar ms)
{
        uchar x,y;
for(x=ms; x>0; x--)
for(y=110;y>0;y--);
}

//************************************************//

       
void ds1302_write_byte(uchar date)//
{
        uchar i;
for(i=0;i<8;i++)
        {
sck=0;
io=date&0x01;//
date=date>>1;
sck=1;}
}
//*********************************************//
void ds1302_write(uchar add,uchar date)/
{
rst=0;_nop_();//????3ì
sck=0;_nop_();
rst=1;_nop_();
ds1302_write_byte(add);
ds1302_write_byte(date);
rst=0;_nop_();
sck=0;_nop_();
io=1; sck=1;
}
//*****************************************//
uchar ds1302_read(uchar add)
{
uchar i,date;
rst=0;_nop_();
sck=0;_nop_();
rst=1;_nop_();
ds1302_write_byte(add);
for(i=0;i<8;i++)
        {
date=date>>1;
sck=0;
if(io)
date=date|0x80;
sck=1;}
rst=0;_nop_();
sck=0;_nop_();
io=1;sck=1;
return date;
}
//**********************************************//
void write_time()//
{
uchar i,j,k;
for(i=0;i<7;i++){
j=writetime[i]/10;
k=writetime[i]%10;
writetime[i]=j*16+k;
}
ds1302_write(0x8e, 0x00);/
for(i=0; i<7;i++)
{
ds1302_write(writeadd[i], writetime[i]);
}
ds1302_write(0x8e,0x80);/
}
//*************************************************//
void readtime()/
{
        uchar i;
for(i=0;i<7;i++)
{writetime[i]=ds1302_read(readadd[i]);//***
}
}
//**********************************************//
void yj1602_write_com(uchar com)//
{

en=0; delay(1);
en=1; delay(1);
rs=0; delay(1);
rw=0;delay(1);
P0=com;
en=0; delay(1);}


        void yj1602_write_date(uchar date)/
en=0; delay(1);
en=1;delay(1);
rs=1; delay(1);
rw=0; delay(1);
                P0=date;
en=0;delay(1);
        }


void yj1602_init()//1
{
yj1602_write_com(0x38);//  
yj1602_write_com(0x0c);//
yj1602_write_com(0x06);//
yj1602_write_com(0x01);//
}
void write_1602(uchar add, uchar date)//
{
uchar shi,ge;
shi=date/16;
        ge=date%16;
yj1602_write_com(0x80+add);//
yj1602_write_date(0x30+shi);
yj1602_write_date(0x30+ge);
}
void deal_with()//
{
yj1602_write_com(0x80+0);
yj1602_write_date('d');
delay(5);
yj1602_write_com(0x80+1);
yj1602_write_date('a');
delay(5);
yj1602_write_com(0x80+2);
yj1602_write_date('t');
delay(5);
yj1602_write_com(0x80+3);
yj1602_write_date('a');
delay(5);
yj1602_write_com(0x80+4);
yj1602_write_date(':');
delay(5);
        write_1602(5,writetime[0]);
        delay(5);
yj1602_write_com(0x80+7);
yj1602_write_date('-');
delay(5);
write_1602(8,writetime[2]);
        delay(5);
yj1602_write_com(0x80+10);
yj1602_write_date('-');
delay(5);
write_1602(11,writetime[3]);
        delay(5);
yj1602_write_com(0x80+0x40);
yj1602_write_date('t');
delay(5);
yj1602_write_com(0x80+0x40+1);
yj1602_write_date('i');
delay(5);
yj1602_write_com(0x80+0x40+2);
yj1602_write_date('m');
delay(5);
yj1602_write_com(0x80+0x40+3);
yj1602_write_date('e');
delay(5);
yj1602_write_com(0x80+0x40+4);
yj1602_write_date(':');
delay(5);
write_1602(0x40+5,writetime[4]);
        delay(5);
        yj1602_write_com(0x80+0x40+7);
yj1602_write_date(':');
delay(5);
write_1602(0x40+8,writetime[5]);
        delay(5);
        yj1602_write_com(0x80+0x40+10);
yj1602_write_date(':');
delay(5);
write_1602(0x40+11,writetime[6]);
yj1602_write_com(0x80+0x40+11);
        delay(5);
}

//**************************************************//
void main(){
P2M1 = 0;        P2M0 = 0;       
P0M1 = 0;        P0M0 = 0;       
P1M1 = 0;        P1M0 = 0;
        P5M1 = 0x00;        P5M0 = 0x18;         

       
yj1602_init();
write_time();
while(1){
readtime();
deal_with();
}
}

回復

使用道具 舉報

6#
ID:52944 發表于 2019-5-16 12:32 | 只看該作者
沒有程序,大神也給你回答不了
回復

使用道具 舉報

7#
ID:52944 發表于 2019-5-16 12:33 | 只看該作者
網上的例程很多,可以參考對照一下
回復

使用道具 舉報

8#
ID:537608 發表于 2019-5-16 12:35 | 只看該作者
這是原本的程序
#include        "15W4KxxS4.H"
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit io=P1^6;
sbit sck=P1^5;
sbit rst=P2^5;
sbit rs=P2^4;      
sbit rw=P2^3;     
sbit en=P2^1;        
uchar writetime[]={19,1,5, 15, 9, 15, 0};
uchar writeadd[7]={0x8c, 0x8a, 0x88,0x86, 0x84,0x82, 0x80};//ds1302D′μ?μ??·
uchar readadd[7]={0x8d,0x8b, 0x89, 0x87,0x85,0x83, 0x81};


//************************************************//
void delay(uchar ms)
{
        uchar x,y;
for(x=ms; x>0; x--)
for(y=110;y>0;y--);
}

//************************************************//

       
void ds1302_write_byte(uchar date)//
{
        uchar i;
for(i=0;i<8;i++)
        {
sck=0;
io=date&0x01;//
date=date>>1;
sck=1;}
}
//*********************************************//
void ds1302_write(uchar add,uchar date)/
{
rst=0;_nop_();//????3ì
sck=0;_nop_();
rst=1;_nop_();
ds1302_write_byte(add);
ds1302_write_byte(date);
rst=0;_nop_();
sck=0;_nop_();
io=1; sck=1;
}
//*****************************************//
uchar ds1302_read(uchar add)
{
uchar i,date;
rst=0;_nop_();
sck=0;_nop_();
rst=1;_nop_();
ds1302_write_byte(add);
for(i=0;i<8;i++)
        {
date=date>>1;
sck=0;
if(io)
date=date|0x80;
sck=1;}
rst=0;_nop_();
sck=0;_nop_();
io=1;sck=1;
return date;
}
//**********************************************//
void write_time()//
{
uchar i,j,k;
for(i=0;i<7;i++){
j=writetime[i]/10;
k=writetime[i]%10;
writetime[i]=j*16+k;
}
ds1302_write(0x8e, 0x00);/
for(i=0; i<7;i++)
{
ds1302_write(writeadd[i], writetime[i]);
}
ds1302_write(0x8e,0x80);/
}
//*************************************************//
void readtime()/
{
        uchar i;
for(i=0;i<7;i++)
{writetime[i]=ds1302_read(readadd[i]);//***
}
}
//**********************************************//
void yj1602_write_com(uchar com)//
{

en=0; delay(1);
en=1; delay(1);
rs=0; delay(1);
rw=0;delay(1);
P0=com;
en=0; delay(1);}


        void yj1602_write_date(uchar date)/
en=0; delay(1);
en=1;delay(1);
rs=1; delay(1);
rw=0; delay(1);
                P0=date;
en=0;delay(1);
        }


void yj1602_init()//1
{
yj1602_write_com(0x38);//  
yj1602_write_com(0x0c);//
yj1602_write_com(0x06);//
yj1602_write_com(0x01);//
}
void write_1602(uchar add, uchar date)//
{
uchar shi,ge;
shi=date/16;
        ge=date%16;
yj1602_write_com(0x80+add);//
yj1602_write_date(0x30+shi);
yj1602_write_date(0x30+ge);
}
void deal_with()//
{
yj1602_write_com(0x80+0);
yj1602_write_date('d');
delay(5);
yj1602_write_com(0x80+1);
yj1602_write_date('a');
delay(5);
yj1602_write_com(0x80+2);
yj1602_write_date('t');
delay(5);
yj1602_write_com(0x80+3);
yj1602_write_date('a');
delay(5);
yj1602_write_com(0x80+4);
yj1602_write_date(':');
delay(5);
        write_1602(5,writetime[0]);
        delay(5);
yj1602_write_com(0x80+7);
yj1602_write_date('-');
delay(5);
write_1602(8,writetime[2]);
        delay(5);
yj1602_write_com(0x80+10);
yj1602_write_date('-');
delay(5);
write_1602(11,writetime[3]);
        delay(5);
yj1602_write_com(0x80+0x40);
yj1602_write_date('t');
delay(5);
yj1602_write_com(0x80+0x40+1);
yj1602_write_date('i');
delay(5);
yj1602_write_com(0x80+0x40+2);
yj1602_write_date('m');
delay(5);
yj1602_write_com(0x80+0x40+3);
yj1602_write_date('e');
delay(5);
yj1602_write_com(0x80+0x40+4);
yj1602_write_date(':');
delay(5);
write_1602(0x40+5,writetime[4]);
        delay(5);
        yj1602_write_com(0x80+0x40+7);
yj1602_write_date(':');
delay(5);
write_1602(0x40+8,writetime[5]);
        delay(5);
        yj1602_write_com(0x80+0x40+10);
yj1602_write_date(':');
delay(5);
write_1602(0x40+11,writetime[6]);
yj1602_write_com(0x80+0x40+11);
        delay(5);
}

//**************************************************//
void main(){
P2M1 = 0;        P2M0 = 0;       
P0M1 = 0;        P0M0 = 0;       
P1M1 = 0;        P1M0 = 0;
        P5M1 = 0x00;        P5M0 = 0x18;         

       
yj1602_init();
write_time();
while(1){
readtime();
deal_with();
}
}

回復

使用道具 舉報

9#
ID:343391 發表于 2019-5-16 14:43 | 只看該作者
據樓主描述,1302讀取應該沒有問題,問題可能在1602的rs引腳上,寫數據或寫命令時輸出的電平不對或延時不夠,建議把rs引腳拉高拉低后的延時時間改大試試。
回復

使用道具 舉報

10#
ID:343391 發表于 2019-5-16 14:48 | 只看該作者
根據問題描述,1302應該沒有問題,問題可能在1602的rs數據/命令寫入選擇腳上,拉高拉低不對或延時時間不夠,建議把拉高拉低后的延時時間改大試試。
回復

使用道具 舉報

11#
ID:537018 發表于 2019-5-16 15:19 | 只看該作者
需要程序哦
回復

使用道具 舉報

12#
ID:537608 發表于 2019-5-16 16:46 來自觸屏版 | 只看該作者
酸葡萄 發表于 2019-5-16 15:19
需要程序哦

已經貼上去了,有什么問題嗎
回復

使用道具 舉報

13#
ID:539977 發表于 2019-5-16 16:52 | 只看該作者
可能沒按照時序圖編寫,把延時加大1MS試試
回復

使用道具 舉報

14#
ID:93224 發表于 2019-5-16 17:46 | 只看該作者
你可以問問單片機啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 美国一级片在线观看 | 日韩成人免费av | 国产精品久久久久久亚洲调教 | 日韩国产黄色片 | 亚洲一区二区av在线 | 精品国产乱码久久久久久影片 | 精品国产一区二区三区免费 | 免费国产视频 | 日本激情视频在线播放 | 亚洲精品一区二区三区在线 | 欧美精品tv | 久久综合爱 | 成人中文字幕在线观看 | 精品视频一区二区在线观看 | 久久人爽爽人爽爽 | 欧美男人天堂 | 网站黄色在线免费观看 | av男人的天堂av | 欧美日韩一区二区在线 | 久久久精品国产 | 久热免费在线 | 欧美综合网 | 精品一区二区电影 | 日韩精品在线看 | 一级日批片 | av二区三区| 一级黄大片| 都市激情亚洲 | 久久久99国产精品免费 | 日韩精品二区 | 亚洲精品免费观看 | 国产精品久久久久久婷婷天堂 | 一区二区三区高清 | 在线国产99| 一区二区三区四区日韩 | 国产999精品久久久影片官网 | 成人精品网 | 国产精品久久久久久久久久免费看 | 欧美精品91爱爱 | 久久久久99| 国产一级视频在线观看 |