教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 资料大全 >

微机原理实验报告_实验三_七段数码管

来源:网络收集 时间:2026-09-28
导读: 微机原理实验报告_实验三_七段数码管 实验三 七段数码管 一、实验目的: 进一步熟悉8255,掌握数码管显示数字的原理 二、实验原理: 1、 实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高

微机原理实验报告_实验三_七段数码管

实验三 七段数码管

一、实验目的:

进一步熟悉8255,掌握数码管显示数字的原理

二、实验原理:

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

2、 七段数码管的字形码:

3、 在实验2中加入键盘是否有输入判断,如有则去读取键盘输入数据,并加入提示信息,比如“输入十位数”,“输入个位数”,从键盘读入的数据放入十位和个位数据定义区,取代要显示的数据。

4、 只需要添加两位变量作为缓存,一个记录键盘输入的值,一个记录循环减1的结果,将其通过数码管显示出来,减至0时重载键盘输入的值。

三、实验步骤:

静态显示:将8255的A口PA0~PA6分别与气短数码管的段码驱动输入端A~G相连,位码驱动输入端S1接+5V(选中),S0、DP接地(关闭)。

动态显示:七段数码管段码不变,位码驱动输入端S1,S0接8255 C口的PC1,PC0。8253的接法参考第二次实验的接法,CLK0接入1MHz,CLK1接8255的PC7。

微机原理实验报告_实验三_七段数码管

1、在两个数码管上显示两位数字,要求延时应用8253硬件延时

2、可以改变数码管显示数字,从键盘读入两位数字,并在数码管显示出来。

3、对输入数据进行倒计时计数,时间显示在数码管上,计到0重新开始。

微机原理实验报告_实验三_七段数码管

五、实验结果:

实验结果如预期一致,可以键盘输入倒计时的值,时间显示在数码管上,计数到0重新计数。

六、程序代码:

;******************************************

;* 数码管显示对键盘输入数据进行倒计时计数 *

;******************************************

data segment

io8255a equ 288h

io8255c equ 28ah

io8255_mode equ 28bh

io8253a equ 280h

io8253b equ 281h

io8253c equ 282h

mesg1 db 0dh,0ah,'Input a num (00--99) for high position,other key is exit:',0dh,0ah,'$'

mesg2 db 0dh,0ah,'Input a num (00--99) for low position,other key is exit:',0dh,0ah,'$'

led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh; 段码

buffer db ?,?; 存放要显示的个位和十位

buffer1 db ?,?; 存放临时的个位和十位用于减一

bz dw ? ; 位码

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov dx,io8255_mode ;将8255的A口为输出

mov ax,88h

out dx,al

mov dx,offset mesg1 ;显示提示信息

mov ah,09h

int 21h

mov ah,01 ;从键盘接收十位字符

int 21h

cmp al,'0' ;是否小于0

jl exit ;若是则退出

cmp al,'9' ;是否大于9

jg exit ;若是则退出

sub al,30h

mov buffer,al ;将输入的十位数存入指定地址

mov dx,offset mesg2 ;显示提示信息

mov ah,09h

微机原理实验报告_实验三_七段数码管

int 21h

mov ah,01h

int 21h

cmp al,'0' ;判断方法同十位

jl exit

cmp al,'9'

jg exit

sub al,30h

mov buffer+1,al ;将输入的个位数存入指定地址

jmp reset

exit:

mov ah,4ch ;返回

int 21h

reset:

mov al,buffer

mov buffer1,al

mov al,buffer+1

mov buffer1+1,al

mov di,offset buffer1 ;取得显示缓冲区的地址

loop1:

call time

loop2:

mov bh,02h ;数码管循环显示部分

lll:

mov byte ptr bz,bh

push di

dec di

add di, bz

mov bl,[di] ;bl为要显示的数

pop di

mov al,0

mov dx,io8255c

out dx,al

mov bh,0

mov si,offset led ;置led数码表偏移地址为SI

add si,bx ;求出对应的led数码

mov al,byte ptr [si]

mov dx,io8255a ;自8255A的口输出

out dx,al

mov al,byte ptr bz ;使相应的数码管亮

mov dx,io8255c

out dx,al

mov cx,3000

delay:

微机原理实验报告_实验三_七段数码管

loop delay ;延时

mov bh,byte ptr bz

shr bh,1

jnz lll

mov dx,io8255c

in al,dx

test al,80h

jnz set

jmp loop2

set:

test buffer1+1,0fh

jz set1

dec buffer1+1

jmp loop1

set1:

test buffer1,0fh

jz reset

dec buffer1

mov buffer1+1,09h

jmp loop1

time proc near ;定时一秒的子程序

mov dx,io8253c ;向8253写控制字

mov al,37h ;使0通道为工作方式3

out dx,al

mov ax,1000h ;循环计数初值1000

mov dx,io8253a

out dx,al ;先写低字节

mov al,ah

out dx,al ;后写高字节

mov dx,io8253c

mov al,71h ;设8253通道1工作方式0

out dx,al

mov ax,1000h ;循环计数初值1000

mov dx,io8253b

out dx,al ;先写低字节

mov al,ah

out dx,al ;后写高字节

ret

time endp

code ends

end start

七、实验总结:

微机原理实验报告_实验三_七段数码管

本次实验需要结合上次实验的知识,应用8253硬件延时,因此增加了些许难度,代码的修改也不少。实验中,接线比较简单,但是程序的Debug花了不少的时间。这跟微机原理的理论知识忘记了许多有关,现在抓紧复习微机原理的知识,做实验前预习好实验,争取在实验前把代码打好。

…… 此处隐藏:1190字,全部文档内容请下载后查看。喜欢就下载吧 ……
微机原理实验报告_实验三_七段数码管.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/1816692.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)