first commit
This commit is contained in:
42
Lab/Lab4/material/method0test/code.asm
Executable file
42
Lab/Lab4/material/method0test/code.asm
Executable file
@@ -0,0 +1,42 @@
|
||||
DATA SEGMENT
|
||||
|
||||
DATA ENDS
|
||||
|
||||
CODE SEGMENT
|
||||
ASSUME CS:CODE, DS:DATA
|
||||
|
||||
START:
|
||||
MOV AX, DATA
|
||||
MOV DS, AX
|
||||
|
||||
; 时钟源为1MHz,使用0号计数器3方式降频为1kHz,计数值为1M / 1k = 1000
|
||||
MOV DX, 283H ; 命令口
|
||||
MOV AL, 00110110B ; 00(0号计数器)|11(读写2字节)|011(3方式工作)|0(计数值为2进制)
|
||||
OUT DX, AL
|
||||
|
||||
MOV DX, 280H ; 0号计数器
|
||||
MOV AL, 11101000B ; 计数值(1000)_D的2进制的低8位
|
||||
OUT DX, AL
|
||||
MOV AL, 00000011B ; 计数值(1000)_D的2进制的高8位
|
||||
OUT DX, AL
|
||||
|
||||
; 从0号计数器获得1kHz的方波,使用1号计数器3方式降频为10Hz,方便示波器和人眼观察,计数值为1k / 10 = 100
|
||||
MOV DX, 283H ; 命令口
|
||||
MOV AL, 01010110B ; 01(1号计数器)|01(读写低字节,高字节置0)|011(3方式工作)|0(计数值为2进制)
|
||||
OUT DX, AL
|
||||
|
||||
MOV DX, 281H ; 1号计数器
|
||||
MOV AL, 01100100B ; 计数值(100)_D的2进制
|
||||
OUT DX, AL
|
||||
|
||||
; 从1号计数器获得10Hz的方波,观察2号计数器0工作方式,计数值为4s / 10Hz = 40
|
||||
MOV DX, 283H ; 命令口
|
||||
MOV AL, 10010000B ; 10(2号计数器)|01(读写低字节,高字节置0)|000(0方式工作)|0(计数值为2进制)
|
||||
OUT DX, AL
|
||||
|
||||
MOV DX, 282H ; 2号计数器
|
||||
MOV AL, 101000B ; 计数值(40)_D的2进制
|
||||
OUT DX, AL
|
||||
|
||||
CODE ENDS
|
||||
END START
|
||||
Reference in New Issue
Block a user