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

下載本文檔

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

文檔簡(jiǎn)介

第四章

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

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

用于外部中斷IT0(TCON.0)——外部中斷0觸發(fā)方式控制位IE0(TCON.1)——外部中斷0中斷申請(qǐng)標(biāo)志位IT1(TCON.1)——觸發(fā)方式控制位,功能同IT0IE1(TCON.1)——中斷申請(qǐng)標(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)先級(jí)寄存器IP——————PSPT1PX1PT0PX0 IE.4.3.2.1IP.0IE:保留位INT0優(yōu)先級(jí)T0INT1T1串行口優(yōu)先級(jí)中斷入口中斷源中斷入口地址0003HT0000BH0013HT1001BH串行口0023HINT0INT1堆棧應(yīng)用用堆棧保護(hù)斷點(diǎn)的方法堆棧區(qū)與SP應(yīng)注意的五點(diǎn):

1)從棧底到棧頂 2)數(shù)據(jù)先進(jìn)后出 3)PUSH與POP成對(duì)使用 4)堆棧區(qū)字節(jié)再做數(shù)據(jù)緩沖區(qū)使用 5)必須對(duì)SP置初值中斷響應(yīng)全過(guò)程中斷申請(qǐng)的準(zhǔn)備中斷申請(qǐng)的提出響應(yīng)中斷申請(qǐng)的條件CPU響應(yīng)一個(gè)中斷之后的操作中斷嵌套在中斷服務(wù)子程序執(zhí)行完的操作中斷實(shí)例——管腳輸入單脈沖的實(shí)驗(yàn)圖中的按鍵S每被壓下一次,則單片機(jī)P1口上點(diǎn)亮的一個(gè)發(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 ;開(kāi)中斷 MOV P1,#0 ;關(guān)燈ROTATE: NOP SJMP ROTATE ORG STR_ADD+#60H ;BREAK=4060HBREAK: MOV P1,A ;點(diǎn)亮一個(gè)燈 RL A ;循環(huán)左移一位 CLR IE1 ;清中斷申請(qǐng)標(biāo)志 RETI ;中斷返回 END第二節(jié)

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

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

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

T1的運(yùn)行控制位。TF1——

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

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

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

例1

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

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

例2

試用單片機(jī)定時(shí)器/計(jì)數(shù)器T1的方式1完成對(duì)某生產(chǎn)線的傳送帶上不斷傳送的產(chǎn)品進(jìn)行計(jì)數(shù).+6V11+5V7V燈控S4010640106R3R2R1R5R4VTHL1紅傳送帶光電開(kāi)關(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ù)計(jì)數(shù)單元 MOV P3,#28H ;設(shè)置P3.5第二功能 SETB TR1 ;啟動(dòng)T1 SETB ET1 ;開(kāi)T1中斷 SETB EA ;開(kāi)總中斷MAIN ACALL XSZ ;主程序,調(diào)顯示子程序 ……………… ORG 0500HT1INT: INC R0 ;中斷服務(wù)子程序 RETI ORG 0600HXSZ: ……………… ;顯示子程序,略 RET方式2應(yīng)用例3 設(shè)單片機(jī)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型單片機(jī)晶振為6MHz,設(shè)定8031和T1做為串行口波特率發(fā)生器,此時(shí)T1沒(méi)有申請(qǐng)中斷的功能。要求使用T0完成對(duì)某高頻發(fā)射機(jī)同步頭信號(hào)的寬度進(jìn)行監(jiān)測(cè)。

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口的簡(jiǎn)單應(yīng)用例1

P1口作為八個(gè)鍵盤(pán)S1~S8的狀態(tài)檢測(cè)輸入口,鍵盤(pán)碼讀入內(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各接一個(gè)發(fā)光二極管VL.要求編寫(xiě)一個(gè)程序,每隔1S循環(huán)點(diǎn)亮一只發(fā)光二極管.

ORG 0000H LJMP START ORG 0030HSTART: MOV A,#01H ;先點(diǎn)亮第一個(gè)發(fā)光二極管LOOP: MOV P1,A ;輸出到P1口 MOV R1,#10 ;延時(shí)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腳上的兩個(gè)開(kāi)關(guān)S6、S7分別控 制P3.5和P3.4腳上的兩個(gè)發(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型單片機(jī)腳P1.0~P1.2控制,B道路的兩組燈用腳P1.3~P1.5控制。并加一緊急事件處理鍵S0。 P1.0P1.1P1.2P1.3P1.4P1.5INT08031+5V紅黃綠紅黃綠A道路6個(gè)燈B道路6個(gè)燈

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ù)塊(幾個(gè)字節(jié))校驗(yàn)符1校驗(yàn)符2起始結(jié)束與串行口有關(guān)的特殊功能寄存器串行口數(shù)據(jù)緩沖器SBUF

串行口為接收方式時(shí),SBUF為數(shù)據(jù)接收緩沖器 串行口為發(fā)送方式時(shí),則為數(shù)據(jù)發(fā)送緩沖器。串行口控制寄存器SCON電源控制寄存器PCON:PCON.7=SMODSM0SM1SM2RENTB8RB8TIRISCON.7.6.5.4.3.2.1SCON.0SCON:SM0,SM0——定義串行口四種工作方式SM2——多機(jī)通信時(shí)的接收允許標(biāo)志位REN——串行接收允許位TB8——方式2、方式3中為發(fā)送的第九位數(shù)據(jù),傳送用戶(hù)定義的信息RB8——方式2、方式3中為接收的第九位數(shù)據(jù)TI——發(fā)送一幀數(shù)據(jù)的結(jié)束標(biāo)志位兼發(fā)送中斷申請(qǐng)標(biāo)志位RI——接收一幀數(shù)據(jù)的結(jié)束標(biāo)志位兼接收中斷申請(qǐng)標(biāo)志位串行口的四種工作方式串行口方式0——移位寄存器方式 用外接移位寄存器芯片擴(kuò)展并行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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論