Click here to load reader

第三讲: I/O, 中断 , 定时与串口

  • Upload
    forest

  • View
    215

  • Download
    0

Embed Size (px)

DESCRIPTION

第三讲: I/O, 中断 , 定时与串口. 本讲重点: 接口概念 , 单片机的编址与译码方法 ; 中断概念 , 响应条件 , 处理原则 , 中断服务 ; 定时器 / 计数器工作方式 1,2 的 用法 ; 串行通讯的波特率 , 4 种工作方式. 第五章 I/O , 中断 , 定时与串行通信. I/O 接口的作用 / 功能 / 定义. 计算机 / 单片机 与 外设 之间 起 桥梁 作用的 电路或部件 —— 接口 (interface) 。 协调 两者间的 差异 。. 速度 不一致. 数据 性质 不同. 数据 协议 / 格式 不同. - PowerPoint PPT Presentation

Citation preview

  • I/O,, ,; ,,,; /1,2; , 4.

  • I/O,,I/O//// / (interface)

  • /n = 2n MCS-51 = 216 = 65536 = 64K /

  • / ///(P125)(I/O),/

  • I/O I/O (IBM-PC) I/O()

  • A15A0I/OA15 A14 A13 A12 A11 A10 A9 A8 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0P08 (P109)A7/D7 A6/D6 A5/D5 A4/D4 A3/D3 A2/D2 A1/D1 A0/D0P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0P28

  • P2.7P2.5P2.6P0/CE/CE/CEP2.2-2.0RAM 2K A10 A9 A8P2.5 RAM 0000H07FFHP2.2,P2.1,P2.0P0 2K XX0X X000 0000 0000 XX0X X111 1111 1111 MCS-51AD7-0D7-0D7-0Q7-0Q7-0

  • P2.7P2.5P2.6P0/CE/CE/CEP2.2-2.0RAM 2K A10 A9 A8P2.7 0XXX XXXX XXXX XXXXMCS-51AD7-0D7-0D7-0Q7-0P2.6 X0XX XXXX XXXX XXXX(:7FFFH)(:0BFFFH)

  • P2.7P2.5P2.6/CE/CE/CE 74LS1383-8 P0.7-P0.074LS138Y0ABCG G2A G2B0#1#2#7#+5VMCS-51Y1Y2Y7/CE74LS1392-4

  • /(LOOK UP)/(IRQ)(DMA), CPU I/O,,

  • CPU (P.128)

  • TCON CPUS5P2,515(526) 2INT0INT1 2/T0T1 TF0TF1(TF252T2 1TI/RICPU

  • TCONCPU S5P2,CPUTcTsTmTmTc=1/fosc Ts=6Tc Tm=12Tc=6TsS5S6S4S3S2S5S6S4S3S2S1P.40

  • TCON (88H)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCONTF0/TF1 =0 =1TR0/TR1 =0 =1TCONTimerSFR4

  • TCON (88H)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCONIE0/IE1 =0 =1IT0/IT1 =0INT0/INT1; =1INT0/INT1.TCONTimer4

  • CPUINT0/INT1 TCONIE0/IE11IE0/IE11, LCALL 0003H(/0013H),IE0/IE10,(INT0,INT1)

  • (P.130) MCS-51 5

  • PT2 PS PT1 PX1 PT0 PX0IPPX0/PX1INT0/1 =0 =1 PT0/PT1/PT2T0/1/2 =0 =1 PS1 =0 =1 IP (0B8H)

  • () ()

  • (P.131)CPU: 1RETIIEIP,

  • EA ET2 ES ET1 EX1 ET0 EX0IEIE (0A8H) EX0/EX1/ET1/ET0/ES INT0/1Timer0/1 : =0 =1 ET2T252 =0 =1 EA =0 =1

  • (P.132):=0, =1,IE0EX0TF0IE1TF1TIESET1EX1ET0 0 1 0 1 TRRIIE EAIPINT0INT1

  • (P.133)/INT0/INT1TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCON (88H)IT0/IT1INT0/1 IT0/IT1 =0 INT0/INT1 IT0/IT1 =1 INT0/INT1 , CPUINT0/INT1,CPU

  • CLK D0QINTxP1.0CLKSQD()MCS-5174LS74S=0 Q=1P1.00 Q1 ANL P1#0FEH = CLR P1.0 ;Q1 ORL P1, #01H = SETB P1.0 ;S1,Q0

  • / INTx(ITx) TxTCON,TMOD,TRx, RI/TISCON,REN,RB8,TB8,,,Tx ,TI/RI, RETI

  • P13421,B : (B)=01h,,INT1

  • P13421,B : (B)=01h,,INT1 P1.0P1.7INT1300

  • ORG 0000H (P.134) LJMP MAIN ORG 0013H ; LJMP INTMAINSETB EA ; SETB EX1 ; CLR PX1 ;0 SETB IT1 ; MOV B,#01H ; B HERESJMP HERE ;INTMOV AB ;B RL A ; MOV BA ;B, (MOV P1A) ;P1 RETI ;

  • /

  • 216/ (52316Timer):():TxTimer TCON TMOD I/O,, P.135

  • Timer2(TCON,TMOD)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCON (88H) P.137TFx: Timer0/1 =1 =0 TFxCPU TRx: Timer0/1 =1 =0

  • TR0/TR1Timer0/1 TR0/TR1 =0 Timer0/1 TR0/TR1 =1 Timer0/1T0/T1 T0/T1 T0/T1 TF0/TF11 TCONTF0/TF11, LCALL 000BH/LCALL 001BH , TF0/TF10, /T0/T1TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCON (88H)

  • GATE C / T M1 M0 GATE C / T M1 M0TMOD (89H) P.137T1T0M1,M0 ( 4 ):C/T / = 1 Tx = 0 0 013 Timer,0 116 Timer1 0 8 Timer1 1T0 28 TimerT1

  • GATE C / T M1 M0 GATE C / T M1 M0T1T0GATE: Timer GATE = 0 Timer/TRx1/0TMOD(89H) GATE = 1 Timer/TRx1/0 INTx/

  • P.1401: =6MHz,Timer max,minP.1412: T0100mS (=6MHz)P.1413: T=2mS(2)P.1424: 12, 0P.1435: 1 P.1446: 38

  • P.139116/12TLx THx (8) (8)TFxTxTRxGATEINTx1&C/T=0C/T=1 =1

  • THx/TLxTHx8TLx81 P.140 TMOD M1,M0=01 b 1 ,TRx/ TRxINTx // ETxEA TFx TFx0

  • (1)fosc = 6MHz 1Tc=1/6MHz 1Tm=12Tc=12/6MHz=2S Tmin 2S 16216=65536=0FFFFH+1 1 Tmax = 655362 = 131072S131.072mSP14016MHz

  • fosc = 6MHz 1Tm=12Tc=12/6MHz=2S 100mS2 S = 50000 16 216 = 65536 (=0FFFFH+1) 16553650000=15536=3CB0HP1412T0100mS (=6MHz)(1)

  • GATE C / T M1 M0 GATE C / T M1 M0TMODT01=3CB0H X X X X 0 0 0 1MOV TMOD#01H ; T0 1 MOV TH0 #3CH ;8 MOV TL0 #0B0H ;8 SETB TR0 ; T00 SETB ET0 ;T0 SETB EA ;

  • 28 /12TLx (8)TFxTxTRxGATEINTx1&C/T=0C/T=1 =1THx (8)

  • THx/TLx TLx0FFH 1TL0 ,TFx ,THx (Copy)TLx 2 TMOD M1M0 = 10 b 2 1

  • fosc = 6MHz 1 = 2 S 1KHz = 1 mS =500S 500uS2 uS = 250 2 ,8 28 =256 =0FFH + 1 256250=6P1413():P1.0 =1KHz=6MHzT1ThT2

  • ORG 0000H AJMP MAIN ORG 001BH T1 CPL P1.0 P1.0 RETI MAIN: MOV TMOD#20H MOV TH0 #6 MOV TL0 #6 SETB ET1 SETB EA SETB TR1 HERE: AJMP HERE ENDT12T1T1

  • T0 TL0TH08/Timer 3 T1 / T1 TR1TF1TH0, TH1/TL1

  • 12TL0 (8)TF0T0TR0GATEINT01&C/T=0C/T=1 =1TH0 (8)TF1TR1 =1Timer 3 T0 8Timer T1Timer TF1TR1TH0

  • =6MHz1: ORG 0000H ;P.1435 AJMP MAIN ORG 001BH AJMP TINT ;MAIN: MOV TMOD,#10H ;T11 MOV TH1, #3CH ;3CB0H=15536(100mS) MOV TL1#0B0H MOV 30H#10 ;30H =10 CLR F0 ;0 SETB ET1 ;T1 SETB EA ; SETB TR1 ;T1 HERE: JBC F0,TIMEUP ;1 F0 AJMP HERETIMEUP:(do something) ;1 AJMP HERE

  • : ORG 0000H AJMP MAIN ORG 001BH AJMP TINTMAIN:

    TINTDJNZ 30H,RTN ;10 SETB F0 ;101 MOV 30H,#10 ;1RTN: MOV TH1,#3CH ;100mS3CB0HMOV TL1,#0B0H RETI ; END

  • : ORG 0000H AJMP MAIN ORG 001BH AJMP TINT ;MAIN: MOV TMOD,#10H ;T11 MOV TH1#3CH ;3CB0H=15536(100mS) MOV TL1#0B0H MOV 30H#10 ;30H =10 CLR F0 ;0 SETB ET1 ;T1 SETB EA ; SETB TR1 ;T1 HERE: AJMP HERE ;

  • : ORG 0000H AJMP MAIN ORG 001BH AJMP TINTMAIN:

    TINTDJNZ 30H,RTN ;10 MOV 30H,#10 ;1(do something);1)RTN: MOV TH1,#3CH ;MOV TL1,#0B0H RETI ; END

  • 216/TRx(GATE=1 TRxTx)TMOD; /C/T 013 3T08 116 28 TFxETxEA

  • (UART)USBI2CCANSPIRS-485RS-232CRS422A I/O,,(P.144)

  • (UART) :()/ :()/: : (bps.):

  • 51 (P.151)SBUFSBUF TI RIT11A()RxDTxDCPU

  • /SBUF MOV SBUFA ,SBUF MOV ASBUF ,SBUF /, ,/ RI/TI 0/SFR(SCON,PCON)

  • SM0 SM1 SM2 REN TB8 RB8 TI R1SCON SM0SM14 0 0 08I/O, fosc/12 0 1 18UART1+8+1 , 1 0 29UART1+8+1+1 =fosc x1/321/64 1 1 39UART1+8+1+1 SM2 23SCON(98H) P.151

  • RI,TI/ 1 0 TB8239 ,TB8=0 TB8=1 RB8239 ,/ SM0 SM1 SM2 REN TB8 RB8 TI R1 REN = 1 = 0 SCON

  • SMOD GF1 GF0 PD 1DL PCON97H P.152PCON SMOD 123 =1 =0 (PCON) GF1,GF0PCON

  • PD =0 =1: RAMSRF P0P3 SMOD GF1 GF0 PD IDLPCON

  • IDL() =0 =1 RAMSRF CPUP0P3 ,SMOD GF1 GF0 PD 1DLPCON

  • PD =0 =1:RAMSRFP0P3 IDL =0 =1,,RAMSRFCPU,P0P3,SMOD GF1 GF0 PD 1DLPCON

  • 0 P.15308I/OSBUFRxD TxD=fosc1/12 8 TI1 TI RxDSBUF TxD=fosc1/12 8RI1 RI

  • 0 MOV SBUFA JNB RI$ JNB TI$ CLR RI CLR TI MOV A, SBUF08I/O(),SCON ,: 0, REN=1

  • 00I/O123ABCLKh g f e d c b aCLRABCLKCLRABCLKCLR+5V74LS16474LS16474LS16474LS16474LS165h g f e d c b ah g f e d c b a+5VLED VCCTxDRxD51

  • h g f e d c b aabcdgefhLED() () h g f e d c b a A1 1 0 0 0 0 0 00C0H = 00 a b c d e f 0 g h13 a b c d g 0 e f h11 0 1 1 0 0 0 00B0H = 3

  • 08I/OLED09ABCLKh g f e d c b aCLR+5VVCCTxDRxD5174LS164LED

  • 74LS164 LED()0-9DSPLY:MOV DPTR, #TABLE MOVC A, @A+DPTR MOV SBUF, A JNB TI, $ CLR TI RETTABLE:DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H DB 82H,0F8H,80H,90Hh g f e d c b a A1 1 0 0 0 0 0 00C0H = 01 0 1 1 0 0 0 00B0H = 3h g f e d c b aabcdgefh

  • /8 D00 D711 1:8UART(1+8+1) P.153-154 T1 =2SMOD/32T1

  • =(2SMOD/32)T1 P155 T1 T1 X = 2n - 2SMOD fosc32 12 =2SMOD fosc32 12(2n - X)X

  • X = 2n - 2SMOD fosc32 12 P157 T121200 =6MHzT1 X = 28 - 20 610632 1200 12= 256 - = 256 - 13.026106460800 243 = 0F3H

  • , T1 P.156()

    (1,3)foscSMOD(PCON)T1C/T192006MHz1020FEH96006MHz1020FDH48006MHz0020FDH24006MHz0020FAH12006MHz0020F4H6006MHz0020E8H1106MHz00272H

  • RxDTxD, T1,0/ TxD T1: 2(TMOD8); ()XTH1,TL1; T1 (SETB TR1); T1 !!1/ P.153-154: SCON PCONSMOD(=0) ,1REN

  • MAIN ORG 0023H MOV TMOD#20H SBR1:JNB RI,SEND MOV TL1#0F3H LCALL SIN MOV TH1#0F3H SJMP NEXT SETB TR1 SEND:LCALL SOUT MOV SCON, #50H NEXT:RETI SETB EA SIN: SETB ES RET LCALL SOUT SOUT: SJMP $ RETP1571 T121200bps

  • SM0 SM1 SM2 REN TB8 RB8 TI R1SCON SM0SM1 0 1 18UART1+8+1 REN REN=1 SCON 0 1 0 1 0 0 0 0 TB8RB8TIRI 0 SM2,23 0

  • MAIN ORG 0023H MOV TMOD#20H SBR1:JNB RI,SEND MOV TL1#0F3H LCALL SIN MOV TH1#0F3H SJMP NEXT SETB TR1 SEND:LCALL SOUT MOV SCON, #50H NEXT:RETI SETB EA SIN: SETB ES RET LCALL SOUT SOUT: SJMP $ RETP1571 T121200bps

  • SOUT SIN: MOV A@R0 MOV A,SBUF MOV CP MOV C, P CPL C CPL C MOV ACC.7, C ANL A, #7FH INC R0 MOV @R1, A MOV SBUF, A INC R1 CLR TI CLR RI RET RETP157 ()

  • , 8+1 (TB8/RB8) 2: P.154 9UART(1+8+1+1) 2 = fosc 2SMOD/64 : fosc 1/32 fosc 1/64

  • 81 1 81 1

  • 91 8 91 81 1 81 0

  • PSW PCYACF0RS0OVPRS1PSW.7PSW.0 P (PSW.0): P=1 1 P=0 1CPUAcc1 P2

  • P.154 PIPL: PUSH PSW ; PUSH ACC CLR TI ; MOV A@R0 ;R0 MOV C, P ;CTB8 MOV TB8, C ; MOV SBUF,A ; INC R0 ; POP ACC ; POP PSW RETI ;2

  • P.154 A 1P=1 TB81 P=0TB8=0 P.155 P=0,RB8=0 P=1,RB8=1 P=0RB8=1P=1RB8=02 SM0 SM1 SM2 REN TB8 RB8 TI R1SCONSCONTB8 RB8

  • P.155 PIPL: PUSH PSW ; PUSH ACC CLR RI ; MOV ASBUF; MOV C, P ;C =JNB PL1 JNC L1 ;C=0L1 P=0L1 JNB RB8,ERR;P=1L2RB8=0 SJMP L2 ;RB8=1 L2 L1: JB RB8,ERR;P=0RB8=1 L2: MOV @R0, A ;P=0RB8=0 INC R0 ; POP ACC ; POP PSW ERR: RETI ; RETI

  • 3:SM0,SM111,3 9UART(1+8+1+1) 32232643 =(2SMOD/32)T1 P155 =2SMOD fosc32 12(2n - X)X

  • OVER !