实验2:8255七段数码管静动态显示
更新时间:2023-06-08 15:45:01 阅读量: 实用文档 文档下载
北京科技大学机械专业微机原理实验报告~用到的带走哦!
微机实验报告书
学号: 姓名: 班级:
同组名单: 实验日期: 2012.12.21
实验题目: 七段数码管的静态显示 实验目标: 掌握数码管显示数字的原理 (功能:键盘输入一位十进制数字(0~9),用七段数
码管显示。)
解题思路:
1. 静态显示:按图 10(a)连接好电路,将8255的A口PA0-PA6分别与七段
数码管的断码驱动输入端a-g项链,位码驱动输入端S1接+5V,S0、dp
接地。编程从键盘输入一位十进制数字,在七段数码管上显示出来。
2. 动态显示:按图10(b)连接好电路,七段数码管段码连接不变,位码驱
动输入端S1,S0接8255C口的PC1,PC0。编程在两个数码管上显示“56”。
程序框图:静态显示见图11(a),动态显示见图11(b)。
北京科技大学机械专业微机原理实验报告~用到的带走哦!
关键问题分析(静态显示):
1、 按键判断和程序结束判断
按键来说,由于程序中必须输入数字,所以没有必要对是否按键进行判断,只需要判断按键是否在0-9之间即可。用以下程序即可:
cmp al,'0' jl exit ; jl,条件转移指令,即在小于时转移 cmp al,'9' jg exit ;jg, 条件转移指令,即在大于时转移
程序中还要用到“cmp”即比较指令,用来比较输入数与0、9的大小关系。 程序结束:如若输入的数字小于0或者大于9,必须直接跳出程序,即结束指令必须单独占用一个程序段,这样,程序顺序执行完毕也可以顺利返回DOS。
2、 七段码显示。
北京科技大学机械专业微机原理实验报告~用到的带走哦!
实验指导书中给出了七段码的字型代码。这样一来,七段码的显示只需要用换码指令“XLAT”便可以轻松实现。前提是必须将七段码字型编成数码表以字符串的形式写进程序中。
3、 数字键ASCII码与数值间的转换。
因为0的ASCII码为30H,所以数字键ASCII码与数值间的转换时只需减去30H即可,可用下列语句实现:
sub al,30h
程序清单:
静态显示:
data segment
ioport
io8255a
io8255b equ 0c800h-0280h equ ioport+288h 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 mov ds,ax mov dx,io8255b ;使8255的A口为输出方式 mov al,80h ;10000000B,控制字PA以方式0输出 out dx,al mov ah,09h int 21h mov ah,01 ;从键盘接收字符 int 21h cmp al,'0' ;是否小于0 jl exit ;如若小于0,则跳转到exit退出程序 cmp al,'9' ;是否大于9 jg exit ; 如若大于9,则跳转到exit退出程序 sub al,30h ;将所得字符的ASCII码减30H,数字键ascii码同数值转换 mov bx,offset led ;bx为数码表的起始地址 xlat ;求出相应的段码 mov dx,io8255a ;从8255的A口输出 out dx,al jmp zby ;转zby start: mov ax,data zby: mov dx,offset mesg1 ;显示提示信息
exit: mov ah,4ch ;返回DOS
北京科技大学机械专业微机原理实验报告~用到的带走哦!
int 21h
code ends
end start
动态显示:
data segment
ioport
io8255a
io8255b
io8255c equ 0c800h-0280h equ ioport+28ah equ ioport+28bh equ ioport+288h
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码
buffer1 db 5,6 ;存放要显示的个位和十位
bz dw ? ;位码
data ends
code segment
assume cs:code,ds:data mov ds,ax mov dx,io8255b ;将8255设为A口输出 mov al,80h ;10000000B,控制字PA以方式0输出 out dx,al mov di,offset buffer1 ;设di为显示缓冲区 start: mov ax,data
loop2: mov bh,02
zby: mov byte ptr bz,bh
push di dec di add di, bz mov bl,[di] ;bl为要显示的数 pop di
mov al,0
mov dx,io8255a
out dx,al
mov bh,0 mov si,offset led ;置led数码表偏移地址为SI add si,bx ;求出对应的led数码 mov al,byte ptr [si] mov dx,io8255c ;自8255A的口输出 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 zby mov dx,0ffh mov ah,06 int 21h je loop2 ;有键按下则退出 mov dx,io8255a mov al,0 ;关掉数码管显示 out dx,al mov ah,4ch ;返回 int 21h end start code ends
运行结果:
静态显示:在键盘上输入一个0-9的任意数字,会显示在数码管上。。
动态显示:在程序中写入6,5,读取顺序是第一位是个位,第二位是十位,数码管上显示56.
问题与讨论:
1、键盘输入不符合要求如何处理?
如若键盘输入不符合要求,则立即跳到结束程序段,返回到DOS。
2、用8255的其他端口输出怎么处理?
由于其他端口输出并没有用到,控制字中写成0或者1都行,一般习惯上不用到填0即可。
3、在两位七段数码管间切换显示怎么处理?
通过硬件连线即可实现。七段数码管连接和S1连接不变。将S0不接地,接到+5V,并同时将S1和S0接到两个不同的逻辑开关。程序LINK运行完毕。当S1逻辑开关为高电平时(S0逻辑开关为低电平),在第一个数码管显示;当S0逻辑开关为高电平时(S1逻辑开关为低电平),在第二个数码管显示,这样便实现了在两位数码管间的切换。
小结(体会和收获)
静态显示是从键盘获取一个数值,然后通过程序比较得出键盘输入的数字量,由PA端口输出到数码管上。而动态显示是将两个数字写入程序中,由程序读取数字然后按位输出到数码管上显示。原理说得简单,但是程序本身个人感觉
北京科技大学机械专业微机原理实验报告~用到的带走哦!
还是相当复杂的,尤其动态显示,程序如何读取已输入的数字,以及读取数字的顺序都会影响到数码管的显示。
静态显示过程中,我们碰到数码管一直显示8的状态,这并不是预期的效果。后来发现,由于在程序中用符号定义伪指令EQU将所要用到的算口地址用“io8255*”定义,但在写程序的过程中又写进去了十六进制实际地址,导致出现问题,经过很长时间的调试方才解决。
由于我们小组做了全部两个选做实验,所以这次将动态显示的报告和静态显示写在一起,由于将大部分精力放在静态显示,所以动态显示并未做充分的问题思考和讨论。
正在阅读:
实验2:8255七段数码管静动态显示06-08
国家助学贷款还款流程05-19
九年级数学上册第二章一元二次方程单元练习题五(无答案)12-17
二中六十周年校庆串词03-18
英语课程标准(2011修订版)调整05-18
中学九年级语文教案最新4篇03-26
安徽省合肥市巢湖市2019-2020学年八年级语文12月阶段性检测试题新人教版10-22
论文撰写培训学习心得(共5篇)03-27
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 数码管
- 实验
- 动态
- 显示
- 8255
- 工作问题分析与解决
- 河南省平顶山市八年级下学期期中数学试卷
- 中考英语 选词填空专项练习
- 2016级英语四六级翻译常用词汇汇总
- BASF 巴斯夫 Ultramid B3WG6 30% Glass Filled PA6(dry)
- 2014年矿大北京理学院研究生招生调剂考生复试名单
- 审计理论结构逻辑起点探讨
- 前后鼻音常用字速查表en eng in ing un ung
- 部分挥发性污染物的毒性参数
- 8开(或B4)双面双页码密封试卷模板
- 浅谈移动流媒体技术
- 主持人台词、主持人开场白、主持人串词大全
- 上海车688汽车服务俱乐部 保险介绍
- 浙江省杭州外国语学校2012届高三10月月考 语文试题
- ANSYS Workbench 官方中文培训教程即建模及CAD导入模型处理模块实例
- 八年级上册英语基础测试
- 关于复旦大学水平测试改版及成绩记载事宜的说明(2015年9月修订)(教通-84号)
- 2016年电子镇流器市场调研及发展趋势预测
- 如何分析议论文事例
- 初二分式方程应用题