![]() |
發布時間: 2017-2-2 22:44
正文摘要:新手請教,請各位大俠,專家指點 多謝 51系列單片機 ,用C語言編寫 要寫頭文件,有的寫#include<reg51.h> 有的寫#include<AT89X51.H.> 這兩個文件有什么區別么?分別用在哪個場 ... |
頭文件主要是對單片機片內寄存器地址的聲明和定義,以及一些位定義等,如果兩個單片機的寄存器地址是一樣的,當然可以共用同一個頭文件,傳統的51就是這樣,甚至隨著代數更新,例如P口,也是有寄存器地址保持不變的,目的是盡可能向舊版本保持兼容,但是當使用一些單片機的特殊資源的時候,就需要手動添加寄存器(sfr語句),或者修改、更換頭文件,例如,在STC增強型51中使用P4口的時候,傳統的reg51.h里沒有對于P4口的位定義,這個時候就需要手動添加(或者更改適配頭文件)。 再舉個例子,當使用STC15系列單片機的時候,比如IAP15W4K48S4,就需要包含STC15.H這個頭文件;在使用STC12C2052的時候,就需要包含STC12C2052.h,這些都是根據你使用的單片機進行更改的。 我想你應該明白了,如果還有困惑,我再補充一個例子,當使用STC89C52的時候,嚴格來說,應該包含的是STC89C5xRC.H,而不是reg52.h。 |
最好單片機與頭文件相對應 |
一般就reg51.h夠了,除開MCU有一些特別的功能寄存器就自己加相關的宏定義到程序中 |
現在新發展的51單片機一般都會向下兼容傳統51單片機,所以對于一般應用,如果只使用傳統51單片機的功能和端口,reg52.h 完全可以用的。其實對于簡單應用,不用頭文件也可以的。 |
初學者看熱鬧 |
ISIS為啥仿真不起呢?第四位不亮,第二位閃爍亮;a f b g c dp d e分別為 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 |
AT89X51.h里面已經定義好了io口,你可以直接調用!reg52.h需要自己定義! |
任何51內核的單片機包含<reg52.h>都不會有問題. 頭文件里一般都是定義一些特殊功能寄存器.就跟買個新手機的說明書一樣. 剛開始學的時候看不明白頭文件很正常,不必再這上面花太多時間,看看例程照著葫蘆畫瓢即可. 等你慢慢熟練一些寄存器的作用,回頭去看,會發現可以輕松看懂.甚至可以看著手冊寫自己風格的頭文件. |
#include<AT89X51.H.>里面I/O口是已經定義好了,比如你用#include<reg51.h> 還要定義I/O口的地址,但是#include<AT89X51.H.>,所以說#include<AT89X51.H.>的范圍更廣一些,或者說更好用一些,前提是,你得熟悉他的文件里的各種設置 |
現在新發展的51單片機一般都會向下兼容傳統51單片機,所以對于一般應用,如果只使用傳統51單片機的功能和端口,reg52.h 完全可以用的。其實對于簡單應用,不用頭文件也可以的。 |
接口都是自己定義的吧 |
reg51.h需要定義sbit比較麻煩 |
不是自己可以定義么 |