版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要单片机的出现是计算机制造技术高速开展的产物,它是嵌入式控制系统的核心。如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。计算器的出现给我们的生活带来了巨大的便利,计算器在我们的生活中随处可见,也是我们日常生活中不可缺少的工具。本设计是基于51系列单片机来进展的数字计算器系统设计,可以完成计算器的键盘输入,进展加、减、乘、 除简单的根本四那么运算,并在LCD上显示相应的结果。设计电路采用AT89C51 单片机为主要控制电路,利用按键作为计算器的键盘的输入。显示采用字符LCD静态显示。软件方面使用C语言编程,并用PROTUE仿真。单片微型计算机简称单片机。它是在一块芯片
2、上集成中央处理器CPU、随机存取存储器RAM、只读存储器ROM、定时/计数器及I/O接口电路等 部件,构成一个完整的微型计算机。它的特点是:高性能,高速度,体积小,价 格低廉,稳定可靠,应用广泛。单片机比专用处理器最适合应用于嵌入式系统, 因此它得到了最多的应用。本文介绍了单片机的产生开展、功能特点、应用开发 等容。【关键词】简单计算器单片机 LCD 应用开展冃景近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控 制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时, 单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的
3、元器件本身的可靠性、系统本身各局部之间的相互耦合 因素等。其中系统的抗干扰性能是系统可靠性的重要指标。本设计采用80C51芯片,实现了利用单片机进展了一个简单计算器设计。 允许对输入数据进展加减乘除运算及LCD显示如果设计对象是更为复杂的计算器系统,其实际原理与方法与本设计根本一样。LCD液晶显示器是 LiquidCrystal Display的简称,LCD的构造是在两片平行的玻璃基板当中放置液晶盒, 下基板玻璃上设置TFT薄膜晶体管,上基板玻璃上设置彩色滤光片,通过 TFT 上的信号与电压改变来控制液晶分子的转动方向,从而到达控制每个像素点偏振 光出射与否而到达显示目的。现在LCD已经替代C
4、RT成为主流,价格也已经下降了很多,并已充分的普 及。故采用LCD设计的关键所在,必须非常熟悉单片机的原理与构造,同时还 要对整个设计流程有很好的把握,将单片机和其他模块完整的衔接。本设计是基 于51系列单片机来进展的数字计算器系统设计,可以完成计算器的键盘输入, 进展加、减、乘、除根本四那么运算,并在 LCD上显示相应的结果;设计电路采 用AT89C51单片机为主要控制电路,显示采用字符 LCD静态显示;软件方面使 用C语言编程,并用PROTUE仿真i。3 / 19目录摘要背景1绪论11.1设计的目的意义112设计的任务和要求11.3计算器设计所用的方法12. 方案设计22.1方案论述22.
5、2 方案论证33. 整体设计34. 硬件系统框架44.1 Lcd1602 显示器 44.2单片机64.3复位电路74.4按键电路75. 软件设计程序框图 85.1程序流程图85.2程序模块化编写95.3主函数程序设计106软件仿真与调试12126.1 Proteus仿真软件的介绍6.2 Proteus电路仿真图126.3软件调试136.4测试分析13总结14【参考文献】附录1. 绪论1.1设计的目的意义随着社会的开展,科学的进步,人们的生活水平在逐步的提高,尤其是微电 子技术的开展,犹如雨后春笋般的变化。电子产品的更新速度快就缺乏惊奇了 , 单片机的应用已经越来越贴近生活, 电子计算器在我们的
6、生活中随处可见, 给我 们的生活带来了巨大的便利,随着技术的不断更新,用单片机来实现一些电子设 计也变得容易起来。通过本次工程设计,应用所学相关知识资料,来完成简易计算器的设计,以 到达理论与实际更好相结合进一步提高综合运用所学知识和设计能力的目的。通过本次设计的训练,可以使我在根本思路和根本方法上对基于 51单片机的嵌入 式系统有一个比拟感性的认识,并具备一定程度的设计能力。12设计的任务和要求为了满足计算器的根本要求,可以根本的运算加减乘除,数据归零和出 错警告提示,我们采用基于单片机设计计算器,并用LCD字符液晶显示器显示数 据,4*4的矩阵键盘实现数据输入分别对键盘输入检测模块;LCD
7、显示模块;算术运算模块;按键处理及提示模块进展设计,并用设计了系统方框图,同时使 用了 KeiluVision4与Proteus软件进展了仿真分析其设计结果1.3计算器设计所用的方法 以单片机为控制器件,采用c语言进展程序设计,采用单片机智能控制,结合外围电子电路,可以进展“加、减、乘、除四那么运算。 使用单片机最小系统设计计算器系统,系统以单片机为主控单元, 借助Proteus软件,进展仿真,对设计原理、检测方法进展验证。 借助了 KeiluVision4软件对程序进展了调试和修改。在基于51单片机的开发板上进展了测试。2. 方案设计2.1方案论述方案一根据功能和指标要求,本系统选用 MCS
8、-51系列单片机AT89C51为主控机。通过 扩展必要的外围接口电路,实现对计算器的设计。计算器电路包括三个局部:显 示电路、4*4键扫描电路、单片机微控制电路。用七段数码管作为显示电路,矩 阵键盘作为输入电路。模块图如图1.1所示。图方案一模块图方案二根据计算器的功能要求,选择AT89C51为主控机,通过扩展必要的外围接口 电路,实现对计算器的设计。外部主要由4*4按键键盘和一个液晶显示屏构成,部由一块AT89C51单片机构成。计算器电路包括四个局部:选用LCD作为显示局部,键盘作为输入局部,运算模块,单片机控制局部。模块图如图2.2所示。图方案二模块图2.2 方案论证方案一:这种方案功能简
9、单,在生活中使用较少,缺乏实际于运用价值,用数码管显示,不能显示字符,所以不能显示运算过程。方案二:此种方案较为经济,方便,具有模块化的特点,因为将计算运算电路全部集成在了 51单片机上,具有高效率,运算功能强大。lcd1602字符 液晶显示器可以显示运算过程,便于计算,随着价格的下降,已经成 为了生活中计算器的主流配置。综上所述:所以我们小组采用方案二,采用 89C51单片机为运算处理模块,使用 lcd1602字符液晶显示器来做显示模块,矩阵键盘为输入模块,这种 设计便于观看,大大提升了我们使用计算器的便利度。3. 整体设计根据简易计算器的功能和指标要求,本设计系统选用 MCS-5係列单片机
10、 AT89C5伪主控机。通过扩展必要的外围接口电路,实现对简易计算器的设计。 计算器电路包括三个局部:显示电路、4*4按键电路、单片机微控制电路。具体设计如下:1由于要设计的是简单的计算器,可以进展四那么运算,为了得到较好的显示效果,采用lcd1602字符液晶显示器,显示数据和结果。2另外键盘包括数字键09、符号键+、-、X、十、.和等号键, 故只需要16只按键即可。3执行过程:开机显示零,等待键入数值,当键入数字,通过 LCD显示出 来,当键入+、-、*、/运算符,计算器在部执行数值转换和存储,并 等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会 在LCD上输出运算结果。4数据溢
11、出或出现错误,会进展出错提示。整体设计框图如下列图所示图1.3线路原理框图4硬件系统框架4.1Lcd1602 显示器4.1.1 LCD1602显示器LCD1602已很普遍了,具体介绍我就不多说了,市面上字符液晶绝大多数是 基于HD44780液晶芯片的,控制原理是完全一样的。字符型 LCD通常有14条引 脚线或16条引脚线的LCD多出来的2条线是背光电源线 VCC(15脚)和地线 GND(16脚),其控制原理与14脚的LCD完全一样。如下列图:引脚功能引脚号符号伏态功能11电源地2V*逻输电源3VO液品北功电源4RS寄疗務选择1;进第;0;再令5R AV输入读、写操作选拌I:空:0:写6E输凡化
12、能伯* - MDLS4O466tJI* 橙号NC)7三您数描总线LSB)金DB1三黑数拥总线0DB2=念10DB3二血数撫总线1HDB4三;&鮫期总线12B5三邀数据总线DB6三念14DB7三忽数切;总线MSJ)图引脚功能图液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进展控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模 集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式 电脑、数字摄像机、PDA移动通信工具等众多领域。的指令说明及时序1602液晶模块部的控制器共有11条控制指令,如下表所示:序号指令RSR/WD7D6D5D4D
13、3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM10要写的数据容11从CGRAM或DDRAM读数11读出的数据容4.14液晶显示模块液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块 的忙判别标志为低电平,表示不忙,否那么此指令失效。要显示字符时要先输入 显示字
14、符地址,也就是告诉模块在哪里显示字符,图是1602的部显示地址。16科2行00Oil020304050607OS| 090A00000EOF1027)4041142434445464748494A4C4D4E4F506?图4.1.41602LCD部显示地址4.2单片机AT89S52是一种低功耗、高性能CM0S8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。片上 Flash允许程序存储器在系统可编程,亦适于常 规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使AT89S51 为众多
15、嵌入式控制应用系统提供高灵活、更有效的解决方案。引脚构造如下列图(T2) P1.DC1 vcc(T2EX) P1.1C2 PCXP1-2C33C PCJ (ADI)P1.3C437 PC_2 (ADZ*FM.* 匚5 TC-3 (AD3)(MOSI:. P1.5 匚3 PO-4 (AIM)iMISO:iP1.©ET>4 PO 芒(ADSfc(SCKJP17CB33 PC e (AD IRSTC32 PC 7 (AD|.1031J EAj'z'Prrxnj pa.-i 口11汕 audRog丽币)P3.2匚122fi FE!-.;TTP F:L3 匚132B F*
16、2.7 iAIE(TO) P3.4 C1427 pi.e iAi-i'(T1 > P-3.5C15ze二 P2.6 (A13PM 匸ie Pi.4 (Al;-.RS:. F3.7E17卜 P2-3 (Al 11XTAL2CIS23 P2.2 (AID.XTAL1C1822 P2L1 (AD)GNDC2D21 F2.C i A Bl4.3复位电路当单片机工作于部时钟模式的时候,只需在XTAL1和XTAL2引脚连接一个晶 体振荡器或者瓷振荡器,并接两个电容后接地即可,在使用时对于电容的选择有 一定的要求:当外接晶体振荡器的时候,电容值一般选择 3= C2=30+10p或30-10pF
17、;当外接瓷振荡器的时候,电容值一般选择3= C2=40+10pF或 40-10pF;图4.3复位电路4.4按键电路在按键输入方面,我们采用4*4的矩阵键盘来实现,具体连接电路如图4.4所示。通过基于状态机的按键扫描程序设计可实现4*4矩阵键盘的按键监控。5.软件设计程序框图5.1程序流程图主流程图和算术运算流程图开始图5.1.1(1 )主流程图开始图5.1.1(2)算术运算流程键盘输入流程图图键盘输入流程图5.2程序模块化编写Keil uVision4是美国Keil Software公司出品的51系列兼容单片机C语言软件 开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、
18、 构造性、可读性、可维护性上有明显的优势,因而易学易用 ,而且大大的提高了 工作效率和工程开发周期程序采用模块化编写,分为了主程序模块、lcd1602显示模块、键盘程序模块和延时程序模块。如下列图所示:m uaurnunx 呵甲+ li Si 7 j " dldi d !_-1 A 5UG u (OK. .4.3 j.unfat Ij,I“ “V亦牙円 二十叶_ 曲;nkjr 託三亡; . -: r p,::.7 TfEnx 7匚個 tLnDlcileoclJ. aQlQ匕山&斗屯3”0Oiltirzcls ae"ie.ytp 口LJ r lZJhII J朋I伸A
19、U fFtiar-tIM嘶ZQlHN.h 酋 i«irk*5 h* M KWayJhJ卄鼻5bit t-eep-Pi '0: bit.Xcn»inia4 ohar :-n® j i«&Jf JIL*.址'. 14 Vbit rkmrX49i:fJLD&l: 4j,j £- D ;iswj 蓟胡 W euLLIhl電电胃酋心1:'帀r'*Dtla <lb> i/肛三骂于谢亡-=1U去粗LED_Cl«f |>¥和礴口LTDBr i«_St k log 1
20、5,0. Melcc ra m "戏卄 八互垢一氏億电,主踊巧中TSSfe此苗.笆.祈出左:1“ h艺三1 L£±l2fers' t x ioy I ? | 1. p-nrt,. I - 打写 LJ(二 F呛見】變 *DvlarMa-二口| =LOD_Clter|>>|叫0. 比血3alEjl#T,s:r-F i "号上.界迁AJ岂i年毎环中下冉上艺此嗚扈,祈口在IM.W巧入WFSTKl 11*SFWEWr 5WMD FM CHEtLXT FRdWg5X2£EiTT; 7PK TLEn=CEECK_BErJT? 1 HD3!
21、*工n呼三» AIeci “&£«*>%占 iilataO;FI»CBR9 VLl* frWB *"论Mf品丑示h铝. - iioiijTLmriifrJfi 品予汨tfl © Ex£de I aih 1 Parnlng is|»5.3主函数程序设计#include<reg52.h> /包含头文件,一般情况不需要改动,头文件包含特殊功能存放器的定义#include<stdio.h>#include"1602.h"#include"delay.h&q
22、uot;#include"keyboard.h"sbit beep=P2A0;sbit led=P2Al;/*主程序*/main()unsigned char num,i,sign;unsigned char temp16;/ 最大输入 16 个bit firstflag;float a=0,b=0;unsigned char s;LCD_lnit();/初始化液晶屏DelayMs(10);/延时用于稳定,可以去掉LCD_Clear();/ 清屏LCD_Write_String(0,0,"Wele to use!");/写入第一行信息,主循环中不再更改此
23、信息,所以在while之前写入LCD_Write_String(0,1,"cxk,wxx,zyc");/ 写入第二行信息,提示输入for(s=0;s<25;s+)延时 5sDelayMs(40);LCD_Clear();LCD_Write_String(0,0," LCD calculator");/写入第一行信息,主循环中不再更改此信息LCD_Write_String(0,1,"press butten."); / 写入第二行信息,提示输入while (1)num=KeyPro(); / 扫描键盘if(num!=0xff)/如
24、果扫描是按键有效值那么进展处理 beep=0; led=0;DelayMs(500);beep=1;led=1;if(i=0)/输入是第一个字符的时候需要把改行清空,方便观看LCD_Clear();if('+'=num)| (i=16) | ('-'=num) | ('x'=num)| ('/'=num) | ('='=num)输入数字最大值 16,输入符号表示输入完毕 i=0; if(firstflag=0)/如果是输入的第一个数据,赋值给a,并把标志位置1,到下一个数据输入时可以跳转赋值给 bsscanf(te
25、mp,"%f", &a);firstflag=1;else sscanf(temp,"%f",&b);for(s=0;s<16;s+) /赋值完成后把缓冲区清零,防止下次输入影响结果temps=O;LCD_Write_Char(0,1,num); /if(num!='=')/判断当前符号位并做相应处理sign=num;/如果不是等号记下标志位elsefirstflag=0;/检测到输入=号,判断上次读入的符合switch(sign)case '+':a=a+b;break;case '-
26、9;:a=a-b;break;case 'x':a=a*b;break;case '/':a=a/b;break;default:break;sprintf(temp,"%g",a); /输出浮点型,无用的 0不输出LCD_Write_String(1,1,temp); 显示到液晶屏sign=0;a=b=0;/用完后所有数据清零for(s=0;s<16;s+)temps=0;elseif(i<16)if(1=i)&& (temp0='0') )/如果第一个字符是 0,判读第二个字符 if(num=&
27、#39;.')/如果是小数点那么正常输入,光标位置加1 temp1='.'LCD_Write_Char(1,0,num); 输出数据i+;/这里没有判断连续按小数点,如else temp0=num; /如果是1-9数字,说明0没有用,那么直接替换第一位0LCD_Write_Char(0,0,num); 输出数据 else tempi=num;LCD_Write_Char(i,0,num); 输出数据i+;/输入数值累加6软件仿真与调试6.1Proteus仿真软件的介绍Proteus软件是英国Labcenter electronics公司出版的EDA工具软件该软件 中国总
28、代理为风标电子技术。它不仅具有其它EDA工具软件的仿真功能,还能 仿真单片机及外围器件。Proteus是世界上著名的EDA工具(仿真软件),从原理 图布图、代码调试到单片机与外围电路协同仿真, 一键切换到PCB设计,真正实 现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软 件和虚拟模型仿真软件三合一的设计平台。6.2 Proteus电路仿真图本设计选用AT89C51单片机为主控单元;显示局部:采用 LCD静态显示; 按键局部:采用4*4键盘,据有按键指示灯和提示声;读取输入的键值。总体设 计效果如下列图:f - 1 3 J J- t ? nJEMFlFlIHinlE
29、171; m h < mirfc EMO HUED FQ图6.2计算器的总体仿真图n” j F1JM JFEtCLCD cal culaU? press tutten.* 口muriowt 鬥沁6.3软件调试利用仿真软件PROTEUS勺仿真功能可以有效地检验所设计的原理图是否在 理论上正确合理。分别进展“加、减、乘、除计算,来进展测试。运行Proteus按下按键进展死那么计算,即可在显示器中观测到显示结果。在联机调试的过程中,一开场没有做数值溢出方面的控制,导致LCD显示的 输入数据或计算结果与实际不相符。后来经过计算得到有符号长整型的表示围为 -2147483648 2147483647为本计算器的最大表示围,以此来控制数值溢出。加法计算减法计算65+=745685 29199 m1-1-I F-T- I-I-1" I- h I孙卜图6.3测试过程6.4测试分析 优点:通过仿真测试,我们发现,我们编写的计算机 c语言程序,只要在程序里修改端 口,键盘可以接在单片机的任意I/O 口,进展输入;利用LCD16
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年青阳县招教考试备考题库附答案解析(夺冠)
- 2024年青海民族大学马克思主义基本原理概论期末考试题及答案解析(夺冠)
- 2025年平罗县招教考试备考题库带答案解析(夺冠)
- 2025年滑县幼儿园教师招教考试备考题库含答案解析(必刷)
- 2025年内蒙古化工职业学院马克思主义基本原理概论期末考试模拟题附答案解析
- 2025年婺源县幼儿园教师招教考试备考题库含答案解析(夺冠)
- 2025年类乌齐县招教考试备考题库含答案解析(必刷)
- 2025年通化师范学院马克思主义基本原理概论期末考试模拟题含答案解析(夺冠)
- 2024年萨嘎县幼儿园教师招教考试备考题库带答案解析
- 2025年星子县招教考试备考题库含答案解析(必刷)
- 上海市历年中考语文现代文之议论文阅读6篇(含答案)(2003-2022)
- 烟气脱硝装置安装单位工程质量验收表
- AQ 1046-2007 地勘时期煤层瓦斯含量测定方法(正式版)
- 软装配饰合同范本
- 苏教版三年级下册数学计算能手1000题带答案
- 新媒体艺术的发展历程及艺术特征
- 依法行医教学课件
- 《日语零基础学习》课件
- 讲课学生数学学习成就
- 西葫芦栽培技术要点
- 高中学生学籍表模板(范本)
评论
0/150
提交评论