实验报告__实验七_八段数码管显示实验.doc_第1页
实验报告__实验七_八段数码管显示实验.doc_第2页
实验报告__实验七_八段数码管显示实验.doc_第3页
实验报告__实验七_八段数码管显示实验.doc_第4页
实验报告__实验七_八段数码管显示实验.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EDA实验报告之 实验七 八段数码管显示实验1、实验目的1)了解数码管动态显示的原理。2)了解用总线方式控制数码管显示2、实验要求:利用实验仪提供的显示电路, 动态显示一行数据. 提示:把显示缓冲区(例如可为60H65H作为缓冲区)的内容显示出来,当修改显示缓冲区的内容时,可显示修改后的内容(为键盘扫描、显示实验做准备)。3、实验说明本实验仪提 供了6 位8段码LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8位段码、6位位码是由两片74LS374输出。位码经MC1413或ULN2003倒相驱动后,选择相应显示位。本实验仪中 8位段码输出地址为0X004H,位码输出地址为0X002H。此处X是由KEY/LED CS 决定,参见地址译码。做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。以便用相应的地址来访问。例如,将KEY/LED CS接到CS0上,则段码地址为08004H,位码地址为08002H。七段数码管的字型代码表如下表:a-f| |b| |-| g |e| |c-d 。h显示字形 g f e d c b a 段码0 0 1 1 1 1 1 1 3fh1 0 0 0 0 1 1 0 06h2 1 0 1 1 0 1 1 5bh3 1 0 0 1 1 1 1 4fh4 1 1 0 0 1 1 0 66h5 1 1 0 1 1 0 1 6dh6 1 1 1 1 1 0 1 7dh7 0 0 0 0 1 1 1 07h8 1 1 1 1 1 1 1 7fh9 1 1 0 1 1 1 1 6fhA 1 1 1 0 1 1 1 77hb 1 1 1 1 1 0 0 7chC 0 1 1 1 0 0 1 39hd 1 0 1 1 1 1 0 5ehE 1 1 1 1 0 0 1 79hF 1 1 1 0 0 0 1 71h4、原理图及连线 5、实验内容1) 使用仪器、仪表,开发平台型号本实验用到了WAVE 6000软件平台,电脑一台,LAB6000实验箱,示波器,若干连线,串行数据线。2) 性能指标、技术要求、思路方案、流程图5.1性能指标、技术要求见实验目的和实验要求。5.2思路方案:将数据放入显示缓冲区6065H单元,通过位选信号,段选信号控制数码管显示相应的内容,其中,段选信号由查表得到。为了动态显示富有变化,每一轮显示完毕后,需要改变数据单元的内容。为了数码管显示不抖动,还需要对每一轮数据显示一定的次数,具体见代码。5.3流程图:(见下页)流程图:3) 源程序(为了程序看起来更规范和容易理解,最好将各部分功能分离,在主程序中以子程序调用的形式调用相应的子程序)ORG0000HLJMPBEGINORG0030HBEGIN:LCALLINITIALIZE;设置60H-65H单元的初值DIS:LCALLDISPLAY;显示缓冲区单元的数据LCALL CHANGE;改变缓冲区单元的数据LCALL DELAY ;为了两轮显示间时间间隔久一些DJNZR5,DIS;是否显示完一遍0-F,是则重新开始SJMP BEGIN;重新开始SJMP$这部分是主程序;=DISPLAY:显示子程序;=MOVR6,#40;设置每一轮显示的次数BEGIN0:MOVA,#01H;位选通信号MOVR2,#6;显示缓冲区只有6个字节单元MOVR0,#60H;显示缓冲区单元数据地址;*LOOP:MOVDPTR,#8002H;位选输出地址MOVXDPTR,ARLA;修改位信号PUSHAMOVDPTR,#8004H;数据输出地址MOVA,R0LCALLCHECK;查表MOVXDPTR,ALCALL DELAY;显示一个数后稍等一会;*INCR0POPADJNZR2,LOOP;这一轮是否显示完DJNZR6,BEGIN0;总轮数显示40次,是否显示完RET;=initialize:初始化显示缓冲区数据单元mov 60h,#00hmov 61h,#01hmov 62h,#02hmov 63h,#03hmov 64h,#04hmov 65h,#05hMOV R5,#11;为了显示0-F,需要调用change子函数11次RET;=DELAY:延时子程序MOV R7,#03HMOV R3,#0FFHLOOPP:DJNZ R3,$DJNZ R7,LOOPPRET;=CHANGE:改变缓冲区数据单元的子程序MOVR2,#6;6次MOVR0,#60H;数据地址LOOP1:INC R0INC R0DJNZ R2,LOOP1RET;=CHECK:查表子程序INCAMOVCA,A+PCRET;=TABLE:表格DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHDB77H,7CH,39H,5EH,79HDB71H4) 实验步骤,完成情况4.1在WAVE 6000中新建文件,并将代码写入文件中,保存为EXPERIMENT7.ASM;4.2在WAVE 6000中新建项目,并在模块文件中包含上述EXPERIMENT7.ASM文件,最后保存为EXPERIMENT7.PRG。4.3编译程序,按照提示改正错误的地方,直到没有语法错误为止。4.4完成上一步后,检查是否有逻辑错误。4.5按连线图连好线,经师兄确认后打开电源。4.6观察数码管的输出是否正确。如果错误,检查连线,源程序,并修改错误的地方,直到调试出正确的波形为止。4.7结果正确后,等师兄检查完毕。然后收拾实验仪器,包括电源线、导线、串口线,示波器等,收拾桌面和凳子。6、本实验遇到问题及解决方案6.1第一次做这个实验的时候,由于没有找到能用的电脑,和实验箱,以至于一直只能处于模拟调试的阶段,所以没有什么进展。解决方案:俗话说,早起的鸟儿有虫吃,所以呢,以后实验课得早点去,呵呵。6.2实验中遇到一个问题:数码管显示的数据很是奇妙,非常诡异,而且复位后显示缓冲区的数据也被改得乱七八糟,着实让人头大。解决方案:经过仔细(几乎是单步调试了)后,发现,原来是R3在两个不同的地方被误用了,改正后程序就没问题了。这也给我一个教训:用了什么寄存器单元资源,应该做到心中有数。6.3数码管显示的时候感觉总是有抖动。解决方案: 这是程序中delay的延时没有设置适当导致的,经过尝试几个不同的延时数值后,终于得到比较好的显示效果。一点经验:实践是检验真理的唯一标准,做硬件实验更是如此。呵呵。7、对本实验的改

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论