42 lines
1.7 KiB
NASM
Executable File
42 lines
1.7 KiB
NASM
Executable File
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 |