毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx

上传人:b****2 文档编号:2724807 上传时间:2023-05-04 格式:DOCX 页数:40 大小:1.13MB
下载 相关 举报
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第1页
第1页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第2页
第2页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第3页
第3页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第4页
第4页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第5页
第5页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第6页
第6页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第7页
第7页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第8页
第8页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第9页
第9页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第10页
第10页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第11页
第11页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第12页
第12页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第13页
第13页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第14页
第14页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第15页
第15页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第16页
第16页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第17页
第17页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第18页
第18页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第19页
第19页 / 共40页
毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx

《毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx》由会员分享,可在线阅读,更多相关《毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx(40页珍藏版)》请在冰点文库上搜索。

毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计.docx

毕业设计论文基于PROTEUS的单片机LCD计算器的仿真设计

本科毕业设计

基于PROTEUS的单片机LCD计算器的仿真设计

SimulationdesignofLCDcalculatorbasedonthesinglechipmicrocomputerbyPROTEUS

 

学院:

电子工程学院

专业班级:

电子信息工程DZ电子091班

学生姓名:

学号:

指导教师:

 

2013年6月

 

毕业设计中文摘要

摘要:

科技的发展提高了人们物质生活水平,许许多多的电子产品来到了我们的生活。

许多复杂的计算是我们不能解决的,并且很容易发生错误,所以计算器凭借着快速和通用的优点给我们的生活带来了方便。

计算器成为了我们日常生活中最亲密的电子产品。

本次设计的简易计算器由单片机主控模块、液晶显示模块、键盘输入模块这三个主要部分组成。

把AT89C51作为主控模块的核心,利用C语言程序进行编程,对AT89C51的I/O口进行充分的利用,成功的读取了键盘数据和控制了液晶显示;液晶显示模块是用LCD液晶来实现的,通过利用丰富的显示空间,可以对多数位进行显示;利用4×4键盘作为键盘输入模块,能够同时定义和采样计算器的多个数字。

通过利用USB数据线插在电脑上来提供所需要的工作电源。

经过调试,该计算器能够实现想要的功能,能够对计划中的加、减、乘、除进行简单的运算。

关键词:

计算器;AT89C51单片机;液晶屏LCD

毕业设计外文摘要

Abstract:

Thedevelopmentofscience,whichfeaturesthevariouselectr0nicproducts,bringaboutimprovementofpeople'smateriallife.Weplanetomakeamistakewhenwecomparethecomplicatedcalculations.Asaresult,thecalculator,asarapidandcommoncalculationmeans,facilitatesourlife.Inotherwords,itcanberenownedasoneoftheelectronicproductsthathascloserelationshipwithus.

ThedesignmainlycoversSCMcontrolmodule,KeyboardinputmoduleandLCDmodule.TheSCMcontrolmoduleputtheAT89C51asakeypartandtakeprogrammeofClanguage.aswellasitsrichI/O,andachievesthedata-gatheringofthekeyboardandthecontrolovertheLCD.TheLCDmoduleadoptsLCDsoastocometotheeffectofmultidigitdisplaybymeansofrichdisplayspace.TheKeyboardinputmoduletakesthe4*4sizeforthesakeofachievingdefinitionsamplingwithmorethanonefigureinthecalculator.AstringofUSBflashdisk,whichisinsertedinthecomputer,providesthesupplyofthewholesystem.Aftertesting,thecalculatorcometotheexpectedfunctionthatconcludesaddition,subduction,multiplicationanddivision.

Keywords:

Thecalculator;AT89C51devices;LCDscreen

 

1绪论

1.1研究的意义

随着社会的不断发展和科技的不断进步,各式各样的电子新科技走进了我们的日常生活,让我们的生活变得越来越方便。

无论是生活还是学习,或者是娱乐消遣,我们都离不开电子产品。

之前体积庞大且功能又不健全的电子产品已不被现代社会所需要,如今体形乖巧且功能齐全的电子产品才受人们的青睐。

计算器成为人们工作和生活不可缺少的工具,人们能够通过使用它解决很多复杂的计算。

在各式各样的计算器当中,小型计算器凭借着其体积小、易携带等优点,成为人们理财和生意上的宝贝,给人们的生活带来了许多方便。

1.2国内外研究现状和发展趋势

1956年,在美国实验室发明了世界上第一台晶体管计算器,在传统的计算器基础上有了长足的发展,具有体积小、用电少、重量轻等优点,但是计算功能还需要改进。

目前,外国的计算器正朝着智能化、小体积方向发展。

随着社会的发展和科学技术的提高。

近些年来,我国的计算机也得到了快速发展。

但同时还存在一些问题,例如,成本比较高、扩展功能仍需改进,这就意味着我国的计算机还有较大的成长空间。

目前,市场上的计算器各式各样,形状千奇百怪,功能也更加完善。

总而言之,未来的计算机朝着小型化、轻便化等方向发展。

1.3节可行性分析

经济可行性:

成本低,易实行,性价比高,能够方便日常生活。

技术可行性:

应用C语言开发计算器,可以得心应手,为用户提供非常友好、易实行的用户界面、具有完整和强大的数据操作能力。

社会可行性:

计算器在生活的很多领域都需要。

2系统总体方案及硬件设计

2.1系统设计要求

(1)对计算器进行综述研究

(2)对计算器电路进行设计

(3)能够应用proteus软件对计算器原理图设计

(4)应用Keil软件进行软件编程并编译通过

(5)能利用proteus和keil一起进行仿真调试

2.2总体设计方案

该设计提供两个方案供选择,方案一:

以FPGA芯片为核心,和配有应有的硬件;方案二:

用AT89C51和相应的硬件来实现。

方案一:

选用FPGA控制

在1985年,Xilinx公司研制出第一个FPGA芯片。

FPGA之所以能够在电子领域中得到快速发展和应用,是因为其具有易于使用、较高的集成度、开发时间短等优点。

但由于SRAM编程的FPGA,其编程信息只能放在外部存储器上,另外,还需外部存储芯片,并且运行较麻烦,保密性不好,总之,采用FPGA设计简易计算器成本开支比较大,有点浪费,所以我们可以寻找其芯片替代它。

方案二:

选用AT89C51控制

单片机一般由CPU、存储器和I/O接口等组成。

这个简单的控制系统很容易由单片机和其他硬件组成。

单片机具有应用范围广泛、易于操作和使用、开支小等优点。

其中的AT89C51以MCS-51为核心,是单片机中最典型代表,被应用于各种控制领域。

经过两个方案的综合比较,我们从价格、可操作性等角度来考虑,该设计将采用以AT89C51单片机为核心构成计算器系统。

该设计通过单片机控制,对整个设计予以初始化,主要完成对键盘的响应、液晶显示等功能的控制,起到控制和保证各个功能模块之间正常工作的作用。

首先,单片机通过检测键盘,读取被使用者按下的相应的功能按键,然后,在单片机内部进行运算,最后,把运算的结果通过液晶屏幕显示出来。

该系统结构如图1所示:

图1系统结构框图

 

3系统仿真

3.1ProteusISIS简介

Proteus软件是由英国公司开发出来的。

在仿真图中,随时都可以按“运行”或“空格”键使电路被仿真。

通过Proteus软件学习,能够提高学生的创新和设计能力。

因此,Proteus得到了大力推广。

3.2Keil简介

Keil是由德国人研发出来的。

Keil可提供可视化Windows操作界面和大量的库函数以及多种编译工具,能够对大多数的单片机进行设计。

Keil不但能进行程序编写,而且可以直接对语言的设计和编译。

3.3Keil与Proteus联合仿真

1、Keil运行流程

Keil支持51系列的单片机的仿真,可通过系统设置生成51可执行的hex文件。

Keil编译界面进行编译之前先进行工程仿真配置,工程配置界面如图2所示,在 “Device”中进行CPU型号选择,本系统中选择Atmel公司的AT89C51,“Output”中选择“CreateHEX File”,以便生成AT89C51可执行的hex文件,以便加载到proteus中进行仿真,并且“Debug”中选择调试方式为proteus。

 

图2工程配置图

2、生成HEX文件步骤

(1)首先打开Keil软件,然后新建一个工程,在弹出的对话框中输入想要的项目名称,并保存。

(2)单击保存按钮,选择合适的芯片型号。

(3)选择文件菜单项,新建一个空白的文本编辑窗口,输入源程序,以“.c”为后缀的文件名称形式保存。

(4)将保存的“.c”源程序文件导入到SourceGroup1中。

(5)在Project选项下,生成HEX文件。

图3KEIL调试界面

3.4Proteus运行流程

(1)首先,在电脑里下载正确的软件版本,此软件主要是对硬件部分进行模拟。

(2)其次,进入软件后蓝色框内就是工作区域,可以在里面随意选择元器件,拖动元器件。

根据原理图进行正确的连线。

(3)再次,完成所有连接后,双击单片机把生成的HEX文件进行导入。

(4)最后,如果程序和连好的图都没有问题就可以进行仿真了。

3.5出现的问题和解决方法

在系统设计完成后进入调试阶段,往往并不能直接得到所要的结果,即很难做到一次性成功。

原因主要来自于硬件部分设计存在的问题和软件编程部分程序上的错误等。

首先,由于对单片机掌握并不十分熟练导致,对一些接口的功能理解没有十分透彻,因此在硬件连接时存在错误,经过查阅资料和与指导老师交流,反复修改,硬件问题得到了解决。

其次,在编程过程中,由于对C语言编写的不熟练,在编写过程中出现不少疑难,但经过反复查阅资料,认真理解,最终按照绘制好的程序流程图编写好了程序。

最后,在Proteus中绘制好电路图,检验无误后,给AT89C51加载.HEX程序文件,但并没有得到预期的结果。

(1)反复排查中,发现首先程序中有语句错误,经过KEIL的反复调试,排除程序中的语法错误。

(2)运行仿真,显示屏仍然无显示结果,经过反复检查调试,发现扫描顺序与显示屏引脚的连接顺序有不一致的情况。

于是,通过仔细分析,对设计做认真修改。

本章小结:

本章结合软硬件对整个系统进行了整体调试。

首先将自己编写的程序在KeilμVision2中进行编译,尽量发现并改正其错误的程序,然后,将编译最后生成的HEX文件写入单片机,得出了完整的调试结果,本部分不得不说是设计中最关键却又是最枯燥焦灼的部分,一定要静下心和端正好态度,仔细分析,坚持不懈才能成功发现问题,最终解决它们。

4系统硬件设计

4.1单片机概述

一般用简写MCU代表单片机,单片机通常由控制器,存储器,运算器等构成,和一台小的计算机没什么区别。

它具有轻质量、小体积、成本低等优点,这也为它的发展做了铺垫。

4.2AT89C51单片机简介

AT89C51是一种带4K字节FLASH存储器的微处理器,通俗的称为单片机。

在电路设计中,AT89C51被很多控制系统采用,因为其具有较高的灵活性和成本小等优点。

它的引脚如图4所示

 

图4AT89C51管脚图

4.2.1主要特性

与MCS-51兼容

4K字节可编程闪烁存储器

全静态工作:

0Hz-24Hz

三级程序存储器锁定

128*8位内部RAM

32可编程I/O线

5个中断源

4.2.2管脚说明

4.3复位电路

图5复位电路

一般当我们遇到单片机刚通上电、突然断电、电路发生故障等情况,之后,我们会对其进行复位,使单片机进行正常工作。

因此,想要灵活运用单片机就必须了解单片机的有关复位情况,例如:

复位电路的条件、复位电路的原理等。

单片机的复位条件是:

1、RST必须接上连续的两个机器周期2、RST必须接高电平。

电路将在RST的高电平后的第二个周期进行复位。

复位电路有两种,一种是通过按键复位即按键复位,另一种是通过上电进行复位即上电复位。

本设计用的是按键复位,因为比较方便,只要轻轻按下S键,就能轻松的实现复位功能。

4.4时钟电路

图6时钟电路

时钟电路的核心是个比较稳定的振荡器(一般都用晶体振荡器),振荡器所产生的是正弦波,频率不一定是电路工作的时钟频率,因此就要把这正弦波进行分频,处理,最后形成时钟脉冲,然后分配到需要的地方。

如果想让单片机工作在内部时钟模式上,首先,需要在XTAL1和XTAL2两端之间连接一个陶瓷振荡器或晶体振荡器,然后,在两端接两个一样大的电容,最后,再把两个电容接到地上;在电容的选用时,不是很随便的,电容器的最重要的作用就是帮助振荡器起振。

电容器容量的大小对振荡频率有轻微调控的作用,在电容的选用时,不是很随便的,它的值一般情况下大概是30pF,振荡的频率重点由石英晶振的频率确定,振荡电路的频率也就是晶体的固有频率。

图7单片机与复位、时钟电路连接电路图

4.5显示电路模块

4.5.1LCD液晶简介

液晶,通过名字我们就可以猜到,它不同于固态和液态这两种类别,是处于这两种类别之间的一种中间类别。

液晶是一种特殊的物质形态,由澳大利亚Reinitzer在1888年发现。

此后经过人类广泛的研究,液晶于20世纪50年代开始大规模使用,液晶显示器件在中国已有20多年的发展历史。

经过长期的研究,液晶显示器从刚开始的实验室的研究逐渐走向了产业部门的大批量生产。

液晶显示装置拥有很多优点,例如,独特的低电压、体积较小、微小的功耗、显示丰富、方便轻巧等优点,正是它具有了这些优势,才使它能够完美的和集成电路相结合,研发出一大批带有显示功能的电子产品。

这些电子产品不但丰富了人们日常生活而且也影响了整个社会。

例如,液晶显示的电子表为人们提供了准确时间,方便人们出行;电子计算器解决了计算复杂问题,为工作、生意提供了便利;总而言之,液晶在生产、生活的各个范围都可以看到。

4.5.2字符型液晶显示模块的基本特点

1.液晶显示屏是以点阵块组成的显示字符群。

2.主控制驱动IC为HD44780。

如:

NT3881NOVATEKKS0066SAMSUNGSPLC78A01SUNPLUS。

3.能够显示192种不同的字符,拥有发生器ROM。

4.拥有80个Byte的RAM。

5.标准的接口特性,适配M6800系列MPU的操作时序。

6.是个紧凑和轻便易于组装的模块。

7.单+5V电源供电。

8.具有寿命较长、功耗较低和高可靠性的优势。

4.5.3字符型接口特性及时序

图8点阵字符型液晶显示模块电路框图

引脚及功能

图9初始界面显示

(1)写操作

图10写操作时序图

(2)读操作

图11读操作时序图

4.6MM74C922芯片

为了更好的利用单片机I/O口资源,在系统中,我选择了MM74C922芯片。

在该设计中,MM74C922作用是对键盘的输入进行检测。

其引脚图如图12所示:

图12MM94C22引脚图

MM74C922引脚介绍:

MM74C922对各按键的作用如下表所示:

4.7键盘模块

 图13矩阵键盘布局图

图14矩阵键盘内部电路图

4.7.1单片机键盘简介

每一个按键都是利用行值和列值的组合来识别该按键的编码。

行线是利用利用两个并行接口来通信的,而列线是通过CPU来实现的。

键盘的其中一端是先连接电阻再连接到电源上,不同的是,接地是利用程序输出“0”完成的。

矩阵键盘的工作原理:

和直接法相比,矩阵式的键盘是比较繁琐的,识别方面也更也更有难度,每一条列线都要串连电阻接到正电源上,并把每一条行线所连接的单片机的I/O口当作输出端,另外,把列线所连接的I/O口当作输入端。

因此,当按键没有被按下时,整个输出端接的是高电位,表示没有键按下。

当行线输出是低电位,如果有键被按下,那么输入线将会被拉低,所以,只要知道读入输入线的状态就能判别有无按键被按下。

4.7.2键盘接口电路

如下图15所示,在仿真图中,键盘的行线A、B、C、D分别和MM74C922的X1、X2、X3、X4引脚相连;列线1、2、3、4分别和MM74C922的Y1、Y2、Y3、Y4引脚连接。

MM74C922的A、B、C、D和单片机的P2口连接,MM74C922的DA先接一个非门,再和单片机的/INT0相连。

MM74C922的KBM和OSC先

分别接两个电容,然后再接地。

图15键盘接口电路图

4.8电源模块

变压器后面的整流电路是用4个二极管组成的,整流后就得到了一个电压波动度非常大的直流电源,所以要在这里接一个100uF/25V的电解电容。

变压器输出端的电压经桥式整流,电容滤波,在电容C6两端大约会有高一点的电压,如果在电容两端接上负载,如果出现负载变化或者交流电源有波动情况,那么会对C6电压产生较大的影响,所以,当你想要一个稳定的电压源就必须要接上一个稳压器。

它是由若干电阻和三极管构成的一种集成电路元器件,在你研究电路的时候,可以把它当作是一个能够调节电阻大小的元件,如果经过负载的电流变大大,那么,其内部的电阻会变小,同样道理,如果电流变小,那么电阻就会变大。

只有这样才能够使电压更加稳定。

7805三端稳压集成电路有三个引脚,1号引脚是输入端,2号引脚是接地端,3号引脚是输出端。

通过7805的个位数字我们可以知道输出电压是5V。

TR1是电源变压器,通过TR1把220v交流电压转变为8v左右的交流电压。

再通过整流电路后,变为脉冲直流,然后通过电容进行滤波,滤波可以消除脉冲,但是输出的直流电压仍不稳定。

最后,通过稳压电路7805,使得电压的稳定性大大提高并把电压转变为5V,提供给单片机工作。

电路如图16所示:

图16交流220V转为直流5V电路图

附加功能说明:

DS18B20在该系统中起着测温的功能,在电路中把U5的2脚与单片机的13脚相连;DS1302为系统提供日历功能,把电路中将U6的5、6、7引脚分别与单片机的25、26、27引脚相连,同时,还要在U6的2脚、3脚之间接一个晶振。

图17DS18B20图18DS1302

5系统软件设计

5.1系统结构设计

本设计的主要功能模块:

1、按键模块。

2、LCD显示模块。

3、电源模块。

4、主模块单片机为系统提供初始化。

5.2键盘扫描设计

图19键扫描程序流程图

键盘输入部分程序设计

/**********键值转化为键盘上按键值函数*************/

chartranslate(intkeycode)

{

switch(keycode)

{

case0:

return'7';

break;

case1:

return'4';

break;

case2:

return'1';

break;

case3:

return'c';

break;

case4:

return'8';

break;

case5:

return'5';

break;

case6:

return'2';

break;

case7:

return'0';

break;

case8:

return'9';

break;

case9:

return'6';

break;

case10:

return'3';

break;

case11:

return'=';

break;

case12:

return'/';

break;

case13:

return'*';

break;

case14:

return'-';

break;

case15:

return'+';

break;

}

}

 

5.3LCD显示设计

图20显示程序流程图

LCD部分程序设计

/***********LCD写数据函数*************/

voidwrite_data(charddata)

{

RS=1;/*写指令*/

R_W=0;

EN=1;/*使能信号开*/

P1=ddata;/*将数据送入p1口*/

EN=0;/*使能信号关*/

check_BF();

}

/***********LCD写指令函数*************/

voidwrite_com(charcommand)

{

RS=0;/*写指令*/

R_W=0;

EN=1;/*使能信号开*/

P1=command;/*将数据送入p1口*/

EN=0;/*使能信号关*/

check_BF();

}

/**********LCD清屏函数**********/

voidclearLCD()

{

write_com(0x01);

}

5.4算术运算设计

图21算术运算程序设计流程图

算术运算程序设计

voidarithmetic()

{

if(iny)

{

switch(operators)

{

case1:

x=x+y;

num=x;

if(num<134217728&&num>-134217728)

{

display(num);

}

else

dataoverflow();

break;

case2:

x=x-y;

num=x;

if(num<134217728&&num>-134217728)

{

display(num);

}

else

dataoverflow();

break;

case3:

x=x*y;

num=x;

if(num<134217728&&num>-134217728)

{

display(num);

}

else

dataoverflow();

break;

case4:

if(y==0)

dealerror();

else

{

x=x/y;

num=x;

if(num<134217728&&num>-134217728)

{

display(num);

}

else

dataoverflow();

}

break;

}

y=0;

}

}

5.5总设计

图22系统总流程图

5.6Proteus功能仿真

加法运算

write_com(0x8f);//第一行显示

 

减法运算

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2