版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片計(jì)算機(jī)及其應(yīng)用第1頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月§7-1概述
當(dāng)今社會(huì)已進(jìn)入信息時(shí)代,網(wǎng)絡(luò)成為當(dāng)今科技發(fā)展的一大方向,計(jì)算機(jī)系統(tǒng)通過(guò)網(wǎng)絡(luò)這一橋梁,在信息時(shí)代中發(fā)揮著越來(lái)越大的作用。在單片機(jī)的應(yīng)用系統(tǒng)中,單機(jī)應(yīng)用非常廣泛,但在一些大型、智能化系統(tǒng)中,必須要由多個(gè)單片機(jī)協(xié)同工作才能完成任務(wù),因此,它們之間的信息傳遞成為了一種必然。在學(xué)習(xí)單片機(jī)間的通訊之前,我們有必要對(duì)通信的基礎(chǔ)知識(shí)有一些了解。第2頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月一、什么是串行通信?串行通信和并行通信
計(jì)算機(jī)1GND
計(jì)算機(jī)2GND并行通信
計(jì)算機(jī)1GND
計(jì)算機(jī)2GND發(fā)送接收串行通信并行通信,即數(shù)據(jù)的各位同時(shí)傳送;串行通信,即數(shù)據(jù)一位一位順序傳送。第3頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月二、串行通信的分類異步(AsynchronousCommunication)異步是指收發(fā)雙方時(shí)鐘異步,即收方和發(fā)方的時(shí)鐘各自獨(dú)立,由起始位和結(jié)束位來(lái)實(shí)現(xiàn)收、發(fā)同步。允許±5%的誤差。(1)幀結(jié)構(gòu)幀為收發(fā)雙方傳數(shù)據(jù)的基本單位其結(jié)構(gòu)如圖所示。由一個(gè)起始位“0”,5~8位數(shù)據(jù)(低位在前),再后為奇偶校驗(yàn)位和一個(gè)停止位“1”構(gòu)成。第4頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月異步(AsynchronousCommunication)(2)特點(diǎn)利用起始位和結(jié)束位來(lái)實(shí)現(xiàn)收發(fā)同步幀間間隔隨機(jī)位間隔固定每幀數(shù)據(jù)最多一個(gè)字節(jié)(3)錯(cuò)誤檢驗(yàn)方法:奇偶校驗(yàn)第5頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月串行通信的分類同步(SynchronousCommunication)同步傳送方式是一種連續(xù)傳送方式,適合于大量數(shù)據(jù)的高速傳送。收發(fā)雙方的時(shí)鐘實(shí)現(xiàn)同步。(1)幀結(jié)構(gòu)(2)特點(diǎn)利用同步字符或同步時(shí)鐘實(shí)現(xiàn)收、發(fā)同步每幀數(shù)據(jù)為一數(shù)據(jù)塊,故傳送速率較異步快同步時(shí)鐘要求較嚴(yán)格(3)校驗(yàn)方法:CRC循環(huán)冗余校驗(yàn)第6頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月三、波特率(Baudrate)波特率是指串行通訊中數(shù)據(jù)傳送的速率,即每秒種傳送的數(shù)據(jù)傳送的二進(jìn)制位數(shù)。它指的是位與位之間的時(shí)間間隔。其單位為比特/秒,bps在異步通訊中,收發(fā)雙方是通過(guò)設(shè)定相同的波特率、依靠起始位和結(jié)束位來(lái)實(shí)現(xiàn)數(shù)據(jù)的準(zhǔn)確傳送。例:設(shè)每秒傳送120個(gè)字符,其幀結(jié)構(gòu)為1個(gè)起始位,7個(gè)數(shù)據(jù)位,1位校驗(yàn)位和1位結(jié)束位,其波特率為:
120字符/秒*10位/字符=1200bps第7頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月四、串行通信制式
單工(simplex)
半雙工(halfduplex)
全雙工(fullduplex)第8頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月串行通信制式數(shù)據(jù)只能單向流動(dòng)數(shù)據(jù)雖能雙向通訊,但任一時(shí)刻僅能單向傳送。數(shù)據(jù)雙向通訊,收、發(fā)各用一根信號(hào)線,可完全獨(dú)立工作。第9頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月§7-2MCS-51的串行接口概述有一個(gè)可編程全雙工串行通信接口(UART)(UniversalAsychronousReceiver/Transmitter)可同時(shí)發(fā)送、接收數(shù)據(jù)(Transmit/Receive)有四種工作方式,幀格式有8、10、11位。波特率(Baudrate)可設(shè)置波特率為每秒鐘傳送二進(jìn)制數(shù)碼的位數(shù),也叫比特?cái)?shù),單位為b/s,即位/秒(bps)。第10頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月一、串行口的構(gòu)成
串行口內(nèi)部組成示意圖如圖所示,結(jié)構(gòu)較為復(fù)雜,我們?cè)谑褂脮r(shí)可將其抽象為三個(gè)可供軟件直接訪問(wèn)的的特殊功能寄存器:
PCON、SCON和SBUF。通過(guò)對(duì)它們的讀寫操作即可完全控制串行口。第11頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月構(gòu)成第12頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月MCS-51串行接口寄存器SBUF——串行口數(shù)據(jù)緩沖器共兩個(gè):一個(gè)發(fā)送寄存器SBUF,一個(gè)接收SBUF,二者共用一個(gè)地址99H。它在物理上對(duì)應(yīng)兩個(gè)寄存器,發(fā)送寄存器和接收寄存器,由于它們并不在同一時(shí)刻使用,因此兩個(gè)寄存器共用一個(gè)地址并不會(huì)發(fā)生沖突,通過(guò)指令來(lái)區(qū)別是發(fā)送還是接收。其中,接收寄存器采用雙緩沖而發(fā)送寄存器采用單緩沖。SCON——串行口控制寄存器。它用來(lái)定義串行口的工作方式及監(jiān)視串行口的工作狀態(tài)。PCON——電源及波特率選擇寄存器,PCON.7為SMOD,波特率加倍位,當(dāng)SMOD=1時(shí),波特率為SMOD=0時(shí)的兩倍。PCON不能進(jìn)行位尋址,可用ANL PCON,#7FH或ORLPCON,#80H來(lái)對(duì)其清零或置“1”。第13頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月只有該位有用,為1時(shí),波特率×2;為0時(shí)不變。電源及波特率選擇寄存器PCONSMOD×××GF1GF0PDIDL87H第14頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月串行口控制寄存器SCONSM0SM1SM2RENTB8RB8TIRI工作方式選擇多機(jī)通信控制位允許串行接收位REN=1時(shí),允許接收;REN=0時(shí),禁止接收。接收數(shù)據(jù)的第9位方式2、3中第九位,多機(jī)通訊中可用來(lái)表示是地址幀還是數(shù)據(jù)幀接收中斷標(biāo)志,由硬件置“1”,而由軟件清零發(fā)送中斷標(biāo)志9FH9EH9DH9CH9BH9AH99H98H第15頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月SM0SM1工作方式功能波特率00方式08位同步移位寄存器fosc/1201方式110位UART可變10方式211位UARTfosc/64或fosc/3211方式311位UART可變串行方式的定義例:設(shè)串行口工作在方式1,允許接收,則指令為:
MOVSCON,#01010000B第16頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月串行口的四種工作方式方式的選擇由SM1、SM0實(shí)現(xiàn)。四種方式的比較:工作方式功能說(shuō)明波特率方式08位同步移位寄存器常用于擴(kuò)展I/O口fosc/12方式110位UART8位數(shù)據(jù)、起始位、結(jié)束位可變(取決于定時(shí)器1溢出率)方式211位UART8位數(shù)據(jù)、起始位0、結(jié)束位1和奇偶校驗(yàn)位fosc/64或fosc/32方式311位UART8位數(shù)據(jù)、起始位、結(jié)束位可變(取決于定時(shí)器1溢出率)第17頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月1、方式0在此種方式下,串行口工作在移位寄存器方式,其波特率為fOSC/12,數(shù)據(jù)從RXD(P3.0)端移出,同步移位脈沖由TXD(P3.1)輸出。發(fā)送、接收的數(shù)據(jù)為低位在前。(1)發(fā)送。執(zhí)行MOVSBUF,A后,數(shù)據(jù)和同步時(shí)鐘從串行口發(fā)出,發(fā)送結(jié)束后,必須由軟件對(duì)TI清零。即:
JNB TI,$CLR TI其時(shí)序如圖所示:第18頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月第19頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月(2)接收
REN=1且RI=0時(shí),啟動(dòng)一個(gè)接收過(guò)程。數(shù)據(jù)從串行口輸入,接收完畢后,RI=1,執(zhí)行MOVA,SBUF后,數(shù)據(jù)進(jìn)入CPU,要進(jìn)行下一次接收,必須用軟件對(duì)RI清零,
SETB REN; MOVSCON,#10H JNB RI,$ MOVA,SBUF其接收時(shí)序如下圖所示:第20頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月接收時(shí)序第21頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月2、方式1串行口工作在8位異步通訊接口方式。其一幀信息為10位,其中,8位數(shù)據(jù)位,一位起始位(0)和一位停止位(1)。TXD端為發(fā)送端而RXD為接收端,波特率可變。TXDRXDMCU第22頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月(1)、方式1---發(fā)送執(zhí)行MOVSBUF,A后,數(shù)據(jù)從TXD輸出,發(fā)送完一幀信息后,置TI=1,再次發(fā)送前,須對(duì)TI清零。其時(shí)序圖如下圖所示:第23頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月(2)方式1-接收由于方式1發(fā)送時(shí)不傳送同步時(shí)鐘,因而接收端在接收數(shù)據(jù)是通過(guò)采樣來(lái)實(shí)現(xiàn)的。其采樣頻率為波特率的16倍,利用三中取二原則來(lái)確認(rèn)接收數(shù)據(jù)。接收過(guò)程在REN置1的前提下,從搜索到起始位開始。直到9位接收完畢(含1位停止位)。在9位接收完畢后,只有:RI=0、SM2=0或接收到的停止位為1,才將8位數(shù)據(jù)送入SBUF,停止位送RB8,并置RI=1。第24頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月3、方式2和方式3方式2和方式3為9位異步通訊口,一幀信息由11位組成,即起始位(0)、8位數(shù)據(jù)位、1位可編程位和1位停止位。方式2和方式3的區(qū)別僅在于波特率不同方式2波特率=2SMOD64*fOSC方式3波特率=2SMOD32*(定時(shí)器T1的溢出率)第25頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月(1)發(fā)送
發(fā)送前,可以用任何位操作指令將第9位數(shù)據(jù)裝入TB8中,然后執(zhí)行MOVSBUF,A。串行口會(huì)自動(dòng)將TB8作為第9位數(shù)據(jù)發(fā)出,發(fā)送完畢,TI=1。(2)接收
其方法與方式1類似第26頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月說(shuō)明
由于方式1、2和3并不傳送同步時(shí)鐘,因此,必須保證發(fā)送方和接收方應(yīng)工作在相同的波特率下,才能保證數(shù)據(jù)的準(zhǔn)確傳送。第27頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月§7-3MCS-51單片機(jī)串行口的應(yīng)用一、MCS-51單片機(jī)的串行通訊的波特率 串行口的傳送速率即波特率由fosc、PCON、SMOD及定時(shí)器Ti的設(shè)定。
第28頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月串行口的四種工作方式對(duì)應(yīng)于三種波特率:1、方式0:其波特率固定為fosc/122、方式2:有兩種波特率可供選擇方式2波特率=2SMOD64*fOSC3、方式1和方式3波特率=2SMOD32*(定時(shí)器T1的溢出率)
定時(shí)器T1的溢出率=fOSC122K-初值1*其中,K是定時(shí)器的位數(shù),取決于定時(shí)器的工作方式。為保證高精度,盡可能選擇方式2自動(dòng)裝入方式。第29頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月定時(shí)器T1產(chǎn)生的常用波特率第30頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月二、串行口方式0用作擴(kuò)展并行I/O口
用串行口擴(kuò)展I/O口具有電路簡(jiǎn)單易行,成本低等優(yōu)點(diǎn),因而被經(jīng)常使用。1、用方式0擴(kuò)展并行輸出口
74LS164為TTL型,而CD4094為CMOS型串行移位寄存器 在串行口外接一個(gè)串入并出的移位寄存器,即可擴(kuò)展一個(gè)并行I/O口。第31頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月例7-4-1用8051串行口外接74LS164擴(kuò)展8位并行輸出口。
74LS164為一串入并出移位寄存器,其A、B為串行輸入端,CLK為移位時(shí)鐘,MR為清零端。串行口工作在方式0,移位寄存器方式,也可將清零端直接連到VCC端。8051RXDTXDP1.0VCC
發(fā)光二極管的顯示延時(shí)采用延時(shí)子程序DELAY來(lái)實(shí)現(xiàn)。SM0SM1SM2RENTB8RB8TIRI9FH9EH9DH9CH9BH9AH99H98H第32頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月程序清單: ORG2000HUART:MOV SCON,#00H MOV A,#80H CLR P1.0 ;移位寄存器清零
LCALLDELAY SETB P1.0STA: MOV SBUF,A JNB TI,$ CLR TI RR A SJMP STA串行口發(fā)送標(biāo)準(zhǔn)模塊74LS165為TTL型,而CD4014為CMOS型串行移位寄存器SM0SM1SM2RENTB8RB8TIRI9FH9EH9DH9CH9BH9AH99H98H第33頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月2、用方式0擴(kuò)展并行輸入口第34頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月例7-4-2用8051串行口外接CD4014擴(kuò)展8位并行輸出口。CD4014為一并入串出移位寄存器,Q8為串行數(shù)據(jù)輸出端,CLK為移位時(shí)鐘端,P/S為預(yù)置/移位控制端。P/S=1時(shí),并行置入數(shù)據(jù),P/S=0時(shí),開始串行移位。
輸入聯(lián)絡(luò)信號(hào)由K提供,K=0時(shí),表示有數(shù)據(jù)輸入,當(dāng)RI=1時(shí),表示數(shù)據(jù)串行移入完畢,可以進(jìn)行下一次輸入。
輸入允許開關(guān)則由SCON中的REN來(lái)控制,采用查詢RI的狀態(tài)的方式來(lái)決定數(shù)據(jù)傳送與否。SM0SM1SM2RENTB8RB8TIRI第35頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月程序清單:REC: JB P1.1,$ SETB P1.0 CLR P1.0 MOV SCON,#10H JNB RI,$ CLR RI MOV A,SBUF SJMP REC串行接收標(biāo)準(zhǔn)模塊
無(wú)論是擴(kuò)展輸入,還是擴(kuò)展輸出口,都可以進(jìn)行級(jí)連,從而實(shí)現(xiàn)更多位的串行輸入或串行輸出擴(kuò)展.
SM0SM1SM2RENTB8RB8TIRI第36頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月三、方式1的點(diǎn)對(duì)點(diǎn)的異步通訊利用8031的串行口進(jìn)行點(diǎn)對(duì)點(diǎn)的全雙工通訊。第37頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月例7-4-3假設(shè)兩個(gè)8031系統(tǒng)相距很近,它們以串行口直接相連,如圖所示。要求它們之間進(jìn)行雙工的ASCII字符收發(fā),最高一位用于奇偶校驗(yàn),波特率為1200bps,fosc=6Mhz1、由于數(shù)據(jù)位為7位,及1位奇偶校驗(yàn)位,因而可采用方式1。2、由于波特率為1200bps,故定時(shí)器初值為:TXDRXDGND8031甲TXDRXDGND8031乙8031雙機(jī)通訊3、奇偶校驗(yàn)作如下處理后,使A中1的個(gè)數(shù)始終為奇數(shù)個(gè)。MOV A,#ASCIIMOV C,PCPL CMOV ACC.7,C若A中原有奇數(shù)個(gè)1,則P=1,操作后A中仍有奇數(shù)個(gè)1;若A中原有偶數(shù)個(gè)1,則P=0,操作后A中則有奇數(shù)個(gè)1;第38頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月2、方式1串行口工作在8位異步通訊接口方式。其一幀信息為10位,其中,8位數(shù)據(jù)位,一位起始位(0)和一位停止位(1)。TXD端為發(fā)送端而RXD為接收端,波特率可變。TXDRXDMCU第39頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月串行口的四種工作方式對(duì)應(yīng)于三種波特率:1、方式0:其波特率固定為fosc/122、方式2:有兩種波特率可供選擇方式2波特率=2SMOD64*fOSC3、方式1和方式3波特率=2SMOD32*(定時(shí)器T1的溢出率)
定時(shí)器T1的溢出率=fOSC122K-初值1*其中,K是定時(shí)器的位數(shù),取決于定時(shí)器的工作方式。為保證高精度,盡可能選擇方式2自動(dòng)裝入方式。第40頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月4、雙工通訊要求收發(fā)同時(shí)進(jìn)行,收和發(fā)均在串行接口中進(jìn)行,CPU只是把數(shù)據(jù)寫入緩沖器或從緩沖器中讀入數(shù)據(jù)。究竟是需要讀或是寫則通過(guò)檢測(cè)TI和RI來(lái)進(jìn)行區(qū)別。下面給出實(shí)現(xiàn)指定功能的通訊程序,發(fā)送和接收通過(guò)子程序調(diào)用來(lái)實(shí)現(xiàn),發(fā)送緩沖區(qū)首址為20H,接收緩沖區(qū)首址為40H。主程序:
ORG 0000H LJMP MAIN ORG 0023H LJMP SBR1 ORG 0100HMAIN:MOV TMOD ,#20H MOV TH1,#0F3H MOV TL1,#0F3H SETB TR1 MOV SCON,#50H MOV R0,#20H MOV R1,#40H ACALLSOUT AJMP $方式1允許接收REN=1第41頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月SBR1: JNB RI,SEND ACALLSIN SJMP NEXTSEND: ACALLSOUTNEXT: RETISOUT:MOV A,@R0 MOV C,P CPL C MOV ACC.7,C INC R0 MOV SBUF,A JNB TI,$ CLR TI RETSIN: MOV A,SBUF CLR RI MOV C,P CPL C ANL A,#7FH MOV @R1,A INC R1 RET以上是基本的雙機(jī)通訊程序,大家可根據(jù)這一基本程序,加以發(fā)揮和擴(kuò)充,即可完成較為復(fù)雜的通訊功能。第42頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月四、方式2、方式3與多機(jī)通訊RXDTXDGND8031主機(jī)8031多機(jī)通訊TXDRXDGND從機(jī)1TXDRXDGND從機(jī)2TXDRXDGND從機(jī)3通訊原理:利用多機(jī)通訊位SM2和TB8,主機(jī)發(fā)送接收數(shù)據(jù)的從機(jī)地址,該從機(jī)處于接收使能,能接收主機(jī)隨后發(fā)送的數(shù)據(jù),地址不同的從機(jī)不能接收數(shù)據(jù)。第43頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月§7-4選學(xué)內(nèi)容第44頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月單片機(jī)之間的通信雙機(jī)異步通信接口電路第45頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月RS-422A雙機(jī)異步通信接口電路第46頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月雙機(jī)通信軟件編程查詢方式
1)甲機(jī)發(fā)送編程將甲機(jī)片外1000H~101FH單元的數(shù)據(jù)塊從串行口輸出。定義方式2發(fā)送,TB8為奇偶校驗(yàn)位。發(fā)送波特率375kb/s,晶振為12MHz,所以SMOD=1。第47頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月參考發(fā)送子程序如下:
MOV SCON,#80H;設(shè)置串行口為方式2 MOV PCON,#80H;SMOD=1 MOV DPTR,#1000H;設(shè)數(shù)據(jù)塊指針
MOV R7,#20H;設(shè)數(shù)據(jù)塊長(zhǎng)度
START:MOVXA,@DPTR;取數(shù)據(jù)給A MOV C,P MOV TB8,C;奇偶位P送給TB8MOV SBUF,A;數(shù)據(jù)送SBUF,啟動(dòng)發(fā)送
WAIT:JBCTI,CONT;判斷一幀是否發(fā)送完。若送完,清TI,取下一個(gè)數(shù)據(jù)
AJMPWAIT;未完等待
CONT:INCDPTR;更新數(shù)據(jù)單元
DJNZR7,START;循環(huán)發(fā)送至結(jié)束
RET第48頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月2)乙機(jī)接收編程使乙機(jī)接收甲機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)塊,并存入片內(nèi)50H~6FH單元。接收過(guò)程要求判斷RB8,若出錯(cuò)置F0標(biāo)志為1,正確則置F0標(biāo)志為0,然后返回。在進(jìn)行雙機(jī)通信時(shí),兩機(jī)應(yīng)采用相同的工作方式和波特率。第49頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月參考接收子程序如下:
MOVSCON,#80H ;設(shè)置串行口為方式2
MOVPCON,#80H ;SMOD=1
MOVR0,#50H ;設(shè)置數(shù)據(jù)塊指針
MOVR7,#20H ;設(shè)置數(shù)據(jù)塊長(zhǎng)度
SETBREN ;啟動(dòng)接收
WAIT:JBCRI,READ;判斷是否接收完一幀。若完,清RI,讀入數(shù)據(jù) AJMPWAIT;未完等待
READ:MOVA,SBUF;讀入一幀數(shù)據(jù)a
JNBPSW.0,PZ;奇偶位為0則轉(zhuǎn)
JNBRB8,ERR;P=1,RB8=0,則出錯(cuò)
SJMPRIGHT;二者全為1,則正確
PZ:JBRB8,ERR;P=0,RB8=1,則出錯(cuò)
RIGHT:MOV@R0,A ;正確,存放數(shù)據(jù)
INCR0 ;更新地址指針
DJNZR7,WAIT ;判斷數(shù)據(jù)塊是否接收完
CLRPSW.5 ;接收正確,且接收完清F0標(biāo)志
RET ;返回
ERR:SETBPSW.5 ;出錯(cuò),置F0標(biāo)志為1
RET ;返回第50頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月第七章結(jié)束本章作業(yè):2、3、6、7第51頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月第八章MCS-51單片機(jī)的中斷系統(tǒng)
本章主要介紹51系列單片機(jī)中斷系統(tǒng)問(wèn)題,本章將介紹以下具體內(nèi)容:中斷系統(tǒng)----中斷源、中斷方式、中斷控制寄存器、中斷響應(yīng)、中斷請(qǐng)求的撤除。第52頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月§8.2MCS-51單片機(jī)的中斷系統(tǒng)8.2.1.MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)一、中斷的概念執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點(diǎn)中斷請(qǐng)求中斷響應(yīng)執(zhí)行中斷處理程序中斷返回第53頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月IE0TF0IE1TF1TIRI中斷請(qǐng)求標(biāo)志EX0ET0EX1ET1ES≥1PX0PT0PX1PT1PS高級(jí)低級(jí)二、MCS-51單片機(jī)的中斷系統(tǒng)(圖8-1)內(nèi)部查詢內(nèi)部查詢?nèi)肟诘刂啡肟诘刂稩NT0INT1T0T1TIRI中斷允許控制中斷優(yōu)先級(jí)EA中斷源第54頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月第55頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月一、中斷源
共有五個(gè)中斷源,分別是外部中斷兩個(gè)、定時(shí)中斷兩個(gè)和串行中斷一個(gè),它們是:外部中斷0--INT0,由P3.2提供,外部中斷1—INT1,由P3.3提供,外部中斷有兩種信號(hào)方式,即電平方式和脈沖方式。T0溢出中斷;由片內(nèi)定時(shí)/計(jì)數(shù)器0提供T1溢出中斷;由片內(nèi)定時(shí)/計(jì)數(shù)器1提供串行口中斷RI/TI;由片內(nèi)串行口提供8.2.2.MCS-51中斷源第56頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月二、中斷方式單片機(jī)的中斷為固定入口式中斷,即一響應(yīng)中斷就轉(zhuǎn)入固定入口地址執(zhí)行中斷服務(wù)程序。具體入口如下:中斷源入口地址INT00003HT0000BHINT10013HT1001BHRI/TI0023H在這些單元中往往是一些跳轉(zhuǎn)指令,跳到真正的中斷服務(wù)程序,這是因?yàn)榻o每個(gè)中斷源安排的空間只有8個(gè)單元。第57頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月三、中斷控制的寄存器與中斷控制有關(guān)的控制寄存器有四個(gè):TCON----定時(shí)控制寄存器,IE----中斷允許控制寄存器,IP----中斷優(yōu)先級(jí)控制寄存器,SCON----及串行口控制寄存器。1.定時(shí)控制寄存器TCOND7D6D5D4D3D2D1D0TF1TF0IE1IT1IE0IT0中斷請(qǐng)求標(biāo)志觸發(fā)方式選擇0低電平1下降沿第58頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月2.串行口控制寄存器SCOND7D6D5D4D3D2D1D0TIRI串行中斷請(qǐng)求標(biāo)志3.中斷允許控制寄存器IED7D6D5D4D3D2D1D0EAESET1EX1ET0EX04.中斷優(yōu)先級(jí)控制寄存器(IP)D7D6D5D4D3D2D1D0PSPT1PX1PT0PX00禁止,1允許0低級(jí)別,1高級(jí)別第59頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月四、中斷響應(yīng)響應(yīng)條件----CPU要響應(yīng)中斷需滿足下列條件:①無(wú)同級(jí)或高級(jí)中斷正在服務(wù);②當(dāng)前指令周期結(jié)束,如果查詢中斷請(qǐng)求的機(jī)器周期不是當(dāng)前指令的最后一個(gè)周期,則不行;③若現(xiàn)行指令是RETI、RET或訪問(wèn)IE、IP指令,則需要執(zhí)行到當(dāng)前指令及下一條指令方可響應(yīng)。響應(yīng)過(guò)程--單片機(jī)響應(yīng)中斷后,自動(dòng)執(zhí)行下列操作:①置位中斷優(yōu)先級(jí)有效觸發(fā)器,即關(guān)閉同級(jí)和低級(jí)中斷:②調(diào)用入口地址,斷點(diǎn)入棧,相當(dāng)于LCALL指令;③進(jìn)入中斷服務(wù)程序。第60頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月響應(yīng)時(shí)間--從查詢中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)向中斷服務(wù)入口地址所需的機(jī)器周期數(shù)。(1)最快響應(yīng)時(shí)間以外部中斷的電平觸發(fā)為最快。從查詢中斷請(qǐng)求信號(hào)到中斷服務(wù)程序需要三個(gè)機(jī)器周期:
1個(gè)周期(查詢)+2個(gè)周期(長(zhǎng)調(diào)用LCALL)(2)最長(zhǎng)時(shí)間若當(dāng)前指令是RET、RETI和IP、IE指令,緊接著下一條是乘除指令發(fā)生,則最長(zhǎng)為8個(gè)周期:2個(gè)周期執(zhí)行當(dāng)前指令(其中含有1個(gè)周期查詢)+4個(gè)周期乘除指令+2個(gè)周期長(zhǎng)調(diào)用=8個(gè)周期。第61頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月中斷返回—中斷處理程序的最后一條指令是RETI,它使CPU結(jié)束中斷處理程序的執(zhí)行,返回到斷點(diǎn)處,繼續(xù)執(zhí)行主程序。第62頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月
當(dāng)有幾個(gè)處于同一優(yōu)先級(jí)的中斷同時(shí)發(fā)出中斷請(qǐng)求時(shí),CPU響應(yīng)哪個(gè)中斷呢?CPU則按照自然優(yōu)先級(jí)作出判斷并快速響應(yīng)中斷請(qǐng)求。其自然優(yōu)先級(jí)為:中斷源同級(jí)自然優(yōu)先級(jí)外部中斷0最高級(jí)定時(shí)器T0中斷外部中斷1定時(shí)器T1中斷串行口中斷最低級(jí)四、中斷響應(yīng)過(guò)程及響應(yīng)時(shí)間1、中斷響應(yīng)的操作過(guò)程
在每個(gè)機(jī)器周期的S5P2期間,各中斷標(biāo)志采樣相應(yīng)的中斷源,而CPU在下一個(gè)機(jī)器周期的S6期間按順序查詢中斷標(biāo)志,并將相應(yīng)中斷的標(biāo)志置1,且在再下一個(gè)機(jī)器周期的S1期間按優(yōu)先級(jí)進(jìn)行中斷處理。第63頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月
中斷響應(yīng)后,由硬件產(chǎn)生長(zhǎng)調(diào)用指令“LCALL”,并將當(dāng)前的PC指針壓入椎棧保護(hù),然后將對(duì)應(yīng)的中斷矢量裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向該中斷矢量地址單元,執(zhí)行中斷服務(wù)程序,直到執(zhí)行“RETI”指令返回,斷點(diǎn)處PC指針從椎棧中彈入PC,繼續(xù)執(zhí)行中斷前的程序。中斷矢量如下表所示:中斷源矢量地址外部中斷00003H定時(shí)器T0中斷000BH外部中斷10013H定時(shí)器T1中斷001BH串行口中斷0023H第64頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月
在編寫中斷服務(wù)程序時(shí),應(yīng)注意以下幾點(diǎn):(1)在中斷矢量地址放一條長(zhǎng)轉(zhuǎn)移指令,使中斷服務(wù)程序可以靈活地安排在64KB程序存儲(chǔ)器的任意位置。(2)在執(zhí)行中斷服務(wù)程序時(shí),應(yīng)注意保護(hù)現(xiàn)場(chǎng)。(3)在執(zhí)行中斷服務(wù)程序時(shí),為避免更高優(yōu)先級(jí)的中斷,可用軟件關(guān)閉CPU中斷,或禁止某中斷源中斷,在中斷返回前再開放中斷。(4)中斷返回指令“RETI”不能用“RET”來(lái)代替。2、外部中斷的響應(yīng)時(shí)間
外部中斷從產(chǎn)生到響應(yīng),至少要經(jīng)歷3個(gè)以上的機(jī)器周期,再加上CPU在執(zhí)行指令時(shí)的時(shí)間延遲。因此,為保證可靠響應(yīng)外部中斷,中斷請(qǐng)求信號(hào)至少要保持3~8個(gè)機(jī)器周期。第65頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月§8-3擴(kuò)充外部中斷源MCS-51系列單片機(jī)提供2個(gè)外部中斷源,在很多情況下,僅有兩個(gè)中斷源是遠(yuǎn)遠(yuǎn)不夠的。因此,我們有必要對(duì)其進(jìn)行擴(kuò)充。其方法主要有兩種:1、將定時(shí)器T0、T1擴(kuò)充為外部中斷源2、采用中斷和查詢相結(jié)合的方法擴(kuò)充外部中斷源一、利用定時(shí)器擴(kuò)充外部中斷源51系列單片機(jī)具有內(nèi)部定時(shí)/計(jì)數(shù)器,可以用作對(duì)外部事件計(jì)數(shù),其計(jì)數(shù)脈沖從相應(yīng)引腳輸入。利用這一特點(diǎn),我們將計(jì)數(shù)初值設(shè)置為滿程,一旦外部有一個(gè)脈沖輸入,計(jì)數(shù)器加1并產(chǎn)生溢出中斷。因此可以把外部計(jì)數(shù)引腳T0(P3.4)或T1(P3.5)擴(kuò)充為外部中斷,而T0和T1為外部中斷的中斷矢量入口。例8-3-1將定時(shí)器T0設(shè)為方式2,并將其擴(kuò)充為一個(gè)外部中斷源。第66頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月其程序清單為: ORG 0000H LJMP MAIN ORG 000BH LJMP TIMER0 ORG 0100HMAIN:MOV TMOD,#06H MOV TH0,#0FFH MOV TL0,#0FFH SETB TR0 SETB ET0 SETB EA …………… LJMP $TIMER0:………… RETI第67頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月
這樣,相當(dāng)于在T0引腳上擴(kuò)展一個(gè)外部中斷源。二、利用中斷和查詢相結(jié)合的方法擴(kuò)充外部中斷源
利用這種方法可以擴(kuò)充多個(gè)外部中斷源,并可按需求劃分它們的優(yōu)先級(jí)別。例8-3-2如圖所示,試編寫出中斷服務(wù)程序。XI0最高XI1XI2XI3XI4最低其優(yōu)先級(jí)別要求如下表所示:第68頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月程序清單:EXINT1:PUSH PSW PUSH ACC JB P1.0,SAV1 JB P1.1,SAV2 JB P1.2,SAV3 JB P1.3,SAV4DISUB:POP ACC POP PSW RETISAV1:…….. AJMP DISUBSAV2:…….. AJMP DISUBSAV3:…….. AJMP DISUBSAV4:…….. AJMP DISUB ORG 0000H LJMP MAIN ORG 0003H LJMP EXINT0 ORG 0013H LJMP EXINT1 ORG 0100HMAIN: SETB EX0 SETB EX1 SETB EA
……………….. LJMP $EXINT0:
……………….. RETI第69頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月
由于在查詢工作按P1.0~P1.3的順序進(jìn)行,因此其優(yōu)先級(jí)別為XI1最高,而XI4最低。
注意:外部中斷采用電平觸發(fā)與采用邊沿觸發(fā)基本相似。其區(qū)別僅在于:如果是邊沿觸發(fā),中斷響應(yīng)后會(huì)自動(dòng)清除中斷請(qǐng)求標(biāo)志,而電平觸發(fā)不會(huì)自動(dòng)清除中斷請(qǐng)求標(biāo)志。因此,在實(shí)際使用時(shí),應(yīng)注意以下兩點(diǎn):
1:請(qǐng)求中斷的低電平必須保持足夠的時(shí)間,以確保中斷請(qǐng)求被可靠響應(yīng)。
2、中斷請(qǐng)求信號(hào)保持時(shí)間不宜太長(zhǎng)。在中斷返回前,請(qǐng)求信號(hào)必須被撤除,以避免同一中斷請(qǐng)求被二次響應(yīng)。可在中斷返回前加判中斷信號(hào)是否撤除指令,如上例中,加上JNB P3.2,$或JNB P3.3,$,即可保證同一中斷請(qǐng)求不會(huì)被二次響應(yīng)。第70頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月§8-4中斷系統(tǒng)的應(yīng)用(X=0,1)一、8051系統(tǒng)的單步操作
這種操作方式廣泛應(yīng)用于單片機(jī)的開發(fā)系統(tǒng)中,在常規(guī)系統(tǒng)的設(shè)計(jì)中一般很少使用,我們不作過(guò)多介紹。二、只有一個(gè)外部中斷源的情況例8-4-1如圖所示,將P1.7~P1.4設(shè)置為輸入方式,P1.3~P1.0設(shè)置成輸出方式,驅(qū)動(dòng)發(fā)光二極管,用于顯示P1.7~1.4的輸入情況。要求外部中斷每中斷一次,完成一次讀寫操作。
中斷請(qǐng)求由INT0輸入,并采用了去抖動(dòng)電路。第71頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月程序清單: ORG 0000H LJMP GAFN ORG 0003H LJMP XTGA ORG 0100HGAFN:SETB EX0 SETB IT0 SETB EA AJMP $ ORG 2000HXTGA:MOV A,#0FFH MOV P1,A MOV A,P1 SWAP A MOV P1,A RETI第72頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月三、多個(gè)外部中斷源的情況例8-4-3如圖所示,中斷線路可實(shí)現(xiàn)多個(gè)故障顯示。當(dāng)系統(tǒng)無(wú)故障時(shí),4個(gè)故障源輸入端為低電平,顯示燈全滅,當(dāng)某部分出現(xiàn)故障時(shí),其相應(yīng)的輸入線才由低電平變?yōu)楦唠娖剑瑥亩鹬袛?,中斷服?wù)程序的任務(wù)是判定故障源,并用相應(yīng)的燈顯示。第73頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月程序清單: ORG 0000H LJMP MAIN ORG 0003H LJMP SERVE ORG 0100HMAIN:ANL P1,#55H SETB IT0 SETB EX0 SETB EALOOP1:MOV A,P1 ANL A,#55H JNZ LOOP1 ANL P1,#55H SJMP LOOP1SERVE:JNB P1.0,L1 SETB P1.1 SJMP L2L1: CLR P1.1L2: JNB P1.2,L3 SETB P1.3 SJMP L4L3: CLR P1.3L4: JNB P1.4,L5 SETB P1.5 SJMP L6L5: CLR P1.5L6: JNB P1.6,L7 SETB P1.7 SJMP L8L7: CLR P1.7L8: RETI第74頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月本章作業(yè):1、3、8第75頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月人機(jī)接口鍵盤接口顯示器接口模擬量輸入/輸出接口D/A轉(zhuǎn)換接口A/D轉(zhuǎn)換接口綜合應(yīng)用單片機(jī)與LCD接口第
九
章
單
片
機(jī)
應(yīng)用系統(tǒng)
本章內(nèi)容SingleChipMicrocomputer第76頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月PC機(jī)除了主機(jī)以外還需要哪些部分呢?單片機(jī)電路有時(shí)候也需要鍵盤、顯示等外設(shè)。第77頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月9.1鍵盤接口按鍵的特點(diǎn)及輸入原理獨(dú)立式按鍵矩陣式按鍵第78頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月按鍵的特點(diǎn)及輸入原理鍵輸入原理:
通過(guò)按鍵的接通與斷開,產(chǎn)生兩種相反的邏輯狀態(tài)低電平“0”與高電平“1”。鍵功能的實(shí)現(xiàn):對(duì)于一組鍵或一個(gè)鍵盤,需通過(guò)接口電路與單片機(jī)相連??刹捎貌樵兓蛑袛喾绞綔y(cè)試有無(wú)鍵按下,再確定是哪一個(gè)鍵按下,將該鍵號(hào)送入累加器ACC,然后判斷是數(shù)字鍵還是功能鍵,若是數(shù)字鍵,則將鍵號(hào)對(duì)應(yīng)的數(shù)字送入相關(guān)輸入緩沖區(qū);若是功能鍵,則通過(guò)跳轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完后再返回主程序。
第79頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月鍵盤接口需要解決的問(wèn)題是否有鍵按下按鍵識(shí)別:鍵抖動(dòng)及消除:機(jī)械按鍵抖動(dòng)時(shí)間在5ms~10ms之間
硬件方案——雙穩(wěn)態(tài)去抖電路
軟件方案——延時(shí)10ms~20ms后再次判斷消除方法:求鍵號(hào)第80頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月----掃描(判斷哪個(gè)鍵按下)、去抖動(dòng)、判斷按鍵是否抬起(以防止重復(fù)進(jìn)行鍵處理)。
前沿抖動(dòng)后沿抖動(dòng)鍵按下閉合穩(wěn)定鍵釋放第81頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月獨(dú)立式按鍵接口電路:特點(diǎn):一線一鍵,按鍵識(shí)別(編程)簡(jiǎn)單;但占用較多口線,適合8鍵以下使用。第82頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月原理----當(dāng)任何一個(gè)鍵被按下時(shí),與其相連的輸入線被置成“0”,平時(shí)該線為“1”。鍵處理程序ORG2000HSTART:MOVA,#0FFH;先置P1口為“1”MOVP1,AMOVA,P1;輸入鍵狀態(tài)JNBACC.0,P0F;查詢0號(hào)鍵JNBACC.1,P1F;查詢1號(hào)鍵JNBACC.2,P2F;查詢2號(hào)鍵JNBACC.3,P3F;查詢3號(hào)鍵JNBACC.4,P4F;查詢4號(hào)鍵JNBACC.5,P5F;查詢5號(hào)鍵JNBACC.6,P6F;查詢6號(hào)鍵JNBACC.7,P7F;查詢7號(hào)鍵LJMPSTART鍵盤掃描第83頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月P0F:LJMPPROM0;入口地址表P1F:LJMPPROM1P6F:LJMPPROM6P7F:LJMPPROM7……PROM0:…..;0號(hào)鍵功能程序PROM7:…..;7號(hào)鍵功能程序…..LJMPSTART;0號(hào)鍵處理完返回鍵盤掃描LJMPSTART;7號(hào)鍵處理完返回鍵盤掃描…......第84頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月例1:用P1口檢測(cè)三個(gè)按鍵的狀態(tài)并完成相應(yīng)的功能解:資源分配:用P1口的低3位檢測(cè)3個(gè)按鍵的輸入,為1則表示按鍵沒(méi)有按下,為0則表示相應(yīng)按鍵被按下。流程圖:第85頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月 ORG0000HKB: MOVP1,#0FFH MOVA,P1 CPLA ANLA,#0FH JZKBACK LCALLD10MS MOVA,P1 CPLA ANLA,#0FH JZKBACK CJNEA,#01H,KB01 LCALLPGM1 SJMPKBACKKB01: CJNEA,#02H,KB02 LCALLPGM2 SJMPKBACKKB02: CJNEA,#04H,KB LCALLPGM3KBACK:LJMPKB END編程(1):按三個(gè)按鍵中的任一鍵都對(duì)應(yīng)一個(gè)特定功能。若判斷鍵釋放應(yīng)如何修改?第86頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月矩陣式按鍵關(guān)鍵:如何判斷鍵號(hào)?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口電路:特點(diǎn):按鍵識(shí)別應(yīng)采用掃描法或線路反轉(zhuǎn)法編程較為復(fù)雜,節(jié)省口資源,8鍵以上使用第87頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月鍵盤掃描子程序一般包括以下內(nèi)容:
1.判別有無(wú)鍵按下;
2.掃描獲取閉合鍵的行、列值;
3.用計(jì)算法或查表法得到鍵值;
4.判斷閉合鍵釋放否,如沒(méi)釋放則繼續(xù)等待;
5.保存閉合鍵號(hào)。第88頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月鍵按下/釋放判斷
KS:MOVA,#00H MOVP1,A ;全掃描字#00H送P1口
MOVP1,#0FHMOVA,P1;讀入P1口狀態(tài)
CPLA;變正邏輯,高電平表示有鍵按下
ANLA,#0FH;取低4位
RET ;返回,A≠0表示有鍵按下
第89頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月按鍵識(shí)別——掃描法
流程:
當(dāng)?shù)?列處于低電平時(shí),逐行查找是否有行線變低,若有,則第0列與該行的交叉點(diǎn)按鍵按下;若無(wú),則表示第0列無(wú)鍵按下,再讓下一列處在低電平,依此循環(huán),這種方式稱為鍵盤掃描。
原理:
在某一時(shí)刻只讓一條列線處于低電平,其余列線均處于高電平,則當(dāng)這一列有鍵按下時(shí),該鍵所在的行電平將會(huì)由高電平變?yōu)榈碗娖?,可判定該列相?yīng)的行有鍵按下。第90頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月例2:鍵盤掃描程序SERCH:MOVR2,#0EFH MOVR3,#00HLINE0:MOVA,R2 MOVP1,A MOVA,P1 JBACC.3,LINE1 MOVA,#00H AJMPTRYKLINE1:JBACC.2,LINE2 MOVA,#04H AJMPTRYK LINE2:JBACC.1,LINE3MOVA,#08H接口電路第91頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月
AJMPTRYK
LINE3:JBACC.0,LINE4
MOVA,#0CH
AJMPTRYK
LINE4:INCR3
MOVA,R2
RL A
JNBACC.0,BACK
MOVR2,A
AJMPLINE0
TRYK:ADDA,R3
BACK:RET 接口電路第92頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月矩陣式按鍵關(guān)鍵:如何判斷鍵號(hào)?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口電路:特點(diǎn):按鍵識(shí)別應(yīng)采用掃描法或線路反轉(zhuǎn)法編程較為復(fù)雜,節(jié)省口資源,8鍵以上使用第93頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月定時(shí)掃描方式
定時(shí)掃描方式就是每隔一段時(shí)間對(duì)鍵盤掃描一次,它利用單片機(jī)內(nèi)部的定時(shí)器產(chǎn)生一定時(shí)間(例如10ms)的定時(shí),當(dāng)定時(shí)時(shí)間到就產(chǎn)生定時(shí)器溢出中斷。CPU響應(yīng)中斷后對(duì)鍵盤進(jìn)行掃描,并在有鍵按下時(shí)識(shí)別出該鍵,再執(zhí)行該鍵的功能程序。第94頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月中斷掃描方式
為提高CPU工作效率,可采用中斷掃描工作方式。其工作過(guò)程如下:當(dāng)無(wú)鍵按下時(shí),CPU處理自己的工作,當(dāng)有鍵按下時(shí),產(chǎn)生中斷請(qǐng)求,CPU轉(zhuǎn)去執(zhí)行鍵盤掃描子程序,并識(shí)別鍵號(hào)。第95頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月9.2顯示器接口技術(shù)LED的結(jié)構(gòu)和顯示原理靜態(tài)顯示方式動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示的實(shí)現(xiàn)動(dòng)態(tài)顯示方式第96頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月問(wèn)題引入:
LED顯示器如何顯示出指定數(shù)字/字符?comcom第97頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月例:模擬產(chǎn)品計(jì)數(shù)顯示電路第98頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月編程
ORG 1000HSTAR:MOV TMOD,#60H ;定時(shí)器T1工作在方式2計(jì)數(shù)
MOV TH1,#00H;T1置初值
MOV TL1,#00HMAIN:MOV P1,#0C0H ;數(shù)碼管顯示0DISP:JBP3.3,DISP;監(jiān)測(cè)按鍵信號(hào)
ACALL DELAY ;消抖延時(shí)
JBP3.3,DISP;確認(rèn)低電平信號(hào)DISP1:JNB P3.3,DISP1 ;監(jiān)測(cè)按鍵信號(hào)
ACALL DELAY ;消抖延時(shí)
JNB P3.3,DISP1 ;確認(rèn)高電平信號(hào)
SETBTR1;啟動(dòng)計(jì)數(shù)器DISP2:MOVA,TL1MOVCA,@A+DPTR;查表獲取數(shù)碼管顯示值
MOV P1,A ;數(shù)碼管顯示計(jì)數(shù)值
CJNEA,#8E,DISP2 LJMP STAR TAB:0C0H,0F9H,0A4H…… DELAY:MOVR2,#14HDELAY1:MOVR3,#0FAHDJNZR3,$DJNZR2,DELAY1RETEND第99頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月靜態(tài)顯示方式連接
所有LED的位選均共同連接到+VCC或GND,每個(gè)LED的8根段選線分別連接一個(gè)8位并行I/O口,從該I/O口送出相應(yīng)的字型碼顯示字型。
特點(diǎn)原理簡(jiǎn)單;顯示亮度強(qiáng),無(wú)閃爍;占用I/O資源較多。第100頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月動(dòng)態(tài)顯示方式連接
所有LED的段選線共同連接在一起共用一個(gè)8位I/O口,而每個(gè)LED的位選分別由一根相應(yīng)的I/O口線控制。因此必須采用動(dòng)態(tài)掃描顯示方式,每一個(gè)時(shí)刻只選通其中一個(gè)LED,同時(shí)在段選口送出該位LED的字型碼。
第101頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月動(dòng)態(tài)顯示基本原理
電路的接法決定了必須采用逐位掃描顯示方式。即從段選口送出某位LED的字型碼,然后選通該位LED,并保持一段延時(shí)時(shí)間。然后選通下一位,直到所有位掃描完。
要注意的兩個(gè)問(wèn)題:
1.字型碼通常通過(guò)查表指令MOVC來(lái)求得.2.換位顯示時(shí)通常要加一段程序使所有的LED全滅.第102頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月動(dòng)態(tài)顯示程序流程圖
采用動(dòng)態(tài)掃描方式依次循環(huán)點(diǎn)亮各位數(shù)碼管,構(gòu)成多位動(dòng)態(tài)數(shù)碼管顯示電路。開始顯示緩沖區(qū)首地址送R0顯示位數(shù)送R2起始顯示位送R3禁止所有位(關(guān)顯示)從緩沖區(qū)取要顯示的數(shù)查表得字型碼指向段選口,送字型碼指向位選口,送位選碼延時(shí)指向顯示緩沖區(qū)下一個(gè)單元位選碼左移結(jié)束11掃描完一遍嗎?YN第103頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月
試編制程序,要求當(dāng)其中某一按鍵壓下時(shí)與其對(duì)應(yīng)的二極管將被點(diǎn)亮。課堂練習(xí)P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.08031+5V第104頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月9.3D/A轉(zhuǎn)換器接口D/A轉(zhuǎn)換器的作用典型芯片DAC0832DAC0832的應(yīng)用第105頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月D/A轉(zhuǎn)換器的作用單片機(jī)控制對(duì)象D/A轉(zhuǎn)換將數(shù)字量轉(zhuǎn)換為模擬量,以便操縱控制對(duì)象。D/A轉(zhuǎn)換器的主要指標(biāo)
轉(zhuǎn)換速度:一般幾十微秒到幾百微秒,快速的可達(dá)1微秒。轉(zhuǎn)換精度(分辨率):決定于輸入數(shù)字量的位數(shù),位數(shù)越多,精度越高。第106頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月典型芯片-DAC0832介紹DAC0832是一個(gè)八位D/A轉(zhuǎn)換器,轉(zhuǎn)換時(shí)間1微秒,結(jié)構(gòu)如下:輸出為模擬電流,可轉(zhuǎn)換為電壓。LE1或LE2=1,當(dāng)前寄存器的輸出跟隨輸入LE1或LE2=0,鎖存數(shù)據(jù)第107頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月DAC0832功能分析DI0-DI7:轉(zhuǎn)換數(shù)據(jù)輸入CS:片選信號(hào)ILE,WR1:控制輸入寄存器
ILE=1,WR1=0時(shí):直通
ILE=1,WR1=1時(shí):鎖存因此,DAC0832可以有三種工作形式:直通、單級(jí)鎖存、兩級(jí)鎖存。XFER,WR2:控制DAC寄存器
XFER=0,WR2=0時(shí):直通
XFER=1orWR2=1時(shí):鎖存第108頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月
單緩沖方式的接口(1)
譯碼器輸出——一個(gè)處于直通方式,另一個(gè)處于受控的鎖存方式
第109頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月“同時(shí)”做何解釋?單緩沖方式的接口(2)
——兩個(gè)輸入寄存器同時(shí)受控的方式
第110頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月單緩沖方式的應(yīng)用
——產(chǎn)生鋸齒波
假定采用接口(1)方式,即輸入寄存器受控,而DAC寄存器直通,輸入寄存器地址為E000H,產(chǎn)生鋸齒波。源程序清單如下:
ORG0200 MOVDPTR,#0E000H;指向輸入寄存器地址
MOVA,#00H;轉(zhuǎn)換初值WW: MOVX@DPTR,A;WR1有效,啟動(dòng)D/A轉(zhuǎn)換
INCA NOP;延時(shí)
NOP AJMPWW第111頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月1/282/283/28254/28255/280產(chǎn)生的鋸齒波的過(guò)程第112頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月D/A轉(zhuǎn)換產(chǎn)生的鋸齒波
用同樣的方法也可以產(chǎn)生三角波、矩形波、梯形波。若將A的初值改為FFINC改為DEC?ORG0200 MOVDPTR,#0E000H;指向輸入寄存器地址
MOVA,#0FFH;轉(zhuǎn)換初值WW: MOVX@DPTR,A;WR1有效,啟動(dòng)D/A轉(zhuǎn)換
A NOP;延時(shí)
NOP AJMPWWDECINC第113頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月——兩個(gè)鎖存器都接成受控鎖存方式。雙緩沖方式的接口和應(yīng)用對(duì)一個(gè)數(shù)字量的轉(zhuǎn)換,需兩步完成,程序如下:MOVDPTR,#00E0HMOVX@DPTR,AMOVDPTR,#00C0HMOVX@DPTR,A輸入寄存器地址:00E0HDAC寄存器地址:00C0H你知道它與第二種單緩沖方式的區(qū)別嗎?Y7A7
A6A574LS138Y6C
B
AY7Y6第114頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月9.4A/D轉(zhuǎn)換器接口A/D轉(zhuǎn)換器的作用典型芯片ADC0809ADC0809的應(yīng)用第115頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月A/D轉(zhuǎn)換器的作用將模擬量轉(zhuǎn)換為數(shù)字量,以便計(jì)算機(jī)接收處理傳感器單片機(jī)A/D轉(zhuǎn)換雙積分式A/D轉(zhuǎn)換器逐次逼近式A/D轉(zhuǎn)換器。第116頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月A/D轉(zhuǎn)換器概述逐次逼近式典型A/D轉(zhuǎn)換器芯片有:(1)ADC0801~ADC0805型8位MOS型A/D轉(zhuǎn)換器(2)ADC0808/0809型8位MOS型A/D轉(zhuǎn)換器(3)ADC0816/0817第117頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月典型芯片—ADC0809介紹ADC0809是一個(gè)8位8通道的AD轉(zhuǎn)換器。第118頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月ADC0809功能分析CLK:時(shí)鐘信號(hào),可由單片機(jī)ALE信號(hào)分頻得到。轉(zhuǎn)換有以下幾步:ALE信號(hào)上升沿有效,鎖存地址并選中相應(yīng)通道。ST信號(hào)有效,開始轉(zhuǎn)換。A/D轉(zhuǎn)換期間ST為低電平。EOC信號(hào)輸出高電平,表示轉(zhuǎn)換結(jié)束。OE信號(hào)有效,允許輸出轉(zhuǎn)換結(jié)果。第119頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月ADC0809和單片機(jī)的連接寫信號(hào)、P2.0有效時(shí),啟動(dòng)AD轉(zhuǎn)換。轉(zhuǎn)換結(jié)束后,輸出高電平,向CPU發(fā)出中斷請(qǐng)求讀信號(hào)、P2.0有效時(shí),允許輸出AD轉(zhuǎn)換結(jié)果。轉(zhuǎn)換時(shí)鐘由ALE分頻得到。803174LS373ADC0809÷2CLKD0-D7≥1≥1111GEOCSTALEOERDP2.0WRINT1ALEP0A0-A7A0A1A2ABCVR(+)VR(-)+5VGNDIN0IN7IN6IN5IN4IN3IN2IN1轉(zhuǎn)換結(jié)果由此輸出第120頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月通道選擇表
選擇的通道000001010011100101110111IN0IN1IN2IN3IN4IN5IN6IN7CBA8031A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A00809×××××××ST×××××CBA
×××××××0×××××000
…
…
×××××××0×××××1111.首先分析各個(gè)通道的地址。(IN0到IN7的地址為0000H到0007H)第121頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月編程應(yīng)用—中斷方式編程:可采用中斷、查詢兩種方式。中斷方式:
ORG0000H ;主程序入口地址
AJMPMAIN ;跳轉(zhuǎn)主程序
ORGOO13H ;中斷入口地址
AJMPINT1 ;跳轉(zhuǎn)中斷服務(wù)程序
MAIN:SETBIT1 ;邊沿觸發(fā)
SETBEA ;開中斷
SETBEX1 ;允許中斷
MOVDPTR,#0007H;指向0809IN7通道地址第122頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月MOVX@DPTR,A ;啟動(dòng)A/D轉(zhuǎn)換
SJMP$ ;等待中斷INT1:MOVXA,@DPTR
;讀A/D轉(zhuǎn)換結(jié)果
MOVB,A ;存數(shù)
RETI ;返回第123頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月查詢方式:
ORG0000H ;主程序入口地址
AJMPMAIN ;跳轉(zhuǎn)主程序
ORG1000H ;中斷入口地址MAIN:MOVDPTR,#0007H;指向0809IN7通道地址
MOVX@DPTR,A ;啟動(dòng)A/D轉(zhuǎn)換
L1:JBP3.3L1 ;查詢
MOVXA,@DPTR
;讀A/D轉(zhuǎn)換結(jié)果
MOVB,A ;存數(shù)
SJMP$第124頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月綜合應(yīng)用語(yǔ)音數(shù)字化存儲(chǔ)與回放系統(tǒng)第125頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月主控電路
第126頁(yè),課件共156頁(yè),創(chuàng)作于2023年2月分析實(shí)訓(xùn)電路板中0809的連接,確定各通道地址。對(duì)通道0輸入模擬電壓,運(yùn)行轉(zhuǎn)換程序,用動(dòng)態(tài)顯示方式
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- NX-1607-GMP-Cbl-b-IN-3-GMP-生命科學(xué)試劑-MCE-7412
- Isoorotidine-生命科學(xué)試劑-MCE-5873
- 3-Methoxy-prostaglandin-F1α-生命科學(xué)試劑-MCE-1002
- 二零二五年度紅木家具品牌授權(quán)合同及清單
- 二零二五年度父母無(wú)償贈(zèng)與子女房產(chǎn)并約定維修責(zé)任協(xié)議
- 二零二五年度新能源儲(chǔ)能技術(shù)融資合同
- 施工現(xiàn)場(chǎng)施工防突發(fā)公共衛(wèi)生事件制度
- 施工單位關(guān)于協(xié)調(diào)配合的聯(lián)絡(luò)函
- 雨雪天氣的應(yīng)急預(yù)案
- 《運(yùn)營(yíng)管理 第7版》課件-chapt.05-選址與設(shè)施布置
- 招標(biāo)采購(gòu)基礎(chǔ)知識(shí)培訓(xùn)
- 2024年廣東省公務(wù)員錄用考試《行測(cè)》試題及答案解析
- 2024年法律職業(yè)資格考試(試卷二)客觀題試題及解答參考
- 電力系統(tǒng)分布式模型預(yù)測(cè)控制方法綜述與展望
- 2024年注冊(cè)建筑師-二級(jí)注冊(cè)建筑師考試近5年真題附答案
- 2024年貴州省中考理科綜合試卷(含答案)
- 無(wú)人機(jī)技術(shù)與遙感
- 燃煤電廠超低排放煙氣治理工程技術(shù)規(guī)范(HJ 2053-2018)
- TSG-T7001-2023電梯監(jiān)督檢驗(yàn)和定期檢驗(yàn)規(guī)則宣貫解讀
- 冠脈介入進(jìn)修匯報(bào)
- 護(hù)理病例討論制度課件
評(píng)論
0/150
提交評(píng)論