8086+8253定时器方式2、3工作Proteus仿真

8086+8253定时器方式2、3工作Proteus仿真

仿真截图

在这里插入图片描述

代码

CODE SEGMENT
DATA SEGMENT
PORT0 EQU 288H
PORT1 EQU 28AH
PORT2 EQU 28CH
PORTCTL EQU 28EH
N EQU 5;N调节二极管闪烁频率
DATA ENDS

MAIN PROC FAR
ASSUME CS:CODE,DS:DATA;段分配
START:
MOV AX, DATA;段初始化
MOV DS, AX

MOV DX, PORTCTL
MOV AL, 00010111B
OUT DX, AL
MOV AL, 01010111B
OUT DX, AL
MOV AL, 10010100B
OUT DX, AL
MOV DX, PORT0
MOV AL, 10H
OUT DX, AL
MOV DX,PORT1
MOV AL, 10H
OUT DX, AL
MOV DX, PORT2
MOV AL, N 
OUT DX, AL
DONTSTOP:
JMP DONTSTOP
MAIN ENDP
CODE ENDS
END MAIN

实现目的

在这里插入图片描述

其他事项

从示波器可以看出,似乎Proteus中8253的工作方式2与3都是方式2,都会输出负脉冲,方式3也不会输出方波。

-----2022.11.18
经验证,的确为proteus仿真模型问题,可以通过替换模型解决该问题。替换模型的时候注意,替换DATA文件夹下的模型,如果只替换Proteus文件夹下的没有用。
可参考:https://blog.csdn.net/qq_43862401/article/details/106805628

再更

经作业要求,加入对于LED灯闪烁次数的记录以及数码管显示。
在这里插入图片描述
代码



CODE SEGMENT

DATA SEGMENT
LIST DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
NUM DB 2 DUP(?)


PORT0 EQU 288H
PORT1 EQU 28AH
PORT2 EQU 28CH
PORTCTL3 EQU 28EH

PORTA EQU 280H
PORTB EQU 282H
PORTC EQU 284H
PORTCTL5 EQU 286H

N EQU 5;N调节二极管闪烁频率
DATA ENDS


MAIN PROC FAR
ASSUME CS:CODE,DS:DATA;段分配
START:
MOV AX, DATA;段初始化
MOV DS, AX

MOV DX, PORTCTL3
MOV AL, 00010111B
OUT DX, AL
MOV AL, 01010111B
OUT DX, AL
MOV AL, 10010100B
OUT DX, AL

MOV DX, PORT0
MOV AL, 10H
OUT DX, AL
MOV DX,PORT1
MOV AL, 10H
OUT DX, AL
MOV DX, PORT2
MOV AL, N 
OUT DX, AL


MOV DX, PORTCTL5
MOV AL, 82H
OUT DX, AL
MOV DX, PORTC
MOV AL, 0FFH
OUT DX, AL
MOV AL, 0
OUT DX,AL

DONTSTOP:

CALL INPUT
CALL OUTPUT

JMP DONTSTOP



MAIN ENDP


INPUT PROC NEAR
MOV DX, PORTB
IN AL, DX
MOV AH, 0
MOV BL, 10
DIV BL
MOV NUM, AL
MOV NUM+1, AH

RET
INPUT ENDP


OUTPUT PROC NEAR

;MOV DX, PORTCTL;PC0置0;询问老师二者异同
;MOV AL, 00H
;OUT DX, AL
;MOV AL, 03H;PC1置1
;OUT DX, AL
MOV DX, PORTC
MOV AL, 02H
OUT DX, AL
MOV AL, NUM
MOV BX, OFFSET LIST
XLAT
MOV DX, PORTA
OUT DX, AL

CALL DELAY

;MOV DX, PORTCTL;PC0置1
;MOV AL, 01H
;OUT DX, AL
;MOV AL, 02H;PC1置0
;OUT DX, AL
MOV DX, PORTC
MOV AL, 01H
OUT DX, AL
MOV AL, NUM+1
MOV BX, OFFSET LIST
XLAT
MOV DX, PORTA
OUT DX, AL

CALL DELAY
RET
OUTPUT ENDP


DELAY PROC NEAR;延时
PUSH SI
PUSH CX
MOV SI, 1
DELAYNEXT1:
MOV CX, 0E0FFH
DELAYNEXT2:
LOOP DELAYNEXT2
DEC SI
JNZ DELAYNEXT1
POP CX
POP SI
RET
DELAY ENDP


CODE ENDS
END MAIN
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值