TPC-USB实验

2026/4/24 17:37:20

3.1

编程提示

1、8253控制寄存器地址

283H

计数器0地址 280H 计数器1地址 281H CLK0连接时钟 1MHZ

;*************************; ;* 8253方式0计数器实验 *; ;*************************; io8253a equ 283h io8253b equ 280h code segment assume cs:code

start: mov al,14h ;设置8253通道0为工作方式2,二进制计数 mov dx,io8253a out dx,al

mov dx,io8253b ;送计数初值为0FH mov al,0fh out dx,al

lll: 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

and al,0fh ;首先取低四位 mov dl,al

cmp dl,9 ;判断是否<=9

jle num ;若是则为'0'-'9',ASCII码加30H add dl,7 ;否则为'A'-'F',ASCII码加37H 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

3.2

编程提示

1、8253控制寄存器地址

;******************* ;* 8253分频 * ;******************* io8253a equ 280h io8253b equ 281h io8253c equ 283h code segment

assume cs:code

start:mov dx,io8253c ;向8253写控制字 mov al,36h ;使0通道为工作方式3 out dx,al

mov ax,1000 ;写入循环计数初值1000 mov dx,io8253a

out dx,al ;先写入低字节 mov al,ah

out dx,al ;后写入高字节 mov dx,io8253c

mov al,76h ;设8253通道1工作方式2 out dx,al

mov ax,1000 ;写入循环计数初值1000 mov dx,io8253b

out dx,al ;先写低字节 mov al,ah

out dx,al ;后写高字节 mov ah,4ch ;程序退出 int 21h

283H

计数器0地址 280H 计数器1地址 281H CLK0连接时钟 1MHZ

code ends

end start

4.1

编程提示

1、8255控制寄存器端口地址 28BH

;*******************************; ;* 8255方式0的C口输入,A口输出 *; ;*******************************; io8255a equ 288h io8255b equ 28bh io8255c equ 28ah code segment assume cs:code

start: mov dx,io8255b ;设8255为C口输入,A口输出 mov al,8bh out dx,al

inout: mov dx,io8255c ;从C口输入一数据 in al,dx

mov dx,io8255a ;从A口输出刚才自C口 out dx,al ;所输入的数据 mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h

jz inout ;若无,则继续自C口输入,A口输出 mov ah,4ch ;否则返回 int 21h code ends end start

A口的地址 C口的地址

288H 28AH

5.2

编程提示

实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

data ends code segment

assume cs:code,ds:data start: mov ax,data mov ds,ax

mov dx,io8255b ;将8255设为A口输出 mov al,80h out dx,al

mov di,offset buffer1 ;设di为显示缓冲区 loop2: mov bh,02

lll: mov byte ptr bz,bh push di dec di add di, bz

mov bl,[di] pop di mov al,0 mov dx,io8255a out dx,al mov bh,0

mov si,offset led add si,bx mov al,byte ptr [si]

mov dx,io8255c out dx,al

mov al,byte ptr bz mov dx,io8255a out dx,al mov cx,3000

delay: loop delay mov bh,byte ptr bz shr bh,1 jnz lll mov dx,0ffh mov ah,06 int 21h

je loop2 mov dx,io8255a

mov al,0 out dx,al

mov ah,4ch int 21h code ends

end start

;bl为要显示的数 ;置led数码表偏移地址为SI;求出对应的led数码 ;自8255A的口输出 ;使相应的数码管亮 ;延时 ;有键按下则退出 ;关掉数码管显示 ;返回


TPC-USB实验.doc 将本文的Word文档下载到电脑
搜索更多关于: TPC-USB实验 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219