版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
定時/計數(shù)器第6章在單片機(jī)控制系統(tǒng)中,經(jīng)常需要多個控制系統(tǒng)配合工作,這就要求在多個單片機(jī)系統(tǒng)之間進(jìn)行通信。通信的方法多種,本章僅從單片機(jī)串行通信角度介紹串行傳輸?shù)囊话愀拍罴盎緫?yīng)用,從單片機(jī)的串口結(jié)構(gòu)、工作方式、串行通信RS-232接口標(biāo)準(zhǔn)、通信協(xié)議等方面進(jìn)行介紹,并對單片機(jī)與單片機(jī)之間、單片機(jī)與計算機(jī)之間、單片機(jī)與計算機(jī)之間的通信應(yīng)用進(jìn)行介紹。引言目錄串行通信基礎(chǔ)知識1單片機(jī)的串口及控制寄存器2本章小結(jié)7單片機(jī)的串口應(yīng)用3本章習(xí)題8行業(yè)PPT模板/hangye/項(xiàng)目訓(xùn)練一單片機(jī)雙機(jī)通信5串行通信接口RS-232標(biāo)準(zhǔn)4項(xiàng)目訓(xùn)練二ESP8266無線網(wǎng)絡(luò)透傳66.1串行通信基礎(chǔ)知識6.1.1串行通信與并行通信的比較1.通信一般分為并行通信和串行通信兩種方式。并行通信:通過一組數(shù)據(jù)線,同時將數(shù)據(jù)的各個位進(jìn)行傳輸,每個數(shù)據(jù)位占據(jù)一根數(shù)據(jù)線,如圖6-1所示。并行通信的優(yōu)點(diǎn)是控制簡單、傳輸速度快;缺點(diǎn)是傳輸線較多,長距離傳輸時成本高。串行通信:使用一根線數(shù)據(jù)線,將數(shù)據(jù)一位接一位地依次傳輸,每位數(shù)據(jù)占據(jù)一個固定的時間長度,如圖6-2所示。串行通信的優(yōu)點(diǎn)是傳輸線少,長距離傳送時成本低;缺點(diǎn)是傳輸速度慢。
6.1.2串行通信的制式串行通信的制式有:單工、半雙工和雙工。單工:如果在通信過程的任意時刻,信息只能由一方A(B)傳到另一方B(A)。半雙工:如果在任意時刻,信息既可由A傳到B,又能由B傳A,但一個時刻只能由一個方向上的傳輸存在。全雙工:如果在任意時刻,線路上同時存在A到B和B到A的雙向信息傳輸。6.1.3同步串行通信與異步串行通信同步串行通信與異步串行通信都要規(guī)定通信雙方的傳輸速率.同步串行通信采用數(shù)據(jù)包形式來裝載數(shù)據(jù)。數(shù)據(jù)包中有特殊的“同步位”,可以用來協(xié)調(diào)并統(tǒng)一通信雙方的傳輸步調(diào)。它一次可以收發(fā)幾十到幾千個字節(jié),效率較高。6.1.3同步串行通信與異步串行通信異步串行通信采用數(shù)據(jù)幀形式來裝載數(shù)據(jù)。每個數(shù)據(jù)幀都包括起始位、數(shù)據(jù)位、校驗(yàn)位和停止位,如下圖所示。異步串行通信每收/發(fā)一幀數(shù)據(jù)就調(diào)整一次雙方的步調(diào),保證傳輸?shù)恼_M(jìn)行。6.1.4串行通信的校驗(yàn)方式1.奇偶校驗(yàn)在發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨的1位為奇偶校驗(yàn)位(1或0)。奇校驗(yàn)時,數(shù)據(jù)中“1”的個數(shù)與校驗(yàn)位“1”的個數(shù)之和應(yīng)為奇數(shù);偶校驗(yàn)時,數(shù)據(jù)中“1”的個數(shù)與校驗(yàn)位“1”的個數(shù)之和應(yīng)為偶數(shù)。2.代碼和校驗(yàn)代碼和校驗(yàn)是指發(fā)送方對所發(fā)送數(shù)據(jù)塊求和(或各字節(jié)異或)運(yùn)算,產(chǎn)生1B的校驗(yàn)字符(校驗(yàn)和),附加到數(shù)據(jù)塊末尾。接收方在接收數(shù)據(jù)的同時對數(shù)據(jù)塊(除校驗(yàn)字節(jié)外)進(jìn)行同樣的運(yùn)算并和接受的結(jié)果比較。3.循環(huán)冗余校驗(yàn)(CRC)循環(huán)冗余校驗(yàn)是通過某種數(shù)學(xué)運(yùn)算實(shí)現(xiàn)有效信息與校驗(yàn)位之間的循環(huán)校驗(yàn),常用于對磁盤信息的傳輸、存儲區(qū)的完整性校驗(yàn)等。這種校驗(yàn)方法的糾錯能力強(qiáng),廣泛應(yīng)用于各種通信系統(tǒng)中。6.1.5傳輸速率與傳輸距離1.傳輸速率比特率(BitRate):每秒傳輸二進(jìn)制代碼的位數(shù),單位是bit/s。例如,每秒傳送240幀數(shù)據(jù),而每個數(shù)據(jù)幀格式包含10位(1個起始位、1個停止位、8個數(shù)據(jù)位),這時的比特率為 10×240=2400(bit/s)波特率(BaudRate):傳輸數(shù)據(jù)中每秒信號的變化量。2.傳輸距離(1)板級:<0.5m。標(biāo)準(zhǔn)串行總線(IIC):EEPROM:24CXX;CLOCK:PCF8563。非標(biāo)準(zhǔn)串行總線:X5045(EEPROM&WATCHDOG);CLOCK:DS1302;A/D:TLC549;D/A:MAX1241。(2)設(shè)備級:1->15m。常用串行設(shè)備:鍵盤;條碼掃描器;IC卡;顯示器;鼠標(biāo);USB口。(3.)網(wǎng)絡(luò)、遠(yuǎn)程級:>15m,從幾十米到全球到的距離。INTERNET,工業(yè)局部總線,計算機(jī)之間通信。6.2
單片機(jī)的串口及控制寄存器6.2.1單片機(jī)的串口結(jié)構(gòu)8051單片機(jī)串口的內(nèi)部結(jié)構(gòu)如圖所示。其中,SBUF為串口的收/發(fā)緩沖器,它是一個特殊的專用寄存器,其中包含了接收寄存器和發(fā)送寄存器,可以實(shí)現(xiàn)全雙工通信,但這兩個寄存器具有同一地址(99H)。8051單片機(jī)的串行數(shù)據(jù)傳輸很簡單,只要向SBUF(發(fā)送)寫入數(shù)據(jù)即可發(fā)送數(shù)據(jù),而從SBUF(接收)中讀出數(shù)據(jù)即可接收數(shù)據(jù)。1.串口控制(SCON,SerialControl)寄存器串行口控制寄存器SCON,它是一個可位尋址的專用寄存器,用于串行數(shù)據(jù)的通信控制,單元地址是98H,其結(jié)構(gòu)格式如下:(1)SM0,SM1:取00,01,10,11分別選擇串口工作方式0,1,2,和3,如下表所示。一般只是使用方式0移位方式和方式1(10位為一幀的異步串行通信方式)。6.2.2
單片機(jī)的串行口控制寄存器位地址9FH9EH9DH9CH9BH9AH99H98H位符號SM0SM1SM2RENTB8RB8TIRISM0SM1工作方式用途波特率0008位移位寄存器I/O晶振頻率/1201110位UART可變10211位UART晶振頻率/32或/6411311位UART可變(2)SM2:在多機(jī)通信時,子機(jī)先讓SM2=1,待收到的地址(RB8=1)與本機(jī)地址相符時,將SM2改為0,接收隨后的數(shù)據(jù)。(3)REN:允許接收控制位,僅在不使用串口或采用單工通信方式(只發(fā)送不接收)時將設(shè)置為0,在一般通信程序中,都應(yīng)將其設(shè)置為1。(4)TB8:發(fā)送數(shù)據(jù)第9位,用于在方式2和方式3下存放發(fā)送數(shù)據(jù)第9位。TB8由軟件置位或復(fù)位。(5)RB8:接收數(shù)據(jù)第9位,用于在方式2和方式3下存放接收數(shù)據(jù)第9位。在方式1下,若SM2=0,則RB8用于存放收到的停止位;在方式0下,不使用RB8。(6)TI:發(fā)送中斷標(biāo)志位,用于指示一幀數(shù)據(jù)發(fā)送是否完成。硬件自動置位,需軟件清零。(7)RI:接收中斷標(biāo)志位,用于指示一幀數(shù)據(jù)是否接收完。硬件自動置位,需軟件清零。6.2.2
單片機(jī)的串行口控制寄存器1.串口控制(SCON,SerialControl)寄存器串行口控制寄存器SCON,它是一個可尋址的專用寄存器,用于串行數(shù)據(jù)的通信控制,單元地址是98H,其結(jié)構(gòu)格式如下:(1)SM0,SM1:取00,01,10,11分別選擇串口工作方式0,1,2,和3,如下表所示。一般只是使用方式0移位方式和方式1(10位為一幀的異步串行通信方式)。6.2.2
單片機(jī)的串行口控制寄存器位地址9FH9EH9DH9CH9BH9AH99H98H位符號SM0SM1SM2RENTB8RB8TIRISM0SM1工作方式用途波特率0008位移位寄存器I/O晶振頻率/1201110位UART可變10211位UART晶振頻率/32或/6411311位UART可變2.電源管理(PCON,PowerControl)寄存器PCON寄存器主要是為CHMOS型單片機(jī)的電源控制而設(shè)置的專用寄存器,單元地址是87H,其結(jié)構(gòu)格式如表6-3所示。在CHMOS型單片機(jī)中,除SMOD位外,其他位均為虛設(shè)位。SMOD是串口波特率倍增位,當(dāng)SMOD=1時,串口的波特率加倍。系統(tǒng)復(fù)位,默認(rèn)SMOD=0。3.中斷允許(IE,InterruptEnable)寄存器IE對中斷的允許(開放)實(shí)行兩級控制,即以EA位為總控制位,以各中斷源的中斷允許控制位為分控制位。它的單元地址為A8H,其結(jié)構(gòu)格式如表6-4所示。其中ES位為串行中斷允許控制位,在EA=1的情況下,ES=1表示允許串行中斷,ES
=
0表示禁止串行中斷。6.2.2
單片機(jī)的串行口控制寄存器PCOND7D6D5D4D3D2D1D0位符號SMOD———GF1GF0PDIDLPCONAFHAEHADHACHABHAAHA9HA8H位符號EA——ESET1EX1ET0EX0在使用串口前,應(yīng)對其進(jìn)行初始化,主要設(shè)置用來產(chǎn)生波特率的T1、串口控制和中斷控制。具體步驟如下。(1)確定T1的工作方式(編程TMOD寄存器)。(2)計算T1的初值,裝載TH1、TL1。(3)啟動T1(編程TCON中的TR1位)。(4)確定串口控制(編程SCON寄存器)。(5)串口在中斷方式下工作時,要對其進(jìn)行中斷設(shè)置(編程IE、IP寄存器)。6.2.2
單片機(jī)的串行口控制寄存器6.3
單片機(jī)的串口應(yīng)用6.3.1方式0在方式0下,串口為同步移位寄存器的輸入和輸出方式,主要用于擴(kuò)展并行I/O口;數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出;發(fā)送和接收的均為8位數(shù)據(jù),且低位在前、高位在后,如圖6-10、圖6-11所示;波特率固定為fosc/12。圖6-11方式0輸入時序圖圖6-10方式0輸出時序圖6.3.1方式0方式0主要作為I/O口的擴(kuò)展來使用,當(dāng)I/O口不夠用時,可以考慮使用擴(kuò)展的方式。通過搭配串行移位輸入或輸出轉(zhuǎn)換芯片,可以實(shí)現(xiàn)多個I/O口的擴(kuò)展,增加I/O口的數(shù)量。搭配的串行移位輸出芯片可以采用74LS164或74HC595,串行移位輸入芯片采用74LS165。如圖:6.3.1方式0【例6-1】
用8位串入并出移位寄存器74HC595擴(kuò)展單片機(jī)的輸出口,電路如圖
6-13所示。試編寫程序完成:依次點(diǎn)亮8個LED,即D1~D8,待所有LED均點(diǎn)亮后,重新開始。要求采用中斷方式編程。程序?qū)崿F(xiàn)分析:采用的是串行移位輸出的方式,所以可以將LED點(diǎn)亮的數(shù)據(jù)放在一個數(shù)組中,按照間隔的時間要求將數(shù)據(jù)寫入SBUF即可。unsignedchardataPatten[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//流水燈數(shù)據(jù)6.3.1方式0硬件電路分析74HC595具有一個8位移位寄存器和一個8位存儲寄存器,還具有三態(tài)輸出功能。其中,移位寄存器和存儲寄存器使用不同的時鐘。8位移位寄存器有一個串行移位輸入(DS)端口、一個串行移位輸出(Q7')端口和一個異步的低電平復(fù)位端口。存儲寄存器有一個并行8位的三態(tài)總線輸出端口,當(dāng)使能OE時(為低電平),存儲寄存器的數(shù)據(jù)輸出到三態(tài)總線上。74HC595的內(nèi)部結(jié)構(gòu)框圖(僅列出數(shù)據(jù)端口)如圖6-14所示。6.3.1方式0函數(shù)功能:定時器中斷服務(wù)程序voidTime0(void)interrupt1using1{CNT++; //50ms時間到,計數(shù)值加1if(CNT==10){ //500ms定時時間到 CNT=0; //計數(shù)值清零 SBUF=Patten[i];//啟動單片機(jī)串口輸出 i++; if(i==8)i=0; //8位輸出結(jié)束后重新開始}TH0=0x3c; //重裝定時器初值TL0=0xb0;}主要實(shí)現(xiàn)程序:函數(shù)功能:串口中斷服務(wù)程序voidSerial(void)interrupt4using2{TI=0;
//清零,發(fā)送結(jié)束標(biāo)志RCK=0;
//鎖存時鐘,上升沿有效RCK=1;}6.3.2方式1方式1是10位數(shù)據(jù)的異步通信口。其中,TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳。方式1數(shù)據(jù)幀的格式如圖6-15所示,包括1位起始位,8位數(shù)據(jù)位,1位停止位。1.方式1輸出時序方式1輸出時序圖如圖6-16所示。當(dāng)數(shù)據(jù)寫入SBUF時,串口按照數(shù)據(jù)幀格式,以低位在前、高位在后的順序?qū)⒏魑话l(fā)送到TXD引腳。當(dāng)發(fā)送完最后一位時,TI標(biāo)志置1。2.方式1輸入時序方式1輸入時序圖如圖6-17所示。當(dāng)RXD引腳為低電平時,數(shù)據(jù)在位采樣脈沖的作用下被送到SBUF中存放,并置位RI標(biāo)志。6.3.3方式2和方式3方式2和方式3都是11位異步收發(fā)方式。兩者的差異僅在于通信波特率有所不同:方式2的波特率由8051主頻fosc經(jīng)32或64分頻后提供;方式3的波特率由定時器T1的溢出率經(jīng)32分頻后提供,故它的波特率是可調(diào)的。方式2和方式3的發(fā)送過程類似方式1,所不同的是方式2和方式3有9位有效數(shù)據(jù)位。方式2和方式3的接收過程也與方式1類似,所不同的是:在方式1下,RB8中存放的是停止位;在方式2或方式3下,RB8中存放的是第9數(shù)據(jù)位。因此,在方式2和方式3下,必須滿足接收有效字符的條件變?yōu)镽I=0和SM2=0或收到的第9數(shù)據(jù)位為1,只有上述兩個條件同時滿足,收到的字符才能被送入SBUF,第9數(shù)據(jù)位才能被裝入RB8,并使RI=1;否則,這次收到的數(shù)據(jù)無效,RI也不置位。6.3.4波特率的計算方式0的波特率=fosc/12方式2的波特率=方式1的波特率=方式3的波特率=式中,k為定時器T1的位數(shù),在方式2下,定時器T1的位數(shù)為8,因此定時器T1溢出率就為T1溢出率=串口由于輸入的移位時鐘的來源不同,各種方式的波特率計算公式也不相同。T1溢出率
=在單片機(jī)的應(yīng)用中,常用的晶振頻率為12MHz和11.0592MHz,選用的波特率也相對固定。一般串口通信時選用11.0592MHz的晶振,原因是定時器初值的計算能夠正好取得整數(shù)。波特率/(bit/s)fosc=12MHzfosc=11.0592MHzSMODT1方式初值SMODT1方式初值19200---12FDH9600---02FDH480012F3H02FAH240012F3H02F4H120002E6H02E8H6.3.2方式1【例6-2】設(shè)單片機(jī)采用11.0592MHz的晶振,串口以方式1工作,波特率選定為9600bit/s。試編程實(shí)現(xiàn)單片機(jī)從串口輸出數(shù)字0~9。(1)分析:因?yàn)榫д癫捎?1.0592MHz,所以根據(jù)波特率,可查詢表6-5獲得定時器的初值。這里輸出數(shù)字不是直接把該值輸出,而是要輸出其ASCII碼。#include<reg51.h>unsignedcharASCII=0x30;//字母0的ASCII碼值unsignedcharCOUNT=0;//用來記錄發(fā)送的數(shù)字個數(shù)voidmain(void){ SP=0x60;
//設(shè)棧指針 TMOD=0x20; //設(shè)T1工作于方式2,作為定時器使用 TL1=0xFD; //設(shè)波特率為9600bit/s TH1=0xFD; //設(shè)置重置值 PCON=0x00; //SMOD=0,波特率不倍增 TR1=1; //啟動T1運(yùn)行 SCON=0x40; //設(shè)串口工作于方式1,關(guān)接收
for(;COUNT<10;COUNT++)
{SBUF=ASCII; //發(fā)送字符"0"while(!TI); //查詢方式,等待發(fā)送結(jié)束TI=0; //清除發(fā)送完成標(biāo)志ASCII++;//ASCII碼值加1
}
while(1);}6.3.2方式1在Keil上編譯該程序,進(jìn)入調(diào)試模式,把串口窗口UART#1打開,運(yùn)行該程序,如圖
6-18所示。拓展練習(xí):把例6-2的程序改為以中斷方式發(fā)送。
6.4串行通信接口
RS-232標(biāo)準(zhǔn)串行通信接口按電氣標(biāo)準(zhǔn)及協(xié)議來分,包括RS-232、RS-422、RS-485、USB等。RS-232、RS-422與RS-485標(biāo)準(zhǔn)只對接口的電氣特性做出規(guī)定,不涉及接插件、電纜或協(xié)議。目前,RS-232是計算機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。RS-232被定義為一種在低速率串行通信中增加通信距離的單端標(biāo)準(zhǔn)。RS-232采取不平衡傳輸方式,即單端通信。由于RS-232是在TTL電路之前研制的,所以與TTL以高低電平表示邏輯狀態(tài)的規(guī)定不同,RS-232是用正負(fù)電平來表示邏輯狀態(tài)的。RS-232采用負(fù)邏輯:+5~+15V為邏輯“0”;-15~-5V為邏輯“1”;-5~+5V為過渡區(qū)。RS-232物理接口標(biāo)準(zhǔn)可分成25芯和9芯D型插座兩種,均有公頭(針)、母頭(孔)之分。其中,TX(發(fā)送數(shù)據(jù))、RX(接收數(shù)據(jù))和GND(信號地)是3條最基本的引線,可以實(shí)現(xiàn)簡單的全雙工通信。按照RS-232標(biāo)準(zhǔn),傳輸速率一般不超過20kbit/s,傳輸距離一般不超過15m。實(shí)際使用時,傳輸速率最高可達(dá)115200bit/s。6.4.1RS-232引腳定義設(shè)備之間的串行通信線的連接方式,取決于設(shè)備接口的定義。設(shè)備之間采用RS-232串行電纜連接時有以下兩類連接方式:直通線:相同信號(RXD對RXD、TXD對TXD)相連,用于DTE與DCE相連,如計算機(jī)與MODEM(或DTU)相連。交叉線:不同信號(RXD對TXD、TXD對RXD)相連,用于DTE與DTE相連,如計算機(jī)與計算機(jī)相連、計算機(jī)與采集器相連、計算機(jī)與單片機(jī)相連、單片機(jī)與單片機(jī)相連。6.4.2RS-232接口的基本接線原則三線連接方式:兩端設(shè)備的串口只連接收、發(fā)送、地3根線,如圖6-19所示。一般情況下,三線連接方式即可滿足要求,如監(jiān)控主機(jī)與采集器及大部分智能設(shè)備相連.簡易接口方式:兩端設(shè)備的串口除連接收、發(fā)、地3根線外,還增加了一對握手信號(一般是DSR和DTR)。6.4.3RS-232的三線方式6.5項(xiàng)目訓(xùn)練一
單片機(jī)雙機(jī)通信6.5.1項(xiàng)目要求設(shè)計一個單片機(jī)之間的短距離通信電路,假設(shè)一個為主機(jī),一個為從機(jī)。要求主機(jī)通過按鍵發(fā)送一位數(shù)據(jù)給從機(jī),從機(jī)接收數(shù)據(jù)后通過LED數(shù)碼管顯示出來,并將數(shù)據(jù)加上1后返回給主機(jī),主機(jī)顯示收到的數(shù)據(jù)。要求通信波特率為9600bit/s,采用中斷方式進(jìn)行收發(fā)。6.5.2項(xiàng)目分析該通信電路因?yàn)榫嚯x較短,所以可以采用直連的方法,即使用導(dǎo)線直接連接,信號電平均為TTL電平,而無須轉(zhuǎn)換為RS-232電平。主機(jī)電路設(shè)計可以參考之前的矩陣鍵盤電路,按鍵檢測程序也可以參考矩陣鍵盤檢測程序。因?yàn)椴ㄌ芈蕿?600bit/s,所以只能用串口工作方式1和方式3,而又因?yàn)橹挥袃蓚€單片機(jī)進(jìn)行通信,所以可采用方式1來通信。6.5.3電路圖設(shè)計電路圖設(shè)計參考圖6-20,需要注意兩個單片機(jī)的串口的接線,要求兩者的發(fā)送端和接收端相互交叉。6.5.4程序設(shè)計1.串口應(yīng)用流程一般串口的應(yīng)用流程如下。首先,要對串口進(jìn)行初始化,內(nèi)容包括波特率的選擇、工作方式的選擇、定時器初始化,以及選擇采用何種方式進(jìn)行數(shù)據(jù)的發(fā)送和接收,如采用中斷方式時需要打開中斷。其次,要確定通信協(xié)議。這里所謂的協(xié)議,就是指確定數(shù)據(jù)幀格式,包括特殊數(shù)據(jù)的含義、數(shù)據(jù)校驗(yàn)方法、出錯處理方法等。最后,進(jìn)行數(shù)據(jù)的收發(fā),可以采用查詢方式,也可以采用中斷方式。2.串口中斷的處理串口在產(chǎn)生中斷時,要先判斷這是由接收數(shù)據(jù)引起的還是由發(fā)送數(shù)據(jù)數(shù)據(jù)引起的,并據(jù)此做相應(yīng)的處理。6.5.4程序設(shè)計3.主要程序(1)主機(jī)程序程序功能:串口發(fā)送數(shù)據(jù)voidsentData(unsignedcharsd){SBUF=sd;//將數(shù)據(jù)送到SBUF(發(fā)送)中}程序功能:串口接收數(shù)據(jù),采用中斷方式接收voidSerialISR(void)interrupt4using3{unsignedcharrcdata=0;//存放接收數(shù)據(jù)
if(RI)
//判斷是由誰引起的中斷
{
REN=0;
//暫時關(guān)閉接收功能 RI=0;
//清除接收完成標(biāo)志
rcdata=SBUF;
//讀取接收緩沖寄存器中的數(shù)據(jù) P0=table[rcdata];//接收數(shù)據(jù)顯示 REN=1;
//打開接收功能
}
elseif(TI)
{
TI=0; //清除發(fā)送完成標(biāo)志,待進(jìn)行下一次發(fā)送
}}//程序功能:串口初始化voidserialInit(void){TMOD=0x20;//設(shè)定時器1工作于方式2SCON=0x50;//工作方式1,允許接收PCON=0x00;//波特率不加倍ES=1; //打開串口中斷EA=1;
//打開全局中斷TH1=0xFD;
//波特率為9600的定時器初值TL1=0xFD;TR1=1;//定時器工作}6.5.4程序設(shè)計(2)從機(jī)程序程序功能:串口接收數(shù)據(jù),采用中斷方式接收,同時將數(shù)據(jù)送到數(shù)碼管中進(jìn)行顯示voidSerialISR(void)interrupt4using1{
unsignedcharrcdata=0; //存放接收數(shù)據(jù)
if(RI)
{
REN=0; RI=0; //清接收完成標(biāo)志 rcdata=SBUF;//讀取SBUF(接收)中的數(shù)據(jù) P0=table[rcdata];//接收數(shù)據(jù)顯示 SBUF=rcdata+1;//將接收的數(shù)據(jù)+1后發(fā)送給主機(jī) REN=1;
}
elseif(TI)
{
TI=0;
}}6.5.5
拓展訓(xùn)練(1)如果將上面的中斷服務(wù)程序中對TI判斷清零的語句刪除,會產(chǎn)生什么后果?(2)將以上程序改為查詢方式,編寫程序?qū)崿F(xiàn)。6.6
項(xiàng)目訓(xùn)練二
ESP8266無線網(wǎng)絡(luò)透傳6.6.1項(xiàng)目要求設(shè)計一個單片機(jī)與計算機(jī)之間的無線通信電路,假設(shè)計算機(jī)為服務(wù)器,單片機(jī)為客戶端。要求單片機(jī)通過串口與ESP8266芯片(ESP-12F模塊)連接,經(jīng)ESP8266芯片轉(zhuǎn)發(fā)后連接遠(yuǎn)程服務(wù)器。采用AT指令方式,單片機(jī)通過串口發(fā)送字符串"WifiTestsuccess"給服務(wù)器,實(shí)現(xiàn)串口到服務(wù)器的網(wǎng)絡(luò)透傳功能。6.6.2項(xiàng)目分析使用一臺計算機(jī)當(dāng)作服務(wù)器,在計算機(jī)中,使用網(wǎng)絡(luò)調(diào)試助手軟件建立一個“TCPServer”,采用本地主機(jī)地址作為服務(wù)器的地址(假設(shè)為02),主機(jī)端口號為8888。設(shè)置Wi-Fi熱點(diǎn)名稱為linlimcupc(可以自己設(shè)定),密碼為12345678。要實(shí)現(xiàn)這些功能,需要了解ESP8266芯片AT指令的用法。表6-8列出了一部分與本項(xiàng)目相關(guān)的AT指令的格式和功能,更多指令請參考芯片手冊中的說明。6.6.3通信連接設(shè)計通信連接設(shè)計參考圖6-22,單片機(jī)通過串口連接Wi-Fi模塊ESP-12F,ESP-12F模塊通過無線Wi-Fi連接遠(yuǎn)程服務(wù)器。6.6.4程序設(shè)計要使用AT指令發(fā)送數(shù)據(jù),需要通過串口來發(fā)送字符串,因此可以設(shè)計一個函數(shù)UARTSendString(unsignedchar*p_Str),該函數(shù)調(diào)用發(fā)送單個字符函數(shù)UARTSendData(unsignedchar)完成字符串的發(fā)送。字符串發(fā)送函數(shù):voidUARTSendString(unsignedchar*p_Str){ while(*p_Str) //判斷是否
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區(qū)委員述職報告范文
- 《通信建設(shè)桿路培訓(xùn)》課件
- 《電工電子技術(shù)》課件-第11章
- 《機(jī)械制造基礎(chǔ)》課件-01篇 第一單元 金屬材料的性能
- 2024-2025學(xué)年年八年級數(shù)學(xué)人教版下冊專題整合復(fù)習(xí)卷第十一章 一次函數(shù)單元測驗(yàn)題-
- 口語交際猜謎語-北師大版課件
- 《展示設(shè)計與材料》課件
- 《計算機(jī)發(fā)展歷史》課件
- 應(yīng)急定位發(fā)射機(jī)
- 斜井施工安全培訓(xùn)
- FLAC3D常用命令
- JGJ_T231-2021建筑施工承插型盤扣式鋼管腳手架安全技術(shù)標(biāo)準(zhǔn)(高清-最新版)
- 畢業(yè)論文(設(shè)計)除雪車工作裝置設(shè)計
- 交通工程精細(xì)化施工質(zhì)量控制及驗(yàn)收標(biāo)準(zhǔn)
- 鏡片加工知識之四研磨
- 核電站1E級電氣設(shè)備鑒定標(biāo)準(zhǔn)技術(shù)經(jīng)驗(yàn)
- 乒乓球中的力學(xué)原理PPT課件
- 激光原理與激光技術(shù)習(xí)題全解(北工大)
- 中央空調(diào)設(shè)備運(yùn)行管理方案課案
- 預(yù)算單位財務(wù)服務(wù)平臺-出納管理操作手冊
- 在全市裝備制造業(yè)現(xiàn)場推進(jìn)會上的講話
評論
0/150
提交評論