




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目
密碼鍵盤(pán)的實(shí)現(xiàn)項(xiàng)目介紹項(xiàng)目:密碼鍵盤(pán)的實(shí)現(xiàn)任務(wù)1:?jiǎn)纹瑱C(jī)PC機(jī)串行通信的實(shí)現(xiàn)任務(wù)2:數(shù)碼管顯示矩陣鍵盤(pán)鍵值任務(wù)3:密碼鍵盤(pán)的設(shè)計(jì)密碼鍵盤(pán)項(xiàng)目:綜合應(yīng)用了數(shù)碼管、按鍵、串行通訊等模塊。項(xiàng)目整體設(shè)計(jì)任務(wù)
單片機(jī)PC機(jī)串行通信的實(shí)現(xiàn)任務(wù)介紹實(shí)現(xiàn)單片機(jī)通過(guò)USB串口與PC機(jī)的連接;完成USB轉(zhuǎn)串行口通信電路的搭建;完成方式1下雙機(jī)串行通信的程序編寫(xiě);實(shí)現(xiàn)通過(guò)串口,將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ī)之間的信息交換稱(chēng)為數(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)簡(jiǎn)單、抗干擾能力強(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ù)(稱(chēng)為同步字符),接收方一旦檢測(cè)到規(guī)定的同步字符就開(kāi)始接收,發(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位高電平的終止位組成。起始位:在通信線上沒(méi)有數(shù)據(jù)傳送時(shí)處于邏輯“1”狀態(tài),當(dāng)發(fā)送器要發(fā)送一幀數(shù)據(jù)時(shí),首先發(fā)出一個(gè)邏輯“0”信號(hào),這個(gè)邏輯低電平就是起始位。起始位通過(guò)通信線傳給接收器,當(dāng)接收器檢測(cè)到這個(gè)邏輯低電平后,就開(kāi)始準(zhǔn)備接收數(shù)據(jù)位信號(hào)。因此起始位表示一幀數(shù)據(jù)傳送的開(kāi)始。數(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”(低電平)開(kāi)始。異步串行通信的線路比較簡(jiǎn)單,但是每一幀中的位數(shù)比較少,而且還要有啟始位、終止位等用于同步的位,所以傳送的效率不高、速度比較慢,而同步方式在數(shù)據(jù)傳送時(shí)省去了起始位和停止位,一幀可以連續(xù)傳送若干個(gè)字節(jié),所以其速度高于異步傳送,但對(duì)硬件結(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波特率波特率:通信中對(duì)數(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ù)字信號(hào)波形的形式出現(xiàn)的;發(fā)送時(shí),在發(fā)送時(shí)鐘作用下將發(fā)送移位寄存器的數(shù)據(jù)串行移位輸出;接收時(shí),在接收時(shí)鐘的作用下將通信線上傳來(lái)的數(shù)據(jù)串行移入移位寄存器。發(fā)送時(shí)鐘和接收時(shí)鐘也可稱(chēng)為移位時(shí)鐘,產(chǎn)生移位時(shí)鐘的電路稱(chēng)為波特率發(fā)生器。為了提高采樣分辨率,準(zhǔn)確地測(cè)定數(shù)據(jù)位的上升沿或下降沿,時(shí)鐘頻率總是高于波特率的若干倍,這個(gè)倍數(shù)稱(chēng)為波特率因子。在單片機(jī)中發(fā)送/接收時(shí)鐘可以由系統(tǒng)時(shí)鐘fosc產(chǎn)生,其波特率因子取為12、32、64,由于fosc為常數(shù),這種方式也稱(chēng)為固定波特率方式;發(fā)送/接收時(shí)鐘也可以由定時(shí)器T1產(chǎn)生,只要改變定時(shí)器的計(jì)數(shù)初值,就能改變由T1產(chǎn)生的時(shí)鐘頻率,因此稱(chēng)為可變波特率方式。5.1.5通信線的連接根據(jù)傳輸線路的電氣特性,串行通信的傳輸速率隨傳輸距離的增加而降低,通信距離不同,電路的連接方式也不相同。如果兩片單片機(jī)相距很近,或在同一塊PCB板上,通信雙方的連接只需3根信號(hào)線:TXD(串行數(shù)據(jù)發(fā)送線)、RXD(串行數(shù)據(jù)接收線)和GND(地線),直接以TTL電平連接,如圖5.7所示。通常需將TTL電平轉(zhuǎn)換為RS232電平,以提高信號(hào)的幅度,增加傳輸距離,如圖5.8所示,這種連接方式最大距離一般不超過(guò)15m。5.1.6RS-232簡(jiǎn)介RS-232是一種串行通信標(biāo)準(zhǔn),是由美國(guó)電機(jī)工業(yè)協(xié)會(huì)(EIA)為了利用電話線及調(diào)制解調(diào)器進(jìn)行數(shù)據(jù)通信而制定的,它對(duì)信號(hào)的功能、電氣特性、連接器等都作了明確的規(guī)定。由于RS-232早期不是專(zhuān)為計(jì)算機(jī)通信設(shè)計(jì)的,因此有25針D型連接器和9針D型連接器,目前的PC機(jī)采用的都是9針D型連接器。這里僅對(duì)9針D型連接器進(jìn)行說(shuō)明。1.RS-232的信號(hào)
RS-232除了基本的數(shù)據(jù)收發(fā)線TXD、RXD外,還有用于收發(fā)雙方聯(lián)絡(luò)、協(xié)調(diào)的握手信號(hào)。(1)基本的數(shù)據(jù)傳送引腳
TXD:數(shù)據(jù)輸出端,串行數(shù)據(jù)由此送出。
RXD:數(shù)據(jù)輸入端,串行數(shù)據(jù)由此輸入。
GND:信號(hào)地線。在串行通信中,最簡(jiǎn)單的通信只需連接這3根線。在PC機(jī)與PC機(jī)之間,PC機(jī)與單片機(jī)之間、單片機(jī)與單片機(jī)之間的數(shù)據(jù)通信大多采用這種連接方式。(2)握手信號(hào)
RTS:請(qǐng)求發(fā)送信號(hào),輸出。
CTS:清除傳送,是對(duì)RTS的響應(yīng)信號(hào),輸入。
DSR:數(shù)據(jù)通信準(zhǔn)備就緒,輸入。
DTR:數(shù)據(jù)終端就緒,表明計(jì)算機(jī)已做好接收準(zhǔn)備,輸出。
DCD:數(shù)據(jù)載波檢測(cè),輸入。以上握手信號(hào)在和調(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信號(hào)通知調(diào)制解調(diào)器;當(dāng)調(diào)制解調(diào)器也作好發(fā)送數(shù)據(jù)的準(zhǔn)備,就向PC機(jī)發(fā)出CTS信號(hào),RTS和CTS這對(duì)握手信號(hào)溝通后,就可以進(jìn)行串行數(shù)據(jù)發(fā)送了。當(dāng)PC機(jī)要從遠(yuǎn)方接收數(shù)據(jù)時(shí),如果PC機(jī)作好了接受準(zhǔn)備,就發(fā)出DTR信號(hào)通知調(diào)制解調(diào)器;當(dāng)調(diào)制解調(diào)器也作好接收數(shù)據(jù)的準(zhǔn)備就向PC機(jī)發(fā)出DSR信號(hào),DTR和DSR這對(duì)握手信號(hào)溝通后,就可以進(jìn)行串行數(shù)據(jù)接收了。2.
接口的電氣特性RS-232采用的是EIA電平,信號(hào)線上的電壓為負(fù)邏輯關(guān)系:邏輯1對(duì)應(yīng)的電壓為-3V~-15V邏輯0對(duì)應(yīng)的電壓為+3V~+15V介于-3V~+3V之間的電壓,低于-15V或高于+15V的電壓是沒(méi)有意義的。3.
電平轉(zhuǎn)換電路RS-232的EIA電平是以正/負(fù)電壓來(lái)表示邏輯0/1的,與TTL電路以低/高電平表示邏輯0/1不同。因此為了實(shí)現(xiàn)與TTL器件的連接,必須在EIA電平與TTL電平之間進(jìn)行電平轉(zhuǎn)換。為此半導(dǎo)體公司特別為RS-232制造了用于信號(hào)電平轉(zhuǎn)換的專(zhuān)用集成電路,常見(jiàn)的型號(hào)有:MAX232、TSC232、ICL232等,它們的引腳及特性是兼容的,可以相互之間代換使用。MAX232芯片內(nèi)部具有電壓倍增電路,只需+5V電源供電,外接4個(gè)電容器,使用非常方便。如圖5.10所示,該芯片可連接兩對(duì)收發(fā)線,既能將兩路TTL電平(T1IN、T2IN)轉(zhuǎn)換成RS232電平(T1OUT、T2OUT)送到傳輸線上,又能將傳輸線上的兩路RS232電平(R1IN、R2IN)轉(zhuǎn)換成TTL電平(R1OUT、R2OUT)。4.
單片機(jī)與PC機(jī)之間的連接在許多應(yīng)用場(chǎ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)換,通過(guò)串行電纜線與PC機(jī)相連接,如圖5.11所示。5.1.7單片機(jī)通過(guò)USB串口與PC機(jī)連接目前在筆記本電腦上基本上已不配置9針的RS-232接口,取而代之的是即插即用的USB接口,一些芯片生產(chǎn)商提供了USB轉(zhuǎn)串口的接口芯片,比如PL2303HX、CH340G,通過(guò)這類(lèi)芯片,將USB接口轉(zhuǎn)換為串行口后與單片機(jī)連接,同時(shí)如果單片機(jī)系統(tǒng)功耗不大的話,還可以通過(guò)USB接口向單片機(jī)供電,這樣反而較傳統(tǒng)的RS-232連接方式更加方便5.1.8認(rèn)識(shí)STC15單片機(jī)的串行口1STC15單片機(jī)串行口結(jié)構(gòu)STC15W4K61S4系列單片機(jī)具有4個(gè)采用UART工作方式的全雙工異步串行通信接口(串口1、串口2、串口3和串口4)。這里主要介紹串口1的使用,串口1的兩個(gè)緩沖器共用的地址碼是99H;串口1的兩個(gè)緩沖器統(tǒng)稱(chēng)串行通信特殊功能寄存器SBUF。串口1有4種工作方式,其中兩種方式的波特率是可變的,另兩種是固定的,以供不同應(yīng)用場(chǎng)合選用。用戶可用軟件設(shè)置不同的波特率和選擇不同的工作方式。主機(jī)可通過(guò)查詢或中斷方式對(duì)接收/發(fā)送進(jìn)行程序處理,使用十分靈活。STC15W4K61S4系列單片機(jī)串行口對(duì)應(yīng)的硬件部分是TxD和RxD。串口1可以在3組引腳之間進(jìn)行切換。通過(guò)設(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ù)寫(xiě)入發(fā)送SBUF,就啟動(dòng)了發(fā)送過(guò)程,按設(shè)定的波特率,每來(lái)一個(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ā)出中斷請(qǐng)求,請(qǐng)求CPU將下一個(gè)數(shù)據(jù)寫(xiě)入發(fā)送SBUF。與此同時(shí)B機(jī)按設(shè)定的波特率,每來(lái)一個(gè)移位脈沖,就會(huì)將RXD引腳上的數(shù)據(jù)移入SBUF,這樣先低位后高位,直到一幀數(shù)據(jù)接收完成(接收SBUF滿),硬件電路自動(dòng)將RI標(biāo)志置1,向CPU發(fā)中斷請(qǐng)求,請(qǐng)求CPU及時(shí)取走剛剛收到的數(shù)據(jù)。2串行口的控制寄存器(1)串行通信控制寄存器SCONMCS-51單片機(jī)串行口的工作方式、接收和發(fā)送控制及串行口的狀態(tài)標(biāo)志都是由寄存器SCON來(lái)控制和指示。其格式如下:位地址9FH9EH9DH9CH9BH9AH99H98H位名SM0/FESM1SM2RENTB8RB8TIRISM0/FE、SM1:當(dāng)PCON寄存器中的SMOD0位為1時(shí),SM0/FE用于幀錯(cuò)誤檢測(cè),當(dāng)檢測(cè)到一個(gè)無(wú)效停止位時(shí),通過(guò)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位,其值由用戶通過(guò)軟件設(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ù),對(duì)應(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)可供程序查詢,也可請(qǐng)求中斷。TI必須用程序清0。RI:接收中斷標(biāo)志在方式0時(shí),接收到第8位數(shù)據(jù)后,該位由硬件置1。在其它方式,當(dāng)接收到停止位時(shí),該位由硬件置1。因此RI=1,表示串行口已接收到一幀數(shù)據(jù),其狀態(tài)可供程序查詢,也可請(qǐng)求中斷。RI必須用程序清0。SCON寄存器可以位尋址。(2)PCON寄存器PCON寄存器中只有其最高位(SMOD位)與串行通信有關(guān),其它位則用于電源管理。位地址B7B6B5B4B3B2B1B0位名SMODSMOD0——GF1GF0PDIDSMOD:波特率加倍位當(dāng)該位設(shè)為“1”時(shí),所設(shè)定的波特率被加倍。注意PCON寄存器是不能位尋址的,所以使用“SMOD=1;”或“SMOD=0;”語(yǔ)句都是非法的,將SMOD置“1”可用“PCON|=0x80;”語(yǔ)句,將SMOD清“0”可用“PCON&=0x7F;”語(yǔ)句。SMOD0:幀錯(cuò)誤檢測(cè)有效控制位。當(dāng)SMOD0為1時(shí),SM0/FE用于幀錯(cuò)誤檢測(cè);當(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í)器(對(duì)內(nèi)部系統(tǒng)時(shí)鐘進(jìn)行計(jì)數(shù));T2_C/T為1時(shí),用作計(jì)數(shù)器(對(duì)引腳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)先級(jí)控制寄存器IP(可位尋址):PS:串口1中斷優(yōu)先級(jí)控制位。PS為0時(shí),串口1中斷為低優(yōu)先級(jí)中斷(優(yōu)先級(jí)0)PS為1時(shí),串行口中斷為高優(yōu)先級(jí)。(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無(wú)效5.1.9串行口的應(yīng)用5.1.9.1
方式0串行口工作方式0又稱(chēng)為“移位寄存器方式”,是將串行口作為同步移位寄存器使用,這時(shí)以RXD端作為數(shù)據(jù)的輸入/輸出端,在TXD端輸出移位脈沖。實(shí)際上是把串行口變作并行口使用,在單片機(jī)應(yīng)用系統(tǒng)中,如果并行口不夠用,可通過(guò)外接串入并出移位寄存器擴(kuò)展輸出口,通過(guò)外接并入串出移位寄存器擴(kuò)展輸入接口。串行口工作于方式0時(shí),數(shù)據(jù)長(zhǎng)度為8位,當(dāng)串行口模式0的通信速度設(shè)置位UARTM0x6AUXR=0時(shí),其波特率固定為SYSclk/12。當(dāng)串行口模式0的通信速度設(shè)置位UARTMOX6/AUXR5=1時(shí),其波特率固定為SYSclk2。現(xiàn)對(duì)方式0發(fā)送數(shù)據(jù)方法進(jìn)行說(shuō)明:(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無(wú)關(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無(wú)關(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í),通過(guò)推導(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ā)送操作過(guò)程及時(shí)序也基本相同。在模式3中,接收到的停止位與SBUF、RB8和R無(wú)關(guān),通過(guò)軟件對(duì)SCON中的SM2、TB8的設(shè)置以及通信協(xié)議的約定,為多機(jī)通信提供了方便。串行通信模式3的波特率也是可變的,可變的波特由定時(shí)器/計(jì)數(shù)器1或定時(shí)器2產(chǎn)生。本任務(wù)選用串口方式1完成單片機(jī)與虛擬終端的通信,我們首先完成一個(gè)簡(jiǎn)單的示例:示例5.1:通過(guò)串行口,將26個(gè)字母‘A’~‘Z’發(fā)送出去,已知單片機(jī)的時(shí)鐘頻率為11.0592MHz。要求采用串口方式1,波特率為9600。任務(wù)硬件設(shè)計(jì):為了便于觀察、調(diào)試,我們?cè)赑roteus環(huán)境下,可加入虛擬終端(VIRTUALTERMINAL),如圖5.15所示,將單片機(jī)的數(shù)據(jù)發(fā)送端TXD與虛擬終端的RXD相連,以監(jiān)視串行口發(fā)出數(shù)據(jù)的情況。任務(wù)軟件設(shè)計(jì)方式1發(fā)送程序的編寫(xiě)方法:(1)根據(jù)波特率,對(duì)定時(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接收程序的編寫(xiě)方法:(1)根據(jù)波特率,對(duì)定時(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)生中斷請(qǐng)求,通知CPU從接收SBUF中讀取數(shù)據(jù)。(5)如果還有數(shù)據(jù)要接收,重復(fù)(3)~(5)。數(shù)據(jù)的發(fā)送程序既可采用查詢方式,也可采用中斷方式。任務(wù)調(diào)試方法如果虛擬終端收不到單片機(jī)發(fā)來(lái)的數(shù)據(jù),可設(shè)置虛擬終端的屬性,打開(kāi)如圖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ī)的串行通信,通過(guò)學(xué)習(xí)板將‘A’~‘Z’26個(gè)字母發(fā)送給PC機(jī),可利用STC-ISP工具提供的串口助手配合實(shí)施:(1)將案例2產(chǎn)生的hex文件通過(guò)STC-ISP寫(xiě)入單片機(jī)。(2)如圖4.18所示,點(diǎn)擊STC-ISP工具的“串口助手”選項(xiàng)卡,在“串口”選擇欄選擇的串口號(hào),必須與STC-ISP界面左上方的“串口號(hào)”保持一致。(3)如圖4.18所示,設(shè)置好波特率(與案例2設(shè)定的波特率一致),接緩沖區(qū)和發(fā)送緩沖區(qū)都選擇文本模式。(4)點(diǎn)擊“打開(kāi)串口”按鈕,該按鈕的標(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ù)碼管顯示矩陣鍵盤(pán)鍵值任務(wù)介紹本任務(wù)將實(shí)現(xiàn)數(shù)碼管顯示矩陣鍵盤(pán)的按鍵值,編寫(xiě)程序,將所按鍵值送LED顯示器顯示。單片機(jī)PC機(jī)串行通信的實(shí)現(xiàn)任務(wù)硬件設(shè)計(jì)圖
行列式鍵盤(pán)與動(dòng)態(tài)LED顯示器接口電路圖5.2.1行列式鍵盤(pán)的基本原理鍵盤(pán)是計(jì)算機(jī)系統(tǒng)中不可缺少的輸入設(shè)備,矩陣式鍵盤(pán)也稱(chēng)為行列式鍵盤(pán),其結(jié)構(gòu)如圖5.19所示。圖中有3根行線和4根列線,按鍵跨接在行線和列線上。3×4的行列結(jié)構(gòu)可以構(gòu)成12個(gè)按鍵的鍵盤(pán),與獨(dú)立式鍵盤(pán)相比,按鍵數(shù)量相同時(shí)占用口線少,因此適用于按鍵數(shù)量較多的場(chǎng)合。如圖5.19中3根行線接到P2.0~P2.2,作為輸出口,4根列線接到P2.4~P2.7,作為輸入口,通常采用掃描法檢測(cè)鍵盤(pán)有
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025中國(guó)大唐集團(tuán)科學(xué)技術(shù)研究總院有限公司系統(tǒng)單位領(lǐng)軍人才招聘筆試參考題庫(kù)附帶答案詳解
- 2024浙江金華市金東糧食收儲(chǔ)有限責(zé)任公司招聘人員筆試參考題庫(kù)附帶答案詳解
- 2024年湖南鴻峪建設(shè)工程有限公司招聘7人筆試參考題庫(kù)附帶答案詳解
- 2024年洛陽(yáng)有色礦業(yè)集團(tuán)有限公司招聘部分崗位人員5人筆試參考題庫(kù)附帶答案詳解
- 2024年下半年池州市投資控股集團(tuán)公開(kāi)招聘工作人員25人筆試參考題庫(kù)附帶答案詳解
- 2024四川九洲線纜有限責(zé)任公司招聘質(zhì)量體系部質(zhì)量技術(shù)崗測(cè)試筆試參考題庫(kù)附帶答案詳解
- 汽車(chē)美容概要培訓(xùn)課件
- 角的初步認(rèn)識(shí)(教學(xué)設(shè)計(jì))-2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)人教版
- Starter Unit 3 Section B project 教學(xué)設(shè)計(jì)- 2024-2025學(xué)年人教版七年級(jí)英語(yǔ)上冊(cè)
- 用四舍五入法試商(教學(xué)設(shè)計(jì))- 2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)人教版
- 大學(xué)生舞蹈創(chuàng)新創(chuàng)業(yè)計(jì)劃書(shū)
- 英語(yǔ)-安徽省滁州市2025年(屆)高三下學(xué)期第一次教學(xué)質(zhì)量監(jiān)測(cè)(滁州一模)試題和答案
- 人教版六年級(jí)下學(xué)期數(shù)學(xué)第四單元《比例》典型題型專(zhuān)項(xiàng)練習(xí)(含答案)
- 污水處理設(shè)施運(yùn)維服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 發(fā)票紅沖申請(qǐng)書(shū)
- 大數(shù)據(jù)技術(shù)在醫(yī)療健康領(lǐng)域的應(yīng)用方案設(shè)計(jì)
- 2025年全國(guó)教育工作會(huì)議學(xué)習(xí)心得
- 《酒店數(shù)字化運(yùn)營(yíng)概論》課件-項(xiàng)目四 任務(wù)1 酒店定價(jià)與收益管理
- 2025屆南通市高三第二次模擬考試數(shù)學(xué)試卷含解析
- 畫(huà)謎課件教學(xué)課件
- 【MOOC】現(xiàn)代郵政英語(yǔ)(English for Modern Postal Service)-南京郵電大學(xué) 中國(guó)大學(xué)慕課MOOC答案
評(píng)論
0/150
提交評(píng)論