找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)頭文件的內(nèi)容

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:223571 發(fā)表于 2017-10-23 17:07 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
拿51為例,#include “reg51.h”,我知道reg51.h是51單片機(jī)的頭文件,并且包含51的一些寄存器;我的問題是:頭文件是把單片機(jī)硬件的所有內(nèi)容都對應(yīng)的包含了進(jìn)來,還是只包含了局部特殊功能寄存器?
或者請闡明reg51.h里面有哪些東西和硬件的關(guān)系。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2017-10-24 07:11 | 只看該作者
所謂頭文件,關(guān)鍵是個(gè)頭字。
一般寫程序的習(xí)慣上,會(huì)在開頭寫一些定義。故而,頭文件是定義文件。
但是,對于編譯系統(tǒng)說,它不管你是頭、是中、是尾?統(tǒng)統(tǒng)進(jìn)行翻譯,待遇一樣。
所以頭文件也可以是子程序!
C語言強(qiáng)調(diào)了它的通用性,但是不同的單片機(jī)有不同的接口,是不可能通用的。為了解決通用問題,每種單片機(jī)就將不同一部份寫出在一個(gè)頭文件中,定義成一些通用的詞匯,這樣你只要INCLUDE 它就OK了。
其實(shí)不要頭文件也可以,不過你得自己定義一些東西了,否則編譯器不認(rèn)識。樓主可以試試,這樣可以幫助你更了解頭文件。
事實(shí)是不僅是單片機(jī),硬件也一樣會(huì)被寫成頭文件形式,供你調(diào)用。
回復(fù)

使用道具 舉報(bào)

板凳
ID:164602 發(fā)表于 2017-10-24 08:35 | 只看該作者
應(yīng)該是包含全部特殊功能寄存器的尋址定義(甚至還有多的——這個(gè)系列的芯片,有的有這樣的特殊功能寄存器,而另一種卻沒有,但這個(gè)頭文件里就定義了全部,這個(gè)系列的芯片都可以用)。
我用過的REG51.H中,沒有進(jìn)行I/O口的位定義,其實(shí)是可以定義的。
我看到的STC15.H中,就把位也定義了,當(dāng)然是可尋址的位,如:sbit P00=.....,程序中就可以直接用位P00了,而不再像51的,程序中要sbit LED=P0^0才能用。
回復(fù)

使用道具 舉報(bào)

地板
ID:242428 發(fā)表于 2017-10-24 14:20 | 只看該作者

我看到的STC15.H中,就把位也定義了,當(dāng)然是可尋址的位,如:sbit P00=.....,程序中就可以直接用位P00了,而不再像51的,程序中要sbit LED=P0^0才能用。
回復(fù)

使用道具 舉報(bào)

5#
ID:212797 發(fā)表于 2017-10-24 16:49 | 只看該作者
#include 頭文件:從本質(zhì)上來說,include就是把對應(yīng)的頭文件直接拷貝到這一行;
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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