实验2 键控数字显示.pdf

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

实验2键控数字显示

一、实验目的和要求

实验目的:

1.掌握简单的查表程序;

2.掌握I/O口开关量输入方法;

3.掌握数码管显示器的显示方法;

4.掌握跳转指令的使用。

实验要求:基于PROTEUS软件仿真设计一个51单片机系统,记录按键按下的次数(0-9),

并在一位共阳数码管上显示。

二、实验内容和原理

1.系统硬件电路设计:根据实验要求,以8051单片机为核心,设计系统硬件电路,并以按

钮开关电路连接到8051的I/O口作为开关量输入,以连接到I/O的7段数码管作为显示输

出电路。

2.控制软件设计:

(1)键盘输入控制程序

用I/O口输入开关量时,应先向I/O口写高电平,然后再读入I/O口的状态。程序需要

循环查询I/O端口状态,当发现端口状态从高电平变成低电平时,则认为是按键被按下,按

键按下次数加1。需要注意的是,按键动作较慢,而查询按键状态的循环很快,一次按下过

程可能被查询很多次,所以需要正确识别按下动作。设置一个按钮状态记录变量,初始设置

为1,标示I/O为高电平状态,当查询I/O状态为低电平且标示变量为1时,才认为是按下

了按键,按键次数加1,并将标示变量置为0。当查询I/O状态为高电平时,标示变量设置

为1。等待下一次的按钮行为。本实验装置要求仅显示一位数字,当计数10次后,计数器

清零,重新计数。

(2)数字显示控制程序

按照7段共阳极数码显示器的显示要求,以及与单片机的电路联接,当向P2口输出相

应的控制字,即可显示0~9数字。端口控制字设为常数表,当设定常数表首地址于DPTR,

待显示数字置于累加器A中,则指令MOVCA,@A+DPTR获得相应的控制字,将控制字

输出到P2口,完成显示。

三、主要仪器设备

计算机、proteus单片机仿真软件。

元件列表:80C51单片机,按钮BUTTON,7段共阳极数码显示器7SEGCommonAnode,通

用电阻1Kresistorgeneric。

四、实验操作

1.在PROTEUS中新建工程项目,选取8051系列的80C51控制器。

2.绘制如图的参考电路。

参考电路说明

(1)按钮开关量输入按钮BUTTON与一限流电阻(RESISTOR,1k)串联,电阻上接电源,按

钮下接地,从按钮与电阻中间引线接入单片机I/O口,按钮开时,输入高电平,按钮闭合,

输入低电平。

(2)数码管显示器分共阳极(7SEGCommonAnode)和共阴极(7SEGCommonCathode)两种。7

段数码管显示器由7个LED发光二极管共用电源或地组成,每个控制引脚控制一个二极管,

通过不同的亮暗组合控制,可显示数字0~9;用7个i/o端口的输出来控制数码管。如用P2

口的低7位,P2.0~P2.7对应共阳极数码管的a~g,则0~9数字对应的控制字为:

0ffH,0c0H,0f9H,0a4H,0b0H,099H,092H,082H,0f8H,080H,090H。

3.分析任务:主要数据对象为按键按下的次数,用寄存器R1来记录前一次按键状态为开,

本次按键状态为闭合,才是按钮按下动作。用寄存器R3来记录按键状态,定义按钮开0FFH,

闭000H。

编写如下的代码:

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

;RESETandINTERRUPTVECTORS

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

;ResetVector

org0000h

jmpStart

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

;CODESEGMENT

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

org0100h

Start:

;Writeyourcodehere

movR3,#0FFH

Loop0:movR1,#00H

Loop:MOVA,R1;查表显示保存在R1中的计数

MOVDPTR,#0200H

MOVCA,@A+DPTR

movP2,A

MOVP1,#0FFH;读按键状态,先置端口为1

JBP1

文档评论(0)

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

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

1亿VIP精品文档

相关文档