您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于STC89C52单片机的简易计算器
基于STC89C52单片机的简易计算器目录内容摘要...........................................2关键词.............................................2ABSTRACT...........................................21绪论.............................................22系统设计.........................................................42.1设计任务与要求.....................................42.2总体设计方案......................................53系统硬件设计.....................................................63.1控制器模块..........................................................63.2按键模块............................................................73.3时钟日期模块........................................................93.4液晶显示屏显示模块.................................................123.5硬件元件清单.......................................................1314软件设计与仿真...................................134.1主程序设计.........................................................154.2仿真结果...........................................................184.3系统调试...........................................................195参考文献........................................192内容摘要:该计算器以STC89C52单片机为核心控制芯片,实现了简单的加、减、乘、除功能,采取的是键盘输入和液晶显示屏的输出结果显示。主要硬件构成部分由五个:一个STC89C52单片机芯片,一个液晶显示屏(LCD),一个4*4矩阵键盘和一个时钟芯片(DS1302)一个蜂鸣器,可以实现8位的整数数值操作计算。附加时钟显示的功能。关键词:单片机STC89C52液晶显示屏LCD时钟芯片DS1302Abstract:ThecalculatorwithSTC89C52singlechipasthecorecontrolchip,therealizationofasimpleaddition,subtraction,multiplication,inadditiontofunction,istakenbythekeyboardinputandliquidcrystaldisplayoutputThedesigh.istakenbythekeyboardinputandliquidcrystaldisplayoutput.Themainhardwarecomponentsfromfive:aSTC89C52chip,aliquidcrystaldisplay(LCD),a4x4matrixkeyboardandaclockchip(DS1302)abuzzer,canachievea8bitintegernumericaloperationcalculation.Additionalclockdisplayfunction.Keywords:ThesinglechipcomputerSTC89C52Liquidcrystaldisplay(LCD)LEDtheClockDS1302chip1.绪论:单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。3单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可,用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。单片机比专用处理器最适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多2系统设计42.系统设计:2.1设计任务与要求2.1.1设计任务(1)设计一个单片机控制的计算器,实现四则运算;(2)在设计过程中,设计的电路用仿真软件(Proteus)进行仿真调试;(3)增加一个时间显示功能。2.1.2设计要求(1)实现八位数整数的加、减、乘、除四则运算;(2)附加一时间日期显示功能;2.2总体设计方案2.2.1硬件部分设计方案(1)单片机部分单片机以AT89C52来作为核心元器件。(2)按键部分方案一:采用4*4行列式键盘,分别设定数字键和功能键,采用查询方式,每次有键按下时,先判断是实数字键还是功能键,这种方式采用了大量的I/O口线。方案二:采用独立式按键,独立式按键借口电路配置灵活,软件结构简单,但此键盘比较昂贵不经济。虽然采用独立式按键时每个按键只占用一根I/O口线,在本实验中根据实际的需要采用通过四个按键即只占用四个I/O口线,而如果采用4*4行列式键盘时占用8个I/O口线,但方5案二比较不经济所以我们采用一方案。(3)显示部分在单片机应用系统中,使用的显示器主要有LED(发光二极管显示器)、LCD液晶显示。方案一:使用8位LED数码管来显示,LED显示器是由发光二极管显示字段组成的显示器件,在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极和共阳极两种,它具有成本低廉、配置灵活和单片机接口方便等特点。方案二:使用液晶显示器来显示。液晶是介于固态和液态间的有机化合物,将其加热会变成透明液态,冷却后变成结晶的浑浊固态。在电机的作用下,产生冷热变化,从而影响它的透光性,来达到显示的目的。LCD还具有以下优点:(1)低压、微功耗;(2)显示信息量大;(3)长寿命;(4)无辐射、无污染。选择液晶显示屏。2.2.2软件部分设计方案软件部分的设计思路时将整个程序划分为键盘扫描部分、显示部分、运算程序部分、清屏显示部分,时钟日期显示部分。对于其中的键盘扫描部分在编写时又分为动态扫描和静态扫描;运算程序部分包括加、减、乘、除四个子程序。软件流程大致如下:开始,然后是系统的初始化,进行键盘扫描,对扫描的键值进行判断(分为数字键和功能键),如果是数字键,执行数字处理子程序,即显示数字并将数值存储;如果是命令键,即先判断是否为清屏,如为清屏键,则执行清屏子程序,若为加减乘除运算键则显示相应的符号并存储结果,若都不是则为=键,即要先判断上个符号位,然后调用对应的运算子程序运算,就可以得到需要的结果。63系统硬件设计:3.1控制器模块本系统控制器芯片采用AT89S52单片机,其管脚图如图3所示。图①AT89S52管脚图STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。STC89C52的主要特性是:与MCS-51单片机产品兼容;8K字节在系统可编程Flash存储器;1000次擦写周期;三级加密程序存储器;32个可编程I/O口线;三个16位定时器/计数器;8个中断7源;全双工UAR串行通道;低功耗空闲和掉电模式;掉电后中断可唤醒;有看门狗定时器;双数据指针。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。3.2按键模块采用4x4键盘与单片机的P1口相连,连接电路如图4所示。*设为复位键,按下时,清零,液晶显示为0。图○2按键电路8图③按键电路流程图开始扫描键盘是否有键按下是否为等号计算并显示最终结果结束是否为计算符读进内存之前是否有计算符先计算显示暂时的结果读进内存并调用显示程序YYYYNNNN9按键子程序#includekeyscan.h#include1602.huint8linescan[4]={0xfe,0xfd,0xfb,0xf7};//列扫描//按键扫描函数int8keyscan(){uint8i,temp;int8keyvalue=-1;for(i=0;i4;i++){P1=linescan[i];temp=P1&0xf0;if(temp!=0xf0){delay(50);if(temp!=0xf0){switch(temp){case0xe0:keyvalue=0+i;break;case0xd0:keyvalue=4+i;break;case0xb0:keyvalue=8+i;break;case0x70:keyvalue=12+i;break;}}}while(temp!=0xf0){temp=P1&0xf0;}3.3时钟日期模块DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚分配如图1所示及内10部结构如图2所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。图④时钟电路时钟日期子程序#include1302.huint8time[7]={0,18,8,4,1,3,12};//秒分时
本文标题:基于STC89C52单片机的简易计算器
链接地址:https://www.777doc.com/doc-3565130 .html