【微机原理与接口技术】实验4 定时器与计数器(8253)

定时器与计数器(8253)

实验4-1 计数器实验

在这里插入图片描述

io8253a equ 283h
io8253b equ 280h
code segment
assume cs:code
start:
;补充编程,设置8253通道0的工作方式,送计数初值为0FH
MOV AL,14H      ;设置8253通道0工作方式2,二进制计数
MOV DX,io8253a
OUT DX,AL       ;将工作方式送到283H窗口

MOV AL,0FH      ;设置初始值0FH
MOV DX,io8253b
OUT DX,AL       ;送初始值

lll: 
IN AL,DX         ;补充编程,读计数初值
call disp           ;调显示子程序
push dx           ;保护作用
mov ah,06h        ;直接控制台的读写功能
mov dl,0ffh        ;输入,dl为输入字符的ascii码
int 21h
pop dx
jz lll
mov ah,4ch         ;退出
int 21h

disp PROC NEAR   ;补充,显示子程序
PUSH DX          ;保护作用
AND AL,0FH   
MOV DL,AL    
CMP DL,9          ;判断是否小于9
JLE NUM           ;如果在'0'-'9',跳转到NUM  0--48 
ADD DL,7          ;否则为‘A’-'F'37H  a的ASCII码为97 A的ASCII码为65
NUM: 
ADD DL,30H
MOV AH,02H       ;显示
INT 21H
      
mov dl,0dh         ;加回车符
int 21h
mov dl,0ah         ;加换行符
int 21h
pop dx
ret                ;子程序返回
disp endp
code ends
end start

实验4-2 定时器实验

在这里插入图片描述

io8253a        equ 280h
io8253b        equ 281h
io8253c        equ 283h
code segment
    assume   cs:code
start:
     mov dx,io8253c
     mov AL,36h       ;设通道0的工作方式为3 00110110
     out dx,al          ;8253写控制字
     
     mov ax,1000       ;写入初始值1000
     mov dx,io8253a
     out dx,al           ;写入低字节
     mov al,ah
     out dx,al           ;写入高字节
     
     mov dx,io8253c
     mov al, 76h
     out dx,al           ;设通道1为工作方式3 01110110
     mov ax,1000
     mov dx,io8253b
     out dx,al           ;写入低字节
     mov al,ah
     out dx,al           ;写入高字节

     mov ah,4ch         ;程序退出
     int 21h
  code ends
    end start 
  • 9
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值