8253的测试代码:
8253的CNT0工作于方式3,产生20ms的周期方波信号。
8253的CNT1工作于方式3,产生500ms的周期方波信号。
接线:
GATE0、GATE1接高电平;CLK0接1MHz信号;CLK1与OUT0相连。
测试时,将示波器接到OUT0或OUT1上,测量周期是否正确
代码:
1 ;TEST FOR 8253 2 CNT0 EQU 0280H 3 CNT1 EQU 0281H 4 CON_8253 EQU 0283H 5 DATA SEGMENT 6 DATA ENDS 7 8 STACK SEGMENT 9 STA DW 100 DUP(?) 10 TOP EQU LENGTH STA 11 STACK ENDS 12 13 CODE SEGMENT 14 ASSUME CS: CODE,DS: DATA,SS: STACK,ES: DATA 15 START: MOV AX, DATA 16 MOV DS, AX 17 MOV ES, AX 18 MOV AX, STACK 19 MOV SS, AX 20 MOV SP, TOP 21 22 ;计数器0产生周期20ms的方波---->方式3 23 ;control---->36H 24 ;初始值---->4E20H 25 MOV DX, CON_8253 26 MOV AL, 36H 27 OUT DX, AL 28 MOV DX, CNT0 29 MOV AX, 4E20H 30 OUT DX, AL 31 MOV AL, AH 32 OUT DX, AL 33 34 ;计数器1 T = 500ms---->方式3 35 ;control---->56H 36 ;初始值 ---->18H 37 MOV DX, CON_8253 38 MOV AL, 56H ;8253写入控制字 39 OUT DX, AL 40 MOV DX, CNT1 41 MOV AL, 19H ;CNT1写入初始值 42 OUT DX, AL 43 MAIN: JMP MAIN 44 MOV AH, 4CH 45 INT 21H 46 CODE ENDS 47 END START