久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
DS1302與1602顯示時間正常,程序上電第一次初始化能寫進數據,但用按鍵無法重復調...
[打印本頁]
作者:
wis98
時間:
2017-6-24 15:51
標題:
DS1302與1602顯示時間正常,程序上電第一次初始化能寫進數據,但用按鍵無法重復調...
DS1302與1602顯示時間正常,程序上電第一次初始化能寫進數據,但用按鍵無法重復調整時間,好像是數據沒有存入,找不到問題請教大家了下面代碼是DS1302的驅動代碼;補充說明一下,單片機用的是stc12c5a60s2,程序用仿真軟件運行都很正常,硬件部分DS1302的三個腳上都加上了1K的上拉電阻,上電后無法重復修改,程度邏輯在仿真軟件上運行都正常,仿真時重復寫入數據也正常,也對寫保護進行了重點的注意,
write_ds1302(0x8e,0x00);
//去除寫保護
write_ds1302(0x8e,0x80);/
/加入寫保護,針對stc12c5a60s2單片機,對DS1302的讀寫程序也分別加入了延時,程序如下:
/**********************ds1302寫一個字節數據*****************************/
void write_ds1302_byte(u8 temp){
//ds1302寫一個字節數據
u8 i;
for(i=0;i<8;i++)
{
scl=0;//scl為低時準備數據
io=temp&0x01;//將數據放到IO口上
temp=temp>>1;
scl=1;//上升沿寫入
}
}
/**********************向地址add寫入數據datds1302*****************************/
void write_ds1302(u8 add,u8 dat){
//向地址add寫入數據dat
rst=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
scl=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
rst=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
write_ds1302_byte(add);
write_ds1302_byte(dat);
rst=0;
io=1;
scl=1;
}
/**********************ds1302讀一個字節數據*****************************/
u8 read_ds1302(u8 add)
{
//ds1302讀數據
u8 i,dat;
rst=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
scl=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
rst=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
write_ds1302_byte(add);//首先寫入要讀的數據處的地址
for(i=0;i<8;i++)
{
dat=dat>>1;
scl=0;
if(io)dat=dat|0x80;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_(); _nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_(); _nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
scl=1;
}
rst=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_(); _nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_(); _nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_(); _nop_();
_nop_();
_nop_();
_nop_();
_nop_(); //以下為DS1302復位的穩定時間
_nop_();
scl=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_(); _nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_(); _nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_(); _nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
scl=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_(); _nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
io=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_(); _nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
io=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
return dat;
}
下面是時間調整程序,
/**********************ds1302設定時間*****************************/
void set_time(u8 *pSecDa){
//設定時間
u8 i;
u8 ucAddr = 0x80;
write_ds1302(0x8e,0x00);
//去除寫保護
for(i =7;i>0;i--){
write_ds1302(ucAddr,*pSecDa); //秒 分 時 日 月 星期 年
pSecDa++;
ucAddr+=2;
}
write_ds1302(0x8e,0x80);
//加寫保護
}
時間調整程序在主循環中,根據按鈕狀態調用
作者:
cjjcjj1
時間:
2017-6-24 20:45
提示:
作者被禁止或刪除 內容自動屏蔽
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲一区在线看
|
免费国产黄色
|
国产黄色精品
|
男男av
|
日韩av资源
|
日韩三级一区
|
国产欧美精品一区二区三区
|
天天做夜夜爽
|
黄色一级小说
|
欧美日韩国产二区
|
在线免费看毛片
|
日韩精品成人免费观看视频
|
成人欧美在线
|
久久视频免费看
|
国产精品一区二区在线播放
|
国产999久久久
|
亚洲人天堂
|
亚洲综合视频在线
|
亚洲a在线观看
|
一级片免费观看
|
日韩第一区
|
国产一区二区三区免费
|
亚洲天堂免费视频
|
久久久一区二区
|
一区二区三区在线观看视频
|
国产成人精品一区二区三区在线观看
|
欧美综合一区
|
青青国产
|
天天拍天天射
|
欧美亚洲激情
|
国产色一区
|
丁香婷婷六月天
|
深夜福利视频网站
|
亚洲伦理在线观看
|
视频一二区
|
欧美亚洲国产精品
|
亚洲激情久久
|
欧美一级淫片bbb一84
|
国产深夜福利
|
亚洲第一免费视频
|
日韩在线成人
|