




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第四章
單片機的其他片內功能部件4-1 并行I/O口4-2 定時器/計數器4-3 串行通信接口4-4 中斷系統第四章單片機的其他片內功能部件4-1 并行I/O第四章
單片機的其他片內功能部件I/O接口的作用實現和不同外設的速度匹配改變數據傳送方式改變信號的性質和電平第四章單片機的其他片內功能部件I/O接口的作用第四章
單片機的其他片內功能部件外部設備的編址方式1.對外設端口單獨編址
INA,(N);N端口中的數OUT(N),A2.外設端口和存儲器統一編址將一部分地址空間讓給外設端口,存儲器不再使用。優點:(1)一切指令均適用于I/O端口的訪問,增強了CPU對外圍設備的處理能力。(2)CPU本身不需要專門的I/O指令。(3)外設地址安排靈活,數量不限。第四章單片機的其他片內功能部件外部設備的編址方式第四章
單片機的其他片內功能部件端口與接口端口:常指I/O接口中帶有端口地址的寄存器或緩沖器,CPU通過端口地址就可以對端口中信息進行讀寫。接口:指CPU與外設間的I/O接口芯片,一個外設通常需要一個I/O接口,但一個I/O接口可以有多個I/O端口,傳送數據字的端口稱數據口,傳送命令字的稱命令口,傳送狀態字的稱為狀態口。第四章單片機的其他片內功能部件端口與接口第四章
單片機的其他片內功能部件4-1并行I/O口四個8位并行I/O端口:P0、P1、P2和P3。每個端口都是8位準雙向口,包含一個鎖存器(即特殊功能寄存器P0~P3)、一個輸出驅動器和一個輸入緩沖器。這四個并行I/O口都可以作準雙向通用I/O口,既可以作輸入口,又可以作輸出口,還可以作雙向口。輸出有鎖存功能;輸入有三態緩沖但無鎖存功能。它們既可以以字節尋址,也可以按位獨立輸入/輸出。第四章單片機的其他片內功能部件4-1并行I/O第四章
單片機的其他片內功能部件三種I/O端口操作方式1.數據輸出方式(寫端口)通過一條指令將數據寫入P0-P3的數據鎖存器,然后通過輸出驅動器送到端口引腳。MOVP0,A;累加器A中內容送P0口2.讀端口對端口鎖存器數據進行讀入,這個數據并非端口引腳上的數據ORLP1,#0F0H;P1鎖存器中數據送A,經“與”運算后,送P1鎖存器第四章單片機的其他片內功能部件三種I/O端口操作第四章
單片機的其他片內功能部件3.讀引腳從端口引腳上讀數據,先使對應端口鎖存器置位,使T管截止,然后打開數據緩沖器,使引腳數據輸入數據總線。MOVP1,#0FH;使P1口低四位鎖存器置位MOVA,P1;讀P1口低四位引腳線信號第四章單片機的其他片內功能部件3.讀引腳第四章
單片機的其他片內功能部件P1口的位結構第四章單片機的其他片內功能部件P1口的位結構第四章
單片機的其他片內功能部件4-1-1P1口通用I/O口 可以采用字節操作也可以采用位操作,CPU既可以把它們看作數據口也可以看作狀態口。
CPU復位后,口鎖存器為“1”,對于作為輸入的口腳(讀引腳),相應位的口鎖存器不能寫入“0”。第四章單片機的其他片內功能部件4-1-1P1口第四章
單片機的其他片內功能部件例4-1讀P1.4~P1.7口狀態送指示燈顯示。字節操作參考程序:
ORLP1,#0F0H;P1.4~P1.7口鎖存器置1
MOVA,P1;讀P1.4~P1.7引腳狀態
SWAPA;
MOVP1,A;
RET第四章單片機的其他片內功能部件例4-1讀P第四章
單片機的其他片內功能部件4-1-2P2口P2口有兩種功能:對于內部有程序存貯器的單片機,P2口既可以作為輸入/輸出口使用,也可以作為系統擴展的地址總線口,輸出高8位地址A8~A15。對于內部沒有程序存貯器的單片機,必須外接程序存貯器一般情況下P2口只能作為系統擴展的高8位地址總線口,而不能作為外部設備的輸入/輸出口。
第四章單片機的其他片內功能部件4-1-2P2口第四章
單片機的其他片內功能部件P2口作通用I/O口
例4-3
XRLP2,#01H
;字節操作,P2.0取反
CPLP2.0
;位操作,P2.0取反
P2口作地址總線(1)若片外數據存儲器的容量≤256B
這時P2口不輸出地址,仍可作為I/O口使用例4-4將56H寫入外部RAM的38H單元,CPU執行下面的程序段不影響P2口狀態: MOVR0,#38H MOVA,#56H MOVX@R0,A
第四章單片機的其他片內功能部件P2口作通用I/O第四章
單片機的其他片內功能部件(2)若片外數據存儲器的容量≥256B
MOVXA,@DPTRMOVX@DPTR,A第四章單片機的其他片內功能部件(2)若片外數據存第四章
單片機的其他片內功能部件4-1-3P0口P0口既可作通用I/O口(用8051時)使用,又可作地址/數據分時復用總線使用。
第四章單片機的其他片內功能部件4-1-3P0第四章
單片機的其他片內功能部件
4-1-4P3口
P3口除了作為準雙向通用I/O接口使用外,每一根線還具有第二種功能。引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外部中斷0請求輸入端)P3.3INT1(外部中斷1請求輸入端)P3.4T0(定時器/計數器0計數脈沖輸入端)P3.5T1(定時器/計數器1計數脈沖輸入端)P3.6WR(片外RAM寫選通信號輸出端)P3.7RD(片外RAM讀選通信號輸出端)第四章單片機的其他片內功能部件4-1-4P第四章
單片機的其他片內功能部件4-2 定時器/計數器1、MCS-51內部具有兩個定時/計數器,可用于定時控制,分頻器和事故處理來用。2、內部是一個二進制加1計數器,當計數器計滿回零時能自動產生溢出中斷請求,表示定時時間已到或計數已中止。第四章單片機的其他片內功能部件4-2 定時器/第四章
單片機的其他片內功能部件2個可獨立控制的16位定時器/計數器:T0、T1原理:1、定時模式每一個機器周期計數器加1,直至計滿溢出產生中斷請求。對于一個N位的加1計數器,若計數時鐘的頻率f是已知的,則從初值a開始加1計數至溢出所占用的時間為:
當N=8、a=0、t=1/f時,最大的定時時間為:T=256t2、計數模式外部輸入信號是加到T0(P3.4)或T1(P3.5)端,CPU每個機器周期對T0(或T1)檢測一次,只有在前一次檢測為1后一次檢測為0時才使計數器加1。所以,對外部輸入信號的最高計數速率是晶振的1/24。第四章單片機的其他片內功能部件2個可獨立控制的1第四章
單片機的其他片內功能部件一.定時器控制、狀態寄存器1.TMOD定時器方式寄存器(89H)T1T01)功能選擇位C/T: =0,定時功能,計數內部機器周期脈沖; =1,計數功能,計數引腳T0(T1)輸入的脈沖下降沿。2)方式選擇位M1、M0:4種工作方式:13/16/8位3)門控方式選擇位GATE: =0,非門控方式(內部啟動):
TRx=1,啟動定時器工作;
TRx=0,停止定時器工作。 =1,門控方式(外部啟動):TRx=1且引腳INTx=1才啟動。第四章單片機的其他片內功能部件一.定時器控制、狀第四章
單片機的其他片內功能部件TMOD確定定時器工作方式指令:MOVTMOD,#方式字例:設T0用方式2非門控定時,T1用方式1門控計數。
MOV TMOD,#11010010B或MOV TMOD,#0D2H
第四章單片機的其他片內功能部件TMOD確定定時器第四章
單片機的其他片內功能部件2.TCON定時器控制/狀態寄存器(88H)1)啟動控制位TR0、TR1 =0,停止定時器工作;=1,啟動定時器工作。例:啟動T0: SETB TR02)溢出中斷標志位TF0、TF1 定時器溢出使TFx=1。中斷方式: TFx=1引起中斷請求,CPU響應Tx中斷后,自動對TFx清0。軟件查詢方式:可用軟件檢測TFx,必須軟件清0。WAIT:JBCTF0,NEXT;檢測T0是否溢出
SJMP WAIT ;未溢出,繼續檢測 NEXT:… ;溢出,TF0清0,處理溢出第四章單片機的其他片內功能部件2.TCON定時器第四章
單片機的其他片內功能部件3.可預置初值的16位加1定時計數器屬于SFR中的一種,T0由TH0、TL0組成,
T1由TH1、TL1組成。通過預設初值來定時。
預置T0初值指令: MOV TH0,#X MOV TL0,#XL第四章單片機的其他片內功能部件3.可預置初值的1第四章
單片機的其他片內功能部件二、定時器工作方式
1.方式013位定時/計數器。計數外部脈沖個數:1~8192(213)。定時時間(12MHz,即:T=1s):1s~8.192ms。C/T=0C/T=1由方式選擇位M1、M0設定第四章單片機的其他片內功能部件二、定時器工作方式第四章
單片機的其他片內功能部件THx高8位和TLx低5位組成13位加1計數器例:計算得初值為7692,13位定時器T0應裝初值多少?7692化為16進制數1E0CH,則TH0=0FOH,TL0=0CH第四章單片機的其他片內功能部件THx高8位和T第四章
單片機的其他片內功能部件2.方式116位定時/計數器。THx8位和TLx8位組成16位加1計數器計數外部脈沖個數:1~65536(216)定時時間(T=1s):1s~65536×T=65.54msC/T=0C/T=1第四章單片機的其他片內功能部件2.方式1計數外部第四章
單片機的其他片內功能部件3.方式2自動恢復初值8位定時/計數器。TLx為8位加1計數器,THx為8位初值暫存器。無需重裝初值,用于需要重復定時和計數的場合。最大計數值:256(28)最大定時時間(T=1s):256s第四章單片機的其他片內功能部件3.方式2自動恢第四章
單片機的其他片內功能部件注意:方式2下,當定時器計滿回零時,一方面向CPU發出溢出中斷請求,另一方面從TH中重新獲得初值并啟動計數。方式0、1、3下,定時器必須通過重裝初值來重新啟動計數。第四章單片機的其他片內功能部件注意:第四章
單片機的其他片內功能部件4.方式3(只適用T0)T0分成2個獨立的8位定時器:TL0定時/計數器和TH0定時器TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制位。T1不能使用方式3工作,一般當T1作為波特率發生器時,T0選方式3。C/T=0C/T=1第四章單片機的其他片內功能部件4.方式3(只適用第四章
單片機的其他片內功能部件4-2-3定時器/計數器的初始化1.初始化步驟
1)給定時器方式寄存器TMOD送一個方式控制字,以設定定時器/計數器的相應工作方式。2)確定需要定時的時間和需要計數的初值,給定時器/計數器送定時器初值或計數器初值。3)給中斷允許寄存器IE選送中斷控制字和中斷優先級寄存器IP選送中斷優先級字,以開放相應中斷和設定中斷優先級。4)給定時器控制寄存器TCON送命令字,以啟動或禁止定時器/計數器的運行。第四章單片機的其他片內功能部件4-2-3定時第四章
單片機的其他片內功能部件2.計數器初值的計算
TC=M-C
式中,TC為計數初值,C為計滿所需要的計數個數,M為計數器模數,該值和計數器工作方式有關。在方式0時M為2^13;在方式1時M為2^16;在方式2和方式3時M為2^8。
4-2-3定時器/計數器的初始化第四章單片機的其他片內功能部件2.計數器初值的計第四章
單片機的其他片內功能部件3.定時器初值的計算T=(M-TC)T計數上式也可寫成:TC=M-T/T計數式中,M為模值,和定時器的工作方式有關;T計數是單片機時鐘周期TCLK的12倍;TC為定時器的定時初值。
4-2-3定時器/計數器的初始化第四章單片機的其他片內功能部件3.定時器初值的計第四章
單片機的其他片內功能部件例4-7若單片機時鐘頻率為12MHz,請計算定時2ms所需的定時器初值。解:由于定時器工作在方式2和方式3下時的最大定時時間只有0.256ms,因此要想獲得2ms的定時時間定時器必須工作在方式0或方式1。若采用方式0,則根據公式可得定時器初值為:TC=M-T/T計數=
2^13
-2*10^3/1=6192=1830H即:TH0應裝#0C1H;TL0應裝#10H(高三位為0)若采用方式1,則根據公式可得定時器初值為:TC=-2ms/1=63536=F830H即:TH0應裝#0F8H;TL0應裝#30H。第四章單片機的其他片內功能部件例4-7若單片第四章
單片機的其他片內功能部件例:設8031時鐘頻率為12MHz,要求定時器T0定時50ms,寫出初始化程序。 TC=M-T/T計數=2^16-50ms/1us=15536=3CB0HSTART:MOVTMOD#01H;方式1MOVTH0,#3CH;裝初值MOVTL0,#0B0HSETBTR0;啟動T0計數WAIT:JBCTF0,TT0;檢測T0是否溢出
SJMP WAIT ;未溢出,繼續檢測TTO:MOVTH0,#3CH;重裝初值MOVTL0,#0B0HCPLP1.0;功能?HERE:SJMPHERE第四章單片機的其他片內功能部件例:設8031時鐘第四章
單片機的其他片內功能部件4-3 串行接口一.串行通訊的基本方式(一).異步通訊以字符為傳送單位用起始位和停止位標識每個字符的開始和結束,字符間隔不固定,只需字符傳送時同步。異步通訊常用格式:一個字符幀(二).同步通信每一數據塊開頭時發送一個或兩個同步字符,使發送與接收雙方取得同步。數據塊的各個字符間取消了起始位和停止位,所以通信速度得以提高。
第四章單片機的其他片內功能部件4-3 串行接口第四章
單片機的其他片內功能部件二.串行接口功能1.發送器:并串數據格式轉換,添加標識位和校驗位,一幀發送結束,設置結束標志,申請中斷。2.接收器:串并數據格式轉換,檢查錯誤,去掉標識位,保存有效數據,設置接收結束標志,申請中斷。3.控制器:接收編程命令和控制參數,設置工作方式:同步/異步、字符格式、波特率、校驗方式、數據位與同步時鐘比例等。4.串行數據傳送方向單工通訊:數據單向傳送。半雙工通訊:數據可分時雙向傳送。全雙工通訊:可同時進行發送和接收第四章單片機的其他片內功能部件二.串行接口功能第四章
單片機的其他片內功能部件三、串行接口控制器1.數據緩沖器SBUF
發送SBUF和接收SBUF共用一個地址99H。
1)發送SBUF存放待發送的8位數據,寫入SBUF將同時啟動發送。 發送指令: MOV SBUF,A 2)接收SBUF存放已接收成功的8位數據,供CPU讀取。 讀取串行口接收數據指令:MOVA,SBUF
第四章單片機的其他片內功能部件三、串行接口控制器第四章
單片機的其他片內功能部件2.串行口控制/狀態寄存器SCON(98H)SM2:多機控制位,用于多機通訊。REN:允許接收控制位,REN=1,允許接收;REN=0,禁止接收。TB8:發送的第9位數據位,可用作校驗位和地址/數據標識位RB8:接收的第9位數據位或停止位TI:發送中斷標志,發送一幀結束,TI=1,必須軟件清零RI:接收中斷標志,接收一幀結束,RI=1,必須軟件清零SM0,SM1:選擇串行口4種工作方式。第四章單片機的其他片內功能部件2.串行口第四章
單片機的其他片內功能部件波特率:每秒鐘傳送二進制數碼的位數(bit數),單位是bps(bitpersecond)。若波特率為1200bps,字符的實際傳送速率為1200/10=120幀/秒。3.節電控制寄存器
PCONSMOD(PCON.7):波特率加倍控制位。SMOD=1,波特率加倍,SMOD=0,則不加倍。第四章單片機的其他片內功能部件波特率:3.節電第四章
單片機的其他片內功能部件四、串行接口的工作方式
SM0,SM1選擇四種工作方式。(1)方式0:同步移位寄存器方式。用于擴展并行I/O接口。1.一幀8位,無起始位和停止位。2.RXD:數據輸入/輸出端。
TXD:同步脈沖輸出端,每個脈沖對應一個數據位。3.波特率B=fosc/12
如:fosc=12MHz, B=1MHz,每位數據占1s。4.發送過程:先對TI清零,寫入SBUF,啟動發送,一幀發送結束,TI=1。接收過程:REN=1且RI=0,啟動接收,一幀接收完畢,RI=1第四章單片機的其他片內功能部件四、串行接口的工第四章
單片機的其他片內功能部件串行輸入、并行輸出移位寄存器內部結構第四章單片機的其他片內功能部件串行輸入、并行輸出第四章
單片機的其他片內功能部件(2)方式1
8位數據異步通訊方式。1.一幀10位:8位數據位,1個起始位(0),1個停止位(1)。2.RXD:接收數據端。
TXD:發送數據端。3.波特率:用T1作為波特率發生器,B=(2SMOD/32)×T1溢出率。4.發送:先對TI清零,寫入SBUF,同時啟動發送,一幀發送結束,TI=1。
接收:REN=1,RI=0,允許接收。接收完一幀,將接收數據裝入SBUF,并使RI=1。接收原理:當REN=1,CPU開始采樣RXD引腳負跳變信號,若出現負跳變,才進入數據接收狀態。即先檢測起始位,若第一位為0,繼續接收其余位;否則,停止接收,重新采樣負跳變。數據采樣速率為波特率16倍頻,在數據位中間,用第7、8、9個脈沖采樣3次數據位,并3中取2保留采樣值。第四章單片機的其他片內功能部件(2)方式1
8第四章
單片機的其他片內功能部件(2)方式
8位數據異步通訊方式。寫入SBUF采樣(a)發送時序圖TXD數據輸出TID0D1D2D3D4D5D6D7停止位起始位RXD輸入數據(b)接收時序圖D0D1D2D3D4D5D6D7停止位起始位RI檢測負跳變第四章單片機的其他片內功能部件(2)方式寫入采第四章
單片機的其他片內功能部件(3)方式2和方式3
9位數據異步通訊方式。1.一幀為11位:9位數據位,1個起始位(0),1個停止位(1)。第9位數據位在TB8/RB8中,常用作校驗位和多機通訊標識位。2.RXD:接收數據端,TXD:發送數據端。3.波特率:方式2:B=(2SMOD/64)×fosc。
方式3:B=(2SMOD/32)×T1溢出率。4.發送:先裝入TB8,寫入SBUF并啟動發送,發送結束,TI=1。
接收:REN=1,允許接收。接收完一幀,若RI=0,SM2=0或RB8=1,將接收數據裝入接收SBUF,第9位裝入RB8,使RI=1;否則丟棄接收數據,不置位RI。
第四章單片機的其他片內功能部件(3)方式2和方第四章
單片機的其他片內功能部件(3)方式2和方式3
9位數據異步通訊方式。發送時序寫入SBUFTXD輸出TIRXD輸入接收時序RID0D1D2D3D4D5D6TB8停止位起始位D7D0D1D2D3D4D5D6RB8停止位起始位D7檢測負跳變第四章單片機的其他片內功能部件(3)方式2和方第四章
單片機的其他片內功能部件(4)計算波特率方式0為固定波特率:B=fosc/12 方式2可選兩種波特率:B=(2SMOD/64)×fosc 方式1、3為可變波特率,用T1作波特率發生器。
B=(2SMOD/32)×T1溢出率T1為方式2的溢出時間:t=(28-X)T=(28-X)×12/foscT1溢出率=1/t=fosc/[12×(2n-X)]
波特率B=(2SMOD/32)×fosc/[12×(28-X)]串行口方式1、3,根據波特率選擇T1工作方式,計算時間常數。T1選方式2:TH1=X=28-fosc/12×2SMOD/(32×B)T1選方式1用于低波特率,需考慮T1重裝時間常數時間。第四章單片機的其他片內功能部件(4)計算波特率方第四章
單片機的其他片內功能部件4-3-5單片機雙機通訊和多機通信1.雙機通訊第四章單片機的其他片內功能部件4-3-5單片第四章
單片機的其他片內功能部件串行口的應用
串行口初始化編程格式:
SIO:MOVSCON,#××H;方式字,且TI=RI=0 MOVPCON,#80H ;波特率加倍
MOVTMOD,#20H ;T1作波特率發生器,方式2
MOVTH1,#X;選定波特率
MOVTL1,#X SETBTR1 SETBEA;開串行口中斷
SETBES第四章單片機的其他片內功能部件串行口的應用第四章
單片機的其他片內功能部件發送程序:先發送一個字符,等待TI=1后再發送下一個字符。1.查詢方式:TRAM:MOVA,@R0 ;取數據
MOVSBUF,A ;發送一個字符WAIT:JBC TI,NEXT ;等待發送結束SJMPWAITNEXT:INC R0;準備下一次發送SJMPTRAM2.中斷方式:
ORG 0023H ;串行口中斷入口
AJMPSINTMAIN: … ;初始化編程TRAM:MOV A,@R0 ;取數據
MOV SBUF,A;發送第一個字符
H:SJMP H;其它工作
SINT:CLRTI ;中斷服務程序
INC R0 MOV A,@R0 ;取數據
MOV SBUF,A;發送下一個字符
RETI第四章單片機的其他片內功能部件發送程序:先發送一第四章
單片機的其他片內功能部件接收程序:REN=1、RI=0等待接收,當RI=1,從SBUF讀取數據。1.查詢方式:
WAIT: JBC RI,NEXT ;查詢等待
SJMP WAIT NEXT: MOV A,SBUF ;讀取接收數據
MOV @R0,A ;保存數據
INC R0 ;準備下一次接收
SJMP WAIT2.中斷方式:
ORG 0023H AJMP RINT MAIN: … ;初始化編程
H: SJMP H ;其它任務
RINT: CLR RI ;清中斷標志
MOV A,SBUF ;讀取接收數據
MOV @R0,A ;保存數據
INC R0 RETI第四章單片機的其他片內功能部件接收程序:REN=第四章
單片機的其他片內功能部件(一)串行口方式0用于擴展單片機的并行I/O接口串行口實現:并行→串行的數據轉換
74LS165/74LS164實現:串行→并行的數據轉換。(二)異步通訊程序舉例
1.發送程序:將片內RAM50H起始單元的16個數由串行口發送。要求發送波特率為系統時鐘的32分頻,并進行奇偶校驗。 MAINT:MOV SCON,#80H;串行口初始化,方式2
MOV PCON,#80H;波特率,SMOD=1
SETB EA SETB ES ;開串行口中斷
MOV R0,#50H ;設數據指針
MOV R7,#10H ;數據長度 LOOP: MOV A,@R0 ;取一個字符
MOV C,P ;加奇偶校驗
MOV TB8,C MOV SBUF,A ;啟動一次發送 HERE: SJMP HERE ;CPU執行其它任務第四章單片機的其他片內功能部件(一)串行口方式0第四章
單片機的其他片內功能部件
ORG 0023H ;串行口中斷入口
AJMP TRANITRANI: PUSH A ;保護現場
PUSH PSW CLR TI ;清發送結束標志
DJNZ R7,NEXT ;是否發送完?
CLR ES ;發送完,關閉串行口中斷 SJMP TENDNEXT: INC R0 ;未發送完,修改指針
MOV A,@R0 ;取下一個字符
MOV C,P ;加奇偶校驗
MOV TB8,C MOV SBUF,A ;發送一個字符
POP PSW ;恢復現場
POP A TEND: RETI ;中斷返回第四章單片機的其他片內功能部件第四章
單片機的其他片內功能部件2.接收程序:串行輸入16個字符,存入片內RAM的50H起始單元,串行口波特率為2400(設晶振為11.0592MHz)。RECS: MOV SCON,#50H;串行口方式1允許接收 MOV TMOD,#20H;T1方式2定時 MOV TL1,#0F4H ;寫入T1時間常數 MOV TH1,#0F4H SETBTR1;啟動T1 MOV R0,#50H ;設數據指針 MOV R7,#10H ;接收數據長度 WAIT: JBC RI,NEXT ;等待串行口接收 SJMPWAIT NEXT: MOV A,SBUF ;讀取接收字符 MOV @R0,A ;保存一個字符 INC R0 ;修改指針 DJNZR7,WAIT ;全部字符接收完? RET第四章單片機的其他片內功能部件2.接收程序:串第四章
單片機的其他片內功能部件3.接收程序:串行輸入16個字符,進行奇偶校驗。RECS: MOV SCON,#0D0H;串行口方式3允許接收
MOV TMOD,#20H;T1方式2定時
MOV TL1,#0F4H;寫入T1時間常數
MOV TH1,#0F4H SETBTR1 ;啟動T1 MOV R0,#50H;設數據指針
MOV R7,#10H ;接收數據長度
WAIT: JBC RI,NEXT ;等待串行口接收
SJMPWAIT NEXT: MOV A,SBUF ;取一個接收字符
JNB P,COMP ;奇偶校驗
JNB RB8,ERR ;P≠RB8,數據出錯
SJMPRIGHT ;P=RB8,數據正確COMP: JB RB8,ERRRIGHT: MOV @R0,A;保存一個字符
INC R0 ;修改指針
DJNZR7,WAIT ;全部字符接收完?
CLR F0 ;F0=0,接收數據全部正確
ERR: SETBF0 ;F0=1,接收數據出錯
RET第四章單片機的其他片內功能部件3.接收程序:串第四章
單片機的其他片內功能部件4-4 中斷系統4.4.1中斷系統概述一、中斷的概念中央處理器CPU正在處理某事件的時候,外部發生了更為緊急的事件,請求CPU暫停當前的工作,轉入處理所發生的事情,處理完后,再回到被中斷的地方,繼續原來的工作,這樣的過程稱為中斷。第四章單片機的其他片內功能部件4-4 中斷系第四章
單片機的其他片內功能部件中斷技術的優點:提高CPU的效率。提高實時數據的處理時效。被控對象的實時參數、越限數據和故障信息為計算機及時采集,以便應急處理。故障處理如掉電中斷。中斷系統的功能:中斷優先權排隊根據輕重緩急排隊,優先處理最緊急事件的中斷請求。實現中斷嵌套
CPU處理中斷時,發生另一個優先級更高的中斷請求,CPU轉而響應優先級更高的中斷請求,處理完之后再回到原來中斷服務程序。自動響應中斷實現中斷返回。第四章單片機的其他片內功能部件中斷技術的優點:第四章
單片機的其他片內功能部件二、中斷系統結構2個外部中斷源信號:INT0、INT12個定時器T0、T1溢出中斷請求:TF0、TF11個串行口數據發送、接收結束中斷請求:TI、RI第四章單片機的其他片內功能部件二、中斷系統結構2第四章
單片機的其他片內功能部件三、中斷控制寄存器第四章單片機的其他片內功能部件三、中斷控制寄存器第四章
單片機的其他片內功能部件四、中斷控制寄存器中的各中斷標志1.中斷標志位:
TF1、TF0、IE1、IE0、RI、TI
TCONSCON登記各中斷源請求信號:=1,有中斷請求;=0,無中斷請求。CPU響應中斷后,各中斷標志自動清零。注意:TI,RI標志必須軟件清零。2.外部中斷觸發方式選擇位:IT0、IT1=1,負邊沿觸發中斷請求;=0,低電平觸發中斷請求。第四章單片機的其他片內功能部件四、中斷控制寄存器第四章
單片機的其他片內功能部件3.中斷允許控制位:EA、ES、ET1、EX1、ET0、EX0IE=1,開中斷;=0,關中斷。例:允許CPU響應T0的中斷請求
MOVIE,#82H或者SETBET0 SETBEA4.中斷優先級控制位:PS、PT1、PX1、PT0、PX0IP2級優先級:=1,為高優先級;=0,為低優先級。 同一優先級別按內部查詢順序排列優先級:
高INT0、T0、INT1、T1、SIO低。五、中斷控制寄存器中各控制位第四章單片機的其他片內功能部件3.中斷允許控制位第四章
單片機的其他片內功能部件注意:一種中斷一旦得到響應,與它同級的中斷不能再中斷它。低優先級中斷可以被高優先級中斷所中斷,反之不能。第四章單片機的其他片內功能部件注意:第四章
單片機的其他片內功能部件4.4.2中斷處理過程1.中斷響應(一)中斷響應條件1.有中斷源發出中斷請求;2.中斷總允許位EA=1,即CPU開中斷;3.相應的中斷允許位為1,即沒有屏蔽。(二)響應過程1.阻斷同級或低級中斷;2.PC指針內容壓棧保護;3.相應中斷入口地址裝入PC,程序轉移到該中斷入口地址單元。第四章單片機的其他片內功能部件4.4.2中斷處第四章
單片機的其他片內功能部件(三)中斷響應阻斷 1.當CPU未執行完一條指令。 2.當有同級或高級中斷服務。 3.執行RET、RETI等指令后,不能立即響應中斷。4.4.2中斷處理過程1.中斷響應第四章單片機的其他片內功能部件(三)中斷響應阻第四章
單片機的其他片內功能部件2.中斷處理注意:(1)各中斷源的入口矢量地址之間,相隔8個單元,通常是在中斷入口矢量地址單元處存放一條無條件轉移指令,轉至存儲器其他的任何空間去執行中斷服務程序。
(2)若要在執行當前中斷程序時禁止更高優先級中斷,應用軟件關閉CPU中斷,或屏蔽更高級中斷源的中斷,在中斷返回前再開放中斷。
(3)在保護現場和恢復現場時,為了不使現場信息受到破壞或造成混亂,一般在此情況下,應關CPU中斷,使CPU暫不響應新的中斷請求。3.中斷返回中斷返回指令:
RETI=RET指令+通知CPU中斷服務已結束。第四章單片機的其他片內功能部件2.中斷處理第四章
單片機的其他片內功能部件4.4.3中斷系統應用中斷服務程序的—般格式如下:
CLR EA ;關中斷PUSHPSW;保護現場PUSHA…SETB EA ;開中斷,允許CPU響應高級中斷…;服務程序CLR EA ;關中斷POPA;恢復現場POPPSW…SETB EA ;開中斷RETI ;中斷返回第四章單片機的其他片內功能部件4.4.3中斷系第四章
單片機的其他片內功能部件1.定時器/計數器的應用和編程
例4-10產生2ms的方波
ORG 0000H RESET:AJMP MAIN
;轉主程序
ORG000BH
;轉中斷處理程序
AJMP IT0P
ORG0100H MAIN:MOVSP,#60H ACALL PT0M0 HERE:SJMPHERE;等待中斷 PT0M0:MOV TL0,#0CH ;T0置初值
MOV TH0,#0F0H SETB TR0 SETB ET0 ;允許T0中斷
SETBEA ;CPU開放中斷
RET第四章單片機的其他片內功能部件1.定時器/計數器第四章
單片機的其他片內功能部件IT0P:MOV TL0,#0CH ;T0重新置初值
MOV TH0,#0F0H CPL P1.0 ;P1.0取反
RETI第四章單片機的其他片內功能部件IT0P:M第四章
單片機的其他片內功能部件2.串行口的應用和編程
例4-12MAIN:MOVTMOD,#20H;T1,方式2,產生波特率MOVTHl,#0FDH;T1裝初值MOVTL1,#0FDHSETBTRlMOVSCON,#52H;選串行口方式l,允許接收,MOVR4,#0;R4作字符串表指針MOVDPTR,#TSABMLPl:MOVA,R4MOVCA,@A+DPTRJZMLP6;字符串以0表示結束MLP3:JBCTI,MLP2;判斷上一位是否發送完SJMPMLP3MLP2:MOVSBUF,A;發送下一位INCR4;位指針加一SJMPMLP1第四章單片機的其他片內功能部件2.串行口的應用和第四章
單片機的其他片內功能部件MLP6:JBCRI,MLP5;上一位接收完則接收下一位數SJMPMLP6;未接收完則等待MLP5:MOVA,SBUFMLP8:JBCTI,MLP7;上一位發送完則發送下一位數SJMPMLP8;未發送完則等待MLP7:MOVSBUF,ASJMPMLP6TSAB:DB‘MCS-51Microcomputer’DB0AH,0DH,0第四章單片機的其他片內功能部件MLP6:J第四章
單片機的其他片內功能部件4-1 并行I/O口4-2 定時器/計數器4-3 串行通信接口4-4 中斷系統第四章單片機的其他片內功能部件4-1 并行I/O第四章
單片機的其他片內功能部件I/O接口的作用實現和不同外設的速度匹配改變數據傳送方式改變信號的性質和電平第四章單片機的其他片內功能部件I/O接口的作用第四章
單片機的其他片內功能部件外部設備的編址方式1.對外設端口單獨編址
INA,(N);N端口中的數OUT(N),A2.外設端口和存儲器統一編址將一部分地址空間讓給外設端口,存儲器不再使用。優點:(1)一切指令均適用于I/O端口的訪問,增強了CPU對外圍設備的處理能力。(2)CPU本身不需要專門的I/O指令。(3)外設地址安排靈活,數量不限。第四章單片機的其他片內功能部件外部設備的編址方式第四章
單片機的其他片內功能部件端口與接口端口:常指I/O接口中帶有端口地址的寄存器或緩沖器,CPU通過端口地址就可以對端口中信息進行讀寫。接口:指CPU與外設間的I/O接口芯片,一個外設通常需要一個I/O接口,但一個I/O接口可以有多個I/O端口,傳送數據字的端口稱數據口,傳送命令字的稱命令口,傳送狀態字的稱為狀態口。第四章單片機的其他片內功能部件端口與接口第四章
單片機的其他片內功能部件4-1并行I/O口四個8位并行I/O端口:P0、P1、P2和P3。每個端口都是8位準雙向口,包含一個鎖存器(即特殊功能寄存器P0~P3)、一個輸出驅動器和一個輸入緩沖器。這四個并行I/O口都可以作準雙向通用I/O口,既可以作輸入口,又可以作輸出口,還可以作雙向口。輸出有鎖存功能;輸入有三態緩沖但無鎖存功能。它們既可以以字節尋址,也可以按位獨立輸入/輸出。第四章單片機的其他片內功能部件4-1并行I/O第四章
單片機的其他片內功能部件三種I/O端口操作方式1.數據輸出方式(寫端口)通過一條指令將數據寫入P0-P3的數據鎖存器,然后通過輸出驅動器送到端口引腳。MOVP0,A;累加器A中內容送P0口2.讀端口對端口鎖存器數據進行讀入,這個數據并非端口引腳上的數據ORLP1,#0F0H;P1鎖存器中數據送A,經“與”運算后,送P1鎖存器第四章單片機的其他片內功能部件三種I/O端口操作第四章
單片機的其他片內功能部件3.讀引腳從端口引腳上讀數據,先使對應端口鎖存器置位,使T管截止,然后打開數據緩沖器,使引腳數據輸入數據總線。MOVP1,#0FH;使P1口低四位鎖存器置位MOVA,P1;讀P1口低四位引腳線信號第四章單片機的其他片內功能部件3.讀引腳第四章
單片機的其他片內功能部件P1口的位結構第四章單片機的其他片內功能部件P1口的位結構第四章
單片機的其他片內功能部件4-1-1P1口通用I/O口 可以采用字節操作也可以采用位操作,CPU既可以把它們看作數據口也可以看作狀態口。
CPU復位后,口鎖存器為“1”,對于作為輸入的口腳(讀引腳),相應位的口鎖存器不能寫入“0”。第四章單片機的其他片內功能部件4-1-1P1口第四章
單片機的其他片內功能部件例4-1讀P1.4~P1.7口狀態送指示燈顯示。字節操作參考程序:
ORLP1,#0F0H;P1.4~P1.7口鎖存器置1
MOVA,P1;讀P1.4~P1.7引腳狀態
SWAPA;
MOVP1,A;
RET第四章單片機的其他片內功能部件例4-1讀P第四章
單片機的其他片內功能部件4-1-2P2口P2口有兩種功能:對于內部有程序存貯器的單片機,P2口既可以作為輸入/輸出口使用,也可以作為系統擴展的地址總線口,輸出高8位地址A8~A15。對于內部沒有程序存貯器的單片機,必須外接程序存貯器一般情況下P2口只能作為系統擴展的高8位地址總線口,而不能作為外部設備的輸入/輸出口。
第四章單片機的其他片內功能部件4-1-2P2口第四章
單片機的其他片內功能部件P2口作通用I/O口
例4-3
XRLP2,#01H
;字節操作,P2.0取反
CPLP2.0
;位操作,P2.0取反
P2口作地址總線(1)若片外數據存儲器的容量≤256B
這時P2口不輸出地址,仍可作為I/O口使用例4-4將56H寫入外部RAM的38H單元,CPU執行下面的程序段不影響P2口狀態: MOVR0,#38H MOVA,#56H MOVX@R0,A
第四章單片機的其他片內功能部件P2口作通用I/O第四章
單片機的其他片內功能部件(2)若片外數據存儲器的容量≥256B
MOVXA,@DPTRMOVX@DPTR,A第四章單片機的其他片內功能部件(2)若片外數據存第四章
單片機的其他片內功能部件4-1-3P0口P0口既可作通用I/O口(用8051時)使用,又可作地址/數據分時復用總線使用。
第四章單片機的其他片內功能部件4-1-3P0第四章
單片機的其他片內功能部件
4-1-4P3口
P3口除了作為準雙向通用I/O接口使用外,每一根線還具有第二種功能。引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外部中斷0請求輸入端)P3.3INT1(外部中斷1請求輸入端)P3.4T0(定時器/計數器0計數脈沖輸入端)P3.5T1(定時器/計數器1計數脈沖輸入端)P3.6WR(片外RAM寫選通信號輸出端)P3.7RD(片外RAM讀選通信號輸出端)第四章單片機的其他片內功能部件4-1-4P第四章
單片機的其他片內功能部件4-2 定時器/計數器1、MCS-51內部具有兩個定時/計數器,可用于定時控制,分頻器和事故處理來用。2、內部是一個二進制加1計數器,當計數器計滿回零時能自動產生溢出中斷請求,表示定時時間已到或計數已中止。第四章單片機的其他片內功能部件4-2 定時器/第四章
單片機的其他片內功能部件2個可獨立控制的16位定時器/計數器:T0、T1原理:1、定時模式每一個機器周期計數器加1,直至計滿溢出產生中斷請求。對于一個N位的加1計數器,若計數時鐘的頻率f是已知的,則從初值a開始加1計數至溢出所占用的時間為:
當N=8、a=0、t=1/f時,最大的定時時間為:T=256t2、計數模式外部輸入信號是加到T0(P3.4)或T1(P3.5)端,CPU每個機器周期對T0(或T1)檢測一次,只有在前一次檢測為1后一次檢測為0時才使計數器加1。所以,對外部輸入信號的最高計數速率是晶振的1/24。第四章單片機的其他片內功能部件2個可獨立控制的1第四章
單片機的其他片內功能部件一.定時器控制、狀態寄存器1.TMOD定時器方式寄存器(89H)T1T01)功能選擇位C/T: =0,定時功能,計數內部機器周期脈沖; =1,計數功能,計數引腳T0(T1)輸入的脈沖下降沿。2)方式選擇位M1、M0:4種工作方式:13/16/8位3)門控方式選擇位GATE: =0,非門控方式(內部啟動):
TRx=1,啟動定時器工作;
TRx=0,停止定時器工作。 =1,門控方式(外部啟動):TRx=1且引腳INTx=1才啟動。第四章單片機的其他片內功能部件一.定時器控制、狀第四章
單片機的其他片內功能部件TMOD確定定時器工作方式指令:MOVTMOD,#方式字例:設T0用方式2非門控定時,T1用方式1門控計數。
MOV TMOD,#11010010B或MOV TMOD,#0D2H
第四章單片機的其他片內功能部件TMOD確定定時器第四章
單片機的其他片內功能部件2.TCON定時器控制/狀態寄存器(88H)1)啟動控制位TR0、TR1 =0,停止定時器工作;=1,啟動定時器工作。例:啟動T0: SETB TR02)溢出中斷標志位TF0、TF1 定時器溢出使TFx=1。中斷方式: TFx=1引起中斷請求,CPU響應Tx中斷后,自動對TFx清0。軟件查詢方式:可用軟件檢測TFx,必須軟件清0。WAIT:JBCTF0,NEXT;檢測T0是否溢出
SJMP WAIT ;未溢出,繼續檢測 NEXT:… ;溢出,TF0清0,處理溢出第四章單片機的其他片內功能部件2.TCON定時器第四章
單片機的其他片內功能部件3.可預置初值的16位加1定時計數器屬于SFR中的一種,T0由TH0、TL0組成,
T1由TH1、TL1組成。通過預設初值來定時。
預置T0初值指令: MOV TH0,#X MOV TL0,#XL第四章單片機的其他片內功能部件3.可預置初值的1第四章
單片機的其他片內功能部件二、定時器工作方式
1.方式013位定時/計數器。計數外部脈沖個數:1~8192(213)。定時時間(12MHz,即:T=1s):1s~8.192ms。C/T=0C/T=1由方式選擇位M1、M0設定第四章單片機的其他片內功能部件二、定時器工作方式第四章
單片機的其他片內功能部件THx高8位和TLx低5位組成13位加1計數器例:計算得初值為7692,13位定時器T0應裝初值多少?7692化為16進制數1E0CH,則TH0=0FOH,TL0=0CH第四章單片機的其他片內功能部件THx高8位和T第四章
單片機的其他片內功能部件2.方式116位定時/計數器。THx8位和TLx8位組成16位加1計數器計數外部脈沖個數:1~65536(216)定時時間(T=1s):1s~65536×T=65.54msC/T=0C/T=1第四章單片機的其他片內功能部件2.方式1計數外部第四章
單片機的其他片內功能部件3.方式2自動恢復初值8位定時/計數器。TLx為8位加1計數器,THx為8位初值暫存器。無需重裝初值,用于需要重復定時和計數的場合。最大計數值:256(28)最大定時時間(T=1s):256s第四章單片機的其他片內功能部件3.方式2自動恢第四章
單片機的其他片內功能部件注意:方式2下,當定時器計滿回零時,一方面向CPU發出溢出中斷請求,另一方面從TH中重新獲得初值并啟動計數。方式0、1、3下,定時器必須通過重裝初值來重新啟動計數。第四章單片機的其他片內功能部件注意:第四章
單片機的其他片內功能部件4.方式3(只適用T0)T0分成2個獨立的8位定時器:TL0定時/計數器和TH0定時器TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制位。T1不能使用方式3工作,一般當T1作為波特率發生器時,T0選方式3。C/T=0C/T=1第四章單片機的其他片內功能部件4.方式3(只適用第四章
單片機的其他片內功能部件4-2-3定時器/計數器的初始化1.初始化步驟
1)給定時器方式寄存器TMOD送一個方式控制字,以設定定時器/計數器的相應工作方式。2)確定需要定時的時間和需要計數的初值,給定時器/計數器送定時器初值或計數器初值。3)給中斷允許寄存器IE選送中斷控制字和中斷優先級寄存器IP選送中斷優先級字,以開放相應中斷和設定中斷優先級。4)給定時器控制寄存器TCON送命令字,以啟動或禁止定時器/計數器的運行。第四章單片機的其他片內功能部件4-2-3定時第四章
單片機的其他片內功能部件2.計數器初值的計算
TC=M-C
式中,TC為計數初值,C為計滿所需要的計數個數,M為計數器模數,該值和計數器工作方式有關。在方式0時M為2^13;在方式1時M為2^16;在方式2和方式3時M為2^8。
4-2-3定時器/計數器的初始化第四章單片機的其他片內功能部件2.計數器初值的計第四章
單片機的其他片內功能部件3.定時器初值的計算T=(M-TC)T計數上式也可寫成:TC=M-T/T計數式中,M為模值,和定時器的工作方式有關;T計數是單片機時鐘周期TCLK的12倍;TC為定時器的定時初值。
4-2-3定時器/計數器的初始化第四章單片機的其他片內功能部件3.定時器初值的計第四章
單片機的其他片內功能部件例4-7若單片機時鐘頻率為12MHz,請計算定時2ms所需的定時器初值。解:由于定時器工作在方式2和方式3下時的最大定時時間只有0.256ms,因此要想獲得2ms的定時時間定時器必須工作在方式0或方式1。若采用方式0,則根據公式可得定時器初值為:TC=M-T/T計數=
2^13
-2*10^3/1=6192=1830H即:TH0應裝#0C1H;TL0應裝#10H(高三位為0)若采用方式1,則根據公式可得定時器初值為:TC=-2ms/1=63536=F830H即:TH0應裝#0F8H;TL0應裝#30H。第四章單片機的其他片內功能部件例4-7若單片第四章
單片機的其他片內功能部件例:設8031時鐘頻率為12MHz,要求定時器T0定時50ms,寫出初始化程序。 TC=M-T/T計數=2^16-50ms/1us=15536=3CB0HSTART:MOVTMOD#01H;方式1MOVTH0,#3CH;裝初值MOVTL0,#0B0HSETB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鐵路運輸吊裝作業安全措施
- 2025年互聯網+政務服務模式創新與實踐案例研究報告
- 青少年數學思維拓展活動計劃
- 旅游管理項目部管理工作流程
- 高效灌溉系統建設的技術措施分析
- 湘少版小學英語三年級上冊學習資源整合計劃
- 2025年快消品行業包裝材料環保性能提升報告
- 2025年工業互聯網平臺NFV虛擬化在智能醫療影像的智能識別與分析報告
- 大數據與智慧旅游結合的2025年精準營銷策略報告
- 2025年文化旅游演藝項目市場趨勢與預測報告
- 協和專家孕產大百科
- 2022年湖北宜昌高新區社區專職工作人員招聘24人筆試備考題庫及答案解析
- 無人機應用技術專業人才培養方案(中職)
- 科技成果-電解鋁煙氣脫硫脫氟除塵一體化技術
- YS/T 273.12-2006冰晶石化學分析方法和物理性能測定方法 第12部分:火焰原子吸收光譜法測定氧化鈣含量
- GB/T 39171-2020廢塑料回收技術規范
- 2015山東高考英語試題及答案
- GB/T 18964.2-2003塑料抗沖擊聚苯乙烯(PS-I)模塑和擠出材料第2部分:試樣制備和性能測定
- GA/T 1661-2019法醫學關節活動度檢驗規范
- 資料交接移交確認單
- 風對起飛和著陸影響及修正和風切變完整版課件
評論
0/150
提交評論