找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11567|回复: 4
打印 上一主题 下一主题
收起左侧

单片机LCD1602计算器课程设计报告

[复制链接]
跳转到指定楼层
楼主
ID:363782 发表于 2018-7-3 10:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
嵌入式系统原理及应用
课程设计报告

目录

引言
第一章硬件介绍
1.1单片机介绍
1.2 设计所用开发板的介绍
1.3 LCD1602的原理及其应用
1.3.1开发板硬件连接关系
1.3.2液晶屏LCD1602的功能及应用
1.3.31602LCD的指令说明及时序
1.3.4 1602LCD的RAM地址映射及标准字库表
1.4开发板矩阵键盘原理及应用
第二章设计思路、仿真及调试
2.1 设计方法
2.2 硬件简介
2.3 软件设计
2.3.1 矩阵键盘
2.3.2 LCD1602
第三章设计结果
第四章设计总结
附录

引言
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
(1)在智能仪器仪表上的应用
(2)在工业控制中的应用
(3)在家用电器中的应用
(4)在计算机网络和通信领域中的应用
(5)单片机在医用设备领域中的应用
(6)在各种大型电器中的模块化应用
(7)单片机在汽车设备领域中的应用
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
随着智能化的逐步提高,单片机在我们生活中得到了越来越广泛的应用,其是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。本设计要制作的就是单片机于生活中最为常见的异种应用——简易计算器。本简易计算器是在普中HC6800 V3.0开发板的基础上,利用开发板上已有的资源设计开发的,本开发板上有着相对丰富的硬件资源,可以较好的完成一些设计。
本设计所用的单片机为STC90C516RD+,具体的设计要求如下:通过矩阵键盘检测按下的数字和运算符号,在LCD1602液晶显示屏上面显示运算的结果,在第一行上显示输入的计算式,为左对齐;在第二行显示等于号以及最后的运算结果,为了较好的显示效果和使用的效果,第二行的计算结果显示设计为右对齐。这样在LCD1602的显示屏上可以有较好的显示效果,计算效果比较分明。
总体上来说,作为本嵌入式原理课程的设计作业,本设计的实现难度不大。

第一章硬件介绍
如上所述,本课程的课程设计是在普中的单片机开发板上面完成的,可以直接使用开发板上面的硬件设计,相对于普通的硬件设计而言,省去了很多硬件设计上面的过程和时间,提高了本设计的效率,加快了设计的流程。但在相应的软件设计之前,我们需要对开发板的硬件设计有着清楚的了解,以免在设计过程中出现一些不必要的麻烦和错误,影响设计进度。下面开始即对开发板的硬件连接做一些详细而必要的介绍。
1.1单片机介绍
单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
本设计所使用的单片机为STC的STC90C516RD。根据STC官方的介绍,本单片机有着以下特点:
STC90C516RD+系列单片机是宏晶科技推出的新一代超高速/低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择,内部集成MAX810专用复位电路,时钟频率在12MHz以下时,复位脚可直接接地。
1.增强型6 时钟/ 机器周期,12 时钟/ 机器周期 8051 CPU
2.工作电压:5.5V - 3.8V(5V 单片机)/3.8V - 2.4V(3V 单片机)
3.工作频率范围:0-40MHz,相当于普通8051的 0~80MHz.
4.用户应用程序空间 4K/6K/7K/8K/10K/12K/13K/16K/32K/40K/48K/56K/ 61K/字节
5.片上集成 1280字节/512/256字节 RAM
6.通用I/O口(35/39 个),复位后为: P1/P2/P3/P4 是准双向口/ 弱上拉(普通8051 传统I/O 口)P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O 口用时,需加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器 / 仿真器可通过串口(P3.0/P3.1)直接下载用户程序,8K 程序3 - 5 秒即可完成一片
8.EEPROM 功能
9.看门狗
10.内部集成MAX810专用复位电路,外部晶体12M以下时,可省外部复位电路,复位脚可直接接地。
11.共3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用
12.外部中断4路,下降沿中断或低电平触发中断,Power Down模式可由外部中断低电平触发中断方式唤醒
13.通用异步串行口(UART),还可用定时器软件实现多个UART
14.工作温度范围:0-75℃/-40-+85℃
15.封装:LQFP-44,PDIP-40,PLCC-44
1.2 设计所用开发板的介绍
本课程设计是在开发板普中HC6800 V3.0基础上完成的,开发板的外观图如图1.1所示。本开发板在硬件上配置了以下硬件:
1.五线四相步进电机
2.16*16点阵
3.LCD1602液晶显示屏
4.1个静态数码管+8个动态数码管
5.四线双极性步进电机
6.4*4矩阵键盘+8个独立按键
7.TFT彩屏/12864/19264
8.RS485通信
9.继电器
10.蜂鸣器
11.AD/DA/光敏/热敏
12.18B20温度传感器
13.红外
14.三色交通灯
本实验将在开发板现有的硬件基础上设计一个简易的计算器,按照设计要求,我们将会用到开发板上外接的LCD1602液晶显示屏、矩阵键盘。因为设计周期的限制,将不加其他的功能,比如蜂鸣器等。
开发板单片机部分的连接关系如下图所所示:
图1.1设计所用开发板
图1.2开发板MCU的硬件连接

1.3LCD1602的原理及其应用
1.3.1开发板硬件连接关系
开发板上LCD1602这一部分的硬件连接原理图如图1.1所示。
图1.3开发板LCD1602的硬件连接关系
可见,本开发板上LCD1602的硬件连接设计相对于常见的电路设计而言,并没有什么相对特殊的地方,可以硕士比较常见的设计。液晶屏的数据端口与单片机的P0口相连接,VCC和GND端口均有设计连接。此外通过调节变阻器RJ6可以调节液晶显示屏的图像对比度。
图1.4调节图像对比度
1.3.2液晶屏LCD1602的功能及应用
LCD1602已很普遍了,具体介绍我就不多说了,市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。
LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,本设计所用的LCD1602为带有背光的16脚。其中各引脚接口说明如表1-1所示:
表1-1 LCD1602各引脚功能
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极

第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。
1.3.31602LCD的指令说明及时序
1602液晶模块内部的控制器共有11条控制指令,如表1-2所示:
表1-2控制命令表
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRAM或DDRAM)
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)
指令1:清显示,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H。
指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。
指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。
指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:字符发生器RAM地址设置。
指令8:DDRAM地址设置。
指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:写数据。
指令11:读数据。
读写操作时序如图1.5的a、b所示:
a.LCD1602读写操作时序
b.LCD1602读写操作时序
图1.6 LCD1602读写操作时序
1.3.4 1602LCD的RAM地址映射及标准字库表
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图1.5是1602的内部显示地址。
图1.6 1602LCD内部显示地址
例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。
在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”
图1.7字符代码与图形对应图
1.4开发板矩阵键盘原理及应用
本设计需要使用开发板上面的按键完成数据的输入,需要用到开发板上的4*4的矩阵键盘,以完成作为计算器的数字1~9以及+、—、*、/的输入。本开发板的矩阵键盘的硬件连接关系如下图所示。
图1.8矩阵键盘的硬件连接关系
可见本开发板的硬件上,矩阵键盘通过和单片机的P11口连接,检测按键的按下。
按键需要完成的是全部10个数字的输入和运算符号的输入,相应的按键分配情况如下表所示。
表1-3按键位置设计
7
8
9
/
4
5
6
*
1
2
3
-
CE
0
=
+

矩阵键盘工作原理:由于按键没有接地,4行4列正好占用8个I/O如果4行我们送 P3.0到P3.3送入0 1 1 1 然后去读取 4列的值,如果P3.0的按键按下那么P3.4---P3.7的值等于 0 1 1 1,假如是第2个键按下的话那么读回来的值是 1 0 1 1 ,如果第3个键按下去读回来的值是 1 1 0 1 ,如果第4个键按下去读回来的值是 1 1 1 0 ,如果没有键按下去读回来就是1 1 1 1。所以我们就根据读回来的值来判断按下去的是那个键。当然这是对P3.0这一行,因为矩阵键盘是扫描的,所以下次把P3.0 给1  P3.1 给0对第2行,陆续的第3 行第4行, 0111 1011 1101 1110  而每次都去从新扫描一遍列值列有4个值,以确定是那个键按下。无论何时任何一个时间有一个按键被按下就跳出循环。当然不可能有2个键刚好一起按下你的手没有这么好的力度,就算有2个键一起按键,程序也有先后检测的顺序,只能检测一个后面的检测不到。
根据实验资料上的表述,开发板在设计时,在使用矩阵键盘时需要按照以下要求操作:(1)拔下1602下面的JP165以及通过排线将JP8和JP4连接起来。效果如下图所示。
图1.9开发板准备工作
主要时由于其他的硬件连接的原因,需要拔下JP165。在原理图中,JP165的连接如下所示:为了正常的使用矩阵键盘,我们按照开饭的设计拔下JP165,连接好相应的引脚。
图1.10 JP165的硬件连接
第二章设计思路、仿真及调试
2.1 设计方法
本电路设计采用STC90C516RD单片机为核心,利用晶振产生的时钟脉冲信号,利用液晶屏LCD1602显示计算及其时间信息,通过对STC90C516RD单片机的编程控制液晶屏LCD1602的显示。显示计算和简易计算的信息同在LCD1602,通过按键切换选择。外部的矩阵键盘作为简易计算器的数值和计算方式的输入。
2.2 硬件简介
本系统以STC90C516RD单片机为核心,本系统选用12MHZ的晶振,,使得单片机有合理的运行速度。起振电容30pF对振荡器的频率高低、振荡器的稳定性和起振的快速性影响较合适,复位电路为按键高电平复位。
图2.1单片机复位电路设计
当复位按键按下之后,HRST接到高电平VCC。在按下复位健之前,三极管Q32TY时截止的。当HRST输入高电平之后,三极管导通,LRST的信号引脚输入高电平。完成对单片机的复位。
第三章设计结果
通过在keil4中编译通过,如图3.1所示,将生成的.hex文件下载到开发板上的单片机内运行。
图3.1程序编译通过
在开发板上完成相应简单的加减乘除运算效果如下所示:
a.加法运算               b.减法运算
c.乘法运算d.除法运算
图3.2设计效果
由于变量的内型决定了,当数据的位数过多时,程序的计算会出现一些错误,比如,当计算的位数过长时,会出现显示结果乱码,现象如图3.3所示。
图3.3液晶显示屏显示乱码
从总体上来说,本设计基本实现了预期简易计算器的功能,能够实现一些简单的加减乘除的运算。当数据过大时显示的乱码可能时数据类型的原因,也有可能是其他原因造成的,这里便不做具体深入的分析和探讨。

第四章设计总结
在用单片机实现简易计算的设计中使用到了STC的单片机、LCD1602及其4*4键盘。STC的单片机是目前使用相对比较广泛的51单片机,作为单片机的入门是一个非常合适的选择,对于研究生阶段来说,是一个比较熟悉的硬件了。4*4的矩阵键盘也是有用比较广泛的硬件了,是一种比较常见的输入方式,1602液晶显示屏对于51单片机来说是比较合适的组合,虽然使用的功能比较有限,但是在51单片机的硬件条件下是比较好的选择。
为了更好的使用体验,之后可以加入蜂鸣器和其他模块,当矩阵键盘的按键按下时,蜂鸣器发声,提示按键按下,一定程度上可以降低计算器在使用过程中出现的误操作。此外,也可以在现有的计算器的基础上加上时钟等其他功能,并通过按键进行状态和功能的切换,比加上18B20温度传感器,检测当时环境中的温度,加入时钟显示当时的日期和时间等。
在设计过程中我通过在网上和图书馆查阅资料,收集了关于单片机和液晶屏LCD1602显示方面的资料,通过对这些资料的学习,我了解了单片机的基本结构和单片机在生活和生产中所发挥的作用;液晶屏LCD1602的原理和使用。本次设计完成的主要工作和任务如下:对设计方案的理论研究,单片机的合理选型,软件的编写和调试以及设计报告的制作。通过设计简易计算器的过程中我掌握了单片机的基本原理及其各种应用,对它的各种硬件接口与软件设计方法有较深入的认识。

完整的Word格式文档51黑下载地址(含源码):
STC-51单片机-开发板-计算器-LCD1602显示-浮点计算-设计-报告.docx (3.93 MB, 下载次数: 109)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:318851 发表于 2019-6-6 20:08 | 只看该作者
感谢分享
回复

使用道具 举报

板凳
ID:414868 发表于 2019-9-16 17:03 | 只看该作者
步骤很清晰 感谢分享
回复

使用道具 举报

地板
ID:414868 发表于 2019-9-16 17:03 | 只看该作者
感谢分享
回复

使用道具 举报

5#
ID:338544 发表于 2019-9-25 21:10 来自手机 | 只看该作者
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表