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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

DS1302與1602顯示時間正常,程序上電第一次初始化能寫進數(shù)據(jù),但用按鍵無法重復調...

[復制鏈接]
跳轉到指定樓層
樓主
ID:33544 發(fā)表于 2017-6-24 15:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
DS1302與1602顯示時間正常,程序上電第一次初始化能寫進數(shù)據(jù),但用按鍵無法重復調整時間,好像是數(shù)據(jù)沒有存入,找不到問題請教大家了下面代碼是DS1302的驅動代碼;補充說明一下,單片機用的是stc12c5a60s2,程序用仿真軟件運行都很正常,硬件部分DS1302的三個腳上都加上了1K的上拉電阻,上電后無法重復修改,程度邏輯在仿真軟件上運行都正常,仿真時重復寫入數(shù)據(jù)也正常,也對寫保護進行了重點的注意,        write_ds1302(0x8e,0x00);//去除寫保護 write_ds1302(0x8e,0x80);//加入寫保護,針對stc12c5a60s2單片機,對DS1302的讀寫程序也分別加入了延時,程序如下:
/**********************ds1302寫一個字節(jié)數(shù)據(jù)*****************************/
void write_ds1302_byte(u8 temp){
        //ds1302寫一個字節(jié)數(shù)據(jù)
        u8 i;
        for(i=0;i<8;i++)
                {
                scl=0;//scl為低時準備數(shù)據(jù)
                io=temp&0x01;//將數(shù)據(jù)放到IO口上
                temp=temp>>1;
                scl=1;//上升沿寫入
                }
}
/**********************向地址add寫入數(shù)據(jù)datds1302*****************************/
void write_ds1302(u8 add,u8 dat){
        //向地址add寫入數(shù)據(jù)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讀一個字節(jié)數(shù)據(jù)*****************************/
u8 read_ds1302(u8 add)
        {
        //ds1302讀數(shù)據(jù)
        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);//首先寫入要讀的數(shù)據(jù)處的地址
        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復位的穩(wěn)定時間
_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);//加寫保護       
}
時間調整程序在主循環(huán)中,根據(jù)按鈕狀態(tài)調用


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

使用道具 舉報

沙發(fā)
ID:82765 發(fā)表于 2017-6-24 20:45 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99久久精品免费看国产四区 | 精品国产一区二区三区在线观看 | 99久久婷婷国产精品综合 | 我要看黄色录像一级片 | 99精品国产一区二区三区 | 韩国av一区二区 | 成人性视频免费网站 | 一区二区三区视频在线观看 | 国产一区二区三区免费视频 | 欧美激情精品久久久久久变态 | 黄色播放 | 91麻豆精品国产91久久久更新资源速度超快 | 玖玖玖在线 | 成人小视频在线观看 | 国产在线精品一区二区 | 91免费在线视频 | 国产成人a亚洲精品 | 婷婷综合久久 | 欧美成人h版在线观看 | 好姑娘高清在线观看电影 | 午夜一区二区三区在线观看 | 波多野结衣一区二区 | 精品视频一区二区三区 | 成人亚洲视频 | 久久精品中文 | 亚洲精品久久久久久久久久久久久 | 亚洲国产精品久久 | 日本欧美在线 | 亚洲精品www久久久 www.蜜桃av | 中文字幕国产 | 国产在线观看一区二区三区 | 三级黄片毛片 | 男人天堂网av | 亚洲乱码一区二区三区在线观看 | 美人の美乳で授乳プレイ | 美女黄视频网站 | 亚洲一区二区在线播放 | www.色午夜.com| 另类专区亚洲 | 久久福利电影 | 亚洲成人黄色 |