单片机数码管动态显示_第1页
单片机数码管动态显示_第2页
单片机数码管动态显示_第3页
单片机数码管动态显示_第4页
单片机数码管动态显示_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

动态显示1.掌握LED数码管显示及其一般电路结构;2.掌握LED动态显示程序的一般设计方法。实验内容动态显示,也称为扫描显示。显示器由6个共阴极LED数码管构成。单片机的P0口输出显示段码,由一片74LS245输出给LED管;由P1口输出位码,经74LS04输出给LED显示。实验步骤1、打开ProteusISIS编辑环境,按下表所列的元件清单添加元件。实验所用元件清单元件名称所属类所属子类AT89C51MicroprocessorICs8051FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneous-RESResistorsGeneric7SEG-MPX6-CC-BLUEOptoelectronics7-SegmentDisplays74LS04TTL74LSSeriesGates&Inverters74LS245TTL74LSSeriesTranseivers元件全部添加后,在ProteusISIS的编辑区域中按实验原理图连接硬件电路。图1动态显示实验电路原理图2、按实验要求在KeilC中创建项目,编辑、编译程序。3、将编译生成的目标码文件(后缀为.Hex)传入Proteus的实验电路中。4、在ProteusISIS仿真环境中运行程序,观察实验运行结果并记录。实验要求编写一显示程序显示201071;显示特殊字符good;调整软件延时子程序的循环初值,逐渐加大每一位LED点亮的时间,观察程序运行结果。参考程序dbufequ30h;置存储区首址tempequ40h;置缓冲区首址org00hmov30h,#2;存入数据mov31h,#0mov32h,#1mov33h,#0mov34h,#7mov35h,#1movr0,#dbufmovr1,#tempmovr2,#6;六位显示器movdptr,#segtab;段码表首地址dp00:mova,@r0;取要显示的数据movca,@a+dptr;查表取段码mov@r1,a;段码暂存incr1incr0djnzr2,dp00disp0:movr0,#temp;显示子程序movr1,#6;扫描6次movr2,#01h;从第一位开始dp01:mova,@r0movp0,a;段码输出mova,r2;取位码movp1,a;位码输出acalldelay;调用延时mova,r2rlamovr2,aincr0djnzr1,dp01sjmpdisp0segtab:db3fh,06h,5bh,4fh,66hdb6dh,7dh,07h,7fh,6fhdelay:movr4,#03h;延时子程序aa1:movr5,0ffhaa:djnzr5,aadjnzr4,aa1retend实验原理MCS-51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可以设定为定时器和外部计数方式。T1还可以作为其串行口的波特率发生器。定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。定时器的编程包括:置工作方式。置计数初值。中断设置。启动定时器。定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常数也就不同。在编写中断服务程序时,应该清楚中断响应过程:CPU执行中断服务程序之前,自动将程序计数器PC内容(即断点地址)压入堆栈保护(但不保护状态寄存器PSW,更不保护累加器A和其它寄存器内容),然后将对应的中断矢量装入程序计数器PC使程序转向该中断矢量地址单元中以执行中断服务程序。定时器T0和T1对应的中断矢量地址分别为000BH和001BH。中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作一方面告诉中断系统该中断服务程序已经执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入到程序计数器PC,使程序返回到被到中断的程序断点处,以便继续执行。因此,我们在编写中断服务程序时注意。1.在中断矢量地址单元放一条无条件转移指令,使中断服务程序可以灵活地安排在64K字节程序存储器的任何空间。2.在中断服务程序中应特别注意用软件保护现场,以免中断返回后,丢失原寄存器、累加器的信息。3.若要使执行的当前中断程序禁止更高优先级中断,可以先用软件关闭CPU中断,或禁止某中断源中断,在返回前再开放中断。实验内容编写并调试一个程序,用AT89C51的T0工作方式1产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1;秒计数到60时,自动从0开始。实验电路原理如图1所示。计算初值公式定时模式1th0=(216-定时时间)/256tl0=(216-定时时间)mod256实验步骤1、打开ProteusISIS编辑环境,按下表所列的元件清单添加元件。实验所用元件清单元件名称所属类所属子类AT89C51MicroprocessorICs8051FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneous-RESResistorsGeneric7SEG-COM-CAT-GRNOtoelectronics7-SegmentDisplaysPULLUPModellingPrimitivesDigital[Miscellaneous]元件全部添加后,在ProteusISIS的编辑区域中按实验原理图连接硬件电路。图1定时器实验电路原理图2、按实验要求在KeilC中创建项目,编辑、编译程序。3、将编译生成的目标码文件(后缀为.Hex)传入Proteus的实验电路中。4、在ProteusISIS仿真环境中运行程序,观察实验运行结果并记录。五、参考程序secondequ30hcountequ31horg00hljmpstartorg0bhljmpint_t0start:movsecond,#00hmovcount,#00hmovdptr,#table;段码表首址movp0,#3fhmovp2,#3fhmovtmod,#01hmovth0,#(65536-50000)/256movtl0,#(65536-50000)mod256;定时50mssetbtr0movie,#82hsjmp$int_t0:movth0,#(65536-50000)/256movtl0,#(65536-50000)mod256inccountmova,countcjnea,#20,i2;是否到1smovcount,#00hincsecondmova,secondcjnea,#60,i1;是否到60smovsecond,#00hi1:mova,secondmovb,#10

温馨提示

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

最新文档

评论

0/150

提交评论