可编程计数器8253
2012-02-15 09:56
204 查看
;*************************;
;* 8253方式0计数器实验 *;
;*************************;
io8253a equ 283h
io8253b equ 280h
code segment
assume cs:code
start:
mov dx,283h ; 设置8253通道0为工作方式2,二进制计数
mov al,14h
out dx,al
mov dx,280h
mov al,0fh
out dx,al ; 送计数初值为0FH
lll: mov al,80h ;计数器0锁存命令
mov dx,283h
out dx,al
mov dx,280h
in al,dx ; 读计数初值
call disp ; 调显示子程序
push dx
mov ah,06h
mov dl,0ffh
int 21h
pop dx
jz lll
mov ah,4ch
int 21h ; 退出
disp proc near ;显示子程序
push dx
mov dx,280h; 首先取低四位
in al,dx
and al,0fh
mov dl,al
cmp dl,09 ; 判断是否<=9
jle num ;若是则为'0'-'9',ASCII码加30H
add dl,07 ; 否则为'A'-'F',ASCII码加37H
num: add dl,30h
mov ah,02h
int 21h; 显示
mov dl,13
int 21h ; 加回车符
mov dl,10
int 21h ; 加换行符
pop dx
ret ;子程序返回
disp endp
code ends
end start
;* 8253方式0计数器实验 *;
;*************************;
io8253a equ 283h
io8253b equ 280h
code segment
assume cs:code
start:
mov dx,283h ; 设置8253通道0为工作方式2,二进制计数
mov al,14h
out dx,al
mov dx,280h
mov al,0fh
out dx,al ; 送计数初值为0FH
lll: mov al,80h ;计数器0锁存命令
mov dx,283h
out dx,al
mov dx,280h
in al,dx ; 读计数初值
call disp ; 调显示子程序
push dx
mov ah,06h
mov dl,0ffh
int 21h
pop dx
jz lll
mov ah,4ch
int 21h ; 退出
disp proc near ;显示子程序
push dx
mov dx,280h; 首先取低四位
in al,dx
and al,0fh
mov dl,al
cmp dl,09 ; 判断是否<=9
jle num ;若是则为'0'-'9',ASCII码加30H
add dl,07 ; 否则为'A'-'F',ASCII码加37H
num: add dl,30h
mov ah,02h
int 21h; 显示
mov dl,13
int 21h ; 加回车符
mov dl,10
int 21h ; 加换行符
pop dx
ret ;子程序返回
disp endp
code ends
end start
相关文章推荐
- 可编程定时计数器8253/8254
- 可编程定时计数器8253/8254
- 微机接口 可编程定时/计数器8253
- verilog编程,可能你一直在错误地使用计数器cnt
- Hadoop MapReduce编程 API入门系列之计数器(二十七)
- 单片机控制定时器或计数器之模块化编程
- 计数器/定时器8253的基本介绍和功能——(二)
- 定时/计数器软件编程范例
- 计数器/定时器8253的基本介绍和功能——(一)
- 编程练习--计数器
- 实训汇编语言设计——8253计数器/定时器
- 可编程定时/计数器 8253/8254
- 实训汇编语言设计——8253计数器/定时器
- 如何利用VB.NET网页上编程计数器方法?
- 无锁编程[0]__多线程条件下的计数器__原子的加/减/与/或/异或操作__sync_fetch_and_add,__sync_add_and_fetch等
- 多线程编程一:带有信号量及计数器的多线程线程池
- [芯片] 2、接口技术·实验二·定时/计数器8253
- MapReduce典型编程场景——全局计数器
- Hadoop MapReduce编程 API入门系列之压缩和计数器(三十)
- 51 单片机编程:双路计数器