单片机课程设计简易计算器资料Word文档格式.docx
- 文档编号:17721946
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:32
- 大小:425.72KB
单片机课程设计简易计算器资料Word文档格式.docx
《单片机课程设计简易计算器资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计简易计算器资料Word文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
物理工程学院
专业
物联网工程
指导教师
黄勇坚
职称
副教授
2015年9月日
单片机原理与应用课程设计任务书
课程设计题目
简易计算器的设计
院(系)
物理工程学院
物联网工程
黄勇坚
副教授
设计组成员
年级
学号
承担任务
曹中
2013
2013416989
编写程序,焊接电路
李婷婷
2013417002
焊接电路,撰写论文
李文婧
2013417003
编写程序,撰写论文
一、课程设计内容及任务
1.系统通过4×
4的矩阵键盘输入数字及运算符。
2.可以进行6位十进制数以内的加法运算,如果计算结果超过6位十进制数,则屏幕显示E
3.可以进行加法以外的计算(乘、除、减)。
4.其他功能(即除法可以显示并精确到小数点后七位)
2、拟达到的设计要求或主要技术指标
掌握单片机程序设计和微机接口应用的基本方法,并能综合运用所学软、硬件知识分析实际问题,提高解决课程设计实际问题的能力,为单片机应用和开发打下良好的基础。
具体要求如下:
1.掌握液晶显示模块的驱动和编程,设计LCD和单片机的接口电路,以及利用单片机对液晶模块的驱动和操作。
2.掌握液晶显示模块的驱动和编程,设计LCD和单片机的接口电路,以及利用单片机对液晶模块的驱动和操作。
三、课程设计总体方案与进度安排
本次设计总体方案是以STC89C52单片机为核心,采用4×
4矩阵键盘为输入模块,LCD12864液晶显示器为输出模块,采用STC-ISP为烧写工具,研究与设计了一个简易的计算器。
可以完成计算器的键盘输入,进行简单四则运算,并在LCD液晶显示屏上相应的显示结果。
学生签名:
年月日
四、指导教师意见
指导教师签名:
单片机原理与应用课程设计评阅表
评分项
评 价 内 容
满分
得分
设计
过程
1.任务分工的合理性和对待课程设计的态度
5
2.团队协作能力和分析解决问题的能力
软件
仿真
3.系统仿真电路设计的合理性与可行性
10
4.软件编程与仿真结果的正确性
15
系统
制作
5.系统板制作的难度
6.元器件布局的合理性及焊接的规范性
验收
答辩
7.系统功能演示、完成程度及创新性
8.知识掌握程度与回答问题的正确性
报告
9.系统设计的合理性与内容的科学性、创新性
10.文字表达水平、文章的逻辑性与写作规范
合计
100
一、指导教师评语:
二、课程设计等级
指导教师签名:
注:
课程设计等级:
优秀(90-100),良好(80-89),中等(70-79),及格(60-69),不及格(60分以下)。
物联网工程专业学生曹中李婷婷李文婧
指导老师黄勇坚
摘要:
本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。
设计过程在硬件与软件方面进行同步设计。
硬件方面从功能考虑,主要组成部分包括:
键盘输入模块、运算模块、控制模块、显示模块。
通过键盘输入数值单片机进行运算后送往LED显示器显示。
首先选择内部存储资源丰富的AT89C51单片机,输入采用4×
4矩阵键盘。
显示采用LED12864显示。
软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。
针对计算器四则运算算法特别是乘法和除法运算的实现,采用C语言进行编程,并用Proteus仿真。
关键字:
单片机矩阵键盘LED显示器C语言
TheDesignofSimpleCalculator
StudentmajoringinTheInternetofthingsengineering
CaoZhongLiTingtingLiWenjing
TutorHongYongjian
Abstract:
Thisdesignisbasedon51seriesmicrocontrollerfordecimalcalculatorsystemdesign,cancompletethecalculatorkeyboardinput,add,subtract,multiplyanddividethreeunsignedNumbersofsimplearithmetic,andthecorrespondingontheLEDdisplayresults.Intheaspectofhardwareandsoftwaredesignprocesssynchronizationdesign.Fromafunctionalhardware,maincomponentsinclude:
keyboardinputmodule,calculationmodule,controlmodule,displaymodule.ThroughthekeyboardinputnumericalmicrocontrollertotheLEDdisplayshowsafteroperation.FirstselecttheinternalstorageresourcesrichAT89C51,the4*4matrixkeyboardinput.DisplayusingLED12864.Softwarebasedonananalysisofthecalculatorfunction,theflowchartofdesigntothewritingoftheprogramforsystemdesign.Forcalculatorarithmeticalgorithmespeciallytherealizationofthemultiplicationanddivisionoperation,usingClanguageprogramming,andproteussimulation.
Keywords:
Microcontroller;
Matrix
Keyboard;
LED
display;
Clanguage
1任务设计
1.1选题背景
当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且比较容易出错。
计算器作为一种快速通用的计算工具方便了用户的使用。
计算器可谓是我们最亲密的电子伙伴之一。
本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。
单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。
在工业生产中。
单片微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
本系统就是充分利用了8051芯片的I/O引脚。
系统以采用MCS-51系列单片机Intel8051为中心器件来设计计算器控制器,实现了能根据实际输入值显示并存储的功能,计算程序则是参照教材。
至于位数和功能,如果有需要可以通过设计扩充原系统来实现。
1.2计算器介绍
1.2.1基本结构
计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备及电子配件通过人工或机器设备组成。
低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用。
高档计算器由微处理器和只读存储器实现各种复杂的运算程序,有较多的随机存储单元以存放输入程序和数据。
键盘是计算器的输入部件,一般采用接触式或传感式。
为减小计算器的尺寸,一键常常有多种功能。
显示器是计算器的输出部件,有发光二极管显示器和液晶显示器等。
除显示计算结果外,还常有溢出指示、错误指示等。
计算器电源采用交流转换器或电池,电池可用交流转换器或太阳能转换器再充电。
为节省电能,计算器都采用CMOS工艺制作的大规模集成电路(见互补金属-氧化物-半导体集成电路),并在内部装有定时不操作自动断电电路。
计算器可选用的外围设备有微型打印机、盒式磁带机和磁卡机等。
本计算器是以MCS-51系列8051单片机为核心构成的简易计算器系统。
该系统通过单片机控制,实现对4*4键盘扫描进行实时的按键检测,并把检测数据存储下来。
整个计算器系统的工作过程为:
首先存储单元初始化,显示初始值和键盘扫描,判断按键位置,查表得出按键值,单片机则对数据进行储存与相应处理转换,之后送入LED显示器动态显示。
整个系统可分为三个主要功能模块:
功能模块一,实时键盘扫描;
功能模块二,数据转换成显示器显示;
功能模块三,显示器动态显示。
1.2.2计算器的特点
(1)运算的速度很能高。
(2)记忆力很强。
(3)有逻辑判断能力。
(4)能够自动控制。
(5)有较好的通用性。
1.3简易计算器的设计目标及任务
通过本次课题设计,应用《单片机应用基础》、《计算机应用基础》等所学相关知识及查阅资料,完成简易计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目标。
通过本次设计的训练,可以使我在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。
现实生活中人们熟知的计算器,其功能主要如下:
(1)键盘输入;
(2)数值显示;
(3)加、减、乘、除四则运算;
(4)对错误的控制及提示;
针对上述功能,计算器软件程序要完成以下模块的设计:
(1)键盘输入检测模块
(2)LCD显示模块;
(3)算术运算模块
(4)错误处理及提示模块。
2系统设计
2.1系统整体设计
系统开始工作后,先由键盘输入键值,控制模块对键值进行检测录入存储,然后经运算模块运算后送出显示,如图2.1:
矩阵键盘输入模块控制与运算模块显示模块
图2-1
本文以STC89C52单片机为主控制器、LCD1602为显示输出模块、4x4矩阵键盘为输入模块,研究与设计了一个简易计算器。
其整体设计框图如图2-1所示。
其中,单片机的P0口作为数据的输出端口,输出数据到LCD1602液晶显示屏上,单片机的P2口作为其控制端口,用来控制LCD1602显示输出数据;
单片机的P1口作为数据的输入端口,与矩阵键盘相连,实现数据的输入。
在系统设计过程中为了使硬件资源尽可能地被合理利用,系统模块按照以下原则进行设计:
尽量使用典型电路,使其与单片机最小系统容易搭接;
设计完后尽量要留有相应的余地,以便于后期修改和二次开发;
系统的各模块之间和软硬件间设计兼容性良好;
器件选用具有一定的可靠性和抗干扰性,确保系统运行质量。
2.2系统硬件设计
2.2.1单片机最小系统
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:
单片机、振荡电路、复位电路。
(1)振荡电路
单片机是一种时序电路,即单片机是在一定的时序控制下工作的,所以必须提供工作时钟。
时钟是时序的基础,单片机本身就如同一个复杂的同步时序电路,为了保证同步工作方式的实现,电路就要在唯一的时钟信号控制下按时序进行工作。
STC89C52内部有一个用于构成振荡器的高增益反相放大器[1],引脚RXD和TXD分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
内部方式的时钟电路,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。
定时元件通常采用石英晶体和电容组成的并联谐振回路。
晶振的大小决定单片机执行指令的速度,一般为6-12M。
例如使用12M晶振,振荡周期是1/12微秒,一个机器周期就应该等于12*l/12微秒,也就是1微秒,那么一条双周期指令的指令周期就是2微秒[2]。
电容的大小影响着振荡器振荡的稳定性和起振的快速性,通常选择10-3OP的瓷片电容或校正电容。
外部方式的时钟电路,RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
在设计电路时,我们采用内部振荡电路,晶振和电容应尽可能的靠近芯片,以减少CPB板的分布电容,保证振荡器工作的稳定性,提高系统的抗干扰能力[3]。
(2)复位电路
复位是单片机的初始化操作。
其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。
RST引脚是复位信号的输入端。
复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。
若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。
按键手动复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图2-2-2所示。
图2-2-2按键手动复位电路
最小系统的结构图如图2-2-3所示:
图2-2-3单片机最小系统
2.2.2液晶显示接口电路
本设计采用LCD液晶显示器来显示输出数据。
LCD的特性有:
(1)+5V电压,对比可调度;
(2)内含复位电路;
(3)提供各种控制命令,如:
清屏、字符闪烁、光标闪烁、显示移位等多种功能;
(4)有80字节显示数据存储器DDRAM;
5、内建有160个5X7点阵的字型的字符发生器CGROM;
6、8个可由用户自定义的5X7的字符发生器CGRAM。
本设计通过D0-D7引脚向LCD写指令字或写数据以使LCD实现不同的功能或显示相应的数据。
其接口电路如图2-2-2所示。
图2-2-4
2.2.3矩阵键盘电路
每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。
矩阵的行线和列线分别通过两并行接口和CPU通信。
键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。
键盘处理程序的任务是:
确定有无键按下,判断哪一个键按下,键的功能是什么?
还要消除按键在闭合或断开时的抖动。
两个并行口中,一个输出扫描码,使按键逐行动态接地;
另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。
当无按键闭合时,P10~P13与P14~P17之间开路;
当有键闭合时,与闭合键相连的两条I/O口线之间短路。
判断有无按键按下的方法是:
第一步,置列线P14~P17为输入状态,从行线P10~P13输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。
第二步,行线轮流输出低电平,从列线P14~P17读入数据,若有某一列为低电平,则对应行线上有键按下。
综合一二两步的结果,可确定按键编号。
但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。
图2-2-5
2.2.4总体电路连接图
焊接实物图:
2.3系统软件设计
2.3.1键盘输入模块
输入模块流程如图2-3-1:
图2-3-1
2.3.2控制模块
控制着数字录入,数字录入是进行计算的前提[4],他是从矩阵键盘上输入的数值、运算符等录入单片机处理器进行处理,从而得出运算结果。
数字录入模块工作流程入如图2-3-2:
开始
i=0,j=0
是
按下数字键j=j*10+t
否
是
按下计算符号键i=j,j=0
否
按下等于号键
计算结果
结束
图2-3-2
注:
其中i是第一个数,j是第二个数,t是键盘输入的数字
2.3.4显示模块
LCD的引脚说明如表2-3-1所示:
符号
引脚说明
VSS
电源地
DB4
DataI/O
VDD
电源正极(+5V)
DB5
V0
液晶显示偏压输入
DB6
RS
数据/命令选择端(H/L)
DB7
R/W
读写控制信号(H/L)
CS1
片选IC1信号
E
使能信号
CS2
片选IC2信号
DB0
RST
复位端(H:
正常工作,L:
复位)
DB1
VEE
负电源输出(-10V)
DB2
BLA
背光源正极(+4.2)
DB3
BLK
背光源正极
表2-3-1
表2-3-1
3系统调试
3.1Proteus与Keil联合仿真调试
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
有原理布图;
PCB自动或人工布线;
SPICE电路仿真等功能特点。
它是目前最好的仿真单片机及外围器件的工具。
Keil软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,可以在很短的时间内就能学会使用keil来开发单片机应用程序。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
仿真电路原理图如图3-1-1所示:
图3-1-1
3.2软件仿真结果与硬件调试结果
结果如图3-2-1:
加法:
减法:
乘法:
除法:
图3-2-1
3.3系统调试与存在的问题
3.3.1硬件调试问题
常见故障:
(1)逻辑错误:
它是由设计错误或加工过程中的工艺性错误所造成的。
这类错误包括错线、开路、短路等。
(2)元器件失效:
有两方面的原因:
一是器件本身已损坏或性能不符合要求;
二是组装错误造成元件失效,如电解电容、集成电路安装方向错误等。
(3)可靠性差:
因其可靠性差的原因很多,如金属化孔、接插件接触不良会造成系统时好时坏,经不起振动;
走线和布局不合理也会引起系统可靠性差[5]。
(4)电源故障:
若样机由电源故障,则加电后很容易造成器件损坏。
电源故障包括电压值不符合设计要求,电源引线和插座不对,功率不足,负载能力差等[6]。
调试方法:
包括多级调试和联机调试。
在调试过程中要针对可能出现的故障认真分析,直至检查出原因并排除。
本次硬件调试过程中,对所出现的问题进行了认真的分析和改正,最后能够很好的达到设计要求的效果。
3.3.2软件调试问题
软件调试一般分为以下四个阶段:
(1)编写程序并查错;
(2)在C语言的编译系统中编译源程序;
(3)对程序进行编译连接,并及时发现程序中存在的错误;
(4)改正错误。
在本次调试中出现的问题有:
(1)在程序中有的函数名未定义;
(2)在抄录程序时,少录入一些字符,如:
“;
”、“{”、“-”等符号,而出现错误;
(3)有一些函数名录入时少写一个字母或顺序颠倒;
(4)没有注意函数名的调用及定义;
(5)芯片引脚定义出错而导致没有实验现象。
在软件调试过程中,对出现的错误进行了认真的分析和修改,多次调试成功后,能够很好的达到既定的设计效果。
4总结
我们的题目是简易计算器的设计,对于我们这些实践中的新手来说,这是一次考验。
怎样才能找到课堂所学与实际应用的最佳结合点?
怎样让自己的业余更接近专业?
怎样让自己的计划更具有序性,而不会忙无一用?
这都是我们所要考虑和努力的。
这次课程设计我学到很多很多的东西,学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。
不仅巩固了以前所学过的知识,而且学到了很多在书本上没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
同时在设计的过程中发现了自己的不足之处,例如对以前所学过的知识理解得不够深刻,掌握得不够牢固,对C语言掌握得不够好等。
在这里真诚地对所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 简易 计算器 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)