8255,附数码管和矩阵键盘实例ppt课件
8255驱动矩阵键盘和数码管程序
8255驱动矩阵键盘和数码管程序汇编编程:矩阵键盘控制数码管切换显示0~F。
下面是电路图。
要求16个键按下能显示0~F字样。
看到这样的电路和程序,不由得想起初学单片机时情景。
十几年前,是一本北航的书,里面就是这样的程序。
后来又看过几本,里面也有雷同的程序。
其实,该程序编写的很滥。
它把行列号码,算的很清。
还特意弄成几个分支。
换下一行时,行号就要分别存入00H、08H、10H、18H。
想法也太笨了,其实,只要加上8,就可以编写成循环程序了。
程序中,还有很多应该简化的地方。
这程序学起来,的确浪费了我不少的时间。
根据题目中的电路和程序,做而论道改写的程序如下。
;
ORG 0000H
SJMP START
ORG 0030H
;--------------------------------------
DUMA:
DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H //共阴段码
DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H
;--------------------------------------
START:
MOV DPTR, #7F03H //8255初始化
MOV A, #90H
MOVX @DPTR, A。
课件8255
第7章 常用接口器件
1) 方式 下A口、B口均为输出 方式1下 口 口均为输出 为了使A口或 口工作于方式 为了使 口或B口工作于方式 下,必须利用 口 口或 口工作于方式1下 必须利用C口 条线作为控制和状态信号线。 所示, 的6条线作为控制和状态信号线。如图 所示,在方 条线作为控制和状态信号线 如图7.3所示 式1下用 口或 口输出时,所用到的 口线是固定不 下用A口或 口输出时, 下用 口或B口输出时 所用到的C口线是固定不 变的, 口使用 口使用PC3、PC6和PC7,而B口使用 口使用PC0、 变的,A口使用 、 和 , 口使用 、 PC1和PC2。 和 。
第7章 常用接口器件
图7.3 方式1下,A输出的信号定义
第7章 常用接口器件
图7.3 方式1下,B口输出的信号定义
第7章 常用接口器件 C口提供的信号功能如下: (1) OBF为输出缓冲器满信号,低电平有效。利用该信号 告诉外设,在规定的口上已由CPU输出了一个有效数据,外设 可从此接口获取该数据。 (2) ACK为外设响应信号,低电平有效。该信号用来通知 接口,外设已将数据接收并使OBF=1。 (3) INTR为中断请求信号,高电平有效。当外设接收到一 个数据后,由此信号通知CPU,刚才的输出数据已经被接收, 可以再输出下一个数据。 (4) INTE为中断允许状态。由图7.3可以看到,A口和B口 的INTR均受INTE的控制。只有当INTE为高电平时,才有可能 产生有效的INTR。
图7.5 方式1下A口输入时的信号定义
第7章 常用接口器件
图7.5 方式1下B口输入时的信号定义
第7章 常用接口器件 在端口为输入时所用到的控制信号的定义如下: (1)STB为低电平有效的输入选通信号,它由外设提供。 利用该信号可将外设数据锁存于8255口的输入锁存器中。 (2) IBF为高电平有效的输入缓冲器满信号。当它有效时, 表示已有一个有效的外设数据被锁存于8255口的锁存器中。 可用此信号通知外设数据已被锁存于接口中,尚未被CPU读 走,暂不能向接口输入数据。
8255C键盘显示器程序
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O 口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
1)与CPU连接部分根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C 口及控制寄存器,故地址线为两根A0~A1。
此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。
各信号的引脚编号如下:(1)数据总线DB:编号为D0~D7,用于8255与CPU传送8位数据。
(2)地址总线AB:编号为A0~A1,用于选择A、B、C口与控制寄存器。
(3)控制总线CB:片选信号、复位信号RST、写信号、读信号。
当CPU 要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。
2)与外设接口部分根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。
各通道的引脚编号如下:(1)A口:编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
(2)B口:编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
(3)C口:编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。
实验四 8255键盘及显示接口实验
实验四 8255键盘及显示接口实验一、实验目的了解键盘扫描及数码显示的基本原理,熟悉8255的编程/二、实验设备PC机一台,TD-PITE实验装置一套。
三、实验内容将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。
键盘采用4×4键盘,每个数码管显示值可为0-F共16个数,。
实验具体内容如下:将键盘进行编号,记作0—F,当按下一个键时,将该键对应的编号在下一个数码管上显示出来,再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。
实验内容:将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。
键盘采用4×4键盘,每个数码管显示值可为0~F共16个数。
实验具体内容如下:将键盘进行编号,记作0~F,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。
8255键盘及显示实验参考接线图如图1所示。
键盘及数码管显示单元电路图如图4-1 所示。
图4-2 8255 键盘扫描及数码管显示实验线路图功能描述: 键盘及数码管显示实验,通过8255控制。
8255的B口控制数码管的段显示,A口控制键盘列扫描及数码管的位驱动,C口控制键盘的行扫描。
按下按键,该按键对应的位置将按顺序显示在数码管上。
实验程序:MY8255_A EQU 0600HMY8255_B EQU 0602HMY8255_C EQU 0604HMY8255_CON EQU 0606HSSTACK SEGMENT STACKDW 16 DUP(?)SSTACK ENDSDATA SEGMENTDTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,3000HMOV AL,00HMOV [SI],AL ;清显示缓冲MOV [SI+1],ALMOV [SI+2],ALMOV [SI+3],ALMOV [SI+4],ALMOV [SI+5],ALMOV DI,3005HMOV DX,MY8255_CON ;写8255控制字MOV AL,81HOUT DX,ALBEGIN: CALL DIS ;调用显示子程序CALL CLEAR ;清屏CALL CCSCAN ;扫描JNZ INK1JMP BEGININK1: CALL DISCALL DALLYCALL DALLYCALL CLEARCALL CCSCANJNZ INK2 ;有键按下,转到INK2JMP BEGININK2: MOV CH,0FEHMOV CL,00HCOLUM: MOV AL,CHMOV DX,MY8255_AOUT DX,ALMOV DX,MY8255_CIN AL,DXL1: TEST AL,01H ;is L1?JNZ L2MOV AL,00H ;L1JMP KCODEL2: TEST AL,02H ;is L2?JNZ L3MOV AL,04H ;L2JMP KCODEL3: TEST AL,04H ;is L3?JNZ L4MOV AL,08H ;L3JMP KCODEL4: TEST AL,08H ;is L4?JNZ NEXTMOV AL,0CH ;L4KCODE: ADD AL,CLCALL PUTBUFPUSH AXKON: CALL DISCALL CLEARCALL CCSCANJNZ KONPOP AXNEXT: INC CLMOV AL,CHTEST AL,08HJZ KERRROL AL,1MOV CH,ALJMP COLUMKERR: JMP BEGIN CCSCAN: MOV AL,00HMOV DX,MY8255_AOUT DX,ALMOV DX,MY8255_CIN AL,DXNOT ALAND AL,0FHRETCLEAR: MOV DX,MY8255_BMOV AL,00HOUT DX,ALRETDIS: PUSH AXMOV SI,3000HMOV DL,0DFHMOV AL,DLAGAIN: PUSH DXMOV DX,MY8255_AOUT DX,ALMOV AL,[SI]MOV BX,OFFSET DTABLEAND AX,00FFHADD BX,AXMOV AL,[BX]MOV DX,MY8255_BOUT DX,ALCALL DALLYINC SIPOP DXMOV AL,DLTEST AL,01HJZ OUT1ROR AL,1MOV DL,ALJMP AGAINOUT1: POP AXRETDALLY: PUSH CXMOV CX,0006HT1: MOV AX,009FHT2: DEC AXJNZ T2LOOP T1POP CXRETPUTBUF: MOV SI,DIMOV [SI],ALDEC DICMP DI,2FFFHJNZ GOBACKMOV DI,3005HGOBACK: RETCODE ENDSEND START实验步骤:1. 按图4-1连接线路图;2. 编写实验程序,检查无误后编译、连接并装入系统;3. 运行程序,按下按键,观察数码管的显示,验证程序功能。
8255课件
(2)方式 )方式1
选通I/O方式,中断驱动I/O接口 方式,中断驱动 选通 方式 接口 A组: PA7~PA0 数据 PC5~PC3 组 PC5~PC4 B组: PB7~PB0 数据 PC2~PC0 组 PC7~PC6 控制 方式0的 方式 的I/O 控制 方式0的 方式 的I/O
8255控制字及工作方式 4.3.2 8255控制字及工作方式
①方式1输入 方式 输入
8255控制字及工作方式 4.3.2 8255控制字及工作方式
②方式1输出 方式 输出
8255控制字及工作方式 4.3.2 8255控制字及工作方式
(3)方式 2 )
•A口双向选通传送,I/O口均锁存,中断和查询方式。 口双向选通传送, 口均锁存, 口双向选通传送 口均锁存 中断和查询方式。 A口双向,PC7~PC3作联络,PC2~PC0方式 的I/O或B口方式 联络 口双向, 作联络, 方式0的 口方式1联络 口双向 或 口方式 •A口方式 时,B组可以工作于方式 ,PB7~PB0、PC2~PC0作I/O 口方式2时 组可以工作于方式0, 口方式 组可以工作于方式 B组可以工作于方式 的I/O,PC2~PC0作联络信号 组可以工作于方式1的 组可以工作于方式 ,
2、8255工作方式 、 工作方式
(1)方式 )方式0
直接I/O方式,状态驱动I/O接口,仅I/O、无联络信号。 方式,状态驱动 接口, 直接 方式 接口 、无联络信号。 2个8位端口,2个4位端口; 位端口, 个 位端口 位端口; 个 位端口 任一端口都可I/O输入输出; 输入输出; 任一端口都可 输入输出 输出有锁存,输入缓冲,不能同时I/O。 输出有锁存,输入缓冲,不能同时 。
╳
RD 0 0 0 1 1 1 1
微机原理与接口技术第四版 第九章 可编程外围接口芯片8255及应用PPT课件
31 D3 30 D4 29 D5 28 D6 27 D7 26 VCC
② PB7~PB0: 端口B数据信号。 ③ PC7~PC0: 端口C数据信号。 8位数据输入锁存器和8位数据输出
PC1 16 PC0 17
25 PB7 24 PB6
锁存器/缓冲器。
PB0 18
23 PB5
PB1 19
22 PB4
8255A是可编程的并行输入输出接口芯片, 它具有三个8位并行端口(A口、B口和C口), 40个引脚,双列直插式封装,由+5V供电。 其功能强,使用灵活。适合一些并行输入/
输出设备的使用。
PA3 1
40 PA4
PA2 2 PA1 3
39 PA5 38 PA6
一、8255A的引脚介绍
PA0 4 RD 5
② D7~D0:双向数据线,在8080、 8085系统中,8255A的D7~D0与 系统的8位数据总线相连
在8086系统中,采用16位数据总线, 8255A的D7~D0通常是接在16位数 据总线的低8位上。
PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PB0 PB1 PB2
③ CS:片选信号,低电平有效。该 信号来自译码器的输出,只有当CS 有效时,读信号RD和写信号WR才 对8255A有效。
④ RD:读信号,低电平有效。它 控制从8255A读出数据或状态信息
WR:写信号,低电平有效。它 控制把数据或控制命令字写入 8255A。
⑤ A1、A0:端口选择信号。8255A内部共有4
37 PA7 36 WR
8255A芯片的40条引脚,分为三类:
CS 6 GND 7
8255,附数码管和矩阵键盘实例 ppt课件
③工作方式2 —应答式双向输入输出工作方式 只有A口可以工作于方式2,可以双向操作,即可以输入也可以输出数据,C口作为应
答信号。
④位操作工作方式 只有C口可以进行位操作。
2020/12/2
P157
2020/12/2
9
设某片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输入
B组
I/O
当A1、A0为01时,选中B端口
端口B (8)
PB7~ PB0 当A1、A0为10时,选中C端口
当A1、A0为11时,选中控制端口
2020/12/2
2
精品资料
• 你怎么称呼老师? • 如果老师最后没有总结一节课的重点的难点,你
是否会认为老师的教学方法需要改进? • 你所经历的课堂,是讲座式还是讨论式? • 教师的教鞭 • “不怕太阳晒,也不怕那风雨狂,只怕先生骂我
PC3
PC0 PB7
PB0
. ...
...
...
...
+5V L 11
...
...
发光
二级
L8
管驱
L7
...
...
动器
L0
.
...
. .
K 11 K8 K7 K0
...
...
...
+5V
8255A&键盘 - 2
1.3 键盘接口的任务
1、判别键盘中是否有键按下 2、如果有键按下,判别是哪一个键按下——即按键 识别。 3、确定被按键的位置(即获得按键的特征值——行、 列的编码),称为读键值。 4、判别是否同时有两个或两个以上的按键按下。 5、键值译码。每个按键都有一定的功能定义,将读 取的键值解释为定义键的功能过程称为键值译 码。 6、去除按键抖动、重键。
+5v
8255
PA.0 PA.1
K0
K7 PA.7
1.2 矩阵结构键盘的工作原理
• 常用的矩阵结构键盘
– 每行连接一个引脚 – 每列连接一个引脚 – 利用控制线为低、 读取检测线来识别闭合键 检 测 线
+5V 控制线 +5V
矩阵式结构
1.4 如何判断是否有键按下?
行输入
列输出
如何判断是否有键 行 按下? 线 与 程序: 列 WAIT:MOV AL,00H 线 MOV DX,OUTPORT 分 OUT DX,AL 别 MOV DX,INPORT 接 IN AL, 到 DX 两 AND AL,0FFH 个 CMP AL,0FFH 并 JZ WAIT 行 DONE:CALL DELAY 端 … 口 的 示 意 图
;输出行值(扫描值)
;读进列值 ;判断有无低电平的列线 ;有,则转下一步处理 ;无,则移位扫描值 ;准备下一行扫描 ;所有行都没有键按下,则返回继续检测 ;此时,al=列值,ah=行值
内容
• • • • • • • 键盘的基本原理结构 键的识别——行扫描法 键的识别——行反转法 抖动和重键问题的解决 微型机的键盘子系统 键盘中断处理程序 键盘缓冲区
• 抖动解决方法:用延迟解决
硬件消除抖动方法
+5v 有按键信号? Y N
8255的应用举例ppt课件
构成键盘的开关有机械式、薄膜式、电容式和霍尔效应式等,PC上的键盘多 用机械式开关。
为减少输入线,开关被排列成行、列矩阵。
检测是否有键压下前,先要确定键是否都松开。
检测到有压键后,应消抖动(Debance),即延长20ms,再查看该键是否仍被 压下。
中国科学技术大学
6.3 8255A的应用
图6.22
中国科学技术大学
6.3 8255A的应用
第6章 I/O和8255A
七段LED显示原理
➢ 如要显示数字0,g段应熄灭,其余段点亮,即向B口输出代码 0100 0000B=40H,最高位不用,清0(也可用作小数点);
➢ 如要显示数字1,则点亮b、c段,其余段熄灭,代码为0111 1001B=79H。
键扫描的程序见课本。
中国科学技术大学
6.3 8255A的应用
6.3.1 基本输入输出应用举例 6.3.2 键盘接口 6.3.3 8255A在PC/XT机中的应用*
*供选用
第6章 I/O和8255A 中国科学技术大学
6.3 8255A的应用
6.3.3 8255A在PC/XT机中的应用
第6章 I/O和8255A
中国科学技术大学
6.3 8255A的应用
第6章 I/O和8255A
程序:
MOV DX,0F6H
MOV AL,10010000B
OUT DX,AL
TEST_IT:
MOV DX,0F0H
IN
AL,DX
MOV DX,0F2H
OUT
DX,AL
CALL DELAY_20S
JMP TEST_IT
DELAY_20S:…
IN
AL,61H
;读入B口状态
数码管和按键ppt课件
1.数码管及其编程 2.按键及其编程
1
1.数码管
1.1 数码管介绍
数码管其实就是按一定顺序排列光二极管,有规律的点亮就可以显示出来特定的符号。一般使 用数码管显示0~9和A~F。共阴极的数码管码表如下图。
3
1.2 学习数码管实验电路
8
编写第三个程序(动态显示) 程序参考实验讲义。
9
2 按键学习
开发板上的独立按键电路
10
矩阵键盘
本实验中,仅介绍独立按键,矩阵键盘需要下来自己学习。
11
按键的去抖
当我们按下按键时,并不是一下子就从打开 变成了闭合状态,而是会产生抖动,如下图 所示。
12
13
此课件下载可自行编辑修改,供参考! 感谢您的支持,我们努力做得更好!
4
可以看到,开发板上的数码管电路结合了两个锁存器,这样做的目的是为 了节省I/O口。如果单纯做数码管显示电路,是可以去掉锁存器的,但是因为开 发板上的元器件太多,所以有必要使用锁存器来拓展I/O口。
该电路使用单片机的P0口以及P2.6和P2.7来驱动数码管,P2.6和P2.7分别 控制两个锁存器的锁存端,定义P2.6为DULA,连接在左边的锁存器上,这个锁 存器主要用来控制数码管的每个段即a~g和dp。而P2.7定义为WELA,连接在右 面的锁存器上,这个锁存器的功能是选择是哪个数码管显示。因为使用的是共阴 极数码管所以哪位为低时那个数码管就显示。例如首先给P0输出0xff并使左边的 锁存器所存,然后给P0输出0xfe,并使右边的锁存器所存此时第一个数码管就 会全亮,而其他的数码管不亮。
5
1.3 编写数码管程序
首先,新建一个工程,编写第一个程序如下图。
6
微机原理接口课件6(8255)_ppt课件
/ACK
/OBF
D7-D0
PC7
&
PC3
D7-D0
&
INTRA
PC0
INTRB
/WR
PC4 PC5
I/0 /WR
8255A方式1输出时序
/WR D7-D0 /OBF
/ACK
INTR
三、方式2(双向数据传送方式)
A口作为双向数据总线 A口工作于方式2时,C口有5根线作为A口 的握手线和中断请求线 工作场合:外设可是输入设备,也可是 输出设备,但不会同时发生
如果A口为方式0输入,B口为方式1输出,C 口除了与B口方式1输出配合的PC0-PC2外, 其PC3设成输入,C口上(PC7-PC4)设为 输出,端口地址为60H-63H。
实验题目三:
1、PA口工作在方式0,接8个开关;PB口工 作在方式0,接8个LED;要求每读一次开 关值,并将开关值在LED上显示,当开关 值为全1时,程序退出。CS:280H—287H
8255A方式2输出联络信号(双向传输)
A口
CPU
+
& &
PA7-PA0
PC2 PC3 PC7 PC6
I/O INTRA /OBFA /ACKA /STBA IBFA I/0
D7-D0
INTE 2
INTE 1
/WR
PC4
/RD
PC5
PC2---- PC0
方式2的输入输出时序
WR OBF INTR ACK t ST STB IBF 外部总线 PA 7~ PA 0 RD t PH t SIB t PS t KD t RIB t WOB t AOB
IBF
tSIB tSI T tRIB tRIT tPH
矩阵式键盘控制数码管显示
目录
CONTENTS
• 矩阵式键盘工作原理 • 数码管显示原理 • 矩阵式键盘控制数码管显示方案 • 矩阵式键盘控制数码管显示应用 • 矩阵式键盘控制数码管显示常见问题及
解决方案
01 矩阵式键盘工作原理
按键检测方式
直接检测法
通过直接检测按键是否按下,判断按键状态。
间接检测法
按键与数码管显示不匹配
01
总结词
按键与数码管显示不匹配是矩阵式键盘控制数码管显示中 常见的问题之一,表现为按下某个按键后数码管显示的内 容与预期不符。
02
详细描述
这可能是由于键盘编码与数码管显示编码不匹配导致的问题。 例如,按下数字键“1”,数码管却显示字母“A”。
03
解决方案
可以通过调整键盘编码与数码管显示编码的对应关系来解 决这个问题。具体来说,需要检查键盘编码与数码管显示 编码的映射关系,确保它们一一对应。同时,也需要检查 键盘扫描程序和数码管显示驱动程序的实现是否正确。
静态驱动
每个数码管的每个段都由一个独立的 I/O口控制,适用于数码管数量较少 的情况。
动态驱动
通过扫描方式逐个点亮数码管的各个 段,可以节省I/O口资源,适用于数码 管数量较多的情况。
03 矩阵式键盘控制数码管显 示方案
硬件连接方案
矩阵式键盘与微控制器连接
将矩阵式键盘的行和列连接到微控制器的输入/输出端口,以便读取按键状态。
优化显示逻辑
优化数码管显示的逻辑,例如使用动态扫描技术,减少数码管的亮灭时间,提高显示效果。
04 矩阵式键盘控制数码管显 示应用
电子密码锁
总结词
矩阵式键盘控制数码管显示在电子密码锁中应用广泛,能够实现密码输入、显示和安全 验证等功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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:端口A输出 1:端口A输入
0:端口B输出 1:端口B输入
0:端口B方式0 1:端口B方式1
0:端口C PC7~PC4输出 1:端口C PC7~PC4输入
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端口都可以作为输入或输出数据端口,以无条件传送方式进行输入输出操作。
对200H端口的间接寻址,寻址范围(0-0xFFFF) MOV DX,200H ;将端口地址送DX寄存器 IN AL,DX ;从地址为200H的端口输入一个字节到AL OUT DX,AL ;将AL的内容输出到地址为200H的端口
P157
;.
7
设某片8255A的端口地址是60H~63H,工作于方式0,端口A和端口C高4位输出,端口B和端口C低4 位输入,设置该8255A的方式选择控制字。
并行输入输出接口芯片 8255A
;.
1
D7 ~ D0
数据总线 缓冲器
A组 控制部件
8位内部数据总线
RD WR A1 A0 RESET
CS
读/写 控制部件
B组 控制部件
A组 端口A (8)
A组 端口C 上半部 (4)
B组 端口C 下半部 (4)
B组 端口B (8)
I/O PA7 ~ PA0
I/O PC7 ~ PC4
当A1、A0为00时,选中A端口 当A1、A0为01时,选中B端口 当A1、A0为10时,选中C端口 当A1、A0为11时,选中控制端口
;.
2
地址总线连接及端口地址计算:
(CPU 数据总 线) D 0 ~D 7 (CPU)RD (CPU)WR
(8088A 1)A 1 (8088A 0)A 0
CS
RESET
0:复位 1:置位
;.
9
(CPU 数据总 线) D 0 ~D 7 (CPU)RD (CPU)WR
(8088A 1 )A 1 (8088A 0)A 0
CS
RESET
PC7
PC4 PA7
PA0 8255A
PC3
PC0 PB7
PB0
. ... ...
...
...
. .
发光 二级 管驱 动器
...
...
.
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输入
0:端口C PC7~PC4输出 1:端口C PC7~PC4输入
PC7
PC4 PA7
PA0 8255A
PC3
PC0 PB7
PB0
. ...
...
...
...
+5V L 11
...
...
发光
二级
L8
管驱
L7
...
...
动器
L0
.
...
. .
K 11 K8 K7 K0
...
...
...
+5V
. ..
.. .
1. 8255A与8088配合时 8255A的A0与CPU的A0相连,如果CS 的片选地址为60H, 则PA,PB,PC,控制口地址分别为 60H,61H,62H,63H
②工作方式1 —应答式单向输入输出工作方式 A、B端口作为输入或输出数据端口,C口分为两组分别作为A口和B口的应答联络线。
③工作方式2 —应答式双向输入输出工作方式 只有A口可以工作于方式2,可以双向操作,即可以输入也可以输出数据,C口作为应答信号。
④位操作工作方式 只有C口可以进行位操作。
;.
4
方式选择控制字
...
...
+5V L 11 L8 L7 L0
K 11 K8 K7 K0
...
...
...
.Байду номын сангаас.
+5V
. ..
.. .
假设8255A控制口 地址为21BH, 请编程实现按键按下,
对应发光二极管亮
;.
10
❖非编码键盘的行扫描法识别按键 +5V
第0行
第7行 第0列
10KΩ
PA0
PA1
PA2
8
……
…
2 5
I/O PC3 ~ PC0
I/O PB7~ PB0
与CPU相连的引脚信号:
❖ RESET:复位信号
❖ RD: 读信号,CPU从8255A读数据
❖ WR:写信号,CPU向8255A写数据 ❖ CS:片选信号
❖ D7~D0:8255A数据线 ❖ A1、A0 :端口选择信号。8255A一共 有3个数据端口和1个控制端口,共4个端 口
;.
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
0:复位 1:置位
;.
6
对20H端口的直接寻址,寻址范围(0-0xFF) IN AL,20H ;从地址为20H的端口输入一个字节到AL OUT 20H,AL ;将AL的内容输出到地址为20H的端口
5
PA7
A
PB0 PB1 PB2
……
…
第7列
PB7
11
•键盘扫描程序 第一步:判断有无按键按下
使A端口输出00H,读入B端口的数据,如果是FFH,则没有按键按下,继续第一步。否则进 行第二步。 第二步:行扫描法识别按键 (1)使A端口的PA0输出低电平,其余为高电平。 (2)观察列线的状态。 (3)如果某条列线变为低电平,则第0行与该列相交位置上的键被按下;否则第0行没有键按 下。 (4)使PA1输出低电平,其余为高电平。 (5)观察列线的状态判断是否有键按下。 (6)如此逐行扫描下去,直到最后一行。
;.
8
已知8255A的端口地址为02E0H-02E3H,请实现对端口C的PC2置位和PC4复位。
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