单片机课程设计计算器

单片机课程设计计算器
单片机课程设计计算器

课程设计说明书

课程设计名称:单片机课程设计

课程设计题目:四位数加法计算器的设计学院名称:电气信息学院

专业班级:

学生学号:

学生姓名:

学生成绩:

指导教师:

课程设计时间:至

格式说明(打印版格式,手写版不做要求)

(1)任务书三项的内容用小四号宋体,倍行距。

(2)目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。

(3)章的标题用四号黑体加粗(居中排)。

(4)章以下的标题用小四号宋体加粗(顶格排)。

(5)正文用小四号宋体,倍行距;段落两端对齐,每个段落首行缩进两个字。

(6)图和表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)。(7)页眉中的文字采用五号宋体,居中排。页眉统一为:武汉工程大学本科课程设计。

(8)页码:封面、扉页不占页码;目录采用希腊字母Ⅰ、Ⅱ、Ⅲ…排列,正文采用阿拉伯数字1、2、3…排列;页码位于页脚,居中位置。

(9)标题编号应统一,如:第一章,1,,……;论文中的表、图和公式按章编号,如:表、表……;图、图……;公式()、公式()。

课程设计任务书

一、课程设计的任务和基本要求

(一)设计任务(从“单片机课程设计题目”汇总文档中任选1题,根

据所选课题的具体设计要求来填写此栏)

1. 系统通过4x4的矩阵键盘输入数字及运算符。

2. 可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E。

3. 可以进行加法以外的计算(乘、除、减)。

4. 创新部分:使用LCD1602液晶显示屏进行显示,有开机欢迎界面,计算数据与结果分两行显示,支持小数运算。

(二)基本要求

1.有硬件结构图、电路图及文字说明;

2.有程序设计的分析、思路说明;

3.有程序流程框图、程序代码及注释说明;

4.完成系统调试(硬件系统可以借助实验装置实现,也可在Proteus

软件中仿真模拟);

5.有程序运行结果的截屏图片。

二、进度安排

第9周,~

1)题目分析,文献查阅

2)方案比较,确定设计方案

3) ~ 硬件电路设计

4) ~ 程序设计,程序调试,系统联调,系统改进

5)课程设计说明书撰写

三、参考资料或参考文献

1. 林立,张俊亮. 单片机原理及应用——基于Proteus和Keil C [M].北京:电子工业出版社,2013

2. 张毅刚,彭喜元. 单片机原理与应用设计[M]. 北京:电子工业出版社,2008

3. 马忠梅. 单片机的C语言应用程序设计(第5版) [M].北京:北京航空

航天大学出版社,2013

4. 楼然苗、李光飞. 51系列单片机设计实例[M]. 北京:北京航空航天大学出版社,2003

本科生课程设计成绩评定表

目录

第一章设计论证..................................................... 错误!未定义书签。设计分析........................................................... 错误!未定义书签。设计方案........................................................... 错误!未定义书签。第二章硬件设计..................................................... 错误!未定义书签。硬件结构与工作原理................................................. 错误!未定义书签。单元电路设计....................................................... 错误!未定义书签。第三章软件设计..................................................... 错误!未定义书签。系统软件结构....................................................... 错误!未定义书签。主要功能子程序设计................................................. 错误!未定义书签。第四章系统调试与分析............................................... 错误!未定义书签。调试过程与结果..................................................... 错误!未定义书签。结果分析........................................................... 错误!未定义书签。第五章设计小结..................................................... 错误!未定义书签。附录................................................................ 错误!未定义书签。

第一章设计论证

设计分析

在方案设计过程中,我列出了两种不同的设计方案,分别对应于显示模块和单片机内部运算。显示模块在我的设计中有两种不同的显示方式,分别为数码管显示以及液晶屏显示。

对于数码管显示来说,优点是使用简单,反应速度更快,由于LCD有众多的接口,以及指令,因此在软件上要比数码管复杂。数码管显示的缺点也比较明显,就是需要占用过多的单片机输出接口,同时,LCD的显示功能更多,也更直观,对于现实生活中的使用也更加舒适。

在综合了以上几点的考虑后,我最终选择了LCD1602液晶显示芯片作为显示模块。

在单片机内部运算方面,我的设想也有两种,即支持浮点数运算或只支持整数运算,若只支持整数运算,程序设计势必更加简单易懂,但是出于实用性的考虑,我最终决定了使计算器支持浮点数运算功能。同时,这也能更好地锻炼我的编程思维能力。

设计方案

按照系统设计的功能的要求,初步确定设计系统由主控模块、显示模块、键盘扫描接口电路共四个模块组成。主控芯片使用8051系列的AT89C52单片机,其中带有非易失性Flash程序存储器,它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。

显示模块采用LCD1602液晶显示器为主体构成。

键盘电路采用4x4矩阵键盘电路。

整个单片机的接口电路:P0用于显示输出或LCD1602信号输入,P1口用于键盘扫描输入,P2口用于LCD1602的控制信号输出。

为了驱动系统的各个模块正常协调工作,在软件方面我设计了四大模块,分别为显

示、键盘、运算、综合模块,通过综合模块的协调来使其它三大模块正常运行,使计算器能正确运算得出正确结果。

第二章硬件设计

硬件结构与工作原理

图硬件结构框图

系统的主体部分由输入、运算、输出模块所组成,对应于图中有,输入模块为键盘扫描输入,输出模块为LCD1602显示,运算模块为单片机。在系统上电后,单片机初始化,开始运行内部程序,在程序运行过程中,通过软件功能来实现按下键盘上特定按键后,执行不同的功能,例如加减乘除,并将数据输出至显示模块(LCD1602)显示。在运算过程中显示运算数据及符号,运算完成后显示运算结果。

单元电路设计

单片机最小系统

单片机最小系统就是支持主芯片正常工作的最小电路部分,包括主控芯片、复位电路和晶振电路。

主控芯片选取AT89C52芯片,因其具有良好的性能及稳定性,价格便宜应用方便。

晶振选取,晶振旁电容选取20pF。

采用按键复位电路,电阻分别选取100Ω和10K ,电容选取10μF 。 以下为单片机最小系统硬件电路原理图(图),仿真接线图(图)。

图 单片机最小系统硬件电路原理图

P01P00P02P03P04P05P06P07D 0D 1D 2D 3D 4D 5D 6D 7D0D1D2D3D4D5D6D7

RS R W E

XT AL2

18

XT AL1

19

ALE 30EA

31

PSEN 29RST

9

P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX 2P1.23P1.34P1.45P1.56P1.67P1.78

P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD

17

P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1

AT89C52

X1

CRYST AL

C1

22pF

C2

22pF

R2

10k

+5V

C3

10uF

23456789

1

RP2

RESPACK-8

+5V

R1

100

图单片机最小系统仿真接线图

键盘接口电路

计算器所需按键有:数字键:’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’。

功能键:’+’, ’-‘ , ’*’, ’/ ’ , ’ = ’, ’ C( 清零、小数点)’共计16个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接~,这样扫描P1口就可以完成对矩阵键盘的扫描,通过对16个按键进行编码,从而得到键盘的口地址,对比P1口的扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘的功能。

在Proteus仿真中,我直接使用元件库所有的KEYPAD-SMALLCALC键盘,这种键盘直接实现了4*4键盘的功能,方便使用。如下图所示。

在按下其中一个键时,其对应的行与列将都会变成低电平,此时,即可通过判断P1口的值来确定输入的是哪一个按键,然后将所取得的按键通过软件来进行接下来的处理、运算等工作。

图 4*4矩阵键盘

LCD1602显示电路

LCD1602简介:如图所示,1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。

1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

1602采用标准的16脚接口,其中:

第1引脚:GND为电源地

第2引脚:VCC接5V电源正极

第3引脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

第4引脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5引脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

第6引脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。

第7~14引脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。第15引脚背光正极,第16引脚背光负极。

特性

或5V工作电压,对比度可调

内含复位电路

提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能

有80字节显示数据存储器DDRAM

内建有192个5X7点阵的字型的字符发生器CGROM

8个可由用户自定义的5X7的字符发生器CGRAM

特征应用

微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。

操作控制

注:关于E=H脉冲——开始时初始化E为0,然后置E为1。

图 LCD1602硬件原理图

采用LCD1602显示器对计算过程、结果以及提示信息进行显示,在仿真电路中,由于Proteus中并没有LCD1602显示芯片,故采用功能相似的LM016L进行替代,其中LM016L的D0~D7三个输入输出端口接至单片机的~口,用来对显示屏输出显示、输出控制指令以及获取状态信息。

单片机的~分别与LM016L的RS、RW、E端口相连,用来对显示芯片进行控制。以下为LCD显示电路的仿真接线图(图)。

图 LCD1602(LM016L)仿真接线图

第三章软件设计

系统软件结构

如图所示,系统启动后,执行LCD初始化程序,然后调用LCD显示程序,在屏幕上输出欢迎信息。接下来调用键盘扫描处理程序,等待按键按下,按下任意键后执行LCD 清屏程序,并再次调用键盘扫描处理程序,等待用户输入数据,若用户按下数字键(0~9),

Y

N

Y

N

图程序流程图

本次设计采用模块化设计思想,包括主程序和初始化子程序、延时子程序、输出数据子程序、检测是否有按键按下子程序、确定按键子程序、清第一行屏与显示“Welcome”子程序、换算第一个数子程序、运算子程序、显示结果子程序等子程序。运行程序后,首先调用子程序清屏第一行并显示“Welcome”,清屏第二行并显示“ZCY’s Caculator!”,然后检测是否有按键按下,如果没有,继续检测,如果按下,则判断是否是加减乘除键被按下,如果是加减乘除被按下,则显示相应的字符并换算出字符前输入的数据和字符后输入的数字,然后检测是否有等号按下,如果有则完成相应的运算并显示相应的结果,然后检测是否有清屏键按下,如果有则清屏,相应的流程图如图所示。

相关主题
相关文档
最新文档