5.1.2 由【实验连接图】可以看出A端口工作在方式1下做输出口,B端口也工作在
方式下做输入口。所以写入初始化时写入控制口的控制字为:0A7H
5.1.3 本实验可以采用查询方式作为CPU与外设信息交换的方式,当CPU从8255A的
B端口读取输入的数据前应查询PC1(IBF),只有当此时PC1=1,CPU才能从B端口读取输入的数据。
5.2 实验程序
.Model small .386
DATA SEGMENT
MESG DB '8255A READY....',0Dh,0Ah,'$S' TAB DB 01H DB 02H DB 04H DB 08H DB 10H DB 20H DB 40H DB 80H DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX CALL I8255A MOV AH,9
MOV DX,OFFSET MESG INT 21H SCAN: MOV AH,1 INT 16H JNZ RETURN MOV DX,202H IN AL,DX
TEST AL,00000010B //查询C端口中的PC1位是否为“1”; JZ SCAN MOV DX,201H IN AL,DX
AND AL,07H //PC1=1时,读取B端口的低三位的输入状态 MOV BX,OFFSET TAB XLAT TAB //查表 MOV DX,200H
OUT DX,AL //输出A端口的状态 JMP SCAN RETURN: MOV AH,4CH INT 21H
3
I8255A PROC MOV DX,203H
MOV AL,0A7H //8255A的控制字写到控制口 OUT DX,AL
MOV AL,02H //将C口的PC1位置0 OUT DX,AL MOV DX,200H
MOV AL,0FFH //将A口的所有位置1 OUT DX,AL RET I8255A ENDP CODE ENDS END BEG
六、 实验结果
4
七.心得体会
在接好电路后,运行便写好的程序时,再改变拨动开关的组合后注意按下复位键才能看到结果。在本次实验学到了要将课程的基本理论跟应用实例结合起来学习,这样有助于自己更加深入地了解和掌握各种芯片的内部结构和工作原理。
5
相关推荐: