同樣的程序,STC89系列可以正常讀取DS1302,換做1T的12系列就不能正常讀取,官方資料的解釋如下:
由于準(zhǔn)雙向口的上拉能力較弱,1T單片機(jī)速度又太快,導(dǎo)致軟件執(zhí)行端口拉高后,在兩個(gè)CPU時(shí)鐘延時(shí)后端口才十幾被拉高,如下圖:
- 將有關(guān)端口全部接上拉電阻,增強(qiáng)其上拉能力。
- 將有關(guān)SPI通信的三個(gè)端口設(shè)置為強(qiáng)推挽輸出,增強(qiáng)端口上拉能力,但要注意與DS1302的數(shù)據(jù)口連接的端口不要設(shè)置為強(qiáng)推挽輸出,以免損壞1302芯片,此端口可以用上拉電阻解決。
- 將所有端口拉高的指令后增加一定延時(shí),確保該端口上拉正確后再進(jìn)行其他操作。