下面是一个我机子上调试好的8255程序、希望对你有所帮助。、 祝你好运~~~ 8255扫描键盘、显示程序 利用8255可编程并行口做一个扫描键盘实验, 把按键输入的键码,显示在由8279控制的七段数码管上。 8255PA口做键盘输入线,PB口作扫描线
先写控制字,你没给控制端口地址,假设是是23H吧,这样的话A口地址为20H;B口为21H;C口为22H。PC5怎么?你你没打完吧?
8255A的端口A工作在方式0输入,B口工作在方式0输出。控制字为:10010000B。(PC口都设成输出了)
初始化程序:
MOV DX,023H
MOV AL,10010000B
OUT DX,AL
(送初值)
以上你给的信息就只能到写控制字了。
亲~记得给好评哦~
RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输
RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写 *** 作,控制字和状态信息也通过数据总线传送。
PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。
PB0~PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。
PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。'
A0,A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器
当A0=0,A1=0时,PA口被选择;
当A0=0,A1=1时,PB口被选择;
当A0=1,A1=0时,PC口被选择;
当A0=1A1=1时,控制寄存器被选择
先确定控制字A口0方式输出,B口输入,C口不用即
10000010B
下面开始编程:(我们假设地址为60H-63H)
MOV DX,63H ;控制口
MOV AL,10000010B ;控制字
OUT DX,AL
MOV DX,60H ;A口地址
IN AL,DX ;读A口
MOV DX,61H ;B口地址
OUT DX,AL ;写B口
从A口读入开关的“关”、“闭”状态,即获得相应的一个字节的数据,再将其写到B口,即可实现LED灯的闭合(因为没有见到你给的图,我只是按我自己的理解解答,不知道答案对不对,不过如果按常理,这个答案是正确的)
楼上的,他们是汇编或者微原的课程用的是8088或8086,直接用试验箱,对他们的要求应该不用自己搭建硬件环境的。而且8255只是个接口芯片。你的情况要根据你的实验环境,先在你的PC软件环境编辑编译链接后,连接硬件试验箱将8255的A口与LED相连,C口通过正确接口方式与8088相连,试验箱在程序装载模式时通过PC将二进制文件下载,运行,OVER
以上就是关于用8255的C口做键盘扫描,怎么写程序全部的内容,包括:用8255的C口做键盘扫描,怎么写程序、编写一程序,要求8255a的pc5端输出一方波信号、8255编程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)