您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于STC89C52计算器设计程序已验证
目录1.引言…………………………………………………………….…………….…………….….11.1本设计的意义……………………………………………………………..…………...…...11.2本设计任务和主要内容…………………………….…………..…………..…………..…….22.硬件设计……………………………………………………………………..…………...…...22.1系统框图…………………………………….…………...……………………………..32.2最小系统…………………………………….……………………………………………..42.3矩阵键盘………………………………….….…...………………………………...52.4LCD1602硬件设计……………………….…………….………………………………........63.软件设计……………………….……..……..…………………………………...73.1矩阵键盘扫描原理……………….……..……..…………………………………...83.2LCD1602引脚功能时序图……..……..…………………………………...93.3计算器流程图……………………….……..……..…………………………………..104设计小结………….……..……..…………………………………………………………12参考文献…………………………………………………..……………………………….……14附录:课程设计程序清单…………………………………..………………………………..….15福建电力职业技术学院课程设计-《智能仪器》11.引言随着社会的发展,科学的进步,人们的生活水平在逐步地提高,尤其是微电子技术的发展犹如雨后春笋般的变化。电子产品的更新速度快就不足惊奇了。计算器在人们的日常中是比较常见的电子产品之一,如何使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,使其更好地为各个行业服务,成了如今电子领域重要的研究课题。现如今,人们的日常生活中已经离不开计算器了,社会的各个角落都有它的身影,比如商店、办公室、学校……因此设计一款简单实用的计算器会有很大的实际意义。本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好的基础。1.1本设计的意义计算器在人们的日常中是比较常见的电子产品之一,如何使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,使其更好地为各个行业服务,成了如今电子领域重要的研究课题。现如今,人们的日常生活中已经离不开计算器了,社会的各个角落都有它的身影,比如商店、办公室、学校……因此设计一款简单实用的计算器会有很大的实际意义。本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好的基础。如今可编程控制器是应用面最广、功能强大、使用方便的通用工业控制装置。人机界面的应用,实现了人机界面与现场互动,降低了集成难度,提高了系统的可靠性。1.2本设计任务和主要内容采用LCD1602液晶显示,其特点是:可以调节其背光亮度,这种显示方式接口,编程虽然有些麻烦,但管理较方便,占用的I/O口资源线也不多。在计算器运算中,需显示的数字、符号较多,按很据个方面的特点,而后可以发现LCD液晶显示,虽然在价格上的确是稍贵于LED数码管;但数码管在硬件设计电路中,会因线太多、线路复杂而过于繁琐,则舍弃LED数码管,选择LCD1602液晶显示。本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好福建电力职业技术学院课程设计-《智能仪器》2的基础。对字符液晶显示模块的工作原理,如初始化、清屏、显示、调用及外特性有较清楚的认识,并会使用LCD(液晶显示模块)实现计算结果的显示;掌握液晶显示模块的驱动和编程,设计LCD和单片机的接口电路,以及利用单片机对液晶显示模块的驱动和操作;在充分分析内部逻辑的概念,进行软件和调试,学会使用,并能够以其为平台设计出具有四则运算能力简易计算器的硬件电路和软件程。2.硬件设计2.1系统框图如图2.1.1所示,在该设计中采用STC89C52单片机作为核心处理器,因此在电路中首先需要设计的是STC89C52的最小系统。AT89S52单片机的最小系统电路包含以下几个部分。单片机供电电路:STC89C52需要5V供电,在电路图中的VCC和GNG为供电网络标识符;晶振电路电路:STC89C52需要一个稳定的振荡电路才能正常工作,在该电路中采用24MHZ的晶振作为STC89C52的时钟源;复位电路:复位电路是单片机正常运行的一个必要部分,复位电路应该保证单片机在上电瞬间进行一次有效的复位,在单片机正常工作时将RST引脚置低。此外通过一个按键进行手动复位,在单片机运行不正常时使用。图2.1.1系统框图2.2最小系统如图2.2.1所示STC89C52单片机概述:STC89C52是一个低功耗,高性能CMOS8位单片机,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。STC89C52具有如下特点:40个引脚,8k的flash存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单福建电力职业技术学院课程设计-《智能仪器》3片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。图2.2.1最小系统2.3矩阵键盘2.3.1独立按键与矩阵键盘区别计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会比较简单,但是会占用大量的IO口资源,因此在很多情况下都不采用这种方式。矩阵键盘扫描程序的优点在于,不用专门的按键延时程序,提高了CPU效率,也不用中断来扫描键盘,节省了硬件资源。此外,本键盘扫描程序每次扫描占用CPU时最短,不论有键按下或者无键按下都可以在很短的时间完成一次扫描。因为单片机上面的I/O口有限,所以本设计选用矩阵键盘节省I/O口最为合适。。2.3.2矩阵按键电路接口将矩阵键盘的接口接到单片机所对应的引脚(这里就是根据你的程序来接线了)。然后就是通过按下按键,松开。让所按得值显示在LCD1602液晶上面。在程序的里面输入计算器的头文件,还有一些必要的程序。则再通过矩阵键盘的按键就可以在LCD1602液晶上面显示简单的(两位数)加减乘除。2.4LCD1602硬件设计2.4.1LCD1602简介液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有福建电力职业技术学院课程设计-《智能仪器》4显示,这样即可以显示出图形。液晶显示器有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式计算机、数字摄像机、PDA移动通信工具等众多领域。LCD1602液晶显示器采用HD44780及其兼容芯片作为点阵式LCD的控制器驱动器,还采用HD44100进行LCD的时分割驱动。HD44780的内部结构主要包括显示数据RAM(DDRAM)、字符发生器ROM(CGROM)、字符发生器RAM(CGRAM)、指令寄存器IR、数据寄存器DR、地址计数器AC(AddressCounter)和忙标志BF(BusyFlag)等逻辑电路。1602液晶模块内部的控制器共有11条控制指令,丰富的指令可以完成液晶的时序控制、工作方式设置和数据显示等。2.4.2LCD1602与单片机接口根据LCD1602的引脚介绍,把LCD1602上的口对应的引脚接到单片机上面,然后把自己写好的程序烧到单片机里面,进行调试。(根据3.2的时序图来接线)我自己接线时候是将LCD1602焊接在一个电路板上,在上面添加个调节光度的可调电阻,让LCD1602的背光度随之发生变化。这里做一些补充下LCD1602可以显示一些数字,字母及温度等符号。图2.4.2LCD1602引脚图3.软件设计3.1矩阵键盘扫描原理福建电力职业技术学院课程设计-《智能仪器》5图3.1.1矩阵键盘输入P1.0P1.1P1.2P1.3=0,扫描P1.4P1.5P1.6P1.7判断高低平。逐行扫描P1.0=0P1.1P1.2P1.3=1扫描。逐行扫描P1.1=0P1.0P1.2P1.3=1扫描。逐行扫描P1.2=0P1.0P1.1P1.3=1扫描。逐行扫描P1.3=0P1.0P1.1P1.2=1扫描。依此类推如果扫出低电平,则读出按键。先复位使行线输出口全为0,给高四位低电平,使其处于列线读取状态。然后判断低四位电平状况,如果没有键被按下,则表示没有键被按下,如果有键按下的话,行线和列线的交点处就会被导通,就会出现电平变化。“0c/n”相当于计算器的复位键(清零),“+”就相当计算器的加,“-”就相当计算器的减,“*”就相当计算器的乘,“/”就相当计算器的除,“=”就相当计算器的结果。3.2LCD1602时序图1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明图3.2.1所示:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极福建电力职业技术学院课程设计-《智能仪器》6表3.2.1引脚接口说明表3.3计算器设计将程序烧到单片机之后,通过Keil进行调试,当然不是一烧到单片机就可以在LCD1602上面显示了,我自己之前也遇到过一些麻烦,不烦与大家分享下。首先,是你所写的内容是不是显示在LCD1602上面,如果没有显示出来,则可能是你所写的程序是不是所指定的地址错了。(一般是第一行是0x80,第二行是0xc0)还有计算器的输出的结果会跑到第一行去,这是因为你在主函数前没有先定义下,这样就行了。以下是本人自己对计算器制作的流程图。3.4计算器流程图如图所示3.4.1所示,是制作计算器大概的流程图,首先是判断是否有按键按下,如果有的话,则执行下一步,如果没有的没有的话则退到初始化。然后输入第一个数值,接着输入运算符,跟着就是输入第二数值,得出结果显示在LCD1602液晶上面。接着就是清零,为下一次的运算做好准备。编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极福建电力职业技术学院课程设计-《智能仪器》7图3.4.1计算器
本文标题:基于STC89C52计算器设计程序已验证
链接地址:https://www.777doc.com/doc-2304875 .html