




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
單片機(jī)應(yīng)用技術(shù)(第2版)項(xiàng)目5項(xiàng)目4項(xiàng)目3項(xiàng)目2項(xiàng)目1C語言基礎(chǔ)知識單片機(jī)開發(fā)軟件及硬件系統(tǒng)的認(rèn)識中斷系統(tǒng)與定時(shí)/計(jì)數(shù)器的應(yīng)用顯示器與鍵盤接口技術(shù)的應(yīng)用串行接口技術(shù)的應(yīng)用目錄項(xiàng)目7項(xiàng)目6A/D與D/A轉(zhuǎn)換技術(shù)的應(yīng)用單片機(jī)綜合實(shí)踐項(xiàng)目5串行接口技術(shù)的應(yīng)用項(xiàng)目導(dǎo)讀在項(xiàng)目2中介紹51系列單片機(jī)的內(nèi)部結(jié)構(gòu)時(shí),我們已經(jīng)知道在單片機(jī)內(nèi)有一個(gè)可編程、全雙工的串行接口,它是單片機(jī)與外界進(jìn)行信息交換的工具,能夠輕松完成單片機(jī)與其他設(shè)備之間的遠(yuǎn)距離通信。本項(xiàng)目將介紹串行通信的相關(guān)知識,串行接口的結(jié)構(gòu)、原理及其應(yīng)用,使學(xué)生能夠掌握串行接口的工作原理并能根據(jù)功能需求編寫程序。知識目標(biāo) 了解串行通信的基本知識 掌握串行接口的結(jié)構(gòu)及工作過程 掌握串行接口的工作方式 熟悉RS-232C串行通信協(xié)議 掌握串行通信的發(fā)送與接收方式 掌握串行接口的擴(kuò)展方法達(dá)成目標(biāo)達(dá)成目標(biāo)技能目標(biāo)能根據(jù)需要,編寫程序,完成單片機(jī)與計(jì)算機(jī)之間的通信能根據(jù)需要,對串行接口進(jìn)行擴(kuò)展素質(zhì)目標(biāo)養(yǎng)成精益求精、科學(xué)嚴(yán)謹(jǐn)、追求卓越的工匠精神養(yǎng)成腳踏實(shí)地、求真務(wù)實(shí)、團(tuán)結(jié)協(xié)作的工作作風(fēng)加強(qiáng)實(shí)踐練習(xí),注重學(xué)思結(jié)合、知行統(tǒng)一,增強(qiáng)勇于探索的創(chuàng)新精神項(xiàng)目導(dǎo)航設(shè)計(jì)動(dòng)態(tài)口令獲取系統(tǒng)——串行接口技術(shù)的應(yīng)用任務(wù)5.1設(shè)計(jì)遠(yuǎn)程報(bào)警器——串行通信標(biāo)準(zhǔn)的應(yīng)用任務(wù)5.2C設(shè)計(jì)動(dòng)態(tài)口令獲取系統(tǒng)
——串行接口技術(shù)的應(yīng)用
011211101101011011010010011001101010100100110110100101100101110110101001101110101010101011010100110100105.15.1任務(wù)工單掃一掃查看任務(wù)工單任務(wù)描述動(dòng)態(tài)口令是根據(jù)專門的算法生成一個(gè)不可預(yù)測的隨機(jī)數(shù)字組合,每個(gè)口令只能使用一次。隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,動(dòng)態(tài)口令技術(shù)已成為身份認(rèn)證技術(shù)的主流,被廣泛應(yīng)用于金融、網(wǎng)游、電信運(yùn)營、電子商務(wù)等領(lǐng)域。請?jiān)O(shè)計(jì)一個(gè)動(dòng)態(tài)口令獲取系統(tǒng),以提高身份認(rèn)證的安全性。任務(wù)實(shí)施1.整體設(shè)計(jì)思想
2.硬件設(shè)計(jì)3.軟件設(shè)計(jì)4.仿真調(diào)試詳細(xì)內(nèi)容掃碼觀看5.1.1串行通信的基本知識數(shù)據(jù)的各位在多根數(shù)據(jù)線上同時(shí)傳送,如圖所示。1)串行通信并行通信2)通信是指不同系統(tǒng)之間的信息交換。通信有兩種不同的方式,即串行通信和并行通信。bit變量名=變量值;數(shù)據(jù)的各位在一根數(shù)據(jù)線上按順序一位一位地傳送,如圖所示。5.1.1串行通信的基本知識串行通信與并行通信的比較如表所示。下面主要介紹串行通信的相關(guān)知識。項(xiàng)目串行通信并行通信數(shù)據(jù)傳送特點(diǎn)一位一位按順序傳送各位同時(shí)傳送傳輸速度慢快傳輸線少多成本低高適用場合
支持遠(yuǎn)距離傳送,如計(jì)算機(jī)與遠(yuǎn)程終端之間或終端與終端之間通常采用串行通信
不支持遠(yuǎn)距離傳送,主要用于近距離傳送,如CPU與內(nèi)部寄存器及接口之間常采用并行通信5.1.1串行通信的基本知識異步通信方式是一種不連續(xù)傳送數(shù)據(jù)的方式。數(shù)據(jù)通常是以字符為單位組成字符幀進(jìn)行傳送的,字符幀由發(fā)送端一幀一幀地發(fā)送,通過傳輸線由接收端一幀一幀地接收。發(fā)送端和接收端由各自的時(shí)鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個(gè)時(shí)鐘彼此獨(dú)立,可以不同步。1.串行通信方式串行通信方式有異步通信方式和同步通信方式兩種。1)異步通信方式5.1.1串行通信的基本知識在異步通信方式中,接收端是靠字符幀的格式來判斷發(fā)送端是何時(shí)開始及何時(shí)結(jié)束發(fā)送數(shù)據(jù)的。字符幀也稱數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位等組成,其格式如圖所示。5.1.1串行通信的基本知識起始位:位于字符幀首位,只占1位,為低電平,用于向接收端表示發(fā)送端開始發(fā)送一幀字符。數(shù)據(jù)位:位于起始位后面,一般為5~8位。數(shù)據(jù)位在傳送時(shí),低位在前,高位在后。奇偶校驗(yàn)位:位于數(shù)據(jù)位后面,只占1位,用于表示串行通信采用的是奇校驗(yàn)還是偶校驗(yàn)。停止位:位于字符幀末位,一般為1~2位,為高電平,用于向接收端表示一幀字符已發(fā)送完畢。5.1.1串行通信的基本知識經(jīng)驗(yàn)傳承在串行通信中,停止位之后緊接著可以是下一幀字符的起始位,也可以是若干個(gè)空閑位(高電平),可由用戶根據(jù)需要決定。5.1.1串行通信的基本知識異步通信中額外的附加位(如起始位、停止位等)較多,因此,數(shù)據(jù)傳輸速度較慢,但是對硬件的要求較低,實(shí)現(xiàn)起來比較容易,是單片機(jī)中常用的數(shù)據(jù)傳送方式。5.1.1串行通信的基本知識2)同步通信方式同步通信方式是一種連續(xù)傳送數(shù)據(jù)的方式。數(shù)據(jù)通常是以多個(gè)字符組成的數(shù)據(jù)塊為單位進(jìn)行傳送的。同步通信時(shí),接收端和發(fā)送端必須先建立同步(即雙方的時(shí)鐘要調(diào)整到同一個(gè)頻率),然后才能進(jìn)行數(shù)據(jù)的傳輸。在同步通信方式中,接收端是靠數(shù)據(jù)的格式來接收數(shù)據(jù)的。數(shù)據(jù)由同步字符、數(shù)據(jù)字符和校驗(yàn)字符等組成,其格式如圖所示。5.1.1串行通信的基本知識同步字符:位于數(shù)據(jù)塊之前,為1~2個(gè)字符,用于確認(rèn)數(shù)據(jù)字符的開始。接收端接收到同步字符后,便確認(rèn)有效數(shù)據(jù)字符的傳送開始。數(shù)據(jù)字符:位于同步字符之后,個(gè)數(shù)不受限制,由需要傳輸?shù)臄?shù)據(jù)塊的長度決定。校驗(yàn)字符:位于數(shù)據(jù)塊之后,為1~2個(gè)字符,用于校驗(yàn)接收端接收到的數(shù)據(jù)字符的正確性。5.1.1串行通信的基本知識同步通信數(shù)據(jù)傳輸速度較快,但是要求發(fā)送時(shí)鐘和接收時(shí)鐘保持嚴(yán)格同步,對硬件的要求較高,適合于需要傳送大量數(shù)據(jù)的場合。5.1.1串行通信的基本知識2.串行通信制式串行通信按照數(shù)據(jù)傳送的方向可分為單工、半雙工和全雙工三種制式,如圖所示。單工通信半雙工通信全雙工通信5.1.1串行通信的基本知識單工制式:數(shù)據(jù)只能單向傳送。通信雙方只具有發(fā)送數(shù)據(jù)或接收數(shù)據(jù)一種功能,若一方為發(fā)送端,則另一方只能是接收端,它們形成單向連接,只允許數(shù)據(jù)按照一個(gè)固定的方向傳送。半雙工制式:數(shù)據(jù)可以雙向傳送。通信雙方均具有發(fā)送數(shù)據(jù)和接收數(shù)據(jù)兩種功能,但發(fā)送和接收不能同時(shí)進(jìn)行。通信時(shí),數(shù)據(jù)只能在一個(gè)方向上傳送。全雙工制式:數(shù)據(jù)可以雙向傳送。通信雙方均具有發(fā)送數(shù)據(jù)和接收數(shù)據(jù)兩種功能,而且通信時(shí),數(shù)據(jù)能夠同時(shí)在兩個(gè)方向上傳送。5.1.1串行通信的基本知識3.波特率波特率定義為每秒傳送二進(jìn)制數(shù)的位數(shù),單位為bit/s(或bps),即位/秒。波特率用于表示數(shù)據(jù)傳輸?shù)乃俣?,波特率越高,?shù)據(jù)傳輸?shù)乃俣仍娇?。假設(shè)數(shù)據(jù)傳輸速度為100字符/秒,而每個(gè)字符包括10個(gè)代碼位(1個(gè)起始位、1個(gè)奇偶校驗(yàn)位、1個(gè)停止位、7個(gè)數(shù)據(jù)位),則波特率為100字符/秒×10位/字符=1000位/秒5.1.251系列單片機(jī)的串行接口1.串行接口的結(jié)構(gòu)及工作過程1)串行接口的結(jié)構(gòu)51系列單片機(jī)串行接口是一個(gè)可編程的全雙工串行接口,能同時(shí)進(jìn)行數(shù)據(jù)的發(fā)送和接收,也能作為同步移位寄存器使用。51系列單片機(jī)串行接口主要由輸入移位寄存器、串行接口數(shù)據(jù)緩沖器(SBUF)、串行接口控制寄存器(SCON)和波特率發(fā)生器構(gòu)成,并通過外部引腳串行通信數(shù)據(jù)發(fā)送端TXD(P3.1)、串行通信數(shù)據(jù)接收端RXD(P3.0)與外界通信。串行接口的結(jié)構(gòu)如圖所示。5.1.251系列單片機(jī)的串行接口串行接口的結(jié)構(gòu)5.1.1串行通信的基本知識輸入移位寄存器:用于將外部設(shè)備輸入的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)。串行接口數(shù)據(jù)緩沖器(SBUF):是一個(gè)8位寄存器,字節(jié)地址為99H,用于存放將要發(fā)送和接收到的數(shù)據(jù)。SBUF包括發(fā)送SBUF和接收SBUF,它們共用邏輯地址99H,但實(shí)際上它們有相互獨(dú)立的物理空間。CPU對發(fā)送SBUF只能寫入不能讀出,對接收SBUF只能讀出不能寫入。串行接口控制寄存器(SCON):是一個(gè)8位寄存器,字節(jié)地址為98H,用于控制和檢測串行接口的工作狀態(tài)。波特率發(fā)生器:由定時(shí)器T1構(gòu)成,用于產(chǎn)生發(fā)送和接收數(shù)據(jù)所需要的移位脈沖。5.1.251系列單片機(jī)的串行接口CPU不停地檢測引腳RXD上的信號,當(dāng)信號中出現(xiàn)低電平時(shí),在接收控制電路的控制下,按設(shè)定好的波特率,每來一次移位脈沖,讀取外部設(shè)備發(fā)送的一位數(shù)據(jù)到輸入移位寄存器。一幀數(shù)據(jù)傳輸結(jié)束后,數(shù)據(jù)被存入接收SBUF,同時(shí)向CPU發(fā)出中斷請求,RI位置“1”;CPU響應(yīng)中斷后,開始接收下一幀數(shù)據(jù)。1) 串行接口發(fā)送數(shù)據(jù)的工作過程 串行接口接收數(shù)據(jù)的工作過程2)CPU通過內(nèi)部總線將并行數(shù)據(jù)寫入發(fā)送SBUF,在發(fā)送控制電路的控制下,按設(shè)定好的波特率,每來一次移位脈沖,通過引腳TXD向外輸出一位數(shù)據(jù)。一幀數(shù)據(jù)發(fā)送結(jié)束后,向CPU發(fā)出中斷請求,TI位置“1”;CPU響應(yīng)中斷后,開始準(zhǔn)備發(fā)送下一幀數(shù)據(jù)。2)串行接口的工作過程串行接口的工作過程可分為發(fā)送數(shù)據(jù)和接收數(shù)據(jù)兩個(gè)過程。5.1.251系列單片機(jī)的串行接口在串行通信中,加在數(shù)據(jù)字符開始和結(jié)束部分的起始位、停止位等是由硬件電路直接完成的。5.1.251系列單片機(jī)的串行接口2.串行接口的相關(guān)寄存器串行接口的相關(guān)寄存器有串行接口控制寄存器(SCON)、電源控制寄存器(PCON)等。5.1.251系列單片機(jī)的串行接口1)SCONSCON既可進(jìn)行位尋址,也可進(jìn)行字節(jié)尋址。SCON的位名稱及位地址如表所示。SCOND7D6D5D4D3D2D1D0位名稱SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H
5.1.251系列單片機(jī)的串行接口SM0和SM1:串行接口的工作方式選擇位。其控制的4種工作方式如表所示。SM0SM1工作方式功能波特率0008位同步移位寄存器fosc/1201110位UART可變10211位UARTfosc/64或fosc/3211311位UART可變注:UART是通用異步接收/發(fā)送器的英文縮寫,fosc是晶體振蕩器的頻率。
5.1.251系列單片機(jī)的串行接口SM2:多機(jī)通信控制位。在工作方式0中,SM2=0。在工作方式1中,若SM2=1,則只有收到有效停止位時(shí),RI才置“1”。在工作方式2和工作方式3中,處于接收狀態(tài)時(shí),若SM2=1且接收數(shù)據(jù)的第9位RB8=1,則RI置“1”;處于發(fā)送狀態(tài)時(shí),若SM2=0,則不論接收數(shù)據(jù)的第9位RB8為“0”還是“1”,TI、RI都以正常方式被激活。REN:串行接收允許控制位。當(dāng)REN=1時(shí),允許串行接口接收數(shù)據(jù);當(dāng)REN=0時(shí),禁止串行接口接收數(shù)據(jù)。REN由軟件進(jìn)行置位或清“0”。
5.1.251系列單片機(jī)的串行接口TB8:發(fā)送數(shù)據(jù)的第9位。在工作方式2和工作方式3中,TB8是發(fā)送數(shù)據(jù)的第9位,可根據(jù)需要由軟件置“1”或清“0”。TB8一般可作為奇偶校驗(yàn)位(單機(jī)通信)。在多機(jī)通信中,TB8可作為區(qū)別地址幀和數(shù)據(jù)幀的標(biāo)志位,TB8=0時(shí)為數(shù)據(jù)幀,TB8=1時(shí)為地址幀。在工作方式0和工作方式1中,該位未使用。
5.1.251系列單片機(jī)的串行接口RB8:接收數(shù)據(jù)的第9位。在工作方式2和工作方式3中,RB8是接收數(shù)據(jù)的第9位,可作為奇偶校驗(yàn)位(單機(jī)通信)。在多機(jī)通信中,RB8可作為區(qū)別地址幀和數(shù)據(jù)幀的標(biāo)志位,RB8=0時(shí)為數(shù)據(jù)幀,RB8=1時(shí)為地址幀。在工作方式1中,若SM2=1,則RB8用于存放接收到的停止位。在工作方式0中,該位未使用。TI和RI:發(fā)送中斷請求標(biāo)志位和接收中斷請求標(biāo)志位,這兩位在項(xiàng)目3中已經(jīng)介紹過,此處不再贅述。5.1.251系列單片機(jī)的串行接口2)PCONPCON是一個(gè)8位專用寄存器,主要是為CHMOS型單片機(jī)的電源控制而設(shè)置的,字節(jié)地址為87H,不可進(jìn)行位尋址。PCON的位名稱如表所示。PCOND7D6D5D4D3D2D1D0位名稱SMOD———GF1GF0PDIDL
5.1.251系列單片機(jī)的串行接口其中,只有SMOD與串行通信有關(guān),其他各位用于電源管理,此處不詳細(xì)介紹。SMOD:串行接口波特率倍增位。在工作方式1、工作方式2和工作方式3中,若SMOD=1,則串行接口波特率增加一倍;若SMOD=0,則串行接口波特率不加倍。系統(tǒng)復(fù)位時(shí),SMOD=0。5.1.251系列單片機(jī)的串行接口在HMOS型單片機(jī)中,PCON除了最高位SMOD外,其他位都是虛設(shè)的。5.1.251系列單片機(jī)的串行接口3.串行接口的工作方式DIGITALVIRTUAL51系列單片機(jī)串行接口有4種工作方式,分別是工作方式0、工作方式1、工作方式2和工作方式3。1)工作方式0在工作方式0下,串行接口為波特率固定的(波特率固定為fosc/12)8位同步移位寄存器。發(fā)送或接收的一幀數(shù)據(jù)由8位數(shù)據(jù)位組成,不設(shè)起始位和停止位,其一幀數(shù)據(jù)格式如圖所示。5.1.251系列單片機(jī)的串行接口DIGITALVIRTUAL在工作方式0下,無論是發(fā)送數(shù)據(jù)還是接收數(shù)據(jù),RXD引腳都連接串行數(shù)據(jù)線,TXD引腳都連接移位脈沖線。發(fā)送數(shù)據(jù)時(shí),由TXD引腳送出移位脈沖,而由RXD引腳送出串行數(shù)據(jù)。接收數(shù)據(jù)時(shí),由TXD引腳送出移位脈沖,而由RXD引腳接收串行數(shù)據(jù)。工作方式0主要用于外接移位寄存器來擴(kuò)展I/O端口,或外接同步輸入輸出設(shè)備。5.1.251系列單片機(jī)的串行接口2)工作方式1發(fā)送數(shù)據(jù)時(shí),CPU執(zhí)行一條數(shù)據(jù)寫入SBUF的指令,啟動(dòng)發(fā)送器發(fā)送數(shù)據(jù),數(shù)據(jù)從TXD引腳輸出。當(dāng)發(fā)送完一幀數(shù)據(jù)后,TI置“1”。工作方式1所傳送的波特率取決于定時(shí)器T1的溢出率和PCON中SMOD位的值。在工作方式1下,串行接口為波特率可調(diào)的10位異步通信串行接口。發(fā)送或接收的一幀數(shù)據(jù)包括1位起始位、8位數(shù)據(jù)位和1位停止位,其一幀數(shù)據(jù)格式如圖所示。發(fā)送數(shù)據(jù)5.1.251系列單片機(jī)的串行接口當(dāng)RI=0、REN=1時(shí),允許串行接口接收數(shù)據(jù),串行接口采樣RXD引腳的狀態(tài)。當(dāng)采樣到由1到0的跳變時(shí),啟動(dòng)接收器接收數(shù)據(jù)。當(dāng)檢測到起始位有效時(shí)(起始位為0),開始接收一幀數(shù)據(jù)。當(dāng)滿足RI=0且停止位為1或SM2=0的條件時(shí),接收數(shù)據(jù)進(jìn)入SBUF,停止位進(jìn)入RB8位,同時(shí)RI置“1”;否則接收數(shù)據(jù)丟失。接受數(shù)據(jù)5.1.251系列單片機(jī)的串行接口在工作方式1下接收數(shù)據(jù)時(shí),應(yīng)先用軟件清除RI或SM2的值。5.1.251系列單片機(jī)的串行接口3)工作方式2發(fā)送數(shù)據(jù)時(shí),先將TB8位由軟件置“1”,然后將要發(fā)送的數(shù)據(jù)寫入SBUF,啟動(dòng)發(fā)送器發(fā)送數(shù)據(jù)。寫SBUF的指令,除了將8位數(shù)據(jù)送入SBUF外,同時(shí)還將TB8裝入輸出移位寄存器的第9位,并通知發(fā)送控制電路進(jìn)行一次發(fā)送,一幀數(shù)據(jù)即從TXD引腳輸出。一幀數(shù)據(jù)發(fā)送完畢后,CPU自動(dòng)將TI置“1”,在發(fā)送下一幀數(shù)據(jù)之前,TI必須清“0”。在工作方式2下,串行接口為11位異步通信串行接口,波特率與SMOD位的值有關(guān)。發(fā)送或接收的一幀數(shù)據(jù)包括1位起始位、8位數(shù)據(jù)位、1位奇偶校驗(yàn)位和1位停止位,其一幀數(shù)據(jù)格式如圖所示。發(fā)送數(shù)據(jù)5.1.251系列單片機(jī)的串行接口當(dāng)REN=1時(shí),允許串行接口接收數(shù)據(jù)。當(dāng)串行接口采樣到RXD引腳由1到0的跳變且檢測到起始位有效時(shí),啟動(dòng)接收器開始接收一幀數(shù)據(jù)。當(dāng)接收器接收到第9位數(shù)據(jù)后,若同時(shí)滿足以下兩個(gè)條件:RI=0且SM2=0,或接收到的第9位數(shù)據(jù)為1,則接收數(shù)據(jù)有效,將8位數(shù)據(jù)送入SBUF,第9位送入RB8,并將RI置“1”。若不滿足上述兩個(gè)條件,則數(shù)據(jù)丟失。接受數(shù)據(jù)5.1.251系列單片機(jī)的串行接口DIGITALVIRTUAL4)工作方式3在工作方式3下,串行接口為波特率可變的11位異步通信串行接口。除了波特率不同以外,工作方式3和工作方式2完全相同。5.1.251系列單片機(jī)的串行接口在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的波特率有一定的約定。51系列單片機(jī)的串行接口有4種工作方式,其中,工作方式0和工作方式2的波特率是固定的,工作方式1和工作方式3的波特率是可變的。下面進(jìn)行具體介紹。4.串行接口的波特率設(shè)定5.1.251系列單片機(jī)的串行接口1)工作方式0的波特率設(shè)定在工作方式0下,波特率固定為fosc的1/12,與PCON中SMOD位的值無關(guān)。其計(jì)算公式為2)工作方式2的波特率設(shè)定在工作方式2下,波特率與PCON中SMOD位的值有關(guān)。當(dāng)SMOD=0時(shí),波特率為fosc的1/64;當(dāng)SMOD=1時(shí),波特率為fosc的1/32。其計(jì)算公式為5.1.251系列單片機(jī)的串行接口3)工作方式1或工作方式3的波特率設(shè)定在工作方式1或工作方式3下,波特率由定時(shí)器T1的溢出率與SMOD位的值共同決定。其計(jì)算公式為式中:T1溢出率——一次定時(shí)時(shí)間的倒數(shù),即式中:M——定時(shí)器T1的工作方式所決定的計(jì)數(shù)器的位數(shù);X——計(jì)數(shù)器初始值。于是5.1.251系列單片機(jī)的串行接口定時(shí)器T1用作波特率發(fā)生器時(shí)應(yīng)禁止T1中斷。5.1.251系列單片機(jī)的串行接口約定是行業(yè)制定的標(biāo)準(zhǔn),是實(shí)際應(yīng)用中要嚴(yán)格遵守的條約,更是科技創(chuàng)新路上不可忽視的重要存在。“科技是國之利器,國家賴之以強(qiáng),企業(yè)賴之以贏,人民生活賴之以好?!苯裉欤袊芽萍紕?chuàng)新擺在更加重要的位置,吹響建設(shè)世界科技強(qiáng)國的號角,是為夢想尋找引擎、為藍(lán)圖謀劃線路。使命在肩,前程璀璨,中國科技創(chuàng)新的春天,路正寬,風(fēng)正暖!5.1.251系列單片機(jī)的串行接口【例5-1】
設(shè)兩機(jī)通信的波特率為2400bit/s,若fosc=6MHz,串行接口處于工作方式1,試計(jì)算定時(shí)器T1的初值X。【問題分析】
定時(shí)器T1作為波特率發(fā)生器使用時(shí),通常將其工作方式設(shè)置為工作方式2,但要禁止T1中斷,以免產(chǎn)生不必要的中斷帶來頻率誤差。5.1.251系列單片機(jī)的串行接口【解】
由串行接口工作方式1的波特率計(jì)算公式可得初值X為 X=-fosc
X=-當(dāng)SMOD=0時(shí),X≈250=FAH;當(dāng)SMOD=1時(shí),X≈243=F3H。表列出了一些常用波特率及其產(chǎn)生條件。串行接口的
工作方式波特率
(bit/s)fosc
(MHz)SMOD定時(shí)器T1工作方式初始值工作方式0100000012××××工作方式2375000121×××工作方式1
或工作方式3120011.0592002E8H240011.0592002F4H480011.0592002FAH960011.0592002FDH1920011.0592102FDH5.1.251系列單片機(jī)的串行接口知識鏈接設(shè)置串行接口波特率的步驟如下。(1)寫TMOD,設(shè)置定時(shí)器T1的工作方式。(2)給TH1和TL1賦值,設(shè)置定時(shí)器T1的初值X。(3)置位TR1,啟動(dòng)定時(shí)器T1工作,即啟動(dòng)波特率發(fā)生器。例5-1中波特率的設(shè)置參考代碼如下。TMOD=0x20; /*定時(shí)器T1工作在工作方式2下*/TL1=0xF3; /*設(shè)置初值,波特率為2400bit/s*/TH1=0xF3;TR1=1;5.1.3串行接口擴(kuò)展技術(shù)當(dāng)單片機(jī)本身的并行端口不能滿足需要時(shí),可以通過串行接口進(jìn)行擴(kuò)展。此時(shí)采用工作方式0,外接一個(gè)串行輸入并行輸出的移位寄存器,可以實(shí)現(xiàn)由串行到并行的轉(zhuǎn)換。常用的移轉(zhuǎn)換芯片有4094、74LS164等。另外,串行接口也可以外接并行輸入串行輸出的移位寄存器,來實(shí)現(xiàn)由并行到串行的轉(zhuǎn)換,常用的轉(zhuǎn)換芯片有4014、74LS165等。
筆段LCD液晶顯示器
字符LCD液晶顯示器5.1.3串行接口擴(kuò)展技術(shù)1.串行接口擴(kuò)展并行輸出端口利用51系列單片機(jī)的串行接口擴(kuò)展并行輸出端口的接線圖如圖所示,圖中的74LS164芯片為串行輸入并行輸出移位寄存器。當(dāng)一幀數(shù)據(jù)寫入SBUF時(shí),串行接口將8位數(shù)據(jù)以fosc/12的波特率從RXD引腳輸出(低位在前),同時(shí)由TXD引腳輸出同步移位脈沖。一幀數(shù)據(jù)發(fā)送完畢后,硬件將TI置“1”,請求中斷。在再次發(fā)送數(shù)據(jù)之前,必須用軟件將TI清“0”。5.1.3串行接口擴(kuò)展技術(shù)視野拓展74LS164芯片的引腳排列如圖所示。各引腳功能如下。A、B:串行數(shù)據(jù)輸入端。Q0~Q7:并行數(shù)據(jù)輸出端。
:清“0”端,低電平有效。CLK:時(shí)鐘脈沖輸入端,上升沿有效。GND:接地端。VCC:接電源端。74LS164芯片5.1.3串行接口擴(kuò)展技術(shù)【例5-2】利用74LS164芯片擴(kuò)展串行接口,實(shí)現(xiàn)對8位信號燈的流水控制。串行接口控制8位信號燈的原理圖如圖所示?!締栴}分析】
單片機(jī)在工作方式0下,通過RXD引腳發(fā)送串行數(shù)據(jù),串行數(shù)據(jù)的傳送是否完成可通過TI的狀態(tài)來判斷。5.1.3串行接口擴(kuò)展技術(shù)#include<reg51.h>unsignedchardat=0x01; /*定義發(fā)送數(shù)據(jù)*/voiddelay1(unsignedinti); /*延時(shí)函數(shù)聲明*/main(){ unsignedchari; SCON=0x00; /*串行接口工作在工作方式0*/ while(1){ for(i=0;i<8;i++){ SBUF=~dat; /*傳送8位數(shù)據(jù)*/ while(!TI); /*查詢TI是否由0變?yōu)?*/【參考代碼】5.1.3串行接口擴(kuò)展技術(shù)
TI=0; /*軟件使TI清“0”*/ dat<<=1; /*輸出數(shù)據(jù)左移1位*/ delay1(12000); } }}voiddelay1(unsignedintt){ inti; for(i=0;i<t;i++);}5.1.3串行接口擴(kuò)展技術(shù)利用51系列單片機(jī)的串行接口擴(kuò)展并行輸入端口的接線圖如圖所示,圖中的74LS165芯片為并行輸入串行輸出移位寄存器。在滿足REN=1和RI=0的條件下,串行接口從RXD引腳以fosc/12的波特率輸入數(shù)據(jù)(低位在前),當(dāng)接收完8位數(shù)據(jù)后,硬件將RI置“1”,請求中斷。在再次接收數(shù)據(jù)之前,必須由軟件將RI清“0”。2.串行接口擴(kuò)展并行輸入端口5.1.3串行接口擴(kuò)展技術(shù)視野拓展74LS165芯片74LS165芯片的引腳排列如圖所示。各引腳功能如下。SH/:移位/置數(shù)端,低電平有效。D0~D7:并行數(shù)據(jù)輸入端。QH、
:串行數(shù)據(jù)輸出端。CP、
:時(shí)鐘脈沖輸入端。GND:接地端。VCC:接電源端。5.1.3串行接口擴(kuò)展技術(shù)【例5-2】并行轉(zhuǎn)串行電路圖如圖所示,74LS165將指撥開關(guān)S1~S8的狀態(tài)轉(zhuǎn)換成串行數(shù)據(jù),通過RXD引腳傳輸給單片機(jī)。編寫程序?qū)崿F(xiàn)如下功能:單片機(jī)將指撥開關(guān)的狀態(tài)反映到P0所連接的LED上。5.1.3串行接口擴(kuò)展技術(shù)【問題分析】
74LS165加載了S1~S8上的并行數(shù)據(jù)后,依照TXD引腳傳來的移位脈沖,將數(shù)據(jù)一位一位地從RXD引腳傳入單片機(jī)中。當(dāng)SBUF數(shù)據(jù)填滿后產(chǎn)生RI中斷,然后將緩沖器SBUF中的數(shù)據(jù)通過P0輸出。并行轉(zhuǎn)串行程序設(shè)計(jì)流程如圖所示。5.1.3串行接口擴(kuò)展技術(shù)/**************************
并行轉(zhuǎn)串行***************************/#include<reg52.h>sbitload=P3^1; /*聲明P3^1位置*/main(){ SCON=0x11; /*串行接口工作在工作方式0,REN=1,RI=1*/ while(1) {【參考代碼】5.1.3串行接口擴(kuò)展技術(shù) load=0; /*輸出負(fù)脈沖,讓74LS165加載數(shù)據(jù)*/ if(load==0); /*延長負(fù)脈沖寬度*/ if(load==0); /*延遲負(fù)脈沖寬度*/ load=1; /*恢復(fù)高電平*/ RI=0; /*清除RI*/ while(RI==0); /*等待RI輸入中斷*/ P0=SBUF; /*RI=1時(shí)(接收完成),輸出至P0*/ }}課堂小結(jié)1串行通信的基本知識251系列單片機(jī)的串行接口3串行接口擴(kuò)展技術(shù)C設(shè)計(jì)遠(yuǎn)程報(bào)警器
——串行通信標(biāo)準(zhǔn)的應(yīng)用
011211101101011011010010011001101010100100110110100101100101110110101001101110101010101011010100110100105.25.2任務(wù)工單掃一掃查看任務(wù)工單任務(wù)描述近年來,入室盜竊現(xiàn)象屢有發(fā)生,傳統(tǒng)的防盜裝置通常是在傳感器接收到異樣的信息后發(fā)出警報(bào)聲來通知戶主。由于這種防盜裝置當(dāng)用戶不在家時(shí)便聽不到報(bào)警聲,形同虛設(shè),因此,人們希望有一套防盜系統(tǒng)能夠遠(yuǎn)程將家中的情況準(zhǔn)確快速地傳遞給自己。遠(yuǎn)程防盜系統(tǒng)隱蔽性強(qiáng)、安全性高,具有很強(qiáng)的使用價(jià)值。請?jiān)O(shè)計(jì)一個(gè)遠(yuǎn)程報(bào)警器,并實(shí)現(xiàn)遠(yuǎn)程報(bào)警功能。任務(wù)實(shí)施詳細(xì)內(nèi)容掃碼觀看1.整體設(shè)計(jì)思想
2.硬件設(shè)計(jì)3.軟件設(shè)計(jì)4.仿真調(diào)試5.2.1RS-232C串行通信協(xié)議RS-232C是由美國電子工業(yè)協(xié)會(huì)(EIA)制定的,是目前使用最多的一種異步串行通信總線標(biāo)準(zhǔn)。其中“RS”是recommendedstandard(推薦標(biāo)準(zhǔn))的縮寫,“232”是該標(biāo)準(zhǔn)的標(biāo)識,“C”表示此標(biāo)準(zhǔn)已修改了三次。RS-232C定義了數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通信設(shè)備(DCE)之間的物理接口標(biāo)準(zhǔn),采用標(biāo)準(zhǔn)接口后,能夠方便地把單片機(jī)、外部設(shè)備以及測量儀器等有機(jī)地連接起來構(gòu)成一個(gè)測控系統(tǒng)。例如,使用一根電話線進(jìn)行通信,計(jì)算機(jī)和調(diào)制解調(diào)器(MODEM)之間的連線是根據(jù)RS-232C標(biāo)準(zhǔn)連接的,其連接方式及通信原理如圖所示。5.2.1RS-232C串行通信協(xié)議1.RS-232C的電氣標(biāo)準(zhǔn)RS-232C的電氣標(biāo)準(zhǔn)采用負(fù)邏輯,電平值為?5~?15V的低電平表示邏輯“1”;電平值為+5~+15V的高電平表示邏輯“0”。由于TTL電路采用的是正邏輯,因此RS-232C不能直接與TTL電路連接,使用時(shí)必須加上適當(dāng)?shù)碾娖睫D(zhuǎn)換電路進(jìn)行電平轉(zhuǎn)換,否則將使TTL電路燒毀。目前較為常用的電平轉(zhuǎn)換芯片有MAX232、MC1488和MC1489等。5.2.1RS-232C串行通信協(xié)議知識鏈接MAX232芯片是MAXIM公司推出的一款兼容RS-232C標(biāo)準(zhǔn)的芯片,其內(nèi)部有一個(gè)電源電壓變換器,可以將輸入的+5V電壓轉(zhuǎn)換成RS-232C輸出電平所需要的±12V電壓。采用這種芯片的接口電路,只需要單一的+5V電源即可。MAX232芯片的引腳結(jié)構(gòu)如圖5-31所示。其中,引腳1~6用于電源電壓轉(zhuǎn)換;引腳7~10和引腳11~14構(gòu)成兩組TTL信號電平和RS-232C信號電平的轉(zhuǎn)換電路,對應(yīng)引腳可直接與單片機(jī)串行接口的TTL電平引腳和RS-232C電平引腳相連。MAX232芯片5.2.1RS-232C串行通信協(xié)議2.RS-232C引腳功能RS-232C標(biāo)準(zhǔn)接口采用的是25位引腳(針)串行接口,如圖所示。大部分通信系統(tǒng)只用到其中的9個(gè)引腳,因此,實(shí)際工作中常采用9針串行接口,其原理圖和實(shí)物圖如圖所示。另外,在一些簡單的通信系統(tǒng)中,只使用發(fā)送數(shù)據(jù)、接收數(shù)據(jù)和地線3個(gè)引腳就可以完成數(shù)據(jù)通信。25針串行接口原理圖9針串行接口原理圖9針串行接口實(shí)物圖5.2.1RS-232C串行通信協(xié)議RS-232C各位引腳的定義如表所示。RS-232C引腳信號可分為數(shù)據(jù)發(fā)送與接收和聯(lián)絡(luò)兩部分,其中,RXD和TXD是數(shù)據(jù)發(fā)送與接收信號,用于DTE與DCE之間交換信息;其他信號屬于聯(lián)絡(luò)信號,用于保證信息正確地傳輸。5.2.1RS-232C串行通信協(xié)議引腳定義(助記符)引腳定義(助記符)1保護(hù)地(PG)14輔助通道發(fā)送數(shù)據(jù)(STXD)2發(fā)送數(shù)據(jù)(TXD)15發(fā)送時(shí)鐘(TXC)3接收數(shù)據(jù)(RXD)16輔助通道接收數(shù)據(jù)(SRXD)4請求發(fā)送(RTS)17接收時(shí)鐘(RXC)5清除發(fā)送(CTS)18未定義6數(shù)據(jù)準(zhǔn)備就緒(DSR)19輔助通道請求發(fā)送(SRTS)7地線(GND)20數(shù)據(jù)終端準(zhǔn)備就緒(DTR)8接收線路信號檢測(DCD)21信號質(zhì)量檢測9未定義22振鈴指示(RI)10未定義23數(shù)據(jù)信號速率選擇11未定義24發(fā)送時(shí)鐘12輔助通道接收線路信號檢測(SDCD)25未定義13輔助通道允許發(fā)送(SCTS)
5.2.1RS-232C串行通信協(xié)議3.RS-232C的通信距離和速率RS-232C規(guī)定最大的負(fù)載電容為2500pF,這個(gè)電容限制了傳輸距離和傳輸速率,在不使用調(diào)制解調(diào)器的情況下,RS-232C能夠可靠進(jìn)行數(shù)據(jù)傳輸?shù)淖畲笸ㄐ啪嚯x為15m。對于RS-232C遠(yuǎn)程通信,必須通過調(diào)制解調(diào)器進(jìn)行連接。RS-232C接口最大傳輸速率為20000bit/s,能夠提供的傳輸速率主要有:1200bit/s、2400bit/s、4800bit/s、9600bit/s、19200bit/s等。另外,由于傳輸距離與傳輸速率成反比關(guān)系,因此適當(dāng)?shù)亟档蛡鬏斔俾?,可以延長RS-232C的傳輸距離,提高通信的穩(wěn)定性。在儀器儀表或工業(yè)控制場合,最常見的傳輸速率為9600bit/s。5.2.2串行通信的發(fā)送與接收方式串行通信包含發(fā)送與接收兩部分,發(fā)送與接收雙方須采用同一方式進(jìn)行通信,常采用的方式有查詢方式和中斷方式。查詢方式中斷方式5.2.2串行通信的發(fā)送與接收方式1.查詢方式查詢方式是根據(jù)TI或RI的狀態(tài)來判斷一次數(shù)據(jù)發(fā)送或接收是否完成的方式。查詢方式程序設(shè)計(jì)流程如圖所示。發(fā)送程序接受程序5.2.2串行通信的發(fā)送與接收方式發(fā)送數(shù)據(jù)時(shí),先將數(shù)據(jù)發(fā)送出去,然后查詢是否發(fā)送完畢,再?zèng)Q定是否發(fā)送下一幀數(shù)據(jù),即“先發(fā)后查”。接收數(shù)據(jù)時(shí),先判斷是否接收到一幀數(shù)據(jù),然后保存這一幀數(shù)據(jù),再查詢是否接收到下一幀數(shù)據(jù),即“先查后收”。5.2.2串行通信的發(fā)送與接收方式【例5-4】用查詢方式實(shí)現(xiàn):將A機(jī)起始地址為50H的數(shù)據(jù)塊傳送到B機(jī)以50H為起始地址的數(shù)據(jù)緩沖區(qū)中。假設(shè)數(shù)據(jù)塊的長度為5,串行接口工作在工作方式1,TI工作在工作方式2,fosc=6MHz,SMOD=1,波特率為2400bit/s?!締栴}分析】由TI工作在工作方式2,fosc=6MHz,SMOD=1,波特率為2400bit/s,可求得TH1=TL1=F3H。5.2.2串行通信的發(fā)送與接收方式【參考代碼】發(fā)送程序參考代碼如下#include<reg51.h>#include<absacc.h>unsignedinti;/**********串行接口初始化函數(shù)**********/voidinitial(void){ TMOD=0x20; /*T1工作在工作方式2*/ TH1=0xF3; /*定時(shí)器賦初值*/ TL1=0xF3; SCON=0x40; /*串行接口工作在工作方式1*/ PCON=0x80; /*SMOD=1*/ TR1=1; } /*T1啟動(dòng)計(jì)數(shù)*/5.2.2串行通信的發(fā)送與接收方式/**********主函數(shù)**********/main(){ initial(); for(i=0;i<=5;i++) { SBUF=DBYTE[0x50+i]; /*發(fā)送數(shù)據(jù)*/ while(TI==0); /*是否發(fā)送完畢*/ TI=0; /*發(fā)送完畢,TI由軟件清“0”*/ }}5.2.2串行通信的發(fā)送與接收方式接收程序參考代碼如下#include<reg51.h>#include<absacc.h>unsignedinti;/**********串行接口初始化函數(shù)**********/voidinitial(void){ TMOD=0x20; /*T1工作在工作方式2*/ TH1=0xF3;
TL1=0xF3; SCON=0x50; /*串行接口工作在工作方式1,允許接收*/ PCON=0x80; /*SMOD=1*/ TR1=1; /*T1啟動(dòng)計(jì)數(shù)*/}5.2.2串行通信的發(fā)送與接收方式/**********主函數(shù)**********/main(){ initial(); for(i=0;i<=5;i++) { while(RI==0); /*查詢是否接收完畢*/ DBYTE[0x50+i]=SBUF; /*接收數(shù)據(jù)*/ RI=0; /*接收完畢,RI由軟件清“0”*/ }}5.2.2串行通信的發(fā)送與接收方式2.中斷方式中斷方式是指CPU響應(yīng)中斷申請,執(zhí)行中斷服務(wù)程序,在中斷服務(wù)程序中完成數(shù)據(jù)發(fā)送與
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆省吐魯番市2025年小升初數(shù)學(xué)重難點(diǎn)模擬卷含解析
- 商標(biāo)共享合同協(xié)議
- 2025至2031年中國離子風(fēng)蛇行業(yè)投資前景及策略咨詢研究報(bào)告
- 新余學(xué)院《鍵盤》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025-2030年中國PPP模式行業(yè)發(fā)展規(guī)劃及投資預(yù)測研究報(bào)告
- 2025至2031年中國立管檢查口行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025-2030年中國3110kv繼電保護(hù)裝置行業(yè)市場運(yùn)營動(dòng)態(tài)調(diào)研與發(fā)展建議咨詢報(bào)告
- 云計(jì)算數(shù)據(jù)中心架構(gòu)與技術(shù)
- 2024-2025新入職員工安全培訓(xùn)考試試題附答案【培優(yōu)A卷】
- 2024-2025公司安全培訓(xùn)考試試題7A
- 2024年濰坊市技師學(xué)院招聘筆試真題
- 2025年中考道德與法治一輪復(fù)習(xí):專題4 我與他人 和諧相處 課件79張
- 無人機(jī)飛手培訓(xùn)班合作合同協(xié)議范本模板
- 港口智能運(yùn)維系統(tǒng)-全面剖析
- 康復(fù)治療士測試題及答案
- VDA6.3-2023版培訓(xùn)教材課件
- 皮瓣移植護(hù)理與病例介紹課件
- 河北新化股份有限公司鍋爐技改項(xiàng)目(噪聲、固體廢物)竣工環(huán)境保護(hù)驗(yàn)收報(bào)告
- 2016賦安消防JB-QBH-FS5101W 火災(zāi)報(bào)警控制器
- 金蝶云星空操作手冊V3
- 2025年江蘇南京地鐵運(yùn)營有限責(zé)任公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論