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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

C51單片機(jī)在主程序里怎么訪問特殊功能寄存器或者說怎么更改先前SFR定義的地址?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
環(huán)境 :KielC51
MCU :IAP15W4K61S4
應(yīng)用環(huán)境:利用兩組IO端口(P1^6\P1^5 和 P4^1\P4^2)模擬IIC總線和顯示驅(qū)動芯片1648A及外部EEPROM通信,現(xiàn)在用的兩組獨(dú)立的代碼實(shí)現(xiàn)IIC協(xié)議。現(xiàn)在設(shè)想改為兩個端口共用一組代碼以減少代碼量,之前想過使用改變指針指向來重定向端口,但是在主程序里發(fā)現(xiàn)通過SFR定義的地址無法通過指針獲取。
請問有好的解決方案嗎。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:752974 發(fā)表于 2022-4-27 16:10 | 只看該作者
IIC設(shè)備是有地址的,放在一組總線上就可以了,用地址區(qū)分設(shè)備。
回復(fù)

使用道具 舉報(bào)

板凳
ID:608951 發(fā)表于 2022-4-27 16:31 | 只看該作者
munuc_w 發(fā)表于 2022-4-27 16:10
IIC設(shè)備是有地址的,放在一組總線上就可以了,用地址區(qū)分設(shè)備。

感謝回復(fù)  確實(shí)使用一條總線確實(shí)可以實(shí)現(xiàn)目的 但是因?yàn)樵诮Y(jié)構(gòu)上也是兩個IIC外設(shè)單獨(dú)掛載的 所以暫時(shí)不能用這種方法。這邊首選還是設(shè)想一種方案以軟件來實(shí)現(xiàn)外設(shè)端口的跳轉(zhuǎn),了解到51的SFR地址區(qū)域只能采用直接尋址,是不是代表著沒有辦法在主程序中以指針或者中間值替換的方式改變SFR關(guān)鍵字的定義地址呢
回復(fù)

使用道具 舉報(bào)

地板
ID:123289 發(fā)表于 2022-4-27 17:37 | 只看該作者
51系統(tǒng)單片機(jī)中的特殊寄存器的地址是:80-FFH
而高端RAM的地址也是:80-FFH
這兩個地址是相同的。51為了能區(qū)分它們,在指令系統(tǒng)上做了如下的規(guī)定:
直接尋址(訪問)對應(yīng)的是特殊寄存器。
間接尋址(訪問)對應(yīng)的是高端RAM。
明白這一點(diǎn)就不難理解了。
你用指針訪問80H,而80H即表示特殊寄存器的P0口,也表示高端RAM中的80H。現(xiàn)在知道你訪問的是哪一個了吧。
要讀通CPU手冊,這些手冊上都有。
回復(fù)

使用道具 舉報(bào)

5#
ID:883242 發(fā)表于 2022-4-27 17:42 | 只看該作者
純c51語言是無法實(shí)現(xiàn)你需要的功能,只能用匯編寫函數(shù),用c語言調(diào)用這個函數(shù)。
回復(fù)

使用道具 舉報(bào)

6#
ID:608951 發(fā)表于 2022-4-27 17:43 | 只看該作者
yzwzfyz 發(fā)表于 2022-4-27 17:37
51系統(tǒng)單片機(jī)中的特殊寄存器的地址是:80-FFH
而高端RAM的地址也是:80-FFH
這兩個地址是相同的。51為了 ...

確實(shí)如此

1651052485(1).png (171.45 KB, 下載次數(shù): 33)

1651052485(1).png
回復(fù)

使用道具 舉報(bào)

7#
ID:161164 發(fā)表于 2022-4-27 17:53 | 只看該作者
IAP15W4K61S4有61k ROM
就那一點(diǎn)點(diǎn)的代碼量CV十次都綽綽有余
回復(fù)

使用道具 舉報(bào)

8#
ID:401564 發(fā)表于 2022-4-27 21:15 | 只看該作者
7#已經(jīng)回復(fù)過了
如果不是代碼空間已經(jīng)不夠用了,實(shí)在不理解為什么要減少代碼量?C+V它不香嗎?
說不定整半天,代碼量反而更多了
再說,當(dāng)初設(shè)計(jì)的時(shí)候就應(yīng)該先看一下IIC的從機(jī)地址,如果不是一樣的地址,那就兩根線足夠了
回復(fù)

使用道具 舉報(bào)

9#
ID:624769 發(fā)表于 2022-4-27 21:57 | 只看該作者
舊言四 發(fā)表于 2022-4-27 16:31
感謝回復(fù)  確實(shí)使用一條總線確實(shí)可以實(shí)現(xiàn)目的 但是因?yàn)樵诮Y(jié)構(gòu)上也是兩個IIC外設(shè)單獨(dú)掛載的 所以暫時(shí)不能 ...

說實(shí)話, STC15 系列沒有硬件 IIC, 換句話說,你只能通過軟件模擬來 操作IIC, 也就是說不可能在后臺讀寫IIC器件,必須前臺讀寫的話,同一之間你只能訪問一個IIC器件,因此,兩個IIC器件,分別用兩個套IO來操控的意義何在? 感覺是給自己增加工作量啊……
回復(fù)

使用道具 舉報(bào)

10#
ID:608951 發(fā)表于 2022-4-28 09:10 | 只看該作者
Y_G_G 發(fā)表于 2022-4-27 21:15
7#已經(jīng)回復(fù)過了
如果不是代碼空間已經(jīng)不夠用了,實(shí)在不理解為什么要減少代碼量?C+V它不香嗎?
說不定整半天 ...

好巧不巧的是  硬件IIC地址都是0XA0 外部EEPROM采用的是SOT-23-5的封裝也沒有辦法更改從機(jī)地址
回復(fù)

使用道具 舉報(bào)

11#
ID:608951 發(fā)表于 2022-4-28 09:12 | 只看該作者
188610329 發(fā)表于 2022-4-27 21:57
說實(shí)話, STC15 系列沒有硬件 IIC, 換句話說,你只能通過軟件模擬來 操作IIC, 也就是說不可能在后臺讀寫II ...

給自己挖了個大坑
回復(fù)

使用道具 舉報(bào)

12#
ID:608951 發(fā)表于 2022-4-28 09:14 | 只看該作者
Hephaestus 發(fā)表于 2022-4-27 17:42
純c51語言是無法實(shí)現(xiàn)你需要的功能,只能用匯編寫函數(shù),用c語言調(diào)用這個函數(shù)。

感謝回復(fù)  值得參考的建議
回復(fù)

使用道具 舉報(bào)

13#
ID:161164 發(fā)表于 2022-4-28 13:32 | 只看該作者
其實(shí)又不用全代碼CV
只需要加個全局變量來選擇用個腳就可以了

if(IIC_Sel)//0=IIC1, 1=IIC2
SDA1 = 1;
else
SDA2 =1;
回復(fù)

使用道具 舉報(bào)

14#
ID:608951 發(fā)表于 2022-4-28 14:17 | 只看該作者
lkc8210 發(fā)表于 2022-4-28 13:32
其實(shí)又不用全代碼CV
只需要加個全局變量來選擇用個腳就可以了

感謝回復(fù)  這樣的話確實(shí)是比較省時(shí)間  
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品1区 | 日韩在线 | 国产三区av | 在线视频国产一区 | 欧美一卡二卡在线 | 无码国模国产在线观看 | 免费一区二区三区 | 成人免费视频在线观看 | 精品自拍视频在线观看 | 欧美日韩精品免费观看 | 黑人巨大精品欧美一区二区一视频 | 久久男人 | 久久久久九九九女人毛片 | 日韩成人高清 | 在线视频一区二区 | 中文字幕成人在线 | 中文字幕在线欧美 | 精品视频在线观看 | 91在线导航 | 日本黄视频在线观看 | 超碰在线久| 欧美久久一区二区三区 | 日韩精品一区二区三区高清免费 | 欧美一级精品片在线看 | 国产成人精品a视频 | 日韩精品一区二区三区在线观看 | 国产伦精品一区二区三区精品视频 | 精品成人在线 | 国产一区二区三区在线视频 | 久久免费精品视频 | 男女在线免费观看 | 欧美精品免费观看二区 | 欧美激情综合五月色丁香小说 | 成人性视频免费网站 | 国产高清精品一区二区三区 | 欧美精品一 | 国产免费一区 | 国产精品日韩在线 | 99精品欧美一区二区蜜桃免费 | 日韩av电影院 | 久久网日本 |