




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目
密碼鍵盤的實(shí)現(xiàn)項(xiàng)目介紹項(xiàng)目:密碼鍵盤的實(shí)現(xiàn)任務(wù)1:單片機(jī)PC機(jī)串行通信的實(shí)現(xiàn)任務(wù)2:數(shù)碼管顯示矩陣鍵盤鍵值任務(wù)3:密碼鍵盤的設(shè)計(jì)密碼鍵盤項(xiàng)目:綜合應(yīng)用了數(shù)碼管、按鍵、串行通訊等模塊。項(xiàng)目整體設(shè)計(jì)任務(wù)
單片機(jī)PC機(jī)串行通信的實(shí)現(xiàn)任務(wù)介紹實(shí)現(xiàn)單片機(jī)通過USB串口與PC機(jī)的連接;完成USB轉(zhuǎn)串行口通信電路的搭建;完成方式1下雙機(jī)串行通信的程序編寫;實(shí)現(xiàn)通過串口,將26個(gè)字母’A’~’Z’發(fā)送出去。單片機(jī)PC機(jī)串行通信的實(shí)現(xiàn)單片機(jī)PC機(jī)串行通信的實(shí)現(xiàn)5.1.1數(shù)據(jù)通信的概念計(jì)算機(jī)CPU與外部設(shè)備之間、計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換稱為數(shù)據(jù)通信?;镜耐ㄐ欧绞接袃煞N:并行通信和串行通信。并行通信:所傳送數(shù)據(jù)的各位同時(shí)進(jìn)行發(fā)送或接收。如圖5.2所示,并行方式傳輸一個(gè)字節(jié)(假定是8位二進(jìn)制數(shù)10010011B)時(shí),需要8條數(shù)據(jù)線,D0~D7是同時(shí)進(jìn)行傳送的。這種方式的特點(diǎn)是通信速度快,但傳輸線多,價(jià)格較貴,適合近距離傳輸。串行通信:所傳送數(shù)據(jù)的各位按順序一位一位地發(fā)送或接收。圖5.3表示同樣的數(shù)據(jù)進(jìn)行串行通信,只需要一條數(shù)據(jù)線。最初傳遞的是D0位,然后是D1位,最后傳遞D7位。這種方式的特點(diǎn)是傳輸速度慢,但因數(shù)據(jù)傳輸線少,線路結(jié)構(gòu)簡單、抗干擾能力強(qiáng),特別適用于遠(yuǎn)距離通信。單片機(jī)PC機(jī)串行通信的實(shí)現(xiàn)任務(wù)硬件設(shè)計(jì)5.1.2同步串行通信和異步串行通信1.同步通信在同步通信中,發(fā)送器和接收器由同一個(gè)時(shí)鐘控制,發(fā)送方在時(shí)鐘的控制下逐位發(fā)送數(shù)據(jù),接收方在時(shí)鐘的控制下逐位接收數(shù)據(jù),由此實(shí)現(xiàn)收發(fā)雙方的嚴(yán)格同步;發(fā)送端在發(fā)送數(shù)據(jù)之前,首先發(fā)送1~2個(gè)字節(jié)的特殊數(shù)據(jù)(稱為同步字符),接收方一旦檢測到規(guī)定的同步字符就開始接收,發(fā)送方接著連續(xù)按順序傳送n個(gè)字節(jié)的數(shù)據(jù)。當(dāng)n個(gè)字節(jié)的數(shù)據(jù)發(fā)送完畢,發(fā)送校驗(yàn)碼。同步通信如圖5.4所示。2.異步串行通信:異步串行通信的數(shù)據(jù)或字符是一幀一幀地傳送的,一幀數(shù)據(jù)由1位低電平的起始位、5~8位數(shù)據(jù)位、1位奇偶校驗(yàn)位,1~2位高電平的終止位組成。起始位:在通信線上沒有數(shù)據(jù)傳送時(shí)處于邏輯“1”狀態(tài),當(dāng)發(fā)送器要發(fā)送一幀數(shù)據(jù)時(shí),首先發(fā)出一個(gè)邏輯“0”信號,這個(gè)邏輯低電平就是起始位。起始位通過通信線傳給接收器,當(dāng)接收器檢測到這個(gè)邏輯低電平后,就開始準(zhǔn)備接收數(shù)據(jù)位信號。因此起始位表示一幀數(shù)據(jù)傳送的開始。數(shù)據(jù)位:緊跟在起始位后的是數(shù)據(jù)位。數(shù)據(jù)位的位數(shù)可以是5、6、7、8位,傳輸時(shí)低位在先,高位在后。奇偶校驗(yàn)位:串行通信用于遠(yuǎn)距離數(shù)據(jù)傳送時(shí),受到的干擾較大,為了保證數(shù)據(jù)傳送的可靠性,可在每幀數(shù)據(jù)的數(shù)據(jù)位后,加上奇偶校驗(yàn)位。奇校驗(yàn):發(fā)送字符中(包括校驗(yàn)位內(nèi))含“1”的個(gè)數(shù)為奇數(shù)。偶校驗(yàn):發(fā)送字符中(包括校驗(yàn)位內(nèi))含“1”的個(gè)數(shù)為偶數(shù)。在異步通信中,數(shù)據(jù)按圖5.5的格式一幀接一幀地傳送。在發(fā)送的間隙,即空閑時(shí),通信線路總是處于邏輯“1”(高電平)狀態(tài),每個(gè)數(shù)據(jù)幀(字符)的傳送均以邏輯“0”(低電平)開始。異步串行通信的線路比較簡單,但是每一幀中的位數(shù)比較少,而且還要有啟始位、終止位等用于同步的位,所以傳送的效率不高、速度比較慢,而同步方式在數(shù)據(jù)傳送時(shí)省去了起始位和停止位,一幀可以連續(xù)傳送若干個(gè)字節(jié),所以其速度高于異步傳送,但對硬件結(jié)構(gòu)要求較高。5.1.3通信方向串行通信有單工通信、半雙工通信和全雙工通信3種方式。單工通信:數(shù)據(jù)只能單方向地從一端向另一端傳送。半雙工通信:數(shù)據(jù)可以雙向傳送,但任一時(shí)刻只能向一個(gè)方向傳送,即分時(shí)雙向傳送數(shù)據(jù)。全雙工通信:數(shù)據(jù)可同時(shí)向兩個(gè)方向傳送,全雙工通信效率最高,適用于計(jì)算機(jī)之間的通信。5.1.4波特率波特率:通信中對數(shù)據(jù)傳送速率的規(guī)定,指每秒傳送二進(jìn)制數(shù)據(jù)的位數(shù),單位為位/秒(bit/s)。例如:在某異步串行通信中,每傳送一個(gè)字符需要10位(1位起始位、8個(gè)數(shù)據(jù)位、1位停止位),如果采用波特率為4800波特進(jìn)行串行通信,則每秒可以傳送480個(gè)字符。在串行通信中,收、發(fā)雙方必須按照同樣的速率進(jìn)行串行通信,即收發(fā)雙方采用相同的波特率。在串行傳輸中,二進(jìn)制數(shù)據(jù)序列是以數(shù)字信號波形的形式出現(xiàn)的;發(fā)送時(shí),在發(fā)送時(shí)鐘作用下將發(fā)送移位寄存器的數(shù)據(jù)串行移位輸出;接收時(shí),在接收時(shí)鐘的作用下將通信線上傳來的數(shù)據(jù)串行移入移位寄存器。發(fā)送時(shí)鐘和接收時(shí)鐘也可稱為移位時(shí)鐘,產(chǎn)生移位時(shí)鐘的電路稱為波特率發(fā)生器。為了提高采樣分辨率,準(zhǔn)確地測定數(shù)據(jù)位的上升沿或下降沿,時(shí)鐘頻率總是高于波特率的若干倍,這個(gè)倍數(shù)稱為波特率因子。在單片機(jī)中發(fā)送/接收時(shí)鐘可以由系統(tǒng)時(shí)鐘fosc產(chǎn)生,其波特率因子取為12、32、64,由于fosc為常數(shù),這種方式也稱為固定波特率方式;發(fā)送/接收時(shí)鐘也可以由定時(shí)器T1產(chǎn)生,只要改變定時(shí)器的計(jì)數(shù)初值,就能改變由T1產(chǎn)生的時(shí)鐘頻率,因此稱為可變波特率方式。5.1.5通信線的連接根據(jù)傳輸線路的電氣特性,串行通信的傳輸速率隨傳輸距離的增加而降低,通信距離不同,電路的連接方式也不相同。如果兩片單片機(jī)相距很近,或在同一塊PCB板上,通信雙方的連接只需3根信號線:TXD(串行數(shù)據(jù)發(fā)送線)、RXD(串行數(shù)據(jù)接收線)和GND(地線),直接以TTL電平連接,如圖5.7所示。通常需將TTL電平轉(zhuǎn)換為RS232電平,以提高信號的幅度,增加傳輸距離,如圖5.8所示,這種連接方式最大距離一般不超過15m。5.1.6RS-232簡介RS-232是一種串行通信標(biāo)準(zhǔn),是由美國電機(jī)工業(yè)協(xié)會(huì)(EIA)為了利用電話線及調(diào)制解調(diào)器進(jìn)行數(shù)據(jù)通信而制定的,它對信號的功能、電氣特性、連接器等都作了明確的規(guī)定。由于RS-232早期不是專為計(jì)算機(jī)通信設(shè)計(jì)的,因此有25針D型連接器和9針D型連接器,目前的PC機(jī)采用的都是9針D型連接器。這里僅對9針D型連接器進(jìn)行說明。1.RS-232的信號
RS-232除了基本的數(shù)據(jù)收發(fā)線TXD、RXD外,還有用于收發(fā)雙方聯(lián)絡(luò)、協(xié)調(diào)的握手信號。(1)基本的數(shù)據(jù)傳送引腳
TXD:數(shù)據(jù)輸出端,串行數(shù)據(jù)由此送出。
RXD:數(shù)據(jù)輸入端,串行數(shù)據(jù)由此輸入。
GND:信號地線。在串行通信中,最簡單的通信只需連接這3根線。在PC機(jī)與PC機(jī)之間,PC機(jī)與單片機(jī)之間、單片機(jī)與單片機(jī)之間的數(shù)據(jù)通信大多采用這種連接方式。(2)握手信號
RTS:請求發(fā)送信號,輸出。
CTS:清除傳送,是對RTS的響應(yīng)信號,輸入。
DSR:數(shù)據(jù)通信準(zhǔn)備就緒,輸入。
DTR:數(shù)據(jù)終端就緒,表明計(jì)算機(jī)已做好接收準(zhǔn)備,輸出。
DCD:數(shù)據(jù)載波檢測,輸入。以上握手信號在和調(diào)制/解調(diào)器連接時(shí)使用,為便于理解,我們舉例如下:當(dāng)一臺(tái)PC機(jī)與調(diào)制解調(diào)器相連,要向遠(yuǎn)方發(fā)送數(shù)據(jù)時(shí),如果PC機(jī)作好了發(fā)送準(zhǔn)備,就用RTS信號通知調(diào)制解調(diào)器;當(dāng)調(diào)制解調(diào)器也作好發(fā)送數(shù)據(jù)的準(zhǔn)備,就向PC機(jī)發(fā)出CTS信號,RTS和CTS這對握手信號溝通后,就可以進(jìn)行串行數(shù)據(jù)發(fā)送了。當(dāng)PC機(jī)要從遠(yuǎn)方接收數(shù)據(jù)時(shí),如果PC機(jī)作好了接受準(zhǔn)備,就發(fā)出DTR信號通知調(diào)制解調(diào)器;當(dāng)調(diào)制解調(diào)器也作好接收數(shù)據(jù)的準(zhǔn)備就向PC機(jī)發(fā)出DSR信號,DTR和DSR這對握手信號溝通后,就可以進(jìn)行串行數(shù)據(jù)接收了。2.
接口的電氣特性RS-232采用的是EIA電平,信號線上的電壓為負(fù)邏輯關(guān)系:邏輯1對應(yīng)的電壓為-3V~-15V邏輯0對應(yīng)的電壓為+3V~+15V介于-3V~+3V之間的電壓,低于-15V或高于+15V的電壓是沒有意義的。3.
電平轉(zhuǎn)換電路RS-232的EIA電平是以正/負(fù)電壓來表示邏輯0/1的,與TTL電路以低/高電平表示邏輯0/1不同。因此為了實(shí)現(xiàn)與TTL器件的連接,必須在EIA電平與TTL電平之間進(jìn)行電平轉(zhuǎn)換。為此半導(dǎo)體公司特別為RS-232制造了用于信號電平轉(zhuǎn)換的專用集成電路,常見的型號有:MAX232、TSC232、ICL232等,它們的引腳及特性是兼容的,可以相互之間代換使用。MAX232芯片內(nèi)部具有電壓倍增電路,只需+5V電源供電,外接4個(gè)電容器,使用非常方便。如圖5.10所示,該芯片可連接兩對收發(fā)線,既能將兩路TTL電平(T1IN、T2IN)轉(zhuǎn)換成RS232電平(T1OUT、T2OUT)送到傳輸線上,又能將傳輸線上的兩路RS232電平(R1IN、R2IN)轉(zhuǎn)換成TTL電平(R1OUT、R2OUT)。4.
單片機(jī)與PC機(jī)之間的連接在許多應(yīng)用場合,由單片機(jī)構(gòu)成的自動(dòng)控制系統(tǒng)、智能儀器往往需要與PC機(jī)進(jìn)行數(shù)據(jù)通信。PC機(jī)提供的兩個(gè)RS-232串行口COM1、COM2是EIA電平,而單片機(jī)的串行數(shù)據(jù)收發(fā)線RXD、TXD都是TTL電平,因此單片機(jī)需使用MAX232芯片進(jìn)行電平轉(zhuǎn)換,通過串行電纜線與PC機(jī)相連接,如圖5.11所示。5.1.7單片機(jī)通過USB串口與PC機(jī)連接目前在筆記本電腦上基本上已不配置9針的RS-232接口,取而代之的是即插即用的USB接口,一些芯片生產(chǎn)商提供了USB轉(zhuǎn)串口的接口芯片,比如PL2303HX、CH340G,通過這類芯片,將USB接口轉(zhuǎn)換為串行口后與單片機(jī)連接,同時(shí)如果單片機(jī)系統(tǒng)功耗不大的話,還可以通過USB接口向單片機(jī)供電,這樣反而較傳統(tǒng)的RS-232連接方式更加方便5.1.8認(rèn)識STC15單片機(jī)的串行口1STC15單片機(jī)串行口結(jié)構(gòu)STC15W4K61S4系列單片機(jī)具有4個(gè)采用UART工作方式的全雙工異步串行通信接口(串口1、串口2、串口3和串口4)。這里主要介紹串口1的使用,串口1的兩個(gè)緩沖器共用的地址碼是99H;串口1的兩個(gè)緩沖器統(tǒng)稱串行通信特殊功能寄存器SBUF。串口1有4種工作方式,其中兩種方式的波特率是可變的,另兩種是固定的,以供不同應(yīng)用場合選用。用戶可用軟件設(shè)置不同的波特率和選擇不同的工作方式。主機(jī)可通過查詢或中斷方式對接收/發(fā)送進(jìn)行程序處理,使用十分靈活。STC15W4K61S4系列單片機(jī)串行口對應(yīng)的硬件部分是TxD和RxD。串口1可以在3組引腳之間進(jìn)行切換。通過設(shè)置特殊功能寄存器
AUXR1/P_SW1中的位
S1_
S1和S1_S0兩位決定。如圖5.14所示,設(shè)有A、B兩臺(tái)單片機(jī)串行通信,A機(jī)發(fā)送、B機(jī)接收。A機(jī)的CPU將數(shù)據(jù)寫入發(fā)送SBUF,就啟動(dòng)了發(fā)送過程,按設(shè)定的波特率,每來一個(gè)移位脈沖,SBUF中的數(shù)據(jù)便移出一位,按先低位后高位的順序一位一位地將數(shù)據(jù)移到TXD引腳上,當(dāng)A機(jī)的一幀數(shù)據(jù)發(fā)送完畢(發(fā)送SBUF移空),硬件電路自動(dòng)將發(fā)送中斷標(biāo)志TI置1,向CPU發(fā)出中斷請求,請求CPU將下一個(gè)數(shù)據(jù)寫入發(fā)送SBUF。與此同時(shí)B機(jī)按設(shè)定的波特率,每來一個(gè)移位脈沖,就會(huì)將RXD引腳上的數(shù)據(jù)移入SBUF,這樣先低位后高位,直到一幀數(shù)據(jù)接收完成(接收SBUF滿),硬件電路自動(dòng)將RI標(biāo)志置1,向CPU發(fā)中斷請求,請求CPU及時(shí)取走剛剛收到的數(shù)據(jù)。2串行口的控制寄存器(1)串行通信控制寄存器SCONMCS-51單片機(jī)串行口的工作方式、接收和發(fā)送控制及串行口的狀態(tài)標(biāo)志都是由寄存器SCON來控制和指示。其格式如下:位地址9FH9EH9DH9CH9BH9AH99H98H位名SM0/FESM1SM2RENTB8RB8TIRISM0/FE、SM1:當(dāng)PCON寄存器中的SMOD0位為1時(shí),SM0/FE用于幀錯(cuò)誤檢測,當(dāng)檢測到一個(gè)無效停止位時(shí),通過UART接收器設(shè)置該位,它必須由軟件清零。當(dāng)PCON寄存器中的SMOD0位為0時(shí),SM0/FE、SM1兩位決定了串口通信的工作方式,如下表所示:SM0/FESM1工作方式功能波特率0008位的移位寄存器fosc/12或fosc/20118位的UART由定時(shí)器T1的溢出率確定1029位的UARTfosc/32或fosc/641139位的UART由定時(shí)器T1的溢出率確定SM2:是多機(jī)通信控制位。通常應(yīng)把該位置為“0”;在串口方式2和方式3,進(jìn)行多機(jī)通信時(shí),該位需要置成“1”。REN:允許接收位REN=1時(shí),允許接收數(shù)據(jù);REN=0時(shí),禁止接收數(shù)據(jù)。TB8:發(fā)送數(shù)據(jù)的第9位在方式2、方式3,TB8的內(nèi)容是要發(fā)送數(shù)據(jù)的第9位,其值由用戶通過軟件設(shè)置。在雙機(jī)通信時(shí),TB8一般作為奇偶校驗(yàn)位使用;在多機(jī)通信時(shí),常以TB8的狀態(tài)表示主機(jī)發(fā)送的是地址幀還是數(shù)據(jù)幀,一般約定:TB8=0為數(shù)據(jù)幀,TB8=1為地址幀。RB8:接收數(shù)據(jù)第9位在方式2、方式3時(shí),RB8存放接收到的第9位數(shù)據(jù),對應(yīng)于發(fā)送方的TB8。TI:發(fā)送中斷標(biāo)志在方式0時(shí),發(fā)送完第8位數(shù)據(jù)后,該位由硬件置1。在其它方式,在發(fā)送停止位前由硬件置1。因此TI=1,表示一幀數(shù)據(jù)已發(fā)送結(jié)束,其狀態(tài)可供程序查詢,也可請求中斷。TI必須用程序清0。RI:接收中斷標(biāo)志在方式0時(shí),接收到第8位數(shù)據(jù)后,該位由硬件置1。在其它方式,當(dāng)接收到停止位時(shí),該位由硬件置1。因此RI=1,表示串行口已接收到一幀數(shù)據(jù),其狀態(tài)可供程序查詢,也可請求中斷。RI必須用程序清0。SCON寄存器可以位尋址。(2)PCON寄存器PCON寄存器中只有其最高位(SMOD位)與串行通信有關(guān),其它位則用于電源管理。位地址B7B6B5B4B3B2B1B0位名SMODSMOD0——GF1GF0PDIDSMOD:波特率加倍位當(dāng)該位設(shè)為“1”時(shí),所設(shè)定的波特率被加倍。注意PCON寄存器是不能位尋址的,所以使用“SMOD=1;”或“SMOD=0;”語句都是非法的,將SMOD置“1”可用“PCON|=0x80;”語句,將SMOD清“0”可用“PCON&=0x7F;”語句。SMOD0:幀錯(cuò)誤檢測有效控制位。當(dāng)SMOD0為1時(shí),SM0/FE用于幀錯(cuò)誤檢測;當(dāng)SMOD0為0時(shí),由SM0/FE、SM1兩位決定串口通信的工作方式。(3)輔助寄存器AUXR輔助寄存器的格式和各位含義如下:位地址B7B6B5B4B3B2B1B0位名T0x12T1x12UART_M0x6T2RT2_C/TT2x12EXTRAMS1ST2其中與串行通信相關(guān)的位介紹如下:
T1x12:定時(shí)器1速度控制位。T1x12為0時(shí),定時(shí)器1是傳統(tǒng)8051速度,12分頻;T1x12為1時(shí),定時(shí)器1的速度是傳統(tǒng)8051的12倍,不分頻。如果UART串口1用T1作為波特率發(fā)生器,則由T1x12決定UART1串口是12T還是1T。UART_M0x6:串口模式0的通信速度設(shè)置位。UART_M0x6為0時(shí),串口1模式0的速度是傳統(tǒng)8051單片機(jī)串口的速度,即12分頻;UART_M0x6為1時(shí),串口1模式0的速度是傳統(tǒng)8051單片機(jī)串口速度的6倍,即2分頻。T2R:定時(shí)器2允許控制位。T2R為0時(shí),不允許定時(shí)器T2運(yùn)行;T2R為1,允許定時(shí)器T2運(yùn)行。T2_C/T:控制定時(shí)器T2用作定時(shí)器或計(jì)數(shù)器。T2_C/T為0時(shí),用作定時(shí)器(對內(nèi)部系統(tǒng)時(shí)鐘進(jìn)行計(jì)數(shù));T2_C/T為1時(shí),用作計(jì)數(shù)器(對引腳T2/P3.1的外部脈沖進(jìn)行計(jì)數(shù))。T2x12:定時(shí)器2速度控制位。T2x12為0時(shí),定時(shí)器T2是傳統(tǒng)8051速度,12分頻1,定時(shí)器T2的速度是傳統(tǒng)8051的12倍,不分頻。
如果串口1或串口2用T2作為波特率發(fā)生器,則由T2x12決定串口1或串口2是12T還是1T。S1ST2:串口1選擇定時(shí)器2作波特率發(fā)生器的控制位。S1ST2為0,選擇定時(shí)器T1作為串口1的波特率發(fā)生器;S1ST2為1,選擇定時(shí)器T2作為串口1的波特率發(fā)生器,此時(shí)定時(shí)器T1得到釋放,可以作為獨(dú)立定時(shí)器使用。串口1默認(rèn)選擇定時(shí)器T2作為其波特率發(fā)生器。(4)定時(shí)器T2的寄存器T2HT2L定時(shí)器T2寄存器T2H(地址為D6H,復(fù)位值為00H)及寄存器T2L(地址為D7H,復(fù)位值為00)用于保存重裝時(shí)間常數(shù)。(5)與串行中斷相關(guān)的控制位ES和PS串行口中斷允許位ES位于中斷允許寄存器IE中,中斷允許寄存器的格式如下:中斷允許寄存器IE(可位尋址):位地址B7B6B5B4B3B2B1B0位名EAELVDEADCESET1EX1ET0EX0ES:串行口中斷允許位。ES為1時(shí),允許串行口中斷;ES為0時(shí),禁止串行口中斷。中斷優(yōu)先級控制寄存器IP(可位尋址):PS:串口1中斷優(yōu)先級控制位。PS為0時(shí),串口1中斷為低優(yōu)先級中斷(優(yōu)先級0)PS為1時(shí),串行口中斷為高優(yōu)先級。(6)串行口1引腳切換寄存器AUXR1/P_SW1位地址B7B6B5B4B3B2B1B0位名PPCAPLVDPADCPSPT1PX1PT0PX0位地址B7B6B5B4B3B2B1B0位名S1_S1S1_S0CCP_S1CCP_S0CCP_S1CCP_S10DPSS1_S1、S1_S0用于切換串口1通信引腳:S1_S1S1_S0串口1通信引腳00[RxD/P3.0,TxD/P3.1]01[RxD_2/P3.6,TXD_2/P3.7]10[P1.6/RxD_3/XTAL2,P1.7/TxD_3/XTAL1]11無效5.1.9串行口的應(yīng)用5.1.9.1
方式0串行口工作方式0又稱為“移位寄存器方式”,是將串行口作為同步移位寄存器使用,這時(shí)以RXD端作為數(shù)據(jù)的輸入/輸出端,在TXD端輸出移位脈沖。實(shí)際上是把串行口變作并行口使用,在單片機(jī)應(yīng)用系統(tǒng)中,如果并行口不夠用,可通過外接串入并出移位寄存器擴(kuò)展輸出口,通過外接并入串出移位寄存器擴(kuò)展輸入接口。串行口工作于方式0時(shí),數(shù)據(jù)長度為8位,當(dāng)串行口模式0的通信速度設(shè)置位UARTM0x6AUXR=0時(shí),其波特率固定為SYSclk/12。當(dāng)串行口模式0的通信速度設(shè)置位UARTMOX6/AUXR5=1時(shí),其波特率固定為SYSclk2?,F(xiàn)對方式0發(fā)送數(shù)據(jù)方法進(jìn)行說明:(1)
設(shè)置控制寄存器SCON的SM0、SM1為方式0(2)
清除TI標(biāo)志。(3)
將發(fā)送的數(shù)據(jù)送入SBUF,這樣SBUF中的數(shù)據(jù)在TXD腳移位脈沖的作用下,一位一位地在RXD腳送出。(4)
當(dāng)?shù)?位發(fā)送完畢,TI標(biāo)志自動(dòng)置1,如果還有數(shù)據(jù)要發(fā)送,重復(fù)(2)~(4)。5.1.9.2方式1方式1是異步串行通信方式,以TXD為串行數(shù)據(jù)發(fā)送端,RXD為數(shù)據(jù)接收端,每幀數(shù)據(jù)共10位:一個(gè)起始位“0”,8個(gè)數(shù)據(jù)位,一個(gè)停止位“1”。其中起始位和停止位是由硬件電路自動(dòng)插入的。方式1下,波特率由定時(shí)器T1的溢出率(每秒鐘溢出的次數(shù))和SMOD共同決定,其公式為:
波特率=串行通信模式1的波特率是可變的,可變的波特率由定時(shí)器/計(jì)數(shù)器T1或定時(shí)器T2產(chǎn)生,優(yōu)先選擇定時(shí)器T2產(chǎn)生波特率。(1)當(dāng)串行口1用定時(shí)器T2作為其波特率發(fā)生器時(shí):串行口1的波特率=(定時(shí)器T2的溢出率)/4(注意:此時(shí)波特率也與SMD無關(guān)。)當(dāng)T2工作在1T(不分頻)時(shí)模式(AUXR2/T2x12=1),定時(shí)器2的溢出率=
FOSC/(65536-[RL_TH2,RL_TL2]);即此時(shí),串行口1的波特率=
FOSC/(65536-[RL_TH2,RL_TL2])/4;當(dāng)T2工作在12T(12分頻)模式時(shí)(AUXR2/T2x12=0),定時(shí)器2的溢出率=FOSC/12/(65536-[RL_TH2,RL_TL2]);即此時(shí),串行口1的波特率=
FOSC/12/(65536-
[RL_TH2,RL_TL2])/4RL_TH2是T2H的自動(dòng)重裝載寄存器,RL_TL2是12L的自動(dòng)重裝載寄存器。(2)當(dāng)串行口1用定時(shí)器T1作為其波特率發(fā)生器且定時(shí)器T1工作于模式0(16位自動(dòng)重裝載模式)時(shí):串行口1的波特率=(定時(shí)器1的溢出率)/4(注意:此時(shí)波特率與SMOD無關(guān)。)當(dāng)定時(shí)器T1工作于模式0(16位自動(dòng)重裝載模式)且Tx12=0(12分頻)時(shí),定時(shí)器T1的溢出率=
FOSC/12/(65536[
RL_THI,
RL_TL1]),即此時(shí),串行口1的波特率=
FOSC/12/(65536-[RL_TH1,RL_TL1])/4;當(dāng)定時(shí)器T1工作于模式0(16位自動(dòng)重裝載模式)且Tx12=1(不分頻)時(shí),定時(shí)器T1的溢出率=
FOSC/(65536[
RL_THI,
RL_TL1]),即此時(shí),串行口1的波特率=
FOSC/(65536-[RL_TH1,RL_TL1])/4;RL_TH是TH的自動(dòng)重裝載寄存器,RL_TL是TL的自動(dòng)重裝載寄存器。(3)當(dāng)串行口1用定時(shí)器T1作為其波特率發(fā)生器且定時(shí)器T1工作于模式2(8位自動(dòng)重裝模式)時(shí):串行口1的波特率=(2SMOD/32)x(定時(shí)器1的溢出率)當(dāng)定時(shí)器1工作于模式2(8位自動(dòng)重裝模式)且T1x12=0(12分頻)時(shí),定時(shí)器T1的溢出率=
FOSC/12/(256-TH1),即此時(shí),串行口1的波特率=(2SMOD/32)×
FOSC/12/(256-TH1)當(dāng)定時(shí)器1工作于模式2(8位自動(dòng)重裝模式)且T1x12=1(不分頻)時(shí),定時(shí)器T1的溢出率=
FOSC/(256-TH1),即此時(shí),串行口1的波特率=(2SMOD/32)
xFOSC/(256-TH1)具體應(yīng)用時(shí),總是根據(jù)預(yù)先確定的波特率,去計(jì)算定時(shí)器的計(jì)數(shù)初值,當(dāng)時(shí)鐘頻率fosc=11.0592MHz時(shí),波特率為9600,不分頻時(shí),通過推導(dǎo),我們可以得到T2計(jì)數(shù)初值的公式為:T2H=(65536-((FOSC/4)/BAUD))/256; //裝入時(shí)間常數(shù),T2L=(65536-((FOSC/4)/BAUD))%256;5.1.9.3方式2方式2是異步串行通信方式,在STC15中建議不學(xué)習(xí)。方式2以TXD為串行數(shù)據(jù)發(fā)送端,RXD為數(shù)據(jù)接收端,每幀數(shù)據(jù)共11位:一個(gè)起始位“0”,9個(gè)數(shù)據(jù)位,一個(gè)停止位“1”。發(fā)送時(shí),第9個(gè)數(shù)據(jù)位由SCON寄存器中的TB8提供,接收時(shí),收到的第9位數(shù)據(jù)存放在SCON寄存器中的RB8。第9位數(shù)據(jù)可作為奇偶校驗(yàn)位,也可在多機(jī)通信時(shí),作為數(shù)據(jù)信息或地址信息的標(biāo)志位。方式2的波特率是固定的:
波特率=5.1.9.4方式3方式3為9位數(shù)據(jù)異步通信UART模式,用于多機(jī)通信,其一幀的信息由11位組成:1位起始位,8位數(shù)據(jù)位(低位在先),1位可編程位(第9位數(shù)據(jù))和1位停止位。發(fā)送時(shí)可編程位(第9位數(shù)據(jù))由SCON中的TB8提供,可軟件設(shè)置為1或0,或者可將PSW中的奇/偶校驗(yàn)位P值裝入TB8(TB8既可作為多機(jī)通信中的地址數(shù)據(jù)標(biāo)志位,又可作為數(shù)據(jù)的奇偶校驗(yàn)位)。接收時(shí)第9位數(shù)據(jù)裝入SCON的RB8。TxD/P3.1為發(fā)送端口,RxDP3.0為接收端口,以全雙工模式進(jìn)行接收/發(fā)送。模式3和模式1相比,除發(fā)送時(shí)由TB8提供給移位寄存器第9數(shù)據(jù)位不同外,其余功能結(jié)構(gòu)均基本相同,其接收“發(fā)送操作過程及時(shí)序也基本相同。在模式3中,接收到的停止位與SBUF、RB8和R無關(guān),通過軟件對SCON中的SM2、TB8的設(shè)置以及通信協(xié)議的約定,為多機(jī)通信提供了方便。串行通信模式3的波特率也是可變的,可變的波特由定時(shí)器/計(jì)數(shù)器1或定時(shí)器2產(chǎn)生。本任務(wù)選用串口方式1完成單片機(jī)與虛擬終端的通信,我們首先完成一個(gè)簡單的示例:示例5.1:通過串行口,將26個(gè)字母‘A’~‘Z’發(fā)送出去,已知單片機(jī)的時(shí)鐘頻率為11.0592MHz。要求采用串口方式1,波特率為9600。任務(wù)硬件設(shè)計(jì):為了便于觀察、調(diào)試,我們在Proteus環(huán)境下,可加入虛擬終端(VIRTUALTERMINAL),如圖5.15所示,將單片機(jī)的數(shù)據(jù)發(fā)送端TXD與虛擬終端的RXD相連,以監(jiān)視串行口發(fā)出數(shù)據(jù)的情況。任務(wù)軟件設(shè)計(jì)方式1發(fā)送程序的編寫方法:(1)根據(jù)波特率,對定時(shí)器T1進(jìn)行初始化。(2)設(shè)置控制寄存器SCON,選擇串口方式1。(3)清除TI標(biāo)志。(4)將數(shù)據(jù)送入發(fā)送緩沖器SBUF。當(dāng)SBUF中的數(shù)據(jù)發(fā)送完畢,硬件電路自動(dòng)將TI標(biāo)志置1。(5)如果還有數(shù)據(jù)要發(fā)送,重復(fù)(3)~(5)。方式1接收程序的編寫方法:(1)根據(jù)波特率,對定時(shí)器T1進(jìn)行初始化,注意波特率應(yīng)與發(fā)送端一致。(2)設(shè)置控制寄存器SCON,選擇串口方式1,并令REN=1。(3)清除RI標(biāo)志。(4)當(dāng)串行口收到一幀數(shù)據(jù)后,RI置1,會(huì)產(chǎn)生中斷請求,通知CPU從接收SBUF中讀取數(shù)據(jù)。(5)如果還有數(shù)據(jù)要接收,重復(fù)(3)~(5)。數(shù)據(jù)的發(fā)送程序既可采用查詢方式,也可采用中斷方式。任務(wù)調(diào)試方法如果虛擬終端收不到單片機(jī)發(fā)來的數(shù)據(jù),可設(shè)置虛擬終端的屬性,打開如圖5.16所示的窗口,檢查‘BaudRate’欄的波特率是否與程序中所設(shè)置的一致。另外還要檢查單片機(jī)的時(shí)鐘頻是否為11.0592MHz,在Proteus下單片機(jī)默認(rèn)的時(shí)鐘頻率為12MHz。圖5.16虛擬終端屬性設(shè)置如果希望在真實(shí)的硬件環(huán)境中實(shí)現(xiàn)與PC機(jī)的串行通信,通過學(xué)習(xí)板將‘A’~‘Z’26個(gè)字母發(fā)送給PC機(jī),可利用STC-ISP工具提供的串口助手配合實(shí)施:(1)將案例2產(chǎn)生的hex文件通過STC-ISP寫入單片機(jī)。(2)如圖4.18所示,點(diǎn)擊STC-ISP工具的“串口助手”選項(xiàng)卡,在“串口”選擇欄選擇的串口號,必須與STC-ISP界面左上方的“串口號”保持一致。(3)如圖4.18所示,設(shè)置好波特率(與案例2設(shè)定的波特率一致),接緩沖區(qū)和發(fā)送緩沖區(qū)都選擇文本模式。(4)點(diǎn)擊“打開串口”按鈕,該按鈕的標(biāo)題變?yōu)椤瓣P(guān)閉串口”(5)按下學(xué)習(xí)板上的復(fù)位按鈕,在STC-ISP工具的接收緩沖區(qū)將顯示‘A’~‘Z’26個(gè)字母,如圖5.17所示。圖5.17STC-ISP工具的串口助手任務(wù)效果展示在Proteus環(huán)境下虛擬終端(VIRTUALTERMINAL)虛擬終端接收到的數(shù)據(jù),如圖5.18所示。任務(wù)
數(shù)碼管顯示矩陣鍵盤鍵值任務(wù)介紹本任務(wù)將實(shí)現(xiàn)數(shù)碼管顯示矩陣鍵盤的按鍵值,編寫程序,將所按鍵值送LED顯示器顯示。單片機(jī)PC機(jī)串行通信的實(shí)現(xiàn)任務(wù)硬件設(shè)計(jì)圖
行列式鍵盤與動(dòng)態(tài)LED顯示器接口電路圖5.2.1行列式鍵盤的基本原理鍵盤是計(jì)算機(jī)系統(tǒng)中不可缺少的輸入設(shè)備,矩陣式鍵盤也稱為行列式鍵盤,其結(jié)構(gòu)如圖5.19所示。圖中有3根行線和4根列線,按鍵跨接在行線和列線上。3×4的行列結(jié)構(gòu)可以構(gòu)成12個(gè)按鍵的鍵盤,與獨(dú)立式鍵盤相比,按鍵數(shù)量相同時(shí)占用口線少,因此適用于按鍵數(shù)量較多的場合。如圖5.19中3根行線接到P2.0~P2.2,作為輸出口,4根列線接到P2.4~P2.7,作為輸入口,通常采用掃描法檢測鍵盤有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度黑龍江省高校教師資格證之高等教育心理學(xué)綜合檢測試卷B卷含答案
- 2024年度黑龍江省高校教師資格證之高等教育法規(guī)基礎(chǔ)試題庫和答案要點(diǎn)
- 基層主管的角色與權(quán)責(zé)
- 解除勞動(dòng)關(guān)系協(xié)議書(簡結(jié)版)
- 高風(fēng)險(xiǎn)知識點(diǎn)中醫(yī)康復(fù)理療師試題及答案
- 2024年專升本文言文解析試題及答案
- (高清版)DB12∕T 552-2015 自行車車把技術(shù)規(guī)范
- 選擇對的CPSM考試路徑試題及答案
- 小學(xué)課件腳本范文
- 散文寫作的創(chuàng)新思維與技巧實(shí)踐試題及答案
- 2025年度粵醫(yī)云、國培衛(wèi)健全科醫(yī)學(xué)臨床醫(yī)學(xué)2月題目及答案
- 校園消費(fèi)進(jìn)行時(shí)青春權(quán)益不掉隊(duì)-3·15消費(fèi)者權(quán)益日教育宣傳主題班會(huì)課件
- 英語-安徽省滁州市2025年(屆)高三下學(xué)期第一次教學(xué)質(zhì)量監(jiān)測(滁州一模)試題和答案
- 人教版六年級下學(xué)期數(shù)學(xué)第四單元《比例》典型題型專項(xiàng)練習(xí)(含答案)
- 污水處理設(shè)施運(yùn)維服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 大數(shù)據(jù)技術(shù)在醫(yī)療健康領(lǐng)域的應(yīng)用方案設(shè)計(jì)
- 2025年全國教育工作會(huì)議學(xué)習(xí)心得
- 國開電大軟件工程形考作業(yè)3參考答案
- 通用電子嘉賓禮薄
- 一組超全的6S可視化標(biāo)準(zhǔn)辦公室課件
- 2022年配網(wǎng)設(shè)計(jì)考試題庫(核心題版)
評論
0/150
提交評論