文档详情

微机与接口课后习题1-8章,仅供参考.ppt

发布:2018-01-20约1.12万字共93页下载文档
文本预览下载声明
1250 * TW * 需要不断的查询CPU * 01 * 100XX1XX PC3-PC7 * 011 PC3 * A口工作与方式1,B口工作与方式0, PC6 = 1 C口工作于方式 * 2000000*0.02=40000 * 4. 一个可以双向传输数据的并口,要想可靠的与外设交换数据,至少应该配置几根信号联络线,它们的作用各是什么? 5. 如果设定8255 端口A 工作于方式1 输出数据,且CPU 采用查询方式而非中断方式向端口A 写数据。请画出CPU 与8255 之间、8255 与外设之间的原理性电路连接图并写出有关的程序段。设端口A、B、C 及控制寄存器口地址为0D0H、0D2H、0D4H、0D6H。 MOV CX,100 ;设置计数值 LEA SI,BUF ;取数据缓冲区偏移地址 MOV DX,0D6H ;控制寄存器口地址 MOV AL ;A 口方式1 输出;PC7~PC4 输入;PC3~PC0 输入。 OUT DX,AL ; MOV AL;位设置命令字,将PC6 置1 OUT DX,AL ;用于打开A 口方式1 下8255 内部的中断允许位 L0: MOV DX,P8255 ;A 口地址 MOV AL,[SI] ;取打印数据 INC SI ;指向下一数据 OUT DX,AL ;向8255 的A 口送打印数据 MOV DX,P8255+2 L1: IN AL,DX ;读PC0 状态 AND AL ;判断PC0 是否为1(PC3=INTR=1 表示输出缓冲器空) JZ L1 ;PC0 不为1 继续查询 LOOP L0 ;PC0 为1,进行下一次数据输出 程序结束 ;数据全部输出完毕 5. 如果设定8255 端口A 工作于方式1 输出数据,且CPU 采用查询方式而非中断方式向端口A 写数据。请画出CPU 与8255 之间、8255 与外设之间的原理性电路连接图并写出有关的程序段。设端口A、B、C 及控制寄存器口地址为0D0H、0D2H、0D4H、0D6H。 MOV CX,100 ;设置计数值 LEA SI,BUF ;取数据缓冲区偏移地址 MOV DX,0D6H ;控制寄存器口地址 MOV AL ;A 口方式1 输出;PC7~PC4 输入;PC3~PC0 输入。 OUT DX,AL ; MOV AL;位设置命令字,将PC6 置1 INTE=1 OUT DX,AL ;用于打开A 口方式1 下8255 内部的中断允许位 L0: MOV DX,0D0H ;A 口地址 MOV AL,[SI] ;取数据 INC SI ;指向下一数据 OUT DX,AL ;向8255 的A 口送数据 MOV DX,0D4H L1: IN AL,DX ;读PC0 状态 AND AL ;判断PC3 是否为1(PC3=INTR=1 表示输出缓冲器空) JZ L1 ;PC3不为1 继续查询 LOOP L0 ;PC3为1,进行下一次数据输出 程序结束 ;数据全部输出完毕 1010 0000 0000 1101 A口工作于方式1,输出,B口工作于方式0,输出。 PCA从属于端口A PC6 = 1 C口工作于中断方式 PC0 = 1 第六章、练习 7. 请画出3 行×3 列,行列式键盘的电路原理图并说明其工作原理。 9.若采用8255 的CA 口作为行线,CB 口作为列线,设计一个4×4 的键盘电路,请画出8255 与键盘矩阵的电路连接图并编写行反转法实现的按键识别程序。 8255地址为320H 1)首先判别是否有键按下(向行线A3~A0 输出全0): MOV DX,323H ;口地址指向8255 控制寄存器 MOV AL,81H ;设定A 、B口为方式0 输出,C 口C3~C0 为输入,C7~C4 为输出 OUT DX,AL ABC: MOV AL,00 ;向CA口输出全“0”行值 MOV DX,322H ; OUT DX,AL ; IN AL,DX ; 从CB 口读入列值 AND AL,0FH CMP AL,0FH ;判断是否有键按下 JZ ABC ;无键按下则继续查询 MOV AH, AL ; 保存CB值 CALL DELAY ;有键按下则延迟一定时间(一般为5~20ms)用于消除键抖动; 2)反向查找 MOV DX,323H ;口地址指向8255 控制寄存器 MOV AL,88H ;设定A 、B口为方式0 输出,C 口C3~C0 为输出,C7~C4 为输入 OUT DX,AL; MOV AL,AH ; MOV DX,322H OUT DX,AL ;输出列值 IN AL,DX ;
显示全部
相似文档