微原硬件实验
将DS,AX压入堆栈,保护现场y4输出负脉冲延时否y5输出负脉冲延时是否有键盘按下是结束
图2 软件流程图
(二)实验二:
图三实验硬件连接图
第6页
微原硬件实验
开始CX置0FFH获得键盘输入键盘是否输入ESCN输出到端口2A8HCX是否为0Y返回dosY结束
图四软件流程图
四、源程序及注释
(一)实验一:
DATA SEGMENT DATA ENDS
STACK SEGMENT DB 100 DUP(?) STACK ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK
;延时子程序,双重嵌套延时 DELAY PROC NEAR PUSH CX MOV CX,0FFFFH WAIT2:
第7页
微原硬件实验
MOV BX,200 WAIT1: DEC BX JNZ WAIT1 ;如果BX不为0,则继续执行WAIT1 LOOP WAIT2 ;如果CX不为0,而BX为0,则执行WAIT2 POP CX ;保护寄存器 ENDA: RET
DELAY ENDP
START:PUSH DS ;保护寄存器 XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX ;设置地址寄存器基地址 MOV DX,2A0H OUT DX,AL ;Y4输出一个负脉冲 CALL DELAY ;调用延时子程序 MOV DX,2A8H OUT DX,AL ;Y5输出一个负脉冲 CALL DELAY ;调用延时子程序 MOV AH, 0BH INT 21H OR AL,AL JZ START MOV AX,4C00H INT 21H
CODE ENDS END START
(二)实验二:
CODE SEGMENT ASSUME CS:CODE START: MOV CX,0FFH LOOP1:MOV AH,1 INT 21H CMP AL,1BH JZ END1
;循环执行程序
;键盘输入是否为ESC ;是则跳出
第8页
微原硬件实验
MOV DX,2A8H OUT DX,AL LOOP LOOP1
END1: MOV AX,4C00H INT 21H CODE ENDS END START
;不是输出到Y5
;返回DOS
五、实验结果
(1)通过软件可以实现L7闪烁发光(亮、灭、亮、灭、……),直到键盘有按键按下。
(2)键盘输入某一个字符,L0~L7显示输出的ASCⅡ码,如果字符是ESC则退出返回DOS
六、实验总结
这是第一次微原的硬件实验,运用了课上学习的理论知识和硬件期间结合起来做了第一次实验。由于课前没有做好充分准备,对实验所用的编程软件和硬件电路板还不太熟悉,所以实验中还是遇到了不少问题。
第一个难题就是延时时间长短的控制,开始只用了一层嵌套,导致灯一直看上去是亮着的状态,后来询问了老师还有同学,采用了双层嵌套延时,在慢慢尝试中修改最后得到了满意的实验结果。
第二个难题就是软件的应用,在运行的时候经常会出现程序终止的现象,遇到这种情况的时候,只要把硬件电路的电源重启即可。
第三个难题就是编程的不熟练,一定会在在今后的实验中好好慢慢练习。
七、实验收获与心得体会
在硬件实验的过程中,我更加深刻地认识到将理论知识与实践结合的重要性,只有亲自动手实践操作,才能更好地理解知识。实验中一定要细心,不能放过任何一个实验的异常现象,在思考和操作中提升自己。
第9页
微原硬件实验
二.可编程并行接口8255实验
一、实验目的
1、通过实验,掌握8255工作于方式0以及设置A口为输出口,C口为输入口的方法。 2、掌握数码管显示数字的原理
3、掌握一般键盘和显示电路的工作原理。
二、实验原理和内容
(一)实验原理
1.8255的工作方式
一片8255内部有3个端口,A口可以工作在方式0、方式1或方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。
方式0是基本型输入/输出。这种方式和外设交换数据时,8255端口与外设之间不使用联络线。
方式1为选通型输入/输出。用这种方式和外界交换数据时,端口和外设之间要有联络信号。
方式2是双向数据传送,仅A口有这项功能。当A口工作在方式2时,B口仍可以工作在方式0或方式1,但此时B口方式1只能用查询方式与CPU交换信息。 2. 工作方式选择字
8255工作方式选择字共8位(如图),存放在8255控制寄存器中。最高位D7为标志位,D7=1表示控制寄存器中存放的是工作方式选择字,D7=0表示控制寄存器中存放的是C口置位/复位控制字。
3.C口置/复位控制字
8255的C口可进行位操作,即:可对8255C口的每一位进行置位或清零操作,该操作是通过设置C口置/复位字实现的(图8-10)。C口置/复位字共8位,各位含义如下:
第10页