完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本次我们介绍一下8255A芯片的使用方法
在对8255A进行编程操作时候,我们只需要了解三个步骤: (1)控制端口写控制字; (2)8255A端口地址计算; (3)对应端口读/写数据。 8255A控制字: 对8255A写控制字可以理解为配置各个端口的工作方式,以及输入输出模式。D7标志位主要是为了区分端口C的控制字。 举例: MOV AL,10001001B MOV DX,CRTL_PORT ;CRTL_PORT为控制的端口地址 OUT DX,AL 此程序的目的是配置C端口为输入模式,其他端口为输出模式,且工作与方式0。 举个例题: 这个题我们最开始想到的组合是8种,在控制字编程中,C端口的高位和低位是分开配置的,所以这道题的答案是16种。 端口置位/复位控制字: 这个其实就是对C端口的某些位进行置位或者清零操作 对C端口进行置位/清零操作也是往控制端口写入数据,D7=0。 举例: 下面介绍一下8255A端口地址计算: 根据本图得连接方式可知,CS端由74154芯片的IO1端控制,A13~A14控制74154芯片的使能。A1,A2控制端口选择。 由此可以端口状态表: A16~A19为参与地址控制,置0。由此可知: 当A2=0,A1=0,选中A端口,A端口地址为0200H 当A2=0,A1=1,选中B端口,B端口地址为0202H 当A2=1,A1=0,选中C端口,C端口地址为0204H 当A2=1,A1=1,选中控制端口,控制端口地址为0206H 例题: 该题的目的是C端口开关传送开关状态,随后在数码管显示。 先计算端口地址: 由于74LS138 Y4 端口控制片选所以 C B A 状态为1 0 0,A7~A15通过与门控制使能端,所以只能是高电平,同理A5需要为低电平。状态图为: 经计算得出:A端口地址为:FF84H B端口地址为:FF85H C端口地址为:FF86H 控制端口地址为:FF87H 代码如下: A_PORT EQU 0FF84H B_PORT EQU 0FF85H C_PORT EQU 0FF86H CRTL_PORT EQU 0FF87H DATA SEGMENT LEDTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX ;段基地址初始化 MOV AL,10001001B MOV DX,CRTL_PORT OUT DX,AL ;8255A写入控制字 KEY_PRESS: MOV DX,C_PORT IN AL,DX ;C端口状态存入AL寄存器中 MOV CL,AL ;将AL内容送入CL寄存器中,目的一会取高四位状态送入B端 AND AL,0FH ;与操作,高四位清零,取低四位 MOV BX,offset LEDTAB XLAT MOV DX,A_PORT OUT DX,AL ;A端口输出低四位的值 ROR CL,4 ;逻辑循环有移动,高四位变成低四位, MOV AL,CL AND AL,0FH ;与操作,高四位清零,取低四位,此时取的是高位 MOV BX,offset LEDTAB XLAT MOV DX,B_PORT OUT DX,AL ;B端口输出高四位的值 JMP KEY_PRESS ;死循环,一直扫描C端按键状态 CODE ENDS END START |
|
|
|
只有小组成员才能发言,加入小组>>
4527个成员聚集在这个小组
加入小组3340 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4269 浏览 1 评论
4296 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 11:45 , Processed in 0.447861 second(s), Total 44, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号