实验三:秒表实验报告
一、实验目的
1、了解74ls273的工作原理;
2、看懂8086工作的时序图,并且掌握8086总线的技术;
3. 通过此实验,熟悉protues7.9的基本操作和工作环境以及MASM32文件的建立与运行;
二、实验原理
用74ls273扩展IO口,通过片选信号和写信号奖数据总线上的值锁存在273中,同时在273的输出端口输出,当数据总线上的值撤销以后,由于74ls273能够锁存信号,所以273的输出端保持不变,直到下次有新的数据被锁存,通过按键可以控制数据的变化,cpu根据按键变化控制输出,通过总线就可以控制数码管的变化,显示出秒表的效果。
3、实验步骤
1、根据实验目的及内容在proteus画出电路图,如下图所示
2、画好电路图后用汇编软件,按要求写出实验代码,代码如下:
.MODEL SMALL
.8086
.stack
.code
.startup
MOV DX,0200H
LOOP0: MOV BL,SEC
AND BX,000FH
MOV SI,BX
MOV AL,SITUATION[SI] MOV BL,SEC
AND BX,00F0H
MOV CL,4
SHR BX,CL
MOV SI,BX
MOV AH,SITUATION[SI] OUT DX,AX
CALL DELAY
MOV AL,SEC
ADD AL,1
DAA
MOV SEC,AL
CMP SEC,60H
JB LOOP0
MOV SEC,0
JMP LOOP0
DELAY PROC NEAR
PUSH BX
PUSH CX
MOV BX,50
DEL1: MOV CX,5882
DEL2: LOOP DEL2
DEC BX
JNZ DEL1
POP CX
POP BX
RET
DELAY ENDP
.data
SEC DB 00H
SITUATION DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
SIT_END=$
END
3、编译链接后生成.exe 文件加载到proteus中,并点击运行,可以看到数码管的显示数字呈递增状态,截图如下:
4、通过实验可以看到数码管能显示出秒表的效果,实验成功。
四、实验总结
通过实验二的实践,这次实验画图还比较成功,一开始只有数码管有几个管子不亮,把线拆了重新画上去就好了,用老师给的sample运行了一下就成功了。
但是自己建立sample的过程中就比较麻烦了,先用一个文本文档把代码写进去,命名为sample.asm,然后在masm32里把代码写进去运行,也命名为sample.asm,这样就会自动生成sample.map和sample.obj文件。
应该注意的是build文件应该和这几个文件放在一起。
因为实验二sample的建立没有成功,直接用的老师的文件,所以这次要自己动手做就相对比较困难,但最后还是成功了。
做什么事情还是要自己动手做,熟能生巧,成功后会有一种成就感的。