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号计数器1工作方式,计数值为4s / 10Hz = 40 MOV DX, 283H ; 命令口 MOV AL, 10010010B ; 10(2号计数器)|01(读写低字节,高字节置0)|001(1方式工作)|0(计数值为2进制) OUT DX, AL MOV DX, 282H ; 2号计数器 MOV AL, 101000B ; 计数值(40)_D的2进制 OUT DX, AL CODE ENDS END START