[单片机][微机原理极其应用][课件]mcs51-0
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
效),INTE=1;(WR#有效到无效复位INTR) e)PC4、5可作为I/O数据线使用,通过C口按位置 /复位操作进行。
21
• 3.方式2:带选通的双向传输方式
• 双向的传输方式:可以向外设发送数据;又可以接收从外设 发来的数据 • 方式2的基本定义如下:只能适用于A端口。一个8位的双向 端口(A端口)和1个5位的控制端口(C端口)。 •
1 1 × × ×
端口A 方式2 端口B 方式设定 PC2~PC0 1输入,0输出 PC3 INTRA PA7~PA0 OBFA ACKA STBA IBFA 3
PC7 INTE1 PC6 PC4 INTE2 PC5 PC3~PC0
方式2时各控制信号: STB:选通信号,低电平有效。 IBF:输入缓冲器满信号,高电平有效。 WR OBF:输出缓冲器满信号,低电平有效。 RD INTR:中断请求信号,高电平有效。 ACK:数据接收应答信号,低电平有效。 INTEI:输出中断允许信号。
I/O
22
五、8255应用举例
1、Centronics并行打印接口标准
STROBE:输入,下降沿用于通知打印机接受数据; BUSY:输出,有效表示打印机正在接受并处理数据的状态; ACK:输出,下降沿用于通知其他设备可以传送下一个数据。
23
2、Centronics并行打印接口标准
例5:假设利用8255的A口方式0与打印机相连,将 内存缓冲区BUFF中的字符打印输出。
初始化程序为: MOV A,#0B8H MOV DPTR, #7FF3H MOVX @DPTR, A
9
2、C口按位置/复位控制字
例2:如上例,若A口工作于方式1作输入,要使用中断 传送方式,则应当写PC4的按位置位字: MOV A,#00001001B MOV DPTR, #7FF3H MOVX @DPTR, A
PB7~PB0 INTE PC2 B PC1 PC0
8
STBB IBFB INTRB
I/O
RD
17
方式1输入时C端口对A、B端口的控制
• (2)选通的输出方式 • 方式1在选通输出情况下对应的控制信号:
1 0 1 0 1/0 × × ×
方式1 端口A输出
1 ×××× 1 0 ×
方式1 端口B输出
PA7~PA0 INTEA PC6 PC7 PC3 WR PC4~PC5 ACKA OBFA INTRA WR
e)PC6、7可作为I/O数据线使用,通过C口按位置
/复位操作进行。
20
选通输出时硬件特性:
a)PC口的REG对应为状态信息,非引脚信息; b)INTE与方式1输入一致; c)PC2、PC6引脚作用:表示外设欲取走数据,与 PC口REG的值不是一回事;
d)INTR中断条件:ACK#(引脚)从0→1(有效到无
26
MOVX @DPTR, A
例6:假设利用8255的A口方式1与打印机相连,将 内存缓冲区BUFF中的字符打印输出。
8255 打印机 打印机接口在STB有效 时,接收数据,而在ACK D7-D0 D7-D0 D7-D0 PA7-PA0 有效时,表示打印机可 IOW WR 接收下一个数据。 RD PC7 STB 因此,先给打印机发 IOR PC6 送数据,然后根据ACK信 A1 A1 ACK 号产生中断。中断中, A0 A0 PC3 先发送数据,再产生一 A7-A2=011000 至8259 个反向脉冲给打印机的 STB,全部发送完成后不 思考:利用8255的B口如何接线? 再产生中断。
16
(1)选通的输入方式
•
A组工作于方式1输入的控制字
B组工作于方式1输入的控制字
1 0 1 1 1/0 × × ×
方式1
端口A输入
1 × × × × 1 1 ×
方式1
PC7、PC6
1输入,0输出
端口B输入
PA7~PA0 INTE PC4 A PC5 PC3 RD PC6、PC7
8
STBA IBFA INTRA
14
例4:假设有一个4×4的矩阵键盘通过并行接口芯片 8255(起始地址为7F00H)与微机相连,画出8255与 键盘电路连接图并编写键盘扫描程序。 分析:键盘行与列交叉点接通时为键盘键按下; 键盘行线连8255输出口,列线连8255输入口。
15
程序清单:
MOV A, #82H MOV DPTR, #7FF3H MOVX @DPTR, A BEGIN:MOV A, #00H MOV DPTR, #7FF0H MOVX @DPTR, A MOV DPTR, #7FF1H WAIT: MOVX A, @DPTR ANL A, #0FH CJNE A, #0FH, SM SJMP WAIT SM: 键处理程序
10
• •
2.端口C置1/置0控制字
8255A在和CPU传输数据的过程中,经常将C端口的某几位作为控制位或 状态位来使用,配合A端口或B端口的工作。 • 初始化时,C端口置l/置0控制字可以单独设置到C端口的某一位为0或某 一位为1,控制字的D7位为“0”是C端口置l/置0控制字中的标识位。 • D6~D4位可为任意值,不影响操作。D3~D1位用来决定对C端口8位中的哪 一位进行操作。Do位用来决定对所选择的位是置l还是置0。
12
四、8255的工作方式
1、方式0—基本I/O方式
13
例3:用8255(起始地址为7FF0H)发出一个脉冲, 编写相应程序。
MOV A, #80H ;PA口方式0输出,PB口方式0输出
MOV DPTR, #7FF3H MOVX @DPTR, A ;PC口高、低4位均输出 MOV DPTR, #7FF0H MOV A, #00H MOVX @DPTR, A MOV A,#02H MOVX @DPTR, A MOV A, #00H ;PA1产生一个正向脉冲 MOVX @DPTR, A
补充2 单片机系统扩展
并行I/O接口8255扩展
华东理工大学信息学院自动化系
1
第七章
7.1 7.2 7.3 7.4 7.5
MCS-51单片机系统扩展
概 述 外部存储器的扩展 外围接口芯片及其扩展技术 定时/计数器芯片8253 并行I/O接口芯片8255
2
7.5 并行接口
7.5.1 并行接口概述
并行接口与串行接口
输入
输出
禁止
7
三、 8255的控制字与初始化编程
1、工作方式控制字
工作方式控制字与C口按位置/复位冲突控制: 工作方式控制字—D7=1; C口按位置/复位—D7=0。
8
例1:要求使用8255的A口工作于方式1作输入,B 口工作于方式0作输出,C口上半部输入,下半部输 出,8255端口地址为7FF0H-7FF3H。请写出初始化 程序。 控制字为:10111000B=0B8H
打印机接口在STB有效 时,接收数据,而在 BUSY有效时,表示打印 机忙,不能接收数据。 因此,先检测打印机的 BUSY信号,不忙后发送 数据,然后发送反向脉冲 给打印机接口的STB,通 知其接收数据,循环至全 部发送完成。
24
PORTA PORTB PORTC PORTCN
EQU EQU EQU EQU
7F60H 7F61H 7F62H 7F63H
START:MOV DPTR,# PORTCN MOV A,#88H ;A口方式0输出,C口上半部输入 MOVX @DPTR,A MOV AL,#01H ;C口下半部输出,置位PC0,STB无效 MOVX @DPTR,A MOV R0,#BUFF
25
WAIT:MOV DPTR, #PORTC MOVX A, @DPTR ;读打印机状态,若“忙”则等待 ANL A,#80H JNZ WAIT MOV A,@R0 CJNE A,#‘$’,SEND JZ PRINT_OVER SEND: MOV DPTR, #PORTA MOVX @DPTR, A ;发送数据 MOV A, #00H ;产生STB,打印机接收并打印数据 MOV DPTR, #PORTC MOVX @DPTR, A MOV INC JMP A,#01H R0 WAIT PRINT_OVER: ……
3
7.5.2 可编程芯片8255
一、8255的基本功能
具有2个8位和2个4位并行I/O口,4位并行I/O口可 按位控制; 能支持无条件、查询、中断控制方式; 可支持多种(0、1、2)工作方式。
二、8255的内部结构和外部引脚
4
1、内部结构
5
2、外部引脚
CPU侧: D0-D7,A1A0, CS,RD、WR 外设侧: PA0-PA7, PB0-PB7, PC0-PC3, PC4-PC7
D7 D6 D5 D4 D3 D2 D1 D0
任意值 一般为0 C端口置位 标识位 总为 0
•
• • • •
C端口位选择 000:PC0 001:PC1 010:PC2 011:PC3 100:PC4 101:PC5 110:PC6 111:PC7
置1/置0选择 0:置0 1:置1
11
• 例如:要将C端口的PC3置0,PC7置l,可用下列程序段实现。 0 0 0 0 0 1 1 0 • • 06H
MOV A, #10010000B MOV DPTR, #PORTC MOVX @DPTR, A LOP:MOV DPTR, #PORTA
MOVX A, @DPTR
CPL A, #0FFH INC DPTR MOVX @DPTR, A SJMP LOP
30
8非门测试(A输入,B输出):
MOV A, #90H MOV DPTR, #PORT C LP1: MOV DPTR, #PORTB MOV A, #0FFH
PB7~PB0 INTEB PC2 PC1 ACKB OBFB
PC0
INTRB
18
选通方式的硬件特性: a)PC口的REG对应为状态信息,非引脚信息;
D7 D6 D5 D4 D3 D2 D1 D0 A组状态 输入时 I/O I/O IBFA INTEA INTRA B组状态 输入时 INTEB IBFB INTRB
28
;中断服务程序 …… MOV A,@R0 CJNE A,#‘$’,OK JZ PRINT_OVER OK: MOV DPTR, #PORTA MOVX @DPTR, A ;打印机产生ACK,触发8255产生中断
INC
RETI
R0
……
PRINT_OVER:
29
开关控制发光二极管(A口输入,B口输出):
27
MOV DPTR,# PORTCN MOV AL,#0C0H ;A口方式1输出,C口上半部输出 MOVX @DPTR,A MOV A,@R0 ; 发送第一个字符 MOV DPTR, #PORTA;发送完后自动产生OBF至打印机的 INC …… R0 ; STB#
片内RAM40H单元开始 ‘HELLO,WORLD!’,13,10,‘$’
6
I/O端口地址:8255提供4个端口(使用A1A0); 命令:初始化—设置工作方式; 操 作—向PA、PB、PC口写数据, 从PA、PB、PC口读数据。
8255的端口与命令关系表:
A1 0 0 1 0 0 1 1 X 1 X A0 0 1 0 0 1 0 1 X 1 X RD 0 0 0 1 1 1 1 X 0 1 WR 1 1 1 0 0 0 0 X 1 1 CS 0 0 0 0 0 0 0 1 0 0 操作 A口内容读至数据总线 B口内容读至数据总线 C口内容读至数据总线 数据总线内容写至A口 数据总线内容写至B口 数据总线内容写至C口 写至控制寄存器或C口 端口输出为高阻 非法 端口输出为高阻
输出时
OBFA I/O I/O INTEA INTRA
输出时
INTEB OBFB INTRB
方式1下的状态字
19
选通输入时硬件特性: b)INTE为中断允许位,对应PC口REG(状态字)的 D4位,可通过对PC口按位写方法设置; c)PC2、PC4引脚作用:用作锁存数据口数据,与 PC口REG的值不是一回事; d)INTR中断条件:STB#(引脚)=1(无效),IBF=1、 INTE=1; (RD#有效到无效复位INTR)
PC3 置0
0 0 0 0 1 1 1 1 0FH
PC7
置1
• • • • •
MOV A,06H ;PC3置0控制字送AL MOX DPTR,#PortCtr ; 控制口地址 PortCtr送DPTR MOVX @DPTR,A ;对PC3 完成置0操作 MOV A,0FH ;PC7置1控制字送AL MOVX @DPTR,A ;对PC7完成置1操作
21
• 3.方式2:带选通的双向传输方式
• 双向的传输方式:可以向外设发送数据;又可以接收从外设 发来的数据 • 方式2的基本定义如下:只能适用于A端口。一个8位的双向 端口(A端口)和1个5位的控制端口(C端口)。 •
1 1 × × ×
端口A 方式2 端口B 方式设定 PC2~PC0 1输入,0输出 PC3 INTRA PA7~PA0 OBFA ACKA STBA IBFA 3
PC7 INTE1 PC6 PC4 INTE2 PC5 PC3~PC0
方式2时各控制信号: STB:选通信号,低电平有效。 IBF:输入缓冲器满信号,高电平有效。 WR OBF:输出缓冲器满信号,低电平有效。 RD INTR:中断请求信号,高电平有效。 ACK:数据接收应答信号,低电平有效。 INTEI:输出中断允许信号。
I/O
22
五、8255应用举例
1、Centronics并行打印接口标准
STROBE:输入,下降沿用于通知打印机接受数据; BUSY:输出,有效表示打印机正在接受并处理数据的状态; ACK:输出,下降沿用于通知其他设备可以传送下一个数据。
23
2、Centronics并行打印接口标准
例5:假设利用8255的A口方式0与打印机相连,将 内存缓冲区BUFF中的字符打印输出。
初始化程序为: MOV A,#0B8H MOV DPTR, #7FF3H MOVX @DPTR, A
9
2、C口按位置/复位控制字
例2:如上例,若A口工作于方式1作输入,要使用中断 传送方式,则应当写PC4的按位置位字: MOV A,#00001001B MOV DPTR, #7FF3H MOVX @DPTR, A
PB7~PB0 INTE PC2 B PC1 PC0
8
STBB IBFB INTRB
I/O
RD
17
方式1输入时C端口对A、B端口的控制
• (2)选通的输出方式 • 方式1在选通输出情况下对应的控制信号:
1 0 1 0 1/0 × × ×
方式1 端口A输出
1 ×××× 1 0 ×
方式1 端口B输出
PA7~PA0 INTEA PC6 PC7 PC3 WR PC4~PC5 ACKA OBFA INTRA WR
e)PC6、7可作为I/O数据线使用,通过C口按位置
/复位操作进行。
20
选通输出时硬件特性:
a)PC口的REG对应为状态信息,非引脚信息; b)INTE与方式1输入一致; c)PC2、PC6引脚作用:表示外设欲取走数据,与 PC口REG的值不是一回事;
d)INTR中断条件:ACK#(引脚)从0→1(有效到无
26
MOVX @DPTR, A
例6:假设利用8255的A口方式1与打印机相连,将 内存缓冲区BUFF中的字符打印输出。
8255 打印机 打印机接口在STB有效 时,接收数据,而在ACK D7-D0 D7-D0 D7-D0 PA7-PA0 有效时,表示打印机可 IOW WR 接收下一个数据。 RD PC7 STB 因此,先给打印机发 IOR PC6 送数据,然后根据ACK信 A1 A1 ACK 号产生中断。中断中, A0 A0 PC3 先发送数据,再产生一 A7-A2=011000 至8259 个反向脉冲给打印机的 STB,全部发送完成后不 思考:利用8255的B口如何接线? 再产生中断。
16
(1)选通的输入方式
•
A组工作于方式1输入的控制字
B组工作于方式1输入的控制字
1 0 1 1 1/0 × × ×
方式1
端口A输入
1 × × × × 1 1 ×
方式1
PC7、PC6
1输入,0输出
端口B输入
PA7~PA0 INTE PC4 A PC5 PC3 RD PC6、PC7
8
STBA IBFA INTRA
14
例4:假设有一个4×4的矩阵键盘通过并行接口芯片 8255(起始地址为7F00H)与微机相连,画出8255与 键盘电路连接图并编写键盘扫描程序。 分析:键盘行与列交叉点接通时为键盘键按下; 键盘行线连8255输出口,列线连8255输入口。
15
程序清单:
MOV A, #82H MOV DPTR, #7FF3H MOVX @DPTR, A BEGIN:MOV A, #00H MOV DPTR, #7FF0H MOVX @DPTR, A MOV DPTR, #7FF1H WAIT: MOVX A, @DPTR ANL A, #0FH CJNE A, #0FH, SM SJMP WAIT SM: 键处理程序
10
• •
2.端口C置1/置0控制字
8255A在和CPU传输数据的过程中,经常将C端口的某几位作为控制位或 状态位来使用,配合A端口或B端口的工作。 • 初始化时,C端口置l/置0控制字可以单独设置到C端口的某一位为0或某 一位为1,控制字的D7位为“0”是C端口置l/置0控制字中的标识位。 • D6~D4位可为任意值,不影响操作。D3~D1位用来决定对C端口8位中的哪 一位进行操作。Do位用来决定对所选择的位是置l还是置0。
12
四、8255的工作方式
1、方式0—基本I/O方式
13
例3:用8255(起始地址为7FF0H)发出一个脉冲, 编写相应程序。
MOV A, #80H ;PA口方式0输出,PB口方式0输出
MOV DPTR, #7FF3H MOVX @DPTR, A ;PC口高、低4位均输出 MOV DPTR, #7FF0H MOV A, #00H MOVX @DPTR, A MOV A,#02H MOVX @DPTR, A MOV A, #00H ;PA1产生一个正向脉冲 MOVX @DPTR, A
补充2 单片机系统扩展
并行I/O接口8255扩展
华东理工大学信息学院自动化系
1
第七章
7.1 7.2 7.3 7.4 7.5
MCS-51单片机系统扩展
概 述 外部存储器的扩展 外围接口芯片及其扩展技术 定时/计数器芯片8253 并行I/O接口芯片8255
2
7.5 并行接口
7.5.1 并行接口概述
并行接口与串行接口
输入
输出
禁止
7
三、 8255的控制字与初始化编程
1、工作方式控制字
工作方式控制字与C口按位置/复位冲突控制: 工作方式控制字—D7=1; C口按位置/复位—D7=0。
8
例1:要求使用8255的A口工作于方式1作输入,B 口工作于方式0作输出,C口上半部输入,下半部输 出,8255端口地址为7FF0H-7FF3H。请写出初始化 程序。 控制字为:10111000B=0B8H
打印机接口在STB有效 时,接收数据,而在 BUSY有效时,表示打印 机忙,不能接收数据。 因此,先检测打印机的 BUSY信号,不忙后发送 数据,然后发送反向脉冲 给打印机接口的STB,通 知其接收数据,循环至全 部发送完成。
24
PORTA PORTB PORTC PORTCN
EQU EQU EQU EQU
7F60H 7F61H 7F62H 7F63H
START:MOV DPTR,# PORTCN MOV A,#88H ;A口方式0输出,C口上半部输入 MOVX @DPTR,A MOV AL,#01H ;C口下半部输出,置位PC0,STB无效 MOVX @DPTR,A MOV R0,#BUFF
25
WAIT:MOV DPTR, #PORTC MOVX A, @DPTR ;读打印机状态,若“忙”则等待 ANL A,#80H JNZ WAIT MOV A,@R0 CJNE A,#‘$’,SEND JZ PRINT_OVER SEND: MOV DPTR, #PORTA MOVX @DPTR, A ;发送数据 MOV A, #00H ;产生STB,打印机接收并打印数据 MOV DPTR, #PORTC MOVX @DPTR, A MOV INC JMP A,#01H R0 WAIT PRINT_OVER: ……
3
7.5.2 可编程芯片8255
一、8255的基本功能
具有2个8位和2个4位并行I/O口,4位并行I/O口可 按位控制; 能支持无条件、查询、中断控制方式; 可支持多种(0、1、2)工作方式。
二、8255的内部结构和外部引脚
4
1、内部结构
5
2、外部引脚
CPU侧: D0-D7,A1A0, CS,RD、WR 外设侧: PA0-PA7, PB0-PB7, PC0-PC3, PC4-PC7
D7 D6 D5 D4 D3 D2 D1 D0
任意值 一般为0 C端口置位 标识位 总为 0
•
• • • •
C端口位选择 000:PC0 001:PC1 010:PC2 011:PC3 100:PC4 101:PC5 110:PC6 111:PC7
置1/置0选择 0:置0 1:置1
11
• 例如:要将C端口的PC3置0,PC7置l,可用下列程序段实现。 0 0 0 0 0 1 1 0 • • 06H
MOV A, #10010000B MOV DPTR, #PORTC MOVX @DPTR, A LOP:MOV DPTR, #PORTA
MOVX A, @DPTR
CPL A, #0FFH INC DPTR MOVX @DPTR, A SJMP LOP
30
8非门测试(A输入,B输出):
MOV A, #90H MOV DPTR, #PORT C LP1: MOV DPTR, #PORTB MOV A, #0FFH
PB7~PB0 INTEB PC2 PC1 ACKB OBFB
PC0
INTRB
18
选通方式的硬件特性: a)PC口的REG对应为状态信息,非引脚信息;
D7 D6 D5 D4 D3 D2 D1 D0 A组状态 输入时 I/O I/O IBFA INTEA INTRA B组状态 输入时 INTEB IBFB INTRB
28
;中断服务程序 …… MOV A,@R0 CJNE A,#‘$’,OK JZ PRINT_OVER OK: MOV DPTR, #PORTA MOVX @DPTR, A ;打印机产生ACK,触发8255产生中断
INC
RETI
R0
……
PRINT_OVER:
29
开关控制发光二极管(A口输入,B口输出):
27
MOV DPTR,# PORTCN MOV AL,#0C0H ;A口方式1输出,C口上半部输出 MOVX @DPTR,A MOV A,@R0 ; 发送第一个字符 MOV DPTR, #PORTA;发送完后自动产生OBF至打印机的 INC …… R0 ; STB#
片内RAM40H单元开始 ‘HELLO,WORLD!’,13,10,‘$’
6
I/O端口地址:8255提供4个端口(使用A1A0); 命令:初始化—设置工作方式; 操 作—向PA、PB、PC口写数据, 从PA、PB、PC口读数据。
8255的端口与命令关系表:
A1 0 0 1 0 0 1 1 X 1 X A0 0 1 0 0 1 0 1 X 1 X RD 0 0 0 1 1 1 1 X 0 1 WR 1 1 1 0 0 0 0 X 1 1 CS 0 0 0 0 0 0 0 1 0 0 操作 A口内容读至数据总线 B口内容读至数据总线 C口内容读至数据总线 数据总线内容写至A口 数据总线内容写至B口 数据总线内容写至C口 写至控制寄存器或C口 端口输出为高阻 非法 端口输出为高阻
输出时
OBFA I/O I/O INTEA INTRA
输出时
INTEB OBFB INTRB
方式1下的状态字
19
选通输入时硬件特性: b)INTE为中断允许位,对应PC口REG(状态字)的 D4位,可通过对PC口按位写方法设置; c)PC2、PC4引脚作用:用作锁存数据口数据,与 PC口REG的值不是一回事; d)INTR中断条件:STB#(引脚)=1(无效),IBF=1、 INTE=1; (RD#有效到无效复位INTR)
PC3 置0
0 0 0 0 1 1 1 1 0FH
PC7
置1
• • • • •
MOV A,06H ;PC3置0控制字送AL MOX DPTR,#PortCtr ; 控制口地址 PortCtr送DPTR MOVX @DPTR,A ;对PC3 完成置0操作 MOV A,0FH ;PC7置1控制字送AL MOVX @DPTR,A ;对PC7完成置1操作