实验七 8253定时器(汇编与微机原理)

方式一:

;8253定时器
;C4区:CS、A0、A1-------A3区:CS2、A0、A1
;C4区:GATE      -------C1区:VCC(+5V)
;C4区:CLK0      -------B2区:31250
;C4区:OUT0      -------F4区:LED1
;C4区:OUT0      -------C4区:CLK1
;C4区:OUT1      -------F4区:LED2

.MODEL TINY
T0_8253 EQU 260H
T1_8253 EQU 261H  
T2_8253 EQU 262H
CTRL_8253 EQU 263H
.STACK 100
.DATA

.CODE
START:
;对T0初始化
MOV AL,00110110B
;选择计数器0、先读/写低字节,后读写高字节、方式3、二进制
MOV DX,CTRL_8253      
OUT DX,AL
;写入T0计数初值
;T0产生1秒的信号、0.5秒高电平、0.5秒低电平
;计数器初值1s*31250=7A12H
;写低字节
MOV AL,12H
MOV DX,T0_8253
OUT DX,AL
;写高字节
MOV AL,7AH  
OUT DX,AL
 
;对T1初始化
MOV AL,01010100B
;选择计数器1、只读/写低8位、方式2、二进制
MOV DX,CTRL_8253
OUT DX,AL
;写入 T1计数初值
;T1产生5秒的信号、4秒高电平、1秒低电平
;计数器初值1s*5=5
MOV AL,5H
MOV DX,T1_8253
OUT DX,AL
JMP $

END START

方式二:

;8253定时器
;C4区:CS、A0、A1-------A3区:CS2、A0、A1
;C4区:GATE      -------C1区:VCC(+5V)
;C4区:CLK0      -------B2区:31250
;C4区:OUT0      -------F4区:LED1
;C4区:OUT0      -------C4区:CLK1
;C4区:OUT1      -------F4区:LED2

.MODEL TINY
T0_8253 EQU 260H
T1_8253 EQU 261H  
T2_8253 EQU 262H
CTRL_8253 EQU 263H
.STACK 100
.DATA

.CODE
START:
;对T0初始化
MOV AL,00110110B
;选择计数器0、先读/写低字节,后读写高字节、方式3、二进制
MOV DX,CTRL_8253      
OUT DX,AL
;写入T0计数初值
;T0产生1秒的信号、0.5秒高电平、0.5秒低电平
;计数器初值1s*31250=7A12H
MOV AX,31250
MOV DX,T0_8253
;写低字节
OUT DX,AL
;写高字节
MOV AL,AH
OUT DX,AL
 
;对T1初始化
MOV AL,01010100B
;选择计数器1、只读/写低8位、方式2、二进制
MOV DX,CTRL_8253
OUT DX,AL
;写入 T1计数初值
;T1产生5秒的信号、4秒高电平、1秒低电平
;计数器初值1s*5=5
MOV AL,5H
MOV DX,T1_8253
OUT DX,AL
JMP $

END START

你可能感兴趣的:(编程语言,汇编)