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

定时器与计数器(8253)

  • 实验4-1 计数器实验
  • 实验4-2 定时器实验

实验4-1 计数器实验

【微机原理与接口技术】实验4 定时器与计数器(8253)_第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 定时器实验

【微机原理与接口技术】实验4 定时器与计数器(8253)_第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 

你可能感兴趣的:(微机原理与接口技术,接口技术,汇编语言)