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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6400|回復: 10
收起左側

單片機底層硬件與軟件的關系

[復制鏈接]
ID:223571 發表于 2017-10-27 11:19 | 顯示全部樓層 |閱讀模式
隨著學習單片機的深入,對單片機的底層結構有一種探知欲,例如51中,80H到FFH為特殊功能寄存器,這一區域里面有許多特殊功能寄存器,我理解為80H到FFH為一棟樓房,每一個字節地址為一個房間,每一個房間指定一個功能,由門牌號(字節名稱)所標識;
問題:我存不存在這種可能性,鑒于字節地址空間這一物理結構客觀存在,而我只是將不同的功能的寄存器名字換到其他的儲存地址里(還是在這個大的空間里80H到FFH),可以的話需要變哪些東西,如果不可以,原因又是什么?


請從單片機設計的角度來解釋,謝謝。
回復

使用道具 舉報

ID:123289 發表于 2017-10-27 12:49 | 顯示全部樓層
如果你對匯編有一定的功底就會知道了。
其實沒有什么名子(DPTR、SP、P0……),名子是人為加的,CPU運行時只認代碼:
80H就對應端口的8個引腳,不管你給它起什么句子(是不是P0)。【你可以將編譯器中的P0改成ANY試試】
從內部硬件上講80H對應一個寄存器(內存),而端口上有8個引腳,與這個寄存器的輸出接在一起了(當然也有輸入,結構上你要看IO、P口這一節)。
回復

使用道具 舉報

ID:164602 發表于 2017-10-27 15:18 | 顯示全部樓層
個人觀點:
不可以。
原因嘛,我是看了芯片說明書后,得來的結論。
特殊功能寄存器與硬件直接相關,每個功能的特殊寄存器都是在設計芯片時就定好了的,不然,為什么不同的芯片必須要用相應的頭文件呢,而這種頭文件里,就是定義了特殊功能寄存器,用直觀的英文名稱,代替不好記憶的地址。
如果可以隨便更改地址,那么于說明書就不會將那些寄存器的地址做專門說明,只需要說明地址段是什么就可以了。
是不是這個理兒?

評分

參與人數 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:212797 發表于 2017-10-28 15:27 | 顯示全部樓層
可以的,但是不建議修改。
單片機的每一項操作都是在實際的寄存器上進行,MCU之所以認識P0、P1這些東西,是因為在reg52.h頭文件里面有一個寄存器的映射對應表,我們將P0對應到0x80地址上,其余的以此類推。用P0、P1這樣的名字是為了從編程人員的角度上便于理解,如果你把0x80映射的名字改為ligoudan(李狗蛋),在編程中你會發現程序也沒有問題,但是我們看到這樣的名字,除了寫程序的人外,誰都不知道這是什么東西,要想看懂還要去翻看頭文件中的定義,查找手冊中地址列表;而且如果把你的這個程序拿到其他機器上沒法編譯(大家用的是通用的名稱列表)。
所以從多方面考慮不建議這么做,當然這么思考是對的,可以真正理解單片機的機理。另外,如果想更深層的從寄存器上學習,可以了解單片機匯編語言編程,這樣你可以學習到循環到底是怎么實現的,中斷實際要經過哪些步驟才能完成、棧原理和操作等等。
回復

使用道具 舉報

ID:111634 發表于 2017-10-28 22:08 | 顯示全部樓層
你如果是用c 編程,不理解也罷!要深入理解,就要了解單片機匯編語言編程。
回復

使用道具 舉報

ID:223571 發表于 2017-11-7 21:13 | 顯示全部樓層
HC6800-ES-V2.0 發表于 2017-10-27 15:18
個人觀點:
不可以。
原因嘛,我是看了芯片說明書后,得來的結論。

"如果可以隨便更改地址,那么于說明書就不會將那些寄存器的地址做專門說明,只需要說明地址段是什么就可以了。"   


我的理解是那一個范圍是作為特殊功能寄存器,但是這一范圍里面的各個功能可以變換說明
回復

使用道具 舉報

ID:223571 發表于 2017-11-7 21:18 | 顯示全部樓層
HC6800-ES-V2.0 發表于 2017-10-27 15:18
個人觀點:
不可以。
原因嘛,我是看了芯片說明書后,得來的結論。

我這里給你分享一下,頭文件只是對于硬件結構的一種說明,我可以更改自己編寫頭文件呀,就是說給一塊裸芯片,已經設計好了哪一塊的功能區,但是具體細節功能能否自己更改設置,這才是設計的角度回答。
回復

使用道具 舉報

ID:164602 發表于 2017-11-8 08:57 | 顯示全部樓層
藍野 發表于 2017-11-7 21:18
我這里給你分享一下,頭文件只是對于硬件結構的一種說明,我可以更改自己編寫頭文件呀,就是說給一塊裸芯 ...

我還是那個觀點:每個特殊寄存器的名字隨便你取,但第個地址的功能是不會變的。
我這里以STC89C51RC芯片的手冊內容為例:如圖所示:

1.jpg 2.jpg 3.jpg


你注意看其中的文字,每個特殊功能寄存器的地址是確定的,這里取好的名字,是方便理解記憶的,也是在REG51.H頭文件中說明的,你可以改這個頭中各寄存器的名字,但不能改它的地址。例如:PSW寄存器,它的地址是D0H,各位也有相應的功能,你可以在頭文件中修改這個名字——本來頭文件的說明是:sfr PSW  = 0xD0;。你可以改名字,但絕對不能改地址!!!我想,之所以有這個手冊,就是要告訴我們使用者,硬件設計師已經通過硬件電路設定好了這些,每個寄存器地址、每個寄存器的功能,甚至每個位的功能都是確定好了的——不能改!!!。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧洲一区视频 | 操久久 | 99re热精品视频 | 黄视频网站免费观看 | 天天射天天干 | 国产精品成人av | 日本高清视频网站 | 亚洲精品区 | 午夜三区 | 天天综合日日夜夜 | 国产91一区二区三区 | av网站免费 | 国产一级视频在线 | 亚洲+变态+欧美+另类+精品 | 久在线 | 欧美视频免费在线观看 | 国产精品免费一区二区三区四区 | 一区二区三区视频在线观看 | 亚洲成人在线视频播放 | 日本精品视频一区二区 | 玖玖精品| 青青伊人久久 | 久久小视频| 欧美日韩在线免费观看 | 日韩在线成人 | 国产精品女人久久久 | 久久九九99 | 日屁视频 | 久久国产精品一区二区三区 | 国产成人在线免费 | 亚洲精品在线视频 | 日韩一区精品 | 精品国产一区探花在线观看 | 在线亚洲欧美 | 九九精品在线 | 国产小u女发育末成年 | 日本中文在线 | www.久久 | 精品国产伦一区二区三区观看体验 | 国产亚洲精品久久久优势 | 欧美三区|