计算机接口实验0832,现代计算机接口实验 (四)0832实验

3. 16 次产生三角波,最高点-5V

;0832 Ua-示波器观察

;0832cs280H~287H

;Ua=-Uxef/256*N;Ub=-Uxef/256*N-5

;8253 -288H~28BH;CLK0-2MHZ;GATE0-VCC;OUT0-PC7

;8255 -290H~293H;

;Ua=-Uxef/256*N;Ub=-Uxef/256*N-5

DATA SEGMENT

T0_8253 EQU 288H

KZ_8253 EQU 28BH

PC_8255 EQU 292H

KZ_8255 EQU 293H

DATA ENDS

STACK1 SEGMENT PARA STACK

DW 20H DUP(0)

STACK1 ENDS

CODE SEGMENT

ASSUME CS: CODE, DS:DATA, SS:STACK1

START:

MOV AX, DATA

MOV DS, AX

CALL Init_8253

CALL Init_8255

MOV AL, 00H

DRAW_ASCEND_LINE: ;画上升的边

MOV DX, 280H

OUT DX, AL

CALL DELAY

CMP AL, 80H

JZ DRAW_DESCEND_LINE ;跳转到画下降的边

ADD AL, 08H

JMP DRAW_ASCEND_LINE

DRAW_DESCEND_LINE: ;画下降的边

SUB AL, 08H

MOV DX, 280H

OUT DX, AL

CALL DELAY

CMP AL, 00H

JZ DRAW_ASCEND_LINE ;跳转到画上升的边

JMP DRAW_DESCEND_LINE

MOV AH, 4CH; 退出到 DOS,即结束程序运行

INT 21H

DELAY PROC NEAR

PUSH DX

PUSH AX

NEXT1:

MOV DX,PC_8255

IN AL,DX

AND AL,80H;1000 0000B-PC7

JNZ NEXT1

NEXT2:

MOV DX,PC_8255

IN AL,DX

AND AL,80H

JZ NEXT2

POP AX

POP DX

RET

DELAY ENDP

Init_8253 PROC

PUSH DX

PUSH AX

MOV DX,KZ_8253

MOV AL,00100111B ;选择通道0-OUT0,写入高字节,方式3,用BCD码

OUT DX,AL

MOV DX,T0_8253

MOV AL,20H

OUT DX,AL

;8253产生1mS的连续方波*/

POP AX

POP DX

RET

Init_8253 ENDP

;初始化8255

Init_8255 PROC

PUSH DX

PUSH AX

MOV DX,KZ_8255 ;8255方式字控制字控制;10011000

MOV AL,98H

OUT DX,AL

POP AX

POP DX

RET

Init_8255 ENDP

CODE ENDS

END START

4. 16 次产生梯形波,最高点-5V

;0832 Ua-示波器观察

;0832cs280H~287H

;Ua=-Uxef/256*N;Ub=-Uxef/256*N-5

;8253 -288H~28BH;CLK0-2MHZ;GATE0-VCC;OUT0-PC7

;8255 -290H~293H;

;Ua=-Uxef/256*N;Ub=-Uxef/256*N-5

DATA SEGMENT

T0_8253 EQU 288H

KZ_8253 EQU 28BH

PC_8255 EQU 292H

KZ_8255 EQU 293H

DATA ENDS

STACK1 SEGMENT PARA STACK

DW 20H DUP(0)

STACK1 ENDS

CODE SEGMENT

ASSUME CS: CODE, DS:DATA, SS:STACK1

START:

MOV AX, DATA

MOV DS, AX

CALL Init_8253

CALL Init_8255

MOV AL, 00H

DRAW_ASCEND_LINE: ;画上升的腰

MOV DX, 280H

OUT DX, AL

CALL DELAY

CMP AL, 80H

JZ  DRAW_HORIZON_LINE ;跳转到画梯形上底

ADD AL, 08H

JMP DRAW_ASCEND_LINE

DRAW_HORIZON_LINE: ;画梯形上底

MOV CX, 10H

AGAIN:

OUT DX, AL

CALL DELAY

LOOP AGAIN

DRAW_DESCEND_LINE: ;画下降的腰

SUB AL, 08H

MOV DX, 280H

OUT DX, AL

CALL DELAY

CMP AL, 00H

JZ DRAW_ASCEND_LINE;跳转到画上升的腰

JMP DRAW_DESCEND_LINE

MOV AH, 4CH; 退出到 DOS,即结束程序运行

INT 21H

DELAY PROC NEAR

PUSH DX

PUSH AX

NEXT1:

MOV DX,PC_8255

IN AL,DX

AND AL,80H;1000 0000B-PC7

JNZ NEXT1

NEXT2:

MOV DX,PC_8255

IN AL,DX

AND AL,80H

JZ NEXT2

POP AX

POP DX

RET

DELAY ENDP

Init_8253 PROC

PUSH DX

PUSH AX

MOV DX,KZ_8253

MOV AL,00100111B ;选择通道0-OUT0,写入高字节,方式3,用BCD码

OUT DX,AL

MOV DX,T0_8253

MOV AL,20H

OUT DX,AL

;8253产生1mS的连续方波*/

POP AX

POP DX

RET

Init_8253 ENDP

;初始化8255

Init_8255 PROC

PUSH DX

PUSH AX

MOV DX,KZ_8255 ;8255方式字控制字控制;10011000

MOV AL,98H

OUT DX,AL

POP AX

POP DX

RET

Init_8255 ENDP

CODE ENDS

END START

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值