8255课件,附数码管和矩阵键盘实例定稿.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

P157
.精品课件.
7
设某片8255A的端口地址是60H~63H,工作于方式0,端口A和端口C高4位输出,端口B 和端口C低4位输入,设置该8255A的方式选择控制字。
1 D6 D5 D4 D3 D2 D1 D 0
方式控制字标志位
0:端口C PC3~PC0输出 1:端口C PC3~PC0输入
0 0:端口A方式0 0 1:端口A方式1 1 X:端口A方式2
A端口:60H B端口:62H C端口:64H 控制口:66H
.精品课件.
12
• 8255的初始化及检测有无按键按下:
PORTA EQU 60H
PORTB EQU 62H
PORTC EQU 64H
PORTCN EQU 66H
MOV DX,PORTCN ;置8255A端口A、B工作在方式 0
MOV AL,10000010B ;端口A为输出口,端口B为输入口
OUT DX,AL
WAITK:MOV DX,PORTA
;等待键闭合
MOV AL,00
;行码送全“0”
OUT DX,AL
MOV DX,PORTB
;读列码
IN AL,DX
CMP AL,0FFH
JZ WAITK
;无键按下,继续等待
.精品课件.
13
• 行扫描法识别按键
MOV BL,0
MOV BH,11111110B
;步骤b
xlat
out a_port,al
mov al,ah
;步骤c
out b_port,al
call delay5ms
;步骤d,延时5ms
shl ah,1
;步骤e
inc si
loop disp1
……
;恢复现场
ret
endp
.精品课件.
19
标志位
不用
端口C的位选择: PC0 0 0 0 PC1 0 0 1 PC2 0 1 0 PC3 0 1 1 PC4 1 0 0 PC5 1 0 1 PC6 1 1 0 PC7 1 1 1
0:复位 1:置位
.精品课件.
9
(CPU数据总线) D0~D7 (CPU)RD (CPU)WR
(8088A1)A1 (8088A0)A0
2. 8255A与8086配合时 因为8255A只有8位数据线,若连 到CPU的D0-D7,则只能属于偶地 址库,若8255A的A0需与CPU的A1 相连,假设CS的片选地址为60H 则PA,PB,PC,控制口地址分别为 60H,62H,64H,66H
.精品课件.
3
①工作方式0—基本输入输出工作方式 A、B、C端口都可以作为输入或输出数据端口,以无条件传送方式进行输入输出操作。
(1)使A端口的PA0输出低电平,其余为高电平。 (2)观察列线的状态。 (3)如果某条列线变为低电平,则第0行与该列相交位置上的 键被按下;否则第0行没有键按下。 (4)使PA1输出低电平,其余为高电平。 (5)观察列线的状态判断是否有键按下。 (6)如此逐行扫描下去,直到最后一行。
通过分析可知,8255A的端口A工作在方式0的输出,端口B 工作在方式0的输入,端口C不用。8255A端口的地址如下:
0:端口C PC7~PC4输出 1:端口C PC7~PC4输入
.精品课件.
5
C端口按位 置1/置0 控制字
0 X X X D3 D2 D1 D0
标志位
不用
端口C的位选择: PC0 0 0 0 PC1 0 0 1 PC2 0 1 0 PC3 0 1 1 PC4 1 0 0 PC5 1 0 1 PC6 1 1 0 PC7 1 1 1
;按下键的编号在BL中 ;无键闭合
.精品课件.
14
3. LED数码管
共阴极的情况下定义字形码: FECDBA9876543210
h—小数点
分类: +5V
共阳极:
a
公共端接
b
高电平“H”
c d
发光段接
e
低电平“L”
f g
A
共阴极:
b
公共端接 低电平“L”
c d e
发光段接 f
高电平“H” g
.精品课件.
②工作方式1 —应答式单向输入输出工作方式 A、B端口作为输入或输出数据端口,C口分为两组分别作为A口和B口的应答联络线。
③工作方式2 —应答式双向输入输出工作方式 只有A口可以工作于方式2,可以双向操作,即可以输入也可以输出数据,C口作为应
答信号。
④位操作工作方式 只有C口可以进行位操作。
.精品课件.
PC7
PC4 PA7
PA0 8255A
PC3
PC0 PB7
PB0
. ... ... . . .
... ... . ..
... ... ... ... ... ...
.. .
发光 二级 管驱 动器
+5V L11 L8 L7 L0
K11 K8 K7 K0
...
...
+5V
1. 8255A与8088配合时 8255A的A0与CPU的A0相连,如果 CS的片选地址为60H, 则PA,PB,PC,控制口地址分别为 60H,61H,62H,63H
0:复位 1:置位
.精品课件.
6
对20H端口的直接寻址,寻址范围(0-0xFF) IN AL,20H ;从地址为20H的端口输入一个字节到AL OUT 20H,AL ;将AL的内容输出到地址为20H的端口
对200H端口的间接寻址,寻址范围(0-0xFFFF) MOV DX,200H ;将端口地址送DX寄存器 IN AL,DX ;从地址为200H的端口输入一个字节到AL OUT DX,AL ;将AL的内容输出到地址为200H的端口
0:端口A输出 1:端口A输入
0:端口B输出 1:端口B输入
0:端口B方式0 1:端口B方式1
0:端口C PC7~PC4输出 1:端口C PC7~PC4输入
.精品课件.
8
已知8255A的端口地址为02E0H-02E3H,请实现对端口C的PC2置位和PC4复位。
0 X X X D3 D2 D1 D0
MOV CX,8
FNDROW: MOV AL,BH
MOV DX,PORTA
OUT DX,AL
ROL BH,1
MOV DX,PORTB
IN AL,DX
CMP AL,0FFH
JNZ FNDCOL
ADD BL,8
LOOP FNDROW
JMP DONE
FNDCOL: ROR AL,1
JNC RIGHT
INC BL
.精品课件.
17
程序如下:
a_port equ 80h
;定义8255A的四个端口
b_port equ 82h
c_port equ 84h
ctrl_port equ 86h
……
data segment
;定义数据段
tab1 db 3FH,06H,5BH,4FH,…,
;定义段码表
dispbuff db 2,0,0,6,1,2,0,9
4
方式选择控制字
1 D6 D5 D4 D3 D2 D1 D 0
方式控制字标志位
0:端口C PC3~PC0输出 1:端口C PC3~PC0输入
0 0:端口A方式0 0 1:端口A方式1 1 X:端口A方式2
0:端口B输出 1:端口B输入
0:端口B方式0 1:端口B方式1
0:端口A输出 1:端口A输入
;定义显示缓冲区
data ends
……
.精品课件.
18
display disp1:
display
proc ;显示子程序,数据在dispbuff中
…..
;保护现场
mov bx,offset tab1
mov si,offset dispbuff ;步骤a
mov cx,8
mov ah,01
mov al,[si]
JMP FNDCOL
RIGHT:

DONE:ຫໍສະໝຸດ …;扫描键盘矩阵,送键号初值 ;置初始扫描模式-行码送FEH
;送行码
;修改行码 ;读列码
;有键按下,查列号 ;无键按下,指向下一行键号初值 ;8行扫描未完,送下一行扫描码 ;8行扫描完,无键按下 ;查哪一列有键按下 ;查到按下键的键号 ;键号加1,查下一列
并行输入输出接口芯片 8255A
.精品课件.
1
D7 ~ D0
数据总线 缓冲器
A组 控制部件
8位内部数据总线
RD WR A1 A0 RESET
CS
读/写 控制部件
B组 控制部件
与CPU相连的引脚信号:
A组
❖ RESET:复位信号
I/O
端口A (8)
PA7 ~ PA0 ❖ RD: 读信号,CPU从8255A读数据
* 15
8位7段数码管动态显示电路图
段驱动 +5V
8255A
段 信 号
PA7
A| 口|
……
通 道
PA0
……
…… ……
位驱动
位 8255A

PB7
号 通
B| 口|
……

PB0
LED7
LED6
……
.精品课件.
……
16
显示系统的具体工作步骤如下: a、 设要显示的初始位码i=0; b、 送第i位的段信号; c、 送第i位的位信号; d、 延时; e、 i+1->i f、 如果i小于8,转b g、 8位数据显示结束。
❖ WR:写信号,CPU向8255A写数据
A组 端口C 上半部
(4)
I/O PC7 ~ PC4
❖ CS:片选信号 ❖ D7~D0:8255A数据线
❖ A1、A0 :端口选择信号。8255A
B组 端口C 下半部
I/O
一共有3个数据端口和1个控制端口,
PC3 ~ PC0 共4个端口
(4)
当A1、A0为00时,选中A端口
对应发光二极管亮
...
...
+5V
.精品课件.
10
❖非编码键盘的行扫描法识别按键 +5V
第0行
第7行 第0列
10KΩ
PA0
PA1
PA2
8
……

2
5
PA7
5
A
PB0 PB1 PB2
第7列 … …

PB7
.精品课件.
11
•键盘扫描程序
第一步:判断有无按键按下
使A端口输出00H,读入B端口的数据,如果是FFH,则没有 按键按下,继续第一步。否则进行第二步。 第二步:行扫描法识别按键
B组
I/O
当A1、A0为01时,选中B端口
端口B (8)
PB7~ PB0 当A1、A0为10时,选中C端口
当A1、A0为11时,选中控制端口
.精品课件.
2
地址总线连接及端口地址计算:
(CPU数据总线) D0~D7 (CPU)RD (CPU)WR
(8088A1)A1 (8088A0)A0
CS
RESET
CS
RESET
PC7
PC4 PA7
PA0 8255A
PC3
PC0 PB7
PB0
. ... ... . . .
... ... . ..
... ... ... ... ... ...
.. .
发光 二级 管驱 动器
L11 L8 L7 L0
+5V
K11 K8 K7 K0
假设8255A控制口 地址为21BH, 请编程实现按键按下,
相关文档
最新文档