单片机课程设计报告多功能电子计算器设计毕业设计论_第1页
单片机课程设计报告多功能电子计算器设计毕业设计论_第2页
单片机课程设计报告多功能电子计算器设计毕业设计论_第3页
单片机课程设计报告多功能电子计算器设计毕业设计论_第4页
单片机课程设计报告多功能电子计算器设计毕业设计论_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、韶 关 学 院课程设计论文题 目:多功能电子计算器设计学生姓名:学 号:系(院):专 业:电子信息科学与技术班 级: 指导教师姓名及职称: 讲师 助理实验师 起止时间: 2015 年 9 月 2015 年 12 月多功能电子计算器设计摘要:本设计是实现一个有四则运算及函数运算的多功能计算器。它的硬件部分主要包括:一个stc89c52rc单片机芯片,一块lcd12864液晶显示屏,一个4*4的矩阵键盘,外加3个设置按键。以stc89c52rc单片机为核心控制电路,lcd12864液晶显示屏负责显示输入输出数据,4*4矩阵键盘与3个功能按键完成电路的键入操作部分,来实现计算器的多功能。电路简单,功

2、能丰富。软件部分采用c语言编写,除了实现了8位正整数的加、减、乘、除基本的四则运算,还附有“sin”、“cos”、“tan”、“平方”、“开方”、“二进制转十进制”、“十进制转二进制”、“十进制转十六进制”8个常用数学函数运算。这样一个简易的计算器实现了多功能,比较实用和方便。关键字:多功能;计算器;单片机;c语言design of multifunctional electronic calculatorabstract: this design is to achieve a four operation and function of the multi-function calcula

3、tor. its hardware part mainly includes: a stc89c52rc chip, a lcd12864 lcd screen, a 4*4 matrix keyboard, plus 3 buttons. stc89c52rc microcontroller as the core control circuit, lcd12864 lcd screen is responsible for the display of input and output data, 4*4 matrix keyboard and 3 functional keys to c

4、omplete the input of the circuit part, to achieve the function of the calculator. circuit is simple, the function is rich.part of the software using c language, in addition to achieve the 8-bit is an integer add, subtract, multiply, in addition to the four basic operations, accompanied by sin, cos,

5、tan, square, root, binary to decimal, decimal to binary , decimal system turn hexadecimal eight commonly used mathematical functions computing. such a simple calculator to achieve more features, more practical and convenient.key words: multi function; calculator; single chip microcomputer; c languag

6、e目录目 录1 绪论11.1 概述11.2 项目设计的具体功能12 系统设计的硬件方案12.1 硬件方案的论证22.1.1 方案一:采用fpga控制22.1.2 方案二:采用stc89c52控制22.1.3 方案的比较与选择22.2 系统设计总框图22.3 单元电路的设计与分析32.3.1 单片机电路板的设计与分析32.3.2 键盘模块电路42.3.3 lcd12864液晶显示模块电路42.3 硬件方案小结53 系统设计的软件方案53.1 系统总体设计方案53.2 单元模块的软件设计63.2.1 矩阵键盘扫描63.2.2 显示部分的软件设计73.3 软件设计小结104 系统调试104.1 硬件

7、系统的调试104.2 软件系统的调试114.3 整机调试115 总结12参考文献14附录15附录a:电路原理图15附录b:pcb电路板图15附录c:实物照片16多功能电子计算器设计1 绪论 计算器的出现为我们带来许多便捷,日常生活中的计算已经少不了它。如今运用我们所学知识,也能够做出简单的计算器。本文便是讲述了如何使用所学来设计一个计算器。1.1 概述随着科技的日益更新,嵌入式系统与我们的生活愈发息息相关,一些能够使用单片机完成的工具也频繁出现于日常生活中,比如计算器。计算器是现代人发明的可以进行数字运算的电子机器。电子计算器功能简便,价格便宜,利于携带,稳定性好。1.2 项目设计的具体功能该

8、设计实现了8位正整数的加、减、乘、除基本运算功能,另有三角函数运算、平方运算、开方运算、二进制转十进制功能、十进制转二进制功能、十进制转十六进制功能。2 系统设计的硬件方案设计一款计算器的方法很多,在此,在了解计算器各部分组成之后,列出方案,进行对比,选择出最合适的一种方案。2.1 硬件方案的论证2.1.1 方案一:采用fpga控制fpga是一种高密度的可编程逻辑器件,自从xilinx公司1985年推出第一片fpga以来,fpga的集成密度和性能提高很快,其集成密度最高达500万门/片以上,系统性能可达200mhz。由于fpga器件集成度高,方便易用,开发和上市周期短,在数字设计和电子生产中得

9、到迅速普及和应用,并一度在高密度的可编程逻辑器件领域中独占鳌头。 但是而基于sram编程的fpga,其编程信息需存放在外部存储器上 ,需外部存储器芯片 ,且使用方法复杂 ,保密性差,而其对于一个简单的计算器而言,实用fpga有点大材小用,成本太高。2.1.2 方案二:采用stc89c52控制单片机是单片微型机的简称,故又称为微控制器mcu(micro control unit)。通常由单块集成电路芯片组成,内部包含有计算机的基本功能部件:中央处理器cpu,存储器和i/o接口电路等。因此,单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机广泛用于智能产品,智能仪表,测控技

10、术,智能接口等,具有操作简单,实用方便,价格便宜等优点,而其中at89s52以mcs-51为内核,是单片机中最典型的代表,应用于各种控制领域。2.1.3 方案的比较与选择通过以上两种方案论证和对比,从设计的实用性,方便性和成本出发,选择了以stc89c52单片机作为核心控制单元进行对计算器的设计。2.2 系统设计总框图该计算器设计主要由stc89c52单片机核心控制器,4x4矩阵键盘,12864液晶显示器等组成,它的系统框图如图2.1所示。图2.12.3 单元电路的设计与分析2.3.1 单片机电路板的设计与分析为了使stc89c52单片机正常稳定工作,除了电源供电(带有usb电源接入与dc电源

11、接入)、复位按键外,还需要提供晶振电路、旁路电容滤波电路,另附上电源指示灯。具体电路如下。图2.2由图2.2可知,9脚外接的是按键复位电路,18、19脚外接的是晶振电路,这样,就构成了单片机正常工作的必备电路。同时,为使p0口正常工作,并增加其带负载能力,p0口需接了上拉电阻。图中ea为程序存储器选择端,如cpu需要访问外部程序存储器,ea端须保持低电平(接地)。在此,stc89c52单片机的程序存储器有8k,已经足够,不需要另外添加外部程序储存器,故ea接高电平。2.3.2 键盘模块电路键盘电路用来实现人的运算表达式输入,达到人机交流的作用。该电路如图2.3所示,共18个按键,其中k1k16

12、共16个按键组成一组4*4的矩阵键盘,行线1-4行分别接在p2.0p2.3口,列线1-4列分别接在p2.4p2.7口,如此实现p2口对4*4的矩阵键盘的接线。此外,为了方便,另外增加了2个独立按键s1,s2。他们分别接在p3.2和p3.3口。图2.32.3.3 lcd12864液晶显示模块电路lcd是本次设计的重要组成部分之一,主要用于显示输入和输出。液晶显示电路电路如图2.4所示,lcd数据端与单片机p0口相连,控制端与p1.0p1.2连接,电位器用于调节对比度。图2.42.3 硬件方案小结本章主要介绍了计算器各个主要硬件模块,包括:单片机mcu模块,液晶显示模块,键盘电路,以及一些扩展方面

13、的设计方案。3 系统设计的软件方案软件编程平台选择最常用的keil软件。由于该程序并未涉及到底层的驱动问题,因此选择方便快捷的c语言编程。以下重点介绍核心程序算法设计。3.1 系统总体设计方案在编程中,为了方便调试,所以采用了模块化设计。该程序主要分为四个模块:延时模块、12864液晶显示模块、按键控制与处理计算函数表达式的模块、主函数模块。其中按键控制与处理计算函数表达式的模块又分为五个子模块:start(开始)、one(第一个数输入)、two(第二个数输入)、control(特殊功能模块)、answer(运算处理模块)。从start开始进行初始化,自动进入one,输入第一个数并按下相应的特

14、殊功能键触发来进入下一个环节。如果按下加减乘除功能键,进入two,再按下p3.2等号功能按键进入answer;如果按下p3.3特殊功能转换键,进入contorl,再按下相应的功能键进入answer。3.2 单元模块的软件设计3.2.1 矩阵键盘扫描矩阵键盘扫描程序,先读出p2的低四位,后读出p2口的高四位,利用一个switch语句及变量确定某种功能,接着该按键功能会赋值(每个功能分别有属于自己特殊的值)到一个变量上,最后将变量传输给单片机,由单片机进行对该功能的作具体操作。读键程序使用的是扫描法读键,不管键盘矩阵的规模大小,均进行两层读键。第一层扫描行线,从p2口的值读入键盘信息(行信息),扫

15、到某位为低电平则进入第二层;第二层扫描列线,从p2口的值读入键盘信息(列信息),扫到某位为低电平,即可确认按键位置。独立键盘只需要按下能出现低电平即出现按键,确认判断即可。部分相关代码如下:p2=0xfe;if(p2!=0xfe)delay_ms(40);if(p2!=0xfe)switch(p2&0xf0)case 0xe0:; break;case 0xd0:; break;case 0xb0:; break;case 0x70:; break; if(p2!=0xfe) delay_ms(30); while(p2!=0xfe);3.2.2 显示部分的软件设计显示模块程序首先要初始化显示

16、模块,其次要能控制光标位置。用sbit指令定义液晶显示的控制端口,之后设置初始化、清屏、读写操作、显示位置的首地址等函数。部分相关代码如下:/*lcd 128*64 控制脚*/sbit lcd_rs = p10;sbit lcd_rw = p11;sbit lcd_en = p12;/*读忙*/void read_busy()lcd_data = 0x00;lcd_rs = 0;lcd_rw = 1;lcd_en = 1;while(lcd_data&0x00);lcd_en = 0;/*写指令*/void lcd_write_cmd(uchar cmd)read_busy(); /每次读写进

17、行忙判断lcd_rs = 0;lcd_rw = 0;lcd_data = cmd;lcd_en = 1; /en由10锁存有效数据delay100us();lcd_en = 0;/*写数据*/void lcd_write_dat(uchar dat)read_busy(); /每次读写进行忙判断lcd_rs = 1;lcd_rw = 0;lcd_data = dat;lcd_en = 1;delay100us();lcd_en = 0;/*读数据*/uchar lcd_read_dat(void)uchar dat; /定义变量必须放在函数首位read_busy(); /每次读写进行忙判断lc

18、d_data = 0xff;lcd_rs = 1;lcd_rw = 1;lcd_en = 1;dat=lcd_data;lcd_en = 0;return(dat);/*清屏*/void lcd_clearscreen()lcd_write_cmd(0x01); /显示清屏delay100us();/*初始化*/void lcd_init(void)lcd_write_cmd(0x30); /功能设置,一次送8位数据,基本指令集lcd_write_cmd(0x0c); /整理显示,游标off,游标位置offlcd_write_cmd(0x01); /清除ddramlcd_write_cmd(0

19、x02); /ddram地址归位lcd_write_cmd(0x80); /设定ddram7位地址000,0000到aclcd_clearscreen();/*设置汉字 x,y坐标*/void lcd_setxy(uchar x,uchar y)switch(y)case 1:lcd_write_cmd(0x80|x);break;case 2:lcd_write_cmd(0x90|x);break;case 3:lcd_write_cmd(0x88|x);break;case 4:lcd_write_cmd(0x98|x);break;3.3 软件设计小结本章主要介绍计算器各个软件模块详细的

20、运行流程以及设计方案。采用c语言程序设计以及模块化设计,都使这些程序更加清晰条理。4 系统调试4.1 硬件系统的调试对硬件的测试主要由以下步骤:pcb板检查。用万用表测试电路板是否存在短路或者断路甚至是虚焊,短路则用美工刀分开,断路则补上锡,虚焊则重新焊一次。之后再用万用表测一次,确保无误后再进行下一个步骤。电源检查。上电通过万用表测试各电源输出值是否正常,或者观察电源指示灯是否正常点亮。去掉板上各电源输出的0r电阻,串万用表测试电流(万用表打到电流档,表笔测量为电流输出档),记录此时各电源负载的工作状态和电源的输出电流,再查芯片数据手册对比是否正常。主芯片检查。主芯片供电正常后,可调试其最小

21、系统外围电路。这个环节容易出问题的就是复位电路工作不正常,主芯片某些引脚虚焊。主芯片的系统配置正确与否暂时不会影响到芯片是否工作,可以最后检查。用万用表测量外部晶振脚的电压,如果显示在2v附近,说明晶振起振了。测量复位信号电压是否满足设计要求,上电复位时间是否满足要求;ea脚检查。用万用表测量ea上电平,如果是5v则表明烧片子运行的硬件条件已经满足了。串口通信调试。可提供串口调试的主芯片,需先调试好串口,再进行主芯片其他接口的调试,以便实时打印串口信息,确认程序编写是否有问题。4.2 软件系统的调试单击仿真工具中的暂停按钮,调出源码调试窗口,窗口右上角提供多个调试按钮。修改程序至编译后显示cr

22、eating hex file from 单片机测试.0 error(成功创建hex文件,0个错误)为止。由于stc89c52芯片的内部存储只有8k,所以还要确保code值不超过8192,否则程序需要优化才能成功烧录。4.3 整机调试开机运行后,各按键如图4.1所示。其中09为数字按键;“”“”“*”“/”为运算符号;图4.1按下功能切换按键后,其中有sin函数,cos函数,tan函数,平方函数,开方函数,十进制转十六进制功能(dx),十进制转二进制功能(db),二进制转十进制功能(bd),函数功能按键如图4.2所示。图4.2烧录程序后,尝试运行,看是否正常。图4.3是抽取随机数值进行测试结果:图4.3经过测试,功能暂未发现异常。5 总结本次课程设计是多功能电子计算器设计。它相比以往的课程设计仅考核了我们硬件技术,还考验了我们的软件编程能力,有着更上一层的要求。有着经过几次课程设计之后积累的经验,设计原理图、pcb图,不会向以往那么迷糊。遇到知识空白区会自己主动在网上查阅资料。整一个硬件流程没有遇到过多的问题。主要问题仅出现在于蜂鸣器。由于使用了5v的有源蜂鸣器,导致蜂鸣器所发出的声音过小;换成3.3v的蜂鸣器就能正常鸣叫。发现还有一种方法,就是在p1.6口(控制蜂鸣器的mcu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论