实验四-LED数码管显示实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

《微机实验》报告

PAGE7

实验名称LED数码管显示实验

指导教师曹丹华

专业班级光电1202班姓名陈敬人学号

联系电话

一、任务要求

实验目的:理解LED七段数码管的显示控制原理,掌握数码管与MCU的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。

实验内容:1.基础部分:利用C8051F310单片机控制数码管显示器。利用末位数码管循环显示数字0-F,显示切换频率为1Hz。2.提高部分:在数码管上显示0→199计数,计数间隔为0.5秒。

设计思路

1.基础部分

C8051F310单片机片上晶振为24.5MHz,采用8分频后为3.0625MHz,输入时钟信号为48个机器周期,T1采用定时器工作方式1,单次定时最长可达1.027s,可以实现1s定时要求。定时采用软件查询工作方式,利用JNBTF0,HERE实现。

置P0.6和P0.7端口为0,位选信号选定末位数码管。

通过MOVCA,@A+DPTR指令,利用顺序查表法取出显示段码数据。寄存器R0自增1,并赋给A以取出下一个显示段码数据。

为减短代码长度,利用CJNE指令实现循环结构。当寄存器R0增至0FH后,跳转至开头,重新开始下一轮显示。

2.提高部分

定时方式及查表方式同基础部分,由于要实现三个数码管同时显示,因此采用动态扫描显示法。

三、资源分配

1.基础部分

P0.6:位选信号端口

P0.7:位选信号端口

P1:输出段码数据

R0:存放显示数据

DPTR:指向段码数据表首

2.提高部分

P0.6:位选信号端口

P0.7:位选信号端口

R0:存放个位显示数据

R5:存放十位显示数据

R6:存放百位显示数据

P1:输出段码数据

DPTR:指向段码数据表首

四、流程图

1.基础部分

2.提高部分

五、源代码(含文件头说明、语句行注释)

1.基础部分

;******************基础部分源代码***************************

;Filename:test.asm

;Decription:末位数码管循环显示数字0-F,显示切换频率为1Hz。

;Designedby:陈敬人

;Date:2014.11.9

;

;-GeneratedInitializationFile--

;

$include(C8051F310.inc)

ORG0000H

LJMPMAIN

ORG1000H

MAIN:LCALLInit_Device;设备初始化

MOVSP,#40H ;合理设置堆栈位置

MOVDPTR,#TABLE ;DPTR指向段码数据表首

MOVTMOD,#01H ;定时器T0工作方式1

MOVTH0,#06H ;赋计数初值,定时1s

MOVTL0,#0C6H

CLRP0.6 ;位选信号,选定末位数码管亮

CLRP0.7

START: MOVR0,#00H

MOVA,R0 ;取显示数据

MOVCA,@A+DPTR ;查表取段码数据

MOVP1,A ;送显示数据

SETBTR0 ;启动定时器

HERE: JNBTF0,HERE ;等待定时

CLRTR0 ;停止定时

CLRTF0 ;溢出位清零

MOVTH0,#06H ;重装计数初值

MOVTL0,#0C6H

CJNER0,#0FH,CHANGE;判断数据是否显示完毕,未完则跳转至CHANGE

SJMPSTART ;显示完毕,重新开始

CHANGE:INCR0

MOVA,R0 ;取下一个显示数据

MOVCA,@A+DPTR ;查表取段码数据

MOVP1,A

文档评论(0)

150****8199 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档