当前位置:首页 > 创业科技 > 正文

8086微机原理课程设计项目(微机原理8086并行接口芯片8255A的应用)

实验三:并行接口芯片8255A的应用

实验器材:

8086微机原理课程设计项目(微机原理8086并行接口芯片8255A的应用)(1)

所需器材

电路图:

8086微机原理课程设计项目(微机原理8086并行接口芯片8255A的应用)(2)

仿真电路图

《微机原理接口与技术》(8086汇编)期末考试、考研常见考题、习题,题型汇总、知识点总结、专周(十二)之并行接口芯片8255A的应用

程序源码:

;author:liuxianfei0810IO3 EQU 0030HCODESEGMENT 'CODE'ASSUME CS:CODE,DS:CODEMAIN PROC FARSTART:MOV AX,CODEMOV DS,AX;author:liuxianfei0810L:MOV AL,10000001B; D7:置放向字1有效 D6-5:方式0 D4:端口A输出; D3:端口C上半部分输出 D2:方式0 D1:端口B输出 D0:端口C下半部分输入; 端口C上半部分 PC7-4MOV DX,IO3 6;0110 数据总线->控制字寄存器 配合OUT指令OUT DX,AL;author:liuxianfei0810MOV DX,IO3 4;0100 数据总线->端口C 配合OUT指令MOV AL,00OUT DX,AL;端口C上半部分输出0000即:PC7-4=0000;author:liuxianfei0810;MOV DX,IO3 4;0100 端口C->数据总线配合IN指令NOKEY:IN AL,DX;采集端口C低 四位数据AND AL,0FHCMP AL,0FH;判断是否有按键按下JZ NOKEY CALL DELAY10;延时消抖;author:liuxianfei0810IN AL,DX;进一步 判断是否有按键按下MOV BL,0MOV CX,4;author:liuxianfei0810LP1:SHR AL,1;右移一位,将更低位移到C标志中JNC LP2;判断C标志,检测哪个按键按下,检测到跳转到LP2INC BL ;状态标志加一,用于后续判断LOOP LP1 ;没检测到按键,继续检测;author:liuxianfei0810LP2:MOV AL,10001000B; D7:置放向字1有效 D6-5:方式0 D4:端口A输出; D3:端口C上半部分输入D2:方式0 D1:端口B输出 D0:端口C下半部分输出; 端口C上半部分 PC7-4MOV DX,IO3 6;0110 数据总线->控制字寄存器 配合OUT指令OUT DX,AL;author:liuxianfei0810MOV DX,IO3 4;0100 数据总线->端口C配合OUT指令MOV AL,00 ;端口C下半部分输出 0000即:PC3-0=0000OUT DX,AL;author:liuxianfei0810IN AL,DX;采集端口C高 四位数据AND AL,0F0HCMP AL,0F0H ;判断是否有按键按下JZ L;ZF=1 说明无按键按下。跳转到L处,重新检测按键;author:liuxianfei0810MOV BH,0MOV CX,4;author:liuxianfei0810LP3:SHL AL,1; 左移一位,将更高位送到C中JNC LP4 ;判断C标志,检测哪个按键按下,检测到跳转到LP2INC BHLOOP LP3;author:liuxianfei0810LP4:MOV AX,4MUL BHADD AL,BLMOV DX,IO3 2;0010 数据总线->端口B配合OUT指令OUT DX,AL;author:liuxianfei0810MOV BX,OFFSET SEGDATAXLATMOV DX,IO3;0000 数据总线->端口A配合OUT指令OUT DX,AL;author:liuxianfei0810MOV CX,0J1: LOOP J1;65536*17/fclkJMP LRETMAINENDP;author:liuxianfei0810;延时子程序DELAY10 PROCMOV CX,882LOOP $;一个loop执行周期17个时钟周期RETDELAY10 ENDP;共阴数码管SEGDATA DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71HCODE ENDS END START

(有关8255A芯片讲解见后文)

,