汇编题求解
有一接口电路如图所示,设计一个程序能自己记录按钮K按下的次数,并将按下次数存放在数据段内变量COUNT中,设8255的口地址为60H一63H,按下次数小于256次,现给出程序清单,请在程序清单的空格处填上正确内容。
MOV AL,90H____;初始化
OUT___63H_____,AL
MOV DL,0
LOP:IN AL,__60H__;检查按键K是否按下
TEST AL,__01H__
____JNZ____LOP
INC DL;记录按下次数
MOV COUNT,DL
CALL DELAY20MS;延时20ms去抖动
LOP1:IN AL, 40H;检查按键K是否释放
TEST AL,OIH
JZ LOP1
JMP LOP
答案已给出,我只想问,为什么要吧90H传送给63H,而不是8255A的首地址60H,为什么在检查K是否释放要从40H读取数据。
答案:嘿嘿 还是由俺来帮你解答吧
1 关于《为什么要吧90H传送给63H,而不是8255A的首地址60H》的回答:
8255芯片的端口有4个地址,A口地址、B口地址、C口地址、控制口地址、
计算机通过A口地址、B口地址、C口地址, 可以分别访问A口、B口、C口。
但对8255的初始化控制命令 必须要送到8255的控制口。
设8255的口地址为60H一63H,则A口地址、B口地址、C口地址、控制口地址分别为60H、 61H、62H、63H。
因为90H是计算机送给8255的控制字,所以必须要将它送给控制口63H.
2关于《 为什么在检查K是否释放要从40H读取数据》的回答:
是书印错了 应该是60H 即A口地址(A口连接按键K)
呵呵 满意的话 就选满意回答哦
上一个:义隆EM78P153S设置过引脚为输入还要设置内部上拉吗,什么时候要设置内部上拉,下拉,开漏,前辈指教下。
下一个:C8051F35X能外扩RAM吗