第四章I、O應(yīng)用技術(shù)_第1頁
第四章I、O應(yīng)用技術(shù)_第2頁
第四章I、O應(yīng)用技術(shù)_第3頁
第四章I、O應(yīng)用技術(shù)_第4頁
第四章I、O應(yīng)用技術(shù)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四章

I/O應(yīng)用技術(shù)第一節(jié)

MCS-51單片機的中斷系統(tǒng)中斷源與中斷標(biāo)志位分類中斷源SFR中的中斷申請標(biāo)志位中斷原因中斷入口外部中斷源外部中斷0IE0(TCON.1)P3.2/腳上的信號可以引起中斷申請0003H外部中斷1IE1(TCON.3)P3.3/腳上的信號可以引起中斷申請0013H內(nèi)部中斷源T0:定時器/計數(shù)器0中斷IF0(TCON.5)T0計數(shù)溢出后引起中斷申請000BHT0:定時器/計數(shù)器1中斷IE0(TCON.7)T1計數(shù)溢出后引起中斷申請001BH串行口中斷RI(SCON.0)串行口接收完一幀數(shù)據(jù)后引起中斷申請0023HTI(SCON.1)串行口發(fā)送完一幀數(shù)據(jù)后引起中斷申請INT1INT0INT0INT1外部中斷TF1TR1TF0TR0IE1IT1IE0IT0TCON.7.6.5.4.3.2.1TCON.0TCON:用于T0和T1

用于外部中斷IT0(TCON.0)——外部中斷0觸發(fā)方式控制位IE0(TCON.1)——外部中斷0中斷申請標(biāo)志位IT1(TCON.1)——觸發(fā)方式控制位,功能同IT0IE1(TCON.1)——中斷申請標(biāo)志位,功能同IE0INT1INT1中斷允許寄存器IEEAESET1EX1ET0EX0IE.7.6.5.4.3.2.1IE.0IE:總中斷允許EX0(IE.0)——外部中斷允許位ET0(IE.1)——

T0中斷允許位EX1(IE.2)——中斷允許位ET1(IE.3)—— T1中斷允許位ES(IE.4)—— 串行口中斷允許位EA(IE.7)—— 總中斷允許位INT0INT1中斷優(yōu)先級寄存器IP——————PSPT1PX1PT0PX0 IE.4.3.2.1IP.0IE:保留位INT0優(yōu)先級T0INT1T1串行口優(yōu)先級中斷入口中斷源中斷入口地址0003HT0000BH0013HT1001BH串行口0023HINT0INT1堆棧應(yīng)用用堆棧保護斷點的方法堆棧區(qū)與SP應(yīng)注意的五點:

1)從棧底到棧頂 2)數(shù)據(jù)先進(jìn)后出 3)PUSH與POP成對使用 4)堆棧區(qū)字節(jié)再做數(shù)據(jù)緩沖區(qū)使用 5)必須對SP置初值中斷響應(yīng)全過程中斷申請的準(zhǔn)備中斷申請的提出響應(yīng)中斷申請的條件CPU響應(yīng)一個中斷之后的操作中斷嵌套在中斷服務(wù)子程序執(zhí)行完的操作中斷實例——管腳輸入單脈沖的實驗圖中的按鍵S每被壓下一次,則單片機P1口上點亮的一個發(fā)光二極管VL將向下循環(huán)移一位。1111R1R0R6R7VL1VL0VL6VL7…P1.0P1.1P1.6P1.7……INT1+5VR9S8031STR_ADD EQU 4000HBRK_ADD EQU 4013H ;中斷服務(wù)子程序入口 ORG STR_ADD AJMP MAIN ORG BRK_ADD AJMP BREAK ORG STR_ADD+#30H ;MAIN=4030HMAIN: MOV A,#01H SETB IT1 ;設(shè)置成沿觸發(fā)方式 MOV IE,#10000100B ;開中斷 MOV P1,#0 ;關(guān)燈ROTATE: NOP SJMP ROTATE ORG STR_ADD+#60H ;BREAK=4060HBREAK: MOV P1,A ;點亮一個燈 RL A ;循環(huán)左移一位 CLR IE1 ;清中斷申請標(biāo)志 RETI ;中斷返回 END第二節(jié)

定時器/計數(shù)器及其應(yīng)用與定時器/計數(shù)器有關(guān)的特殊功能寄存器計數(shù)器定時器/計數(shù)器方式寄存器TMODGATEC/TM1M0GATEC/TM1M0TMOD.7.6.5.4.3.2.1TMOD.0TMOD: T1方式字段 T0方式字段GATE(位TMOD.3)——門控位。與TCON.4都為高電平 時才能啟動T0C/T(位TMOD.2)——定時或計數(shù)功能選擇位。M1和M0(TMOD.1和TMOD.0)——工作方式選擇位。TF1TR1TF0TR0IE1IT1IE0IT0TCON.7.6.5.4.3.2.1TCON.0TCON:定時器控制 外部中斷控制定時器/計數(shù)器控制寄存器TCONTR0(

TCON.0)——T0的運行控制位。TF0(

TCON.0)——T0溢出兼中斷申請標(biāo)志位。TR1——

T1的運行控制位。TF1——

T1溢出兼中斷申請標(biāo)志位。

注:TMOD和TCON的復(fù)位值都是00H定時器/計數(shù)器的四種工作方式(一)方式0——13位定時器/計數(shù)器1。晶振電路機器周期C/T=0C/T=1TL0(5位)TH0(8位)TF0T0溢出標(biāo)志位門控開關(guān)中斷允許GATE位門控信號≥1&TR0位門控信號門控電平S6S5外部計數(shù)脈沖P3.4/

T0P3.2/INT0門控腳定時器/計數(shù)器的四種工作方式(二)方式1——16位定時器/計數(shù)器方式2——可自動重裝初值的 8位定時器/計數(shù)器方式3——兩個8位定時器/計數(shù)器定時器/計數(shù)器應(yīng)用實例·方式0應(yīng)用

例1

已知單片機晶振頻率為6MHz,要求使用T0定時器1ms,使單片機P1.0腳上連續(xù)輸出周期為2ms的方波。 解: 1、計算并確定T0的初值; 2、寫程序(如下)

ORG 0000H ;復(fù)位入口RESET: AJMP START ORG 000BH ;T0中斷入口 AJMP T0INT ORG 0030HSTART: MOV SP,#60H ;初始化程序 MOV TH0,#0F0H ;T0賦初值 MOV TL0,#0CH SETB TR0 ;啟動T0 SETB ET0 ;開中斷 SETB EA ;開總中斷MAIN: AJMP MAIN ;主程序T0INT: CPL P1.0 ;P1.0腳取反 MOV TL0,#0CH ;重裝初值 MOV TH0,#0F0H RETI精度不高,原因: 1,中斷服務(wù)子程序執(zhí)行時間未計入T0定時 2,從中斷申請到CPU響應(yīng)該中斷所經(jīng)歷的 時間未計入T0定時將中斷服務(wù)子程序改為:T0INT: CLR EA ;關(guān)總中斷 CLR TR1 ;停止T0計數(shù) MOV A,#0F0H ;取高8位計算的初值 ADD A,TH0 ;加修正值 MOV TH0,A ;修正后送TH0 MOV A,#0CH ;取低5位計算的初值 ADD A,#0EH ;加14個機器周期 JNB ACC.5,MMM ;加修正值 JNC TH0 ;判低5位有進(jìn)位否 ANL A,#0001111BMMM: MOV TL0,A ;修正后閉塞TL0 CPL P1.0 SETB TR1 ;啟動T0 SETB EA RETI補償方法,原理: 1,在中斷服務(wù)子程序執(zhí)行過程中關(guān)掉總中斷 防止其它中斷嵌套影響定時精度 2,用CLRTR0指令停止T0計數(shù)定時器/計數(shù)器應(yīng)用實例·方式1應(yīng)用

例2

試用單片機定時器/計數(shù)器T1的方式1完成對某生產(chǎn)線的傳送帶上不斷傳送的產(chǎn)品進(jìn)行計數(shù).+6V11+5V7V燈控S4010640106R3R2R1R5R4VTHL1紅傳送帶光電開關(guān)HL2C5C48031P3.3/INT0P3.5/T1其它電路

ORG 0000H ;復(fù)位入口 AJMP START ;T1中斷入口 ORG 001BH AJMP 0500H ORG 0100HSTART: MOV SP,#65H ;初始化程序 MOV TCON,#00H ;可省略 MOV TMOD,#0D0H MOV TH0,#00H ;可省略 MOV TL0,#00H ;可省略 MOV R0,#00H ;清中斷次數(shù)計數(shù)單元 MOV P3,#28H ;設(shè)置P3.5第二功能 SETB TR1 ;啟動T1 SETB ET1 ;開T1中斷 SETB EA ;開總中斷MAIN ACALL XSZ ;主程序,調(diào)顯示子程序 ……………… ORG 0500HT1INT: INC R0 ;中斷服務(wù)子程序 RETI ORG 0600HXSZ: ……………… ;顯示子程序,略 RET方式2應(yīng)用例3 設(shè)單片機8031使用的晶振頻率為6MHz,編程使P1.7腳輸出1kHz連續(xù)方波。

ORG 0

AJMP 0050H

ORG 000BH

AJMP 0250H

ORG 0050H

START: MOV SP,#60H

MOV TMOD,#2

MOV TH0,#6

MOV TL0,#6

MOV IP,#2

SETB TR0

MOV IE,#82H

MAIN: AJMP MAIN

ORG 0250H

T0INT: CPL P1.7

RETI例4 8031型單片機晶振為6MHz,設(shè)定8031和T1做為串行口波特率發(fā)生器,此時T1沒有申請中斷的功能。要求使用T0完成對某高頻發(fā)射機同步頭信號的寬度進(jìn)行監(jiān)測。

ORG 0

AJMP 0030H

ORG 001BH

AJMP 0700H

ORG 0030H

START: MOV SP,#60H

MOV IP,#8

MOV TMOD,#00101001B

MOV TL0,#0

MOV TH0,#0

MOV IE,#10001000B

MOV TCON,#01010000B

MAIN: AJMP MAIN

… …

ORG 0700H

T1INT: MOV TCON,#0

PUSH A

MOV A,TL0

CJNE A,#23H

JC AAA1

CLR PSW.5

AJMP AAA2

AAA1: SETB PSW.5

AAA2: MOV TL0,#

MOV TH0,#

MOV TCON,#01010000B

POP A

RETI第三節(jié)

并行接口應(yīng)用舉例P1口的簡單應(yīng)用例1

P1口作為八個鍵盤S1~S8的狀態(tài)檢測輸入口,鍵盤碼讀入內(nèi)部40H單元.ST_ADDR EQU 0000H ORG ST_ADDR LJMP S1 ORG ST_ADDR+100HS1: MOV P1,#0FFH ;P1口先置全1START: MOV A,P1 ;讀入P1口 MOV 40H,A …… …… ;消抖程序,省略 SJMP START ;循環(huán) ENDP1.0P1.1P1.6P1.78031+5VS1S2S7S8………例2

P1口各位線經(jīng)反相器74LS04各接一個發(fā)光二極管VL.要求編寫一個程序,每隔1S循環(huán)點亮一只發(fā)光二極管.

ORG 0000H LJMP START ORG 0030HSTART: MOV A,#01H ;先點亮第一個發(fā)光二極管LOOP: MOV P1,A ;輸出到P1口 MOV R1,#10 ;延時1SDEL1: MOV R2,#200DEL2: MOV R3,#126 NOPDEL3: DJNZ R3,DEL3 DJNZ R2,DEL2 DJNZ R1,DEL1 RL A ;左移一次 LJMP LOOP ;循環(huán) END1VL61VL71VL01VL1P1.0P1.1P1.6P1.78031…+5V1VL51VL4P3.5P3.4P1.6P1.78031+5V+5VS6S774LS04例3 如圖,用P1.6和P1.7腳上的兩個開關(guān)S6、S7分別控 制P3.5和P3.4腳上的兩個發(fā)光二極管VL4、VL5的亮 與滅。

ORG 0000H

AJMP 4100H

ORG 4100H

START: MOV P1,#0FFH

MOV C,P1.6

MOV P3.5,C

NOP

MOV C,P1.7

MOV P3.4,C

SJMP START

END例4 設(shè)A、B兩條道路的交叉路口上有四組紅黃綠交通燈。A道路的兩組燈用8031型單片機腳P1.0~P1.2控制,B道路的兩組燈用腳P1.3~P1.5控制。并加一緊急事件處理鍵S0。 P1.0P1.1P1.2P1.3P1.4P1.5INT08031+5V紅黃綠紅黃綠A道路6個燈B道路6個燈

ORG 0000H

RESET: AJMP START

ORG 0003H

AJMP 0200H

ORG 0030H

START: MOV SP,#50H

MOV TMOD,#1

MOV IP,#0

MOV IE,#81H

CLR 0F0H

AA0: MOV P1,#11001100B

MOV R0,#0A3H

MOV R1,#2

LCALL YSZ

SETB 0F0H

AA2: MOV P1,#11100001b

MOV R0,#0A3H

MOV R1,#2

LCALL YSZ

AA3: CLR 0F0H

MOV P1,#11010001B

MOV R0,#26H

MOV R1,#1

LCALL YSZ

AJMP AA0

ORG 0150H

YSZ: MOV TCON,#10H

MOV TH0,#0

MOV TL0,#0

AA4: CLR TF0

AA5: JNB TF0,AA5

DJNZ R0,AA4

DJNZ R1,AA4

RET ORG 0200H

INT0Z: PUSH 00H

PUSH 01H

JNB 0F0H,MM1

MOV 01,#11010001B

AJMP MM5MM1: MOV P1,#11001010B

MM5: MOV R0,#20

MOV R1,#1

LCALL YSZ

MOV R1,#11001001B

MM7: JR IE0,MM7

CLR EA

MOV R7,#7FH

MOV R6,#0

MM8: DJNZ R6,MM8

DJNZ R7,MM8

SETB EA

JNB 0F0H,MM9

MOV P1,#11100001B

SJMP MM10

MM9: MOV P1,#11001100B

MOV R0,A

MM10: POP 01H

POP 00H

RETI第四節(jié)

串行I/O接口及其應(yīng)用串行通信的概念及數(shù)據(jù)格式異步方式同步方式D0D1D2D3D4D5D6D7標(biāo)志位停止位空閑D6標(biāo)志停停D0D0D6D7D8空閑起始位同步字符1同步字符2數(shù)據(jù)塊(幾個字節(jié))校驗符1校驗符2起始結(jié)束與串行口有關(guān)的特殊功能寄存器串行口數(shù)據(jù)緩沖器SBUF

串行口為接收方式時,SBUF為數(shù)據(jù)接收緩沖器 串行口為發(fā)送方式時,則為數(shù)據(jù)發(fā)送緩沖器。串行口控制寄存器SCON電源控制寄存器PCON:PCON.7=SMODSM0SM1SM2RENTB8RB8TIRISCON.7.6.5.4.3.2.1SCON.0SCON:SM0,SM0——定義串行口四種工作方式SM2——多機通信時的接收允許標(biāo)志位REN——串行接收允許位TB8——方式2、方式3中為發(fā)送的第九位數(shù)據(jù),傳送用戶定義的信息RB8——方式2、方式3中為接收的第九位數(shù)據(jù)TI——發(fā)送一幀數(shù)據(jù)的結(jié)束標(biāo)志位兼發(fā)送中斷申請標(biāo)志位RI——接收一幀數(shù)據(jù)的結(jié)束標(biāo)志位兼接收中斷申請標(biāo)志位串行口的四種工作方式串行口方式0——移位寄存器方式 用外接移位寄存器芯片擴展并行I/O口方式D0D7…DATACLKSTBCD4094QS并行輸出口P3.0/RXDP3.1/TXDP1.08031D0D7…DATACLKSTBCD4094QS并行輸出口DATA…CLK并行輸出口P3.0/RXDP3.1/TXD8031QAQH…CLK74LS164并行輸出口DATA74LS164CLKSTBCLKQAQHABAB串行口方式0輸出狀態(tài)的兩種電路圖P8P1…CLKCD4014DS并行輸入口P

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論