单片机开发板 计算器 电梯 密码锁 万年历 交通灯课程设计宝贝及程序.docxVIP

单片机开发板 计算器 电梯 密码锁 万年历 交通灯课程设计宝贝及程序.docx

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

开发板

H设

实验报告

设计课题:基于单片机的简易计算器指导老师:

班级:学号:姓名:

一设计内容和目的

本次实验的任务就是要以51系列单片机为核心实现一个简易计算器计算器,它的结构非常简单,外部主要由4*4矩阵键盘和一个液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。目的:做自己喜欢的实验,提高自学能力。

二方案论证

经分析,计算器电路包括三个部分:显示电路、4*4键扫描电路、单片机微控制电路。具体如下:

1)LCD显示电路

LCD1602作为一个成熟的产品,使用简单,模式固定,便于移植到各种类型的程序,但是初学者往往要注意结合LCD本身的时序图来完善初始化程序。又以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,故采用

LCD.

2)4*4键盘扫描电路(中断式,扫描式,反转式)

用户设计行列键盘接口,一般常采用3种方法读取键值。一种是中断式,外两种是扫描法和反转法。

中断式:在键盘按下时产生一个外部中断通知CPU,并由中断处理程序通过不同的地

址读取数据线上的状态,判断哪个案件被按下。本实验采用中断式实现用户键盘接口。

扫描法:对键盘上的某一行送低电平,其他行为高电平,然后读取列值。若列值中有一

位是低,则表明该行与低电平对应列的键被按下;否则,扫描下一行。

反转法:先将所有行扫描线输出低电平,读列值。若列值有一位是低,则表明有键按下,

读列值;然后所有列扫描线输出低电平,再读行值。根据读到的值组合就可以

查表1得到的键码。

这个就仁者见仁智者见智了,不过如果熟悉了扫描式,建议果断升级自己的硬件(很简单加个74LS08与门),故采用节省CPU的中断式扫描电路。

⒊)单片机微控制电路

微控制电路就是以AT89C51为核心的控制核心,主要注意晶振电路的接法和复位电路的接法。

三硬件电路的设计

2.1硬件设计电路框图

4*4键盘晶振电路

4*4键盘

晶振电路

LCD显示

51系列单片机系统

复位电路

线路原理框图

2.2硬件设计电路的元件清单

器件名称

数量

AT89C51

1

按键

17

74LS08

1

10K电阻

9

电容22uF

1

LCD1602

1

晶振12MHz

1

电容30pF

2

5K电位器

1

2.3硬件设计电路图

将4*4的键盘直接接在P1口上,用P0口作为LCD的显示输出,P3.2口的INT0作为外部中断位。

C3

C3o

LCD1

C2C1

X1

(

U1

U2:C

U2:A

U2:B

RP1

R

R1

2.4硬件设计的补充说明

四软件设计程序及描述

本程序组成可分为3个模块:矩阵键盘模块,LCD显示模块,和运算模块(源程序见底页)

开始

开始

初始化参数

初始化LCD显示

有键输入?数字键清零键功能键根据上次功能键和输入的数据计算结果状态清零输入数值本次功能键?结果送显示缓冲结果送显示缓冲等待数值输入等待数值输入结果送显示缓冲数值送显示缓冲等待数值输入NY

有键输入?

数字键

清零键

功能键

根据上次功能键和输入的数据计算结果

状态清零

输入数值

本次功能键?

结果送显示缓冲

结果送显示缓冲

等待数值输入

等待数值输入

结果送显示缓冲

数值送显示缓冲

等待数值输入

N

读取键码

LCD显示

五硬软件的调试及方法

我个人遇到的主要问题出现在LCD1602上,要不是我自己买了块新的LCD恐怕我的结论,就只能在软件仿真实现了。

硬件上:在不加芯片调试时,LCD1602只显示一排全黑,一般说明该元件是好的。(但也不一定,我那时就一直认为我的元件没坏);给15,16管脚分别接上+5v和0v,测试背光是否完好;给VEE接上电位器,检查对比度是否可调;

一般LCD易出现的现象,我再做实验的时候遇到过以下几种情况:

状态1

上电之后,1602的第一行全黑,即16个5x7黑块

产生原因:液晶根本就没有进行初始化操作,需要检查连线或者程序。运气不好的情况下就是整块LCD是坏的。

状态2

屏上显示两排灰格

产生原因:程序中对液晶初始化不正常,应是部分初始化指令没有正常接收,建议按照标准初始化步骤调整程序,或者调整指令之间的延时(加大一些试试)----补充:也有可能是对比度太大,建议优先调整对比度电阻

状态3

显示乱码

这是我在

文档评论(0)

176****7010 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档