找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4051|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

關(guān)于STC89C52單片機(jī)引腳功能存在疑惑

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:825513 發(fā)表于 2021-5-5 20:17 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
前幾天在網(wǎng)上找到一個通過STC89C52軟件模擬IIC協(xié)議讀寫片外EEPROM的源碼,在嘗試修改的過程中,對以下的引腳定義存在疑惑:




其中,我覺得 RST 像是復(fù)位功能的,而 CS 應(yīng)該是片選功能的,這兩個引腳只在IIC初始化的時候用到,但當(dāng)我嘗試將RST和CS這兩個定義修改為其他引腳后,都將變得無法進(jìn)行IIC通信,所以我覺得STC89C52當(dāng)中的 P2^4 和 P2^5 這兩個引腳是有特殊作用的;并且,我還發(fā)現(xiàn),89C52軟件模擬IIC中對 SDA 和 SCL 兩條線的引腳定義只能分別是 P2^0 和 P2^1,修改為其他引腳后,同樣無法進(jìn)行IIC通信

但無論是源碼本身還是STC官方的數(shù)據(jù)手冊均沒有對P2^0、P2^1、P2^4、P2^5這四個引腳的特殊說明,所以才來求助論壇里的大佬。

Snipaste_2021-05-05_20-16-00.png (31.51 KB, 下載次數(shù): 96)

IIC初始化

IIC初始化
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:401564 發(fā)表于 2021-5-6 00:31 | 只看該作者
它就是個IO而已,就一個正常的IO,可以讀寫數(shù)據(jù),你操作IIC用哪個IO都可以,只要有能讀寫數(shù)據(jù)的能力就可以,不用什么特殊說明之類的
而你這個問題是出現(xiàn)在IIC器件(從機(jī))上的,你要看的是IIC器件的數(shù)據(jù)手冊,這RST和CS是IIC器件要求的
回復(fù)

使用道具 舉報

板凳
ID:65297 發(fā)表于 2021-5-6 03:45 | 只看該作者
你的問題應(yīng)該是使用單片機(jī)型號的問題,程序與單片機(jī)型號不搭配,主要區(qū)別是老款51單片機(jī)引腳都是準(zhǔn)雙向弱上拉I/O口,新單片機(jī)有引腳配置功能,如果源程序是基于老款51單片機(jī),那應(yīng)該沒問題,如果源程序是基于新款單片機(jī)編寫的,而你用舊款單片機(jī)測試可能就會出錯,主要是引腳配置問題,你看一下程序初始化過程有沒有配置引腳方面的代碼,IIC通訊在寫前有沒有配置SDA為輸出,讀前有沒有配置SDA為輸入,
所以學(xué)習(xí)單片機(jī)時要注意,舊款單片機(jī)的代碼可用用在新款單片機(jī)上,但新款單片機(jī)的代碼不一定能用在老款單片機(jī)上,
回復(fù)

使用道具 舉報

地板
ID:390416 發(fā)表于 2021-5-6 07:53 | 只看該作者

回復(fù)

使用道具 舉報

5#
ID:916177 發(fā)表于 2021-5-6 08:37 | 只看該作者
P0、P1、P2三組端口沒有任何特殊功能,之所以對 SDA 和 SCL 兩條線的引腳定義只能分別是 P2^0 和 P2^1是因為AT24C02的 SDA 和 SCL的端口分別連到了P2^0 和 P2^1上,詳見你開發(fā)板的原理圖
回復(fù)

使用道具 舉報

6#
ID:825513 發(fā)表于 2021-5-6 12:01 | 只看該作者
mkkop 發(fā)表于 2021-5-6 03:45
你的問題應(yīng)該是使用單片機(jī)型號的問題,程序與單片機(jī)型號不搭配,主要區(qū)別是老款51單片機(jī)引腳都是準(zhǔn)雙向弱上拉 ...

源碼用的是AT89S52,我用的是STC89C52,兩款芯片的引腳定義都是一樣的,所以應(yīng)該不是芯片型號的問題
回復(fù)

使用道具 舉報

7#
ID:825513 發(fā)表于 2021-5-6 12:03 | 只看該作者
T990820 發(fā)表于 2021-5-6 08:37
P0、P1、P2三組端口沒有任何特殊功能,之所以對 SDA 和 SCL 兩條線的引腳定義只能分別是 P2^0 和 P2^1是因 ...

謝謝,找到原因了,之前忽略了開發(fā)板上EEPROM的SDA和SCL的接線引腳
回復(fù)

使用道具 舉報

8#
ID:825513 發(fā)表于 2021-5-8 20:55 | 只看該作者
Y_G_G 發(fā)表于 2021-5-6 00:31
它就是個IO而已,就一個正常的IO,可以讀寫數(shù)據(jù),你操作IIC用哪個IO都可以,只要有能讀寫數(shù)據(jù)的能力就可以,不用 ...

找到原因了,單片機(jī)有個引腳是開發(fā)板上的EEPROM輸入和DS1302輸出共用的,需要先把連接DS1302復(fù)位端的P2^5引腳置0,使得DS1302不輸出,即不對EEPROM的輸入產(chǎn)生干擾
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表