实验六 显示和键盘.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE

PAGE1

实验报告

课程名称:___微机原理及应用________指导老师:张恒义、陈星成绩:__________________

实验名称:显示和键盘程序设计与调试实验类型:________________

装订线一.实验目的和要求

装订线

实验目的:

把实验五的结果显示在单片机的数码管上,并设置一键清除显示功能。

实验任务:

通过超级终端与评估板的串行接口连接,完成双向串行通讯,波特率为4800。

要求:

在PC侧上输入0~F中的任何字符,51处理器回复从此字符开始的后续6个字符,并把他们显示在单片机的数码显示管上。如果字符所在位置到达字母表的末端,则跳转顺序如下:F-0,9-A。需要注意:

需要考虑数据合法性处理:输入的字符在所处理的字符范围之外时,数码管显示ERROR___;

数据缓冲区不得设置在外部数据存储器;

任意设置一个按键为清除键,用于一键清除显示管内容;

注意:

需要考虑数据合法性处理:输入的字符在所处理的字符范围之外的情况;

2)数据缓冲区不得设置在外部数据存储器。

二.实验内容和原理

实验内容:

1、设计中断方式下的运行程序;

2、将编译程序下载到单片机开发板上,进行实机操作;

3、分析说明(实验报告)。

三.主要仪器设备

计算机、单片机开发试验仪

四、实验结果与分析

我们可以考虑主要任务,大致分为这几步:

首先,接收来自PC端的信号,相关的知识是串行通信,程序部分,首先设置一个中断,在单片机接收到一个完整的字节时,启动中断进入中断程序,串行通信的中断程序入口为0023H,可以转到相应程序,想要设置这样的中断需要设置好波特率,同时设置串行通信模式,通常采用模式1,而借助T1可以设置波特率,通常T1的计数方式为方式2,可以自动重装载。

接收到数据之后进行处理,判断字符的合法性,考虑到后面的显示需求,我们借助一个变量来记录结果,比如在数据合法情况下把数据读入R1,数据不合法就把R1置为0F0H。在这里而合法性的判断无非就是在0~9和A~F之间,即把0~9和A到F与其进行比对,假如出现相等则数据合法,否则不合法,判断时程序中间需要一个跳转,假如不在0到9之间,再跳转判断在不在A到F之间,从而得出合法性。

收到值之后,首先判断合法性,如果不合法,显示ERROR___,合法则对后面连续6位进行显示。这里有两个问题,一是怎么显示多个字符,二是在对后面连续6位显示时需要判断有没有到达末尾,需要跳转的情况。针对第一个问题,我们需要知道,在硬件连接上,P0口控制了数码管的具体数字显示,P2.2,P2.3,P2.4控制了显示哪个数码管,其中关于数码管相应数字的显示即P0口具体的设置与一般数码管一样,之前也很熟悉了,我们主要看P2.2,P2.3,P2.4的控制,其实它的规则很简单,把它看为3位2进制数即可,数字为几则对应的控制第几个数码管(从0开始),所以我们只要写一个连续的程序,使显示的数码管的位置不断改变即可实现多位的数码管显示。而关于连续6位的显示问题,我们只要加长显示的表格,即把F后面6位数字012345加入到读取表格的末尾,再根据它进行显示即可,甚至不需要任何判断,非常简单。

于是,我们的功能设置完毕,以下是显示的具体代码:

;ResetVector

org0000h

LJMPStart

ORG0023H

LJMPPINT

;====================================================================

;CODESEGMENT

;====================================================================

org0100h

Start:

;Writeyourcodehere

MOVTMOD,#20H

MOVTH1,#0F3H

MOVTL1,#0F3H

SETBTR1

MOVSCON,#50H;

MOVPCON,#80H

SETBEA

SETBES

MOVR1,#0FFH;存储输入的字符,#0FFH是无输入,#0F0H是不符合的输入

MOVR2,#00H

MOVR3,#00H;R2/R3判断输入数字是否违规

MOVR4,#00H;是否清零的显示,0是清零,1是未清零

MOVR5,#

文档评论(0)

198****7234 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档