实验四 七段数码管显示实验报告
实验四 七段数码管显示实验
一、 实验目的
掌握数码管显示数字的原理。
二、 实验内容
1. 静态显示:数码管为共阴极,通过BCD码译码驱动器CD4511驱动,其输入端A~D输入4位BCD码,位码输入低电平选中。按图4-1连接好电路,将8255的A口PA0~PA3与七段数码管LED1的BCD码驱动输入端A1~D1相连,8255的A口PA4~PA7与七段数码管LED2的BCD码驱动输入端A2~D2相连,8255的B口PB0~PB3与七段数码管LED3的BCD码驱动输入端A3~D3相连,8255的B口PB4~PB7与七段数码管LED4的BCD码驱动输入端A4~D4相连,8255的C口PC0~PC3分别与七段数码管LED4~LED4的位驱动输入端DG1~DG4相连。编程从键盘上每输入4个0~9数字,在七段数码管LED4~LED4上依次显示出来。
图4-1
2. 动态显示:数码管为共阴极,段码采用相同驱动,输入端加高电平,选中的数码管对应段点亮,位码采用同相驱动,位码输入端低电平选中,按图4-2连接好电路,图中只画了2个数码管,实际是8个数码管,将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~g相连(32TCI0模块上的J1连32LED8模块J2),8255的C口的PC0~PC7接七段数码管的段码驱动输入(32TCI0模块上的J3连32LED8模块J1),跳线器K1连2和3。编程在8个数码管上显示“12345678”。按任意键推出运行。
图4-2
三、 编程提示
1. 由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不用,编程时需要了解当前的微机使用那段IO地址并进行处理。
2. 对实验内容1,七段数码管字型代码与输入的关系如下
表:
四、 参考流程图
1. 实验内容一的参考流程图
图4-3
2. 实验内容二的参考流程图
图4-4
五、 参考程序
1. 内容一的参考程序 源程序清单如下:
data segment
ioport equ 0c400h-0280h io8255a equ ioport+288h io8255b equ ioport+289h io8255c equ ioport+28ah io8255k equ ioport+28bh
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
mesg1 db 0dh,0ah,'Input a num (0--9),other key is exit:',0dh,0ah,'$' bz db ? cz db 04h data ends
code segment
assume cs:code,ds:data start: mov ax,data mov ds,ax
mov dx,io8255k ;使8255的A口为输出方式 mov ax,80h out dx,al
sss0: mov si,offset bz
mov cx,04h
sss1: 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 [si],al ;存入显示缓冲区 inc si ;显示缓冲区指针加1 dec cx ;判断输入满4个数字吗?
jnz sss1 ;不满继续 mov si,offset bz ;从显示缓冲区取第一个数字的BCD码
mov al,[si] and al,0fh ;屏蔽高四位暂存AL inc si ;显示缓冲区指针加1 mov ah,[si] ;取第二个数字的BCD码到AH sal ah,4h ;右移4次到高四位 add al,ah ;两个BCD码合并成一个字节
mov bl,al ;暂存入BL inc si
mov al,[si] ;取第三个数字的BCD码
and al,0fh inc si
mov ah,[si] ;取第四个数字的BCD码到AH sal ah,4h
add ah,al mov al,ah
mov dx,io8255a ;从8255的A口输出(后两个数字) out dx,al mov al,bl
mov dx,io8255b ;从8255的B口输出(前两个数字) out dx,al mov al,0f0h
mov dx,io8255c ;从8255的C口输出位码 out dx,al
mov dl,0ffh mov ah,06 int 21h
je sss0 ;有键按下则退出 exit: mov ah,4ch ;返回 int 21h code ends end start
2. 内容二的参考程序 源程序清单如下: data segment ioport equ 0C400h-0280h io8255c equ ioport+28ah
io8255k equ ioport+28bh io8255a equ ioport+288h
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码
buffer1 db 01h,02h,03h,04h,05h,06h,07h,08h ;存放要显示的十位和个位
con db ? ;位码 data ends code segment
assume cs:code, ds:data start: mov ax,data mov ds,ax
mov dx,io8255k ;将8255设为A口C口输出 mov al,80h out dx,al
loop2: mov al,08h ;设置数码管位计数器初值到CON
mov byte ptr con,al
mov si,offset buffer1 ;置显示缓冲器指针SI mov ah,7fh ;置位码初值 disp0: mov cx,0ffffh
mov bl,ds:[si] ;取显示缓冲区显示值存BX mov bh,0h push si
mov dx,io8255c ;位码从C口输出 mov al,ah out dx,al
mov dx,io8255a
mov si,offset led ;置led数码表偏移地址为SI add si,bx ;求出对应的led数码 mov al,byte ptr [si]
out dx,al ;段码从A口输出 disp1: loop disp1 ;延时
mov cx,0ffffh disp2: loop disp2
ror ah,01h ;位码右移1位 pop si inc si ;显示缓冲区指针加1
mov al,byte ptr con dec al
mov byte ptr con,al jnz disp0 ;数码管位计数器减1为0吗?,不为0继续
mov dx,io8255a ;为0,关数码管显示 mov al,0 out dx,al mov dl,0ffh mov ah,06 int 21h
je loop2 ;有键按下则退出 mov ah,4ch ;返回 int 21h code ends
end start
实验总结:
通过这次试验,我了解到自定义数据类型可以根据自己的需要方便设定,有很大的灵活性。而在程序的编写过程中,我们应该首先分析各个端口的优先级顺序,然后进行判断,分析设计。
…… 此处隐藏:1459字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




