51單片機是對兼容英特爾8051指令系統(tǒng)的單片機的統(tǒng)稱。51單片機廣泛應(yīng)用于家用電器、汽車、工業(yè)測控、通信設(shè)備中。因為51單片機的指令系統(tǒng)、內(nèi)部結(jié)構(gòu)相對簡單,所以國內(nèi)許多高校用其進行單片機入門教學(xué)。
Intel(英特爾):80C31、80C51、87C51,80C32、80C52、87C52等;
Atmel(艾特梅爾):89C51、89C52、89C2051,89S51(RC),89S52(RC)等;
Philips(飛利浦)、華邦、Dallas(達拉斯)、Siemens(西門子)等公司的許多產(chǎn)品;
STC(宏晶):STC89C51、STC90C51、STC11系列、STC15系列、STC8系列等。通常我們所說的51單片機是指以51內(nèi)核擴展出的單片機。出產(chǎn)51單片機的廠商很多,51單片機的型號也很多。下表列出了一些51單片機的廠商和型號。
以上提到的單片機都是51內(nèi)核擴展出來的單片機,只有學(xué)會了51單片機的應(yīng)用,這些單片機也就根本都能使用了。單片機都是相通的,不管是51單片機還是其它單片機,都是用戶編程控制來實現(xiàn)一定的功能。
接下來的一個系列的文章中以STC89C516RD+單片機為根底進行講解。下面我們對這個單片機的標(biāo)識進行解釋:
STC—前綴,表示芯片為STC公司生成的產(chǎn)品。
8—表示該芯片為8051內(nèi)核的芯片。
9—表示內(nèi)部含F(xiàn)LASH存儲器,還有如80C51中的0表示內(nèi)部含Mask ROM(掩模ROM)存儲器;如87C51中7表示內(nèi)部焊EPROM存儲器(紫外線可擦除ROM)。
C—表示該器件為CMOS產(chǎn)品。還有如89LV52和89LE58中的LV和LE都表示該芯片為低電壓產(chǎn)品(通常為3.3V電壓供電);而89S52表示該芯片含有可串行下載功能的FLASH存儲器,即具有ISP可在線編程功能。
5—固定不變。
16—表示該芯片內(nèi)部程序存儲空間的大小。16為63KB,還有如1為4KB,2為8KB,3為13KB,4為16KB,8為32KB。程序空間大小決定了一個芯片所能裝入執(zhí)行代碼的多少。一般來說,程序存儲空間越大芯片價格也越高,所以我們在選擇芯片時要依據(jù)自己須要對單片機型號進行選擇。只有程序能裝的下,同類芯片的不同型號不會影響其功能。
RD+—表示單片機內(nèi)部RAM的代銷,RD+表示內(nèi)部RAM為1280B,還有如RC為512B。
這是我對這幾個月學(xué)習(xí)51單片機的一些匯總,談?wù)剬?1的一些看法,51大致就是對定時器,計算器,中斷,串口的一些操作,前面我淺談一下51的基本操作,后面我會對Sg-90舵機,超聲波,LCD1602,DHT11溫濕度傳感器,IIC-OLED,HC-05藍牙模塊,esp8266-01sWI-FI模塊,4G模塊,4驅(qū)小車進行一個詳細的匯總,希望能對大家有所幫助。
1.什么是單片機
單片機是一種集成電路芯片,采用超大規(guī)模集成技術(shù)把具有處理數(shù)據(jù)能力的中央處理器CPU、隨機存儲器ROM、只讀存儲器RAM、定時器/計算器、中斷系統(tǒng)和IO口等功能集成到一塊硅片上構(gòu)成的一個小型計算機,從當(dāng)時的4為、8位發(fā)展到現(xiàn)在的300M的高速單片機。
2.單片機工作的基本時序
我們都知道在學(xué)校是通過鈴聲來控制所有班級的上下課時間,我們都知道單片機執(zhí)行指令的過程就是從ROM取出一條指令執(zhí)行來完成它在各個地方的作用,那它什么時候取指令這個是順序呢?這里引入一個時序的周期,每訪問一次ROM的時間,就是一個機器周期的時間。
1個機器周期 = 6個狀態(tài)周期 = 12個時鐘(振蕩)周期
時鐘周期:即單片機的基本時間單位,若晶體的頻率=12MHZ,那時鐘周期 = 1/12MHZ,一個時鐘周期 = 1/12MHZ = 1/12000 000每秒
機器周期:即12x1/12 000 000 =0.000001s = 1us,訪問一次ROM取指令的時間就是1us
3.數(shù)字電路基礎(chǔ)
電平特性
數(shù)字電路中只有兩種電平:高電平和低電平
高電平:5v或者3.3v,取決與單片機電源
低電平:0V
RS232電平:計算機串口的電平
高電平:-12v
低電平:+12v
我們跟電腦通信的時候,要通過元器件將單片機的電平轉(zhuǎn)換成電腦能識別的電平,才能跟電腦進行通信。
4.二進制邏輯運算
"與"運算
有0得0,全1才1
1&1 = 1,1&0 = 0; 0&0 = 0;
"或"運算
有1得1,全0才0;
1|1 = 1;1|0 = 1;0|0 = 0;
"非"運算
~1 = 0;~0 = 1;
同樣的一段程序,在各個單片機廠家的硬件上運行的結(jié)果都是一樣的,如ATMEL的89C51(已經(jīng)停產(chǎn))、89S51, PHILIPS,和WINBOND等,我們常說的已經(jīng)停產(chǎn)的89C51指的是ATMEL公司的 AT89C51單片機,同時是在原基礎(chǔ)上增強了許多特性,如時鐘,更優(yōu)秀的是由Flash(程序存儲器的內(nèi)容至少可以改寫1000次)存儲器取代了原來的ROM(一次性寫入),AT89C51的性能相對于8051已經(jīng)算是非常優(yōu)越的了。89S51相對于89C51增加的新功能包括:-- 新增加很多功能,性能有了較大提升,價格基本不變,甚至比89C51更低。-- ISP在線編程功能,這個功能的優(yōu)勢在于改寫單片機存儲器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離。是一個強大易用的功能。-- 最高工作頻率為33MHz,大家都知道89C51的極限工作頻率是24M,就是說S51具有更高工作頻率,從而具有了更快的計算速度。-- 具有雙工UART串行通道。-- 內(nèi)部集成看門狗計時器,不再需要像89C51那樣外接看門狗計時器單元電路。-- 雙數(shù)據(jù)指示器。-- 電源關(guān)閉標(biāo)識。-- 全新的加密算法,這使得對于89S51的盜版變?yōu)椴豢赡?,程序的保密性大大加強,這樣就可以有效的保護知識產(chǎn)權(quán)不被侵犯。-- 兼容性方面:向下完全兼容51全部字系列產(chǎn)品。比如8051、89C51等等早期MCS-51兼容產(chǎn)品。也就是說所有教科書、網(wǎng)絡(luò)教程上的程序(不論教科書上采用的單片機是8051還是89C51還是MCS-51等等),在89S51上一樣可以照常運行,這就是所謂的向下兼容。