欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1859|回復: 2
收起左側

請教大佬關于單片機+ds1302讀一個字節的問題

[復制鏈接]
ID:1090268 發表于 2023-8-1 13:26 | 顯示全部樓層 |閱讀模式
先寫一下我自己讀一個字節的函數
sbit rtc_io = P3 ^ 4;
sbit rtc_ce = P3 ^ 5;
sbit rtc_sclk = P3 ^ 6;


static unsigned char rtc_read_byte(unsigned char cw)
{
        unsigned char cnt = 0;
        unsigned char byte = 0x00;
        unsigned char tmp;
      
        rtc_ce = 1;
      
        for (cnt = 0; cnt < 8; ++cnt) {
                rtc_io = !!(cw & 0x01 << cnt);
                rtc_sclk = 1;
                _nop_();
                rtc_sclk = 0;
        }

        cnt ^= cnt;
      
        do {
                byte |= (tmp = rtc_io) ? tmp << cnt : 0;
                rtc_sclk = 1;
                _nop_();
                rtc_sclk = 0;
        } while (++cnt < 8);
      
        rtc_ce = 0;
        rtc_io = 0;  //這里不懂
        return byte;
}


如上代碼,當我把函數返回前的那句rtc_io = 0注釋掉之后,讀取的時間就是亂的,但是加上了就正常了。
這里實在不明白為什么最后一定要把io口電平拉低,查看ds1302的手冊和時序圖,并沒有看到相關的講解,實在是弄不清原因了,還希望大佬能幫我解答一下,多謝啦
回復

使用道具 舉報

ID:332444 發表于 2023-8-1 15:36 | 顯示全部樓層
IO只與讀數據有關,驅動看我帖子有荔枝.
回復

使用道具 舉報

ID:1090268 發表于 2023-8-1 15:45 | 顯示全部樓層
xianfajushi 發表于 2023-8-1 15:36
IO只與讀數據有關,驅動看我帖子有荔枝.

我看了您的文章,是那篇仿真的那個嗎?我這個問題是出在stc89c52上的,和P34無上拉有關,所以在您那個仿真電路上可能沒這個現象
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表