七段数码管

物理与电子科学系实验报告 课程名称 微机原理与接口技术 实验班级 B13电子班 实验名称 七段数码管

学生姓名 学生学号 一、实验目的

掌握数码管显示数字的原理 二,实验内容

静态显示:按图22连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。 编程提示

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

程序流程图

三,源程序

data segment ioport equ 0ef00h-0280h io8255a equ ioport+288h io8255b equ ioport+28bh

led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1 db 0dh,0ah,'Input a num (0--9h):',0dh,0ah,'$' data ends

code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dx,io8255b ;使8255的A口为输出方式 mov ax,80h out dx,al

sss: 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 ;将所得字符的ASCII码减30H mov bx,offset led ;bx为数码表的起始地址 xlat ;求出相应的段码 mov dx,io8255a ;从8255的A口输出 out dx,al jmp sss ;转SSS

exit: mov ah,4ch ;返回DOS int 21h code ends

四,实验结果分析

通过本次实验上机,我了解和掌握了I/O地址译码电路的工作原理,熟练了汇编代码的编写、连接电路、通过代码控制电路,更了解到上机是检验学生理论知识和动手能力的很好的方式。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4