51單片機(jī)是對(duì)所有兼容Intel 8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱。該系列單片機(jī)的始祖是Intel的8004單片機(jī),后來(lái)隨著Flash rom技術(shù)的發(fā)展,8004單片機(jī)取得了長(zhǎng)足的進(jìn)展,成為應(yīng)用最廣泛的8位單片機(jī)之一,其代表型號(hào)是ATMEL公司的AT89系列,它廣泛應(yīng)用于工業(yè)測(cè)控系統(tǒng)之中。很多公司都有51系列的兼容機(jī)型推出,今后很長(zhǎng)的一段時(shí)間內(nèi)將占有大量市場(chǎng)。51單片機(jī)是基礎(chǔ)入門的一個(gè)單片機(jī),還是應(yīng)用最廣泛的一種。需要注意的是51系列的單片機(jī)一般不具備自編程能力。
51單片機(jī)區(qū)別
同樣的一段程序,在各個(gè)單片機(jī)廠家的硬件上運(yùn)行的結(jié)果都是一樣的,如ATMEL的89C51(已經(jīng)停產(chǎn))、89S51, PHILIPS,和WINBOND等,我們常說(shuō)的已經(jīng)停產(chǎn)的89C51指的是ATMEL公司的 AT89C51單片機(jī),同時(shí)是在原基礎(chǔ)上增強(qiáng)了許多特性,如時(shí)鐘,更優(yōu)秀的是由Flash(程序存儲(chǔ)器的內(nèi)容至少可以改寫(xiě)1000次)存儲(chǔ)器取代了原來(lái)的ROM(一次性寫(xiě)入),AT89C51的性能相對(duì)于8051已經(jīng)算是非常優(yōu)越的了。
不過(guò)在市場(chǎng)化方面,89C51受到了PIC單片機(jī)陣營(yíng)的挑戰(zhàn),89C51最致命的缺陷在于不支持ISP(在線更新程序)功能,必須加上ISP功能等新功能才能更好延續(xù)MCS-51的傳奇。
89S51就是在這樣的背景下取代89C51的,89S51已經(jīng)成為了實(shí)際應(yīng)用市場(chǎng)上新的寵兒,作為市場(chǎng)占有率第一的Atmel公司已經(jīng)停產(chǎn)AT89C51,將用AT89S51代替。89S51在工藝上進(jìn)行了改進(jìn),89S51采用0.35新工藝,成本降低,而且將功能提升,增加了競(jìng)爭(zhēng)力。89SXX可以向下兼容89CXX等51系列芯片。同時(shí),Atmel不再接受89CXX的定單,大家在市場(chǎng)上見(jiàn)到的89C51實(shí)際都是Atmel前期生產(chǎn)的巨量庫(kù)存而以。如果市場(chǎng)需要,Atmel當(dāng)然也可以再恢復(fù)生產(chǎn)AT89C51。
51單片機(jī)連接ESP8266串口WiFi模塊
引腳連接
燒錄固件
打開(kāi)燒錄軟件,選擇配置選項(xiàng)卡,點(diǎn)擊第二欄的小齒輪圖標(biāo) - 加載固件地址
點(diǎn)擊其他選項(xiàng)的選擇欄,取消選中,只選擇第二個(gè)選項(xiàng)(固件地址)
返回操作選項(xiàng)卡,選擇正確COM端口,點(diǎn)擊一鍵燒寫(xiě)
模塊重新上電,下載開(kāi)始,等待下載完成
串口助手測(cè)試ESP8266串口WiFi模塊
引腳連接
注:此時(shí)連接狀態(tài) WiFi模塊–》51單片機(jī)–》串口助手(PC),由于WiFi模塊和單片機(jī)的TXD和RXD處于正接狀態(tài),單片機(jī)和WiFi模塊并不通信,相當(dāng)于WiFi模塊直連串口助手。
AT常用指令
ESP8266串口WiFi模塊分為三種工作模式:Station模式(類似無(wú)線終端),AP模式(提供無(wú)線接入服務(wù)),AP模式兼Station模式。
通過(guò)串口助手測(cè)試WiFi模塊時(shí),
測(cè)試
發(fā)送指令:AT
響應(yīng):OK
重啟模塊
發(fā)送命令:AT+RST
響應(yīng) :OK
設(shè)置模塊
發(fā)送指令:AT+CWMODE = 《mode》
說(shuō)明:需重啟后生效(AT+RST)
《mode》:1-Station模式,2-AP模式,3-AP兼Station模式。
響應(yīng):OK
配置AP參數(shù)
發(fā)送命令:
指令:AT+ CWSAP= 《ssid》,《pwd》,《chl》, 《ecn》
說(shuō)明:指令只有在AP模式開(kāi)啟后有效
《ssid》:字符串參數(shù),接入點(diǎn)名稱
《pwd》:字符串參數(shù),密碼最長(zhǎng)64字節(jié),ASCII
《chl》:通道號(hào)
《ecn》:加密模式,0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK
示例:AT+CWSAP=”TEST”,”123456123456”,1,3
響應(yīng):OK
開(kāi)啟多連接模式
發(fā)送命令:AT+CIPMUX=《mode》
說(shuō)明:《mode》 :0-單路連接模式,1-多路連接模式
響應(yīng):OK
創(chuàng)建服務(wù)器
發(fā)送命令:AT+CIPSERVER=《mode》,《port》
說(shuō)明:AT+ CIPMUX=1時(shí)才能開(kāi)啟服務(wù)器;關(guān)閉server模式需要重啟。開(kāi)啟server后自動(dòng)建立server監(jiān)聽(tīng),當(dāng)有client接入會(huì)自動(dòng)按順序占用一個(gè)連接。
《mode》:0-關(guān)閉server模式,1-開(kāi)啟server模式
《port》:端口號(hào),缺省值為333
響應(yīng):OK
通過(guò)51單片機(jī)初始化WiFi模塊
通過(guò)串口助手測(cè)試AT指令可以發(fā)現(xiàn),部分AT指令斷電不會(huì)保存,因此需要在代碼中進(jìn)行初始化設(shè)置。
引腳連接
注:此時(shí)連接狀態(tài) WiFi模塊–》51單片機(jī)–》串口助手(PC),由于WiFi模塊和單片機(jī)的TXD和RXD處于正接狀態(tài),單片機(jī)和WiFi模塊可以進(jìn)行串口通信。
實(shí)現(xiàn)代碼
#include《reg52.h》 //51單片機(jī)常用的頭文件
#define uchar unsigned char //宏定義一個(gè)無(wú)符號(hào)的char類型
#define uint unsigned int //宏定義一個(gè)無(wú)符號(hào)的int類型
//發(fā)送一字節(jié)
void sendByte(uchar b)
{
SBUF = b;
while(!TI);
TI=0;
}
//發(fā)送字符串
void sendString(uchar *s)
{
while(*s != ‘