2022年單片機(jī)應(yīng)用課件5_第1頁(yè)
2022年單片機(jī)應(yīng)用課件5_第2頁(yè)
2022年單片機(jī)應(yīng)用課件5_第3頁(yè)
2022年單片機(jī)應(yīng)用課件5_第4頁(yè)
2022年單片機(jī)應(yīng)用課件5_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第7章輸入/輸出端口7.1并行I/O口

7.2串行接口7.3I/O口的擴(kuò)展7.1并行I/O口P0口位結(jié)構(gòu)7.1并行I/O口P1口位結(jié)構(gòu)7.1并行I/O口P2口位結(jié)構(gòu)7.1并行I/O口P3口位結(jié)構(gòu)7.2.2與串行口有關(guān)的特殊功能寄存器1.數(shù)據(jù)緩沖器SBUF串行口緩沖器SBUF是可直接尋址的特殊功能寄存器,其內(nèi)部RAM字節(jié)地址是99H。在物理上,它對(duì)應(yīng)著兩個(gè)獨(dú)立的寄存器,一個(gè)發(fā)送寄存器,一個(gè)接收寄存器。發(fā)送時(shí),就是CPU寫入SBUF的時(shí)候,51系列單片機(jī)沒有專門的啟動(dòng)發(fā)送狀態(tài)的指令;接收時(shí),就是讀取SBUF的過(guò)程,接收寄存器是雙緩沖的,以避免在接收下一幀數(shù)據(jù)之前,CPU未能及時(shí)響應(yīng)接收器的中斷,沒有把上一幀數(shù)據(jù)讀走,而產(chǎn)生兩幀數(shù)據(jù)重疊的問(wèn)題。2.串行口控制寄存器SCON

SCON用于控制和監(jiān)視串行口的工作狀態(tài),相應(yīng)的各位功能介紹如下:

SM0、SM1:用于定義串行口的操作模式,兩個(gè)選擇位對(duì)應(yīng)4種模式,見表6.2。其中fOSC是振蕩器頻率,UART為通用異步接收和發(fā)送器的英文縮寫。SM2:多機(jī)通信時(shí)的接收允許標(biāo)志位。在模式2和3中,若SM2=1,且接收到的第9位數(shù)據(jù)(RB8)是0,則接收中斷標(biāo)志(RI)不會(huì)被激活。在模式1中,若SM2=1且沒有接收到有效的停止位,則RI不會(huì)被激活。在模式0中,SM2必須是0。SM0SM1SM2RENTB0RB0TIRI表7.2串行口操作模式選擇SM0SM1模式功能波特率000110110101同步移位寄存器8位UART9位UART9位UARTfOSC/12可變(T1溢出率)fOSC/64或fOSC/32可變(T1溢出率)

3.電源控制寄存器PCON

特殊功能寄存器PCON中,只有一位(最高位)SMOD與串行口的工作有關(guān),該位是串行口波特率系數(shù)的控制位:SMOD=1時(shí),波特率加倍,否則不加倍。PCON的地址為87H,不可位尋址,因此初始化時(shí)需要字節(jié)傳送。7.2.3串行口的4種工作模式模式0(1)模式0輸出狀態(tài)。圖外接移位寄存器輸出(2)模式0輸入狀態(tài)。圖外接移位寄存器輸入

2.模式1串行口工作于模式1時(shí),為波特率可變的8位異步通信接口。數(shù)據(jù)位由P3.0(RXD)端接收,由P3.1(TXD)端發(fā)送。傳送一幀信息為10位:一位起始位(0),8位數(shù)據(jù)位(低位在前)和一位停止位(1)。波特率是可變的,它取決于定時(shí)器T1的溢出速率及SMOD的狀態(tài)。(1)模式1發(fā)送過(guò)程。用軟件清除TI后,CPU執(zhí)行任何一條以SBUF為目標(biāo)寄存器的指令,就啟動(dòng)發(fā)送過(guò)程。數(shù)據(jù)由TXD引腳輸出,此時(shí)的發(fā)送移位脈沖是由定時(shí)器/計(jì)數(shù)器T1送來(lái)的溢出信號(hào)經(jīng)過(guò)16或32分頻而取得的。一幀信號(hào)發(fā)送完時(shí),將置位發(fā)送中斷標(biāo)志TI=1,向CPU申請(qǐng)中斷,完成一次發(fā)送過(guò)程。(2)模式1接收過(guò)程。用軟件清除RI后,當(dāng)允許接收位REN被置位1時(shí),接收器以選定波特率的16倍的速率采樣RXD引腳上的電平,即在一個(gè)數(shù)據(jù)位期間有16個(gè)檢測(cè)脈沖,并在第7、8、9個(gè)脈沖期間采樣接收信號(hào),然后用三中取二的原則確定檢測(cè)值,以抑制干擾。并且采樣是在每個(gè)數(shù)據(jù)位的中間,避免了信號(hào)邊沿的波形失真造成的采樣錯(cuò)誤。當(dāng)檢測(cè)到有從“1”到“0”的負(fù)跳變時(shí),則啟動(dòng)接收過(guò)程,在接收移位脈沖的控制下,接收完一幀信息。當(dāng)最后一次移位脈沖產(chǎn)生時(shí)能滿足下列兩個(gè)條件:①RI=0;②接收到的停止位為1或SM2=0。3.模式2和模式3。

串行口工作于模式2和模式3時(shí),被定義為9位異步通信接口。它們的每幀數(shù)據(jù)結(jié)構(gòu)是11位的:最低位是起始位(0),其后是8位數(shù)據(jù)位(低位在先),第10位是用戶定義位(SCON中的TB8或RB8),最后一位是停止位(1)。模式2和模式3工作原理相似,唯一的差別是模式2的波特率是固定的,即為fOSC/32或fOSC/64;而模式3的波特率是可變的,與定時(shí)器T1的溢出率有關(guān)。(1)模式2和模式3的發(fā)送過(guò)程。發(fā)送過(guò)程是由執(zhí)行任何一條SBUF為目的寄存器的指令來(lái)啟動(dòng)的。由“寫入SBUF”信號(hào)把8位數(shù)據(jù)裝入SBUF,同時(shí)還把TB8(使用指令設(shè)置)由硬件電路裝入發(fā)送移位寄存器的第9位,并通知發(fā)送控制器要求進(jìn)行一次發(fā)送。

一個(gè)字符幀發(fā)送完畢后,將TI位置“1”,其它過(guò)程與模式1相同。(2)模式2和模式3接收過(guò)程。與模式1類似,模式2和模式3接收過(guò)程始于在RXD端檢測(cè)到負(fù)跳變時(shí),為此,CPU以波特率16倍的采樣速率對(duì)RXD端不斷采樣。一檢測(cè)到負(fù)跳變,16分頻計(jì)數(shù)器就立刻復(fù)位,同時(shí)把1FFH寫入輸入移位寄存器。計(jì)數(shù)器的16個(gè)狀態(tài)把一位時(shí)間等分成16份,在每一位的第7、8、9個(gè)狀態(tài)時(shí),位檢測(cè)器對(duì)RXD端的值采樣。如果所接收到的起始位無(wú)效(為1),則復(fù)位接收電路,等待另一個(gè)負(fù)跳變的到來(lái)。若起始位有效(為0)則起始位移入移位寄存器,并開始接收這一幀的其余位。當(dāng)起始位0移到最左面時(shí),通知接收控制器進(jìn)行最后一次移位。把8位數(shù)據(jù)裝入接收緩沖器SBUF,第9位數(shù)據(jù)裝入SCON中的RB8,并置中斷標(biāo)志RI=1。裝入SBUF和RB8以及置位RI的信號(hào)只有在產(chǎn)生最后一個(gè)移位脈沖且同滿足下列兩個(gè)條件,才會(huì)產(chǎn)生:①RI=0;②SM2=0或接收到的第9位數(shù)據(jù)為“1”。上述兩個(gè)條件中任一個(gè)不滿足,所接收的數(shù)據(jù)幀就會(huì)丟失,不再恢復(fù)。兩者都滿足時(shí),第9位數(shù)據(jù)裝入TB8,前8位數(shù)據(jù)裝入SBUF。請(qǐng)注意:與模式1不同,模式2和3中裝入RB8的是第9位數(shù)據(jù),而不是停止位。所接收的停止位的值與SBUF、RB8和RI都沒有關(guān)系,利用這一特點(diǎn)可用于多機(jī)通信中。7.2.54波特率串行口每秒鐘發(fā)送或接收的數(shù)據(jù)位數(shù)稱為波特率。假設(shè)發(fā)送一位數(shù)據(jù)所需時(shí)間為T,則波特率為1/T。(1)模式0的波特率等于單片機(jī)晶振頻率的1/12,即每個(gè)機(jī)器周期接收或發(fā)送一位數(shù)據(jù)。(2)模式2的波特率與電源控制器PCON的最高位SMOD的寫入值有關(guān):即SMOD=0,波特率為(1/64)fOSC;SMOD=1,波特率為(1/32)fOSC。(3)模式1和模式3的波特率除了與SMOD位有關(guān)之外,還與定時(shí)器T1的溢出率有關(guān)。定時(shí)器T1作為波特率發(fā)生器,常選用定時(shí)方式2(8位重裝載初值方式),并且禁止T1中斷。此時(shí)TH1從初值計(jì)數(shù)到產(chǎn)生溢出,它每秒鐘溢出的次數(shù)稱為溢出率。于是表定時(shí)器T1產(chǎn)生的常用波特率假設(shè)某MCS-51單片機(jī)系統(tǒng),串行口工作于模式3,要求傳送波特率為1200Hz,作為波特率發(fā)生器的定時(shí)器T1工作在方式2時(shí),請(qǐng)求出計(jì)數(shù)初值為多少?設(shè)單片機(jī)的振蕩頻率為6MHz。因?yàn)榇锌诠ぷ饔谀J?時(shí)的波特率為所以當(dāng)SMOD=0時(shí),初值TH1=256-6×106/(1200×12×32/1) =243=0F3H當(dāng)SMOD=1時(shí),初值TH1=256-6×106/(1200×12×32/2) =230=0E6H6.6串行口的應(yīng)用一、串行口的編程

串行口需初始化后,才能完成數(shù)據(jù)的輸入、輸出。其初始化過(guò)程如下:(1)按選定串行口的操作模式設(shè)定SCON的SM0、SM1兩位二進(jìn)制編碼。(2)對(duì)于操作模式2或3,應(yīng)根據(jù)需要在TB8中寫入待發(fā)送的第9位數(shù)據(jù)。(3)若選定的操作模式不是模式0,還需設(shè)定接收/發(fā)送的波特率。設(shè)定SMOD的狀態(tài),以控制波特率是否加倍。若選定操作模式1或3,則應(yīng)對(duì)定時(shí)器T1進(jìn)行初始化以設(shè)定其溢出率。程序如下:

START:JBP1.0,$;開關(guān)K未合上,等待CLRP1.1;165并行輸入數(shù)據(jù)SETBP1.1;開始串行移位MOVSCON,#10H;串行口模式0并啟動(dòng)接收J(rèn)NBRI,$;查詢RICLRRI;查詢結(jié)束,清RIMOVA,SBUF;輸入數(shù)據(jù);根據(jù)A處理不同任務(wù)SJMPSTART;準(zhǔn)備下一次接收?!?利用串行口進(jìn)行雙機(jī)通信。圖6.12雙機(jī)通信系統(tǒng)甲機(jī)發(fā)送(采用查詢方式):MOVSCON,#80H;設(shè)置工作方式2MOVPCON,#00;置SMOD=0,波特率不加倍MOVR0,#40H;數(shù)據(jù)區(qū)地址指針MOVR2,#10H;數(shù)據(jù)長(zhǎng)度LOOP:MOVA,@R0;取發(fā)送數(shù)據(jù)MOVC,P;奇偶位送TB8MOVTB8,CMOVSBUF,A;送串口并開始發(fā)送數(shù)據(jù)WAIT:JBCTI,NEXT;檢測(cè)是否發(fā)送結(jié)束并清TISJMPWAITNEXT:INCR0;修改發(fā)送數(shù)據(jù)地址指針DJNZR2,LOOPRET乙機(jī)接收(查詢方式):MOVSCON,#90H;模作模式2,并允許接收MOVPCON,#00H;置SMOD=0MOVRO,#60H;置數(shù)據(jù)區(qū)地址指針MOVR2,#10H;等待接收數(shù)據(jù)長(zhǎng)度LOOP:JBCRI,READ;等待接收數(shù)據(jù)并清RISJMPLOOPREAD:MOVA,SBUF;讀一幀數(shù)據(jù) MOVC,PJNCLP0;C不為1轉(zhuǎn)LP0JNBRB8,ERR;RB8=0,即RB8不為P轉(zhuǎn)ERRAJMPLP1LP0:JBRB8,ERR;RB8=1,即RB8不為P轉(zhuǎn)ERRLP1:MOV@R0,A;RB8=P,接收一幀數(shù)據(jù)INCR0DJNZR2,LOOPRETERR:…

;出錯(cuò)處理程序

1;開始串行移位并且采樣是在每個(gè)數(shù)據(jù)位的中間,避免了信號(hào)邊沿的波形失真造成的采樣錯(cuò)誤。在模式1中,若SM2=1且沒有接收到有效的停止位,則RI不會(huì)被激活。(1)按選定串行口的操作模式設(shè)定SCON的SM0、SM1兩位二進(jìn)制編碼。MOVC,PPCON的地址為87H,不可位尋址,因此初始化時(shí)需要字節(jié)傳送。用軟件清

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論