欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    毕业设计(论文)基于单片机的简易计算器的设计.doc

    • 资源ID:3981062       资源大小:3.79MB        全文页数:48页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计(论文)基于单片机的简易计算器的设计.doc

    基于单片机的简易计算器的设计摘 要 单片机是采用超大规模集成电路技术,把一台计算机的主要部件集成在一个芯片上所构成的一种集成电路芯片,因此单片机被称为单片微型计算机。由于单片机体积小、价格低、可靠性高、适用面宽以及有其本身的指令系统等诸多优势,在各个领域、各个行业都得到了广泛应用。很多大专、本科院校都开设了关于单片机原理与应用方面的课程。本设计就是依据单片机的原理来进行简易计算器的设计的,设计采用了STC89C52RC单片机作为计算器的主控制器,TC1602液晶作为显示器,4×4矩阵键盘作为输入按键,通过软硬件相结合,来实现整数的“加”、“减”、“乘”、“除”运算。并在计算器顺利完成的基础上,对系统进行了简单的扩展,增加了电子表功能,使系统完善化和多功能化。关键词: 单片机,计算器,运算,扩展 ABSTRACTSCM is a integrated circuit chips that integrated the main cmponents of a computer in a chip by using the large scale integrated circuit technology.So the SCM is called the single chip computer. In various fields, SCM has been widely used for its small size, low price, high reliability, and wide application etc. Many college and universities opened the courses about the principle and application of SCM.The design is a simple calculato that based on the principle of SCM. The chip of STC89C52RC is the main controller of the calculator and the display is TC1602LCD in my design, the keyboard of 4 × 4 matrix is used as input keys, With the combination of hardware and software, it can achieve the integer to plus, reduction, multiplication, division. on the basis of the successful completion, the design can expand the system and make it perfect and multi-functional. Key Words:MCS Calculator Operation Expand 目 录1. 绪论11.1课题简介11.2设计目的11.3设计任务22. 课题背景32.1单片机的发展现状32.2 STC89系列单片机的简介42.3计算器的总体功能描述83. 计算器的硬件系统设计93.1计算器的硬件系统框架93.2最小系统的设计103.3键盘接口电路的设计123.4显示电路的设计133.5 DS1302实时时钟电路的设计153.6计算器的硬件电路原理图174. 计算器的软件系统设计184.1主模块程序的设计184.2键盘扫描模块程序的设计194.3运算模块程序的设计214.4显示模块程序的设计234. 5 DS1302实时时钟模块程序的设计245. 计算器系统的组装与调试265.1软件系统的调试与仿真265.2硬件系统的组装与调试27总 结30参考文献31答 谢32附录一331. 绪论1.1课题简介近年来,随着社会的不断发展与进步,人民生活水平、物质水平的不断提高,各种各样的电子产品走进了家家户户,为我们的生活、学习、工作、娱乐提供了各种各样的便利。其中,计算器作为一种操作简便、运算快速、正确率高、便于携带的计算工具而被广泛使用,成为了我们最亲密的伙伴之一。单片机也被称为“单片微型计算机”、“微控制器”、“嵌入式微控制器”等。目前,单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域,许多本科、大专院校、职业培训学校,都开设了单片机原理与应用这方面的课程。这是一门技术性和实践性很强的学科,学习它研究它不论对我们自身还是社会都具有重大的意义。本设计就是依据单片机的原理来进行的设计,它采用了51单片机作为计算器的主控制器,加上必要的外围扩展,通过软硬件的相结合,来实现整数的“加”、“减”、“乘”、“除”运算。1.2设计目的本文设计的计算器看似简单,没有创新性,但是它不仅需要运用我所学过的关于单片机的知识,并且需要查阅大量的资料,这可以进一步提升我对单片机的认识。而且亲自动手设计与制作可以对硬件的结构和功能有全新的认识,以达到理论与实践更好的结合,进一步提高综合运用所学知识进行设计的能力,这是对本人大学四年的学习的检验,具有重要的意义。1.3设计任务本设计主要通过单片机的原理和应用,以电子技术基础的基本理论为指导,利用Protues仿真软件和eil编程软件来设计简易计算器,并制作实物。其主要设计要求有:1、对计算器硬件系统的设计;2、运用keil进行计算器软件系统的设计;3、在protues仿真平台上,对软件进行调试及仿真;4、计算器实物的焊接; 5、软硬件结合之后,进行整体电路的调试与测试。2. 课题背景2.1单片机的发展现状单片机是采用超大规模集成电路技术,把一台计算机的主要部件集成在一个芯片上所构成的一种集成电路芯片,因此单片机被称为单片微型计算机(SCM)。其主要组成部分有中央处理器(CPU)、存储器(RAM和ROM)、基本I/O端口以及定时器/计数器等部件,并具有独立的指令系统。由于单片机体积小、价格低、可靠性高、适用面宽以及有其本身的指令系统等诸多优势,在各个领域、各个行业都得到了广泛应用。单片机的发展大致可归纳为四个阶段。1、第一阶段(19761980):低性能单片机探索阶段。该阶段是以较简单的8位低档单片机为主,将原有的单板机功能集成在一块芯片上,该芯片具有原来单板机的功能。其主要代表芯片为Intel公司的MCS-48系列,该系列芯片内集成了8位CPU、并行口I/O接口、8位定时器/计数器,寻址范围为4KB,没有串行通信接口。2、第二阶段(19801983):高性能单片机发展阶段。这一阶段仍以8位机为主,主要增加了串行口、多级中断处理系统、16位定时器/计数器,除片内RAM、ROM容量加大外,片外寻址范围达64KB。这一阶段的单片机以Intel公司的MCS-51系列、Motorla公司的6801系列和Zilong公司的Z8系列为代表。3、第三阶段(19831990):高性能的16位单片机发展阶段。这一阶段的单片机性能更加完善,主频速率提高,运算速度加快,具有很强的实时处理能力,更加适用于速度快、精度高、响应及时的应用场合。其主要代表为Intel公司的MCS-96系列。4、第四阶段(1990至今):微控制器的全面发展阶段。各公司的产品在尽量兼容的同时,出现了高速、强运算能力,寻址范围更大的8位、16位、32位通用型单片机,以及小型廉价的专用型单片机。随着微电子技术的不断发展,单片机正朝着高集成度、低能耗、低电压、多功能的方向发展。12.2 STC89系列单片机的简介MCS-51单片机是由美国的Intel公司开发研制的。该系列单片机以其优越的性能、成熟的技术及高可靠性和高性价比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。正因为其优越的性能和完善的结构,导致后来许多单片机生产商多沿用或参考了其体系结构。像Atmel、Philips、Dallas等著名的半导体公司都推出了兼容MCS-51的单片机产品。这些著名厂商的加盟使51系列单片机获得了飞速发展,进一步丰富和发展了51系列单片机,产品性能得到了很大提升。2在这里我们要介绍的是由美国研发,台湾公司生产的STC89系列单片机。STC89系列单片机是MCS-51系列单片机的派生产品,它们在指令系统、硬件结构和片内资源上与标准8051单片机完全兼容。其主要特性有:1、80C51核心处理单元。2、64/32/16/8B片内Flash ROM,具有在应用可编程(IAP)、在系统可编程(ISP)的功能,可实现远程软件升级,无需编程器。3、1K字节RAM;4、双DPTR数据指针;5、支持12时钟或6时钟模式;6、4个8位I/O口, P1口、P2口、P3口可直接驱动LED;7、SPI(串行外围接口)和增强型UAPT;8、有PCA(可编程计数器阵列),具有PWM的捕获/比较功能;9、3个16位定时器/计数器;10、可编程看门狗定时器;11、低EMI方式(ALE禁止);12、兼容TTL和COMS逻辑电平;13、掉电模式和低功耗模式等;14、全静态操作0Hz24Hz;图2.1为STC系列单片机的引脚排列图:图2.1 STC系列单片机引脚排列图其引脚功能如下:1、主电源引脚Vcc和VssVcc (40脚):接+5V电源正端;Vss (20脚):接电源地。2、外接时钟引脚XTAL1和XTAL2XTAL1 (19脚):外接石英晶体振荡器的一端。XTAL2 (18脚):外接石英晶体振荡器的另一端。3、控制信号或与其他电源复用引脚(1)RST (9脚):RST即RESET,当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,即可实现系统复位。(2)ALE/ (30脚):地址锁存允许信号,当访问外部存储器时,在每个机器周期内ALE信号会出现两个正脉冲,用于锁存出现在P0口的低8位地址信息。在不访问外部存储器时,ALE端仍以上述频率(振荡器频率的1/6)周期性地输出正脉冲信号,此信号可作为外部其他部件的时钟脉冲或用于定时目的。(3) (29脚):片外程序存储器读选通信号输出端,低电平有效。当从外部程序存储器读取指令或读取常数期间,每个机器周期两次有效。访问外部数据存储器期间,信号将不出现。(4) (31脚):为访问外部程序存储器控制信号,低电平有效。当端为高电平时,单片机访问片内程序存储器4KB(52系列为8KB),若超出此范围,自动转去执行外部程序存储器的程序。当端为低电平时,无论片内有无程序存储器,均只访问外部程序存储器。4、输入/输出(I/O)引脚P0口、P1口、P2口及P3口(1)P0口 (39脚32脚):P0.0P0.7。当不接外部存储器,也不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部存储器或扩展I/O接口时,P0口为地址/数据分时复用端口。它分时提供低8位地址信息和8位双向数据信息。(2)P1口 (1脚8脚):P1.0P1.7,P1口是一个带内部上拉电阻的8位准双向I/O端口。在FLASH编程和校验时,P1口作为第八位地址接收。(3)P2口 (21脚28脚):P2.0P2.7.,可作为普通准双向I/O接口。当构成系统总线时,P2口作为高8位地址总线,传送高8位地址信息。(4)P3口 (10脚17脚):P3.0P3.7,为双功能端口,可以作为一般的准双向I/O接口使用,而每一位都具有第2功能(见表2.1),并且P3口的每一条引脚均可独立定义第1功能的输入/输出或第2功能。表2.1 P3口第2功能引脚符号第2功能P3.0RXD串行口输入端P3.1TXD串行口输出端P3.2外部中断0请求输入端,低电平有效P3.3外部中断1请求输入,低电平有效P3.4T0定时器/计数器0计数器脉冲输入端P3.5T1定时器/计数器1计数器脉冲输入端P3.6外部数据存储器写选通信号输出端,低电平有效P3.7外部数据存储器读选通信号输出端,低电平有效2.3计算器的总体功能描述计算器需要实现的功能如下:1、本设计为基于单片机的简易计算器的设计,所以最基本的功能是可以进行整数的“加”、“减”、“乘”、“除”四则运算;2、既然只需要进行基本的四则运算,那么键盘只需16个键即可,包括数字键09,符号键“+”、“-”、“*”、“/”、“=”和一个清零键;3、运算时所键入的数字,符号(+、-、*、/)均需要在显示器上显示,当键下“=”号键时,显示计算所得的结果;4、可以进行多次连续运算,即上次计算所得的结果可以作为下次运算的第一个值; 5、可以进行错误提示,如当除数为零,或者结算结果大于计算器所能运算的范围时(溢出),在显示器上提示错误并内部归零;6、附加功能:在计算器顺利完成的基础上对系统进行简单的扩展,如加时钟芯片,让系统既可以作为计算器,同时也可作为电子表,电子表应具备调时功能。3. 计算器的硬件系统设计硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即当单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路;二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,并为这些外围设备设计合适的接口电路。3.1计算器的硬件系统框架计算器的硬件系统框架如图3.1所示:单片机显示电路按键及键扫电路实时时钟电路复位、晶振电路电源系统图3.1 计算器的硬件系统框架图3.2最小系统的设计单片机最小系统是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。1、单片机的选择在第2部分中我们已经介绍了STC89系列的单片机,本设计中我们采用STC89C52RC单片机,其性能稳定,价格便宜。它相对于另一种比较常用的AT89系列的单片机来说,在功能上、引脚排列上并没有较大的差异,我会选择STC系列的单片机,主要是觉得其程序写入时可以通过串口采用STC-ISP软件在线下载,比AT系列大多采用编程器下载更方便。STC89C52RC主要性能有:(1)8KByte程序存储器;(2)工作频率从静态到33MHz,更加灵活;(3)32根IO端口;(4)内置两个16位定时计数器,利用单片机周期工作,方便控制且可靠性高;(5)包含了全双工串行接口,方便与电脑或其它终端通信;(6)内置看门狗,防止程序跑丢,在外界环境突变时可自行复位继续工作;(7)编程简单,可以在线下载,很方便。其引脚如图3.2所示,引脚功能我们在2.2 STC89系列单片机的简介中已详细介绍过,在此就不多做介绍了。图3.2 STC89C52RC引脚图2、晶振电路的设计晶振电路的设计如图3.3所示。对于时间要求不是很高的系统,只要按图进行设计就能使系统可靠起振并稳定运行。但由于图中的电容C1、C2有对系统时钟频率有微调和稳定的作用,因此,在本计算器系统的实际应用中要注意正确选择参数(本设计采用30pF),振荡频率范围是1.2MHz12MHz,这里采用11.0592MHz是因为可以准确地得到9600波特率和19200波特率,便于和计算机进行串口通讯。3图3.3 晶振电路3、复位电路的设计复位是单片机的初始化操作。其主要功能是把程序计数器PC值初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要按复位键重新启动单片机。复位操作有上电自动复位和按键手动复位两种方式,其中,按键手动复位分为电平方式和脉冲方式两种。在本设计中,按键手动复位明显比上电复位更人性化、更方便,所以这里采用按键手动复位中的按键电平复位,电路设计如图3.4所示。4图3.4 按键电平复位电路3.3键盘接口电路的设计键盘是一种按键的集合,它是单片机应用系统中最常用的人机对话输入设备,用户通过键盘向单片机输入数据或指令。键盘中每个按键都是一个常开开关电路。本设计是基于单片机的简易计算器的设计,不需要进行复杂的运算,因此,采用4×4矩阵式键盘16个键来实现基本的“加” 、“减” 、“乘” 、“除”运算即可。矩阵式键盘的硬件结构比较简单,有行输出口和列输出口构成行列式键盘,按键设置在行、列的交点上。54×4矩阵式键盘具体按键安排如下: 第0列 第1列 第2列 第3列 第0行: 0 1 2 3 第1行: 4 5 6 7 第2行: 8 9 + - 第3行: * / 复位电路设计如图3.5所示,图中1.、2、3、4分别接单片机的P1.0P1.4口,5、6、7、8分别接P1.4P1.8口。图3.5 键盘接口电路3.4显示电路的设计单片机应用系统中常用的显示器件有LED数码管显示器、LED阵列显示器和液晶显示器等。液晶显示器较之LED数码管显示器来说虽价格较贵,但其显示功能较强大,体积小、功耗低、界面美观大方。本设计进行的是计算器设计,如果用液晶作为显示器,两行就足够了,一行显示算式,一行显示结果,所以本设计采用TC1602字符型液晶模块进行显示。TC1602的工作原理:TC1602显示模块采用点阵图形来显示字符,显示分为2行、每行16个字符或1行16个字符两种模式,常用模式为2行16个字符。它有16个引脚,其引脚和电路连接如图3.6所示,引脚功能如下:第1脚GND:电源地。第2脚Vcc:接+5V电源。第3脚VL:液晶显示器对比度调整端。第4脚RS:寄存器选择信号线。高电平时进行读操作,低电平时选择指令寄存器。第5脚RW:读写信号线。高电平时进行读操作,低电平时进行写操作。第6脚E:使能端,当E端由高电平跳变成低电平时,可以写入数据。第714脚:8位双向数据线D0D7。第15脚BLA:背光电源正极输入端。第16脚BLK:背光电源负极输入端。BLA接正,BLK接负便会点亮背光灯。图3.6 TC1602电路图图中714脚接单片机的P0口。TC1602液晶显示模块内置有字符发生ROM,字符发生RAM和字符显示RAM,字符发生存储器已经存储了192个不同的点阵字符图形,每一个字符都有固定的代码,我们可以通过查表找出所需要显示的字符的地址让其在液晶中显示出来。13.5 DS1302实时时钟电路的设计在本设计中,DS1302时钟电路属于一个系统扩展模块,是一个附加功能,它跟计算器是分离开来的,在时间和硬件条件的允许下,我决定添加这个模块,让我的计算器除了能进行计算外,还能当电子表使用,使系统功能更加完善。计算器和电子表两种模式通过一个独立按键来进行切换,在同一块液晶屏上显示。实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能,采用普通32.768kHz晶振,工作电压为2.5V5.5V。它可以对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能。在本设计中,我们设计的只是电子表,所以用上的只有时、分、秒,这似乎有点大材小用了,我争取在以后对系统进一步扩展,比如做个万年历,使时钟芯片得到充分的利用。其引脚和电路连接如图3.7所示,引脚功能如下:第1脚Vcc2:主电源。第2脚X1、第3脚X2:振荡源,外接32.768HZ的晶振。第4脚GND:地线。第5脚:复位/片选线。第6脚I/O:串行数据输入/输出端(双向)。第7脚SCLK:串行时钟输入。第8脚Vcc1:后背电源。图3.7 DS1302电路图一般的电子表都具有设置时间的功能,我的也不例外。在此模块中,我选择使用4个独立式按键,分别是:“设置” 、“确认” 、“+” 、“-” ,用来对时间进行设置。设置方法是:按设置键1下,可按“+”、“-”对“小时”进行设置,设置完毕按确认键退出;同理,按设置键2下对“分”进行设置,按设置键3下对“秒”进行设置。独立式按键是指直接用一根I/O口线构成的单个按键电路,每个独立式按键单独占有一根I/O口线,每根I/O口线上的按键的工作状态不会影响其他I/O口线的工作状态。独立式按键接口电路配置灵活,软件结构简单。其电路设计如图3.8所示。图3.8 时间设置按键电路3.6计算器的硬件电路原理图图3.9 计算器硬件电路原理图4. 计算器的软件系统设计本设计需单片机硬件电路及软件编程相结合,在单片机的应用系统程序设计时,常用的是汇编语言和C语言。本设计采用C语言进行程序的编写。C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备了汇编语言的功能。C语言是为了能够胜任系统程序设计的要求而开发的,因此有很强的表达能力,能够用于描述系统软件各方面的特性。它具有较高的可移植性,提供了种类丰富的运算符和数据类型,极大地方便了程序设计。同时它具有丰富的库函数,运算速度快、编译效率高,且可以直接实现对系统硬件的控制。它具有完善的模块程序结构,因此在软件开发中可以采用模块化程序设计方法。目前,使用C语言进行程序设计已成为软件开发的主流。54.1主模块程序的设计主模块是系统软件的主框架。结构化程序设计一般有“自上而下”和“自下而上”两种方式,“自上而下”法的核心就是主框架的构建。它的合理与否关系到程序最终功能实现的多少与好坏。本设计的主功能是计算器,而不是电子表,电子表只是在计算器功能顺利完成的基础上附加的功能,因此在设计的时候要分清主次,系统一开机进入的应该是计算模式,而不是电子表模式,用户可以根据自己的需要通过模式切换键进行两者的切换。本设计的主模块的程序流程图如图4.1所示。开始初始化液晶屏、DS1302及相关变量计算模式判断模式切换键是否按下 N Y电子表模式 判断模式切换键是否按下 N返回 Y 图4.1 主模块程序流程图4.2键盘扫描模块程序的设计矩阵按键扫描程序是一种节省I/O口的方法,按键数目越多节省I/O口就越可观。键盘扫描模块程序的流程图如图4.2所示。键盘扫描子程序应具有以下功能:(1)判断有无键按下,若有则计算键值。其方法为:行输出口输出全为0,读列输入口信息,若列输入值为全1,则说明无键按下;若不为全1,则说明有键按下,并计算键值。(2)消除按键的抖动。在按键的使用过程中,由于弹性作用的影响按键的机械触电在闭合及断开的瞬间都会有抖动现象,即不能马上实现按键的完全闭合或断开,从而使输入电压信号也出现抖动现象,抖动时间的长短由按键的机械特性决定,一般为5ms10ms。但实际应用中,应大于20ms,否则,会导致按一次做多次处理,影响程序的正常执行。开始是否有键按下 N 消抖 Y 确实有键按下 N 判断并计算键号,执行相应命令 Y 按键是否释放 N 返回 Y图4.2 键盘扫描模块程序流程图 (3)判断按键是否释放。计算出闭合键的键值后,再判断按键是否释放。若按键释放则等待;若键已释放,则再延时消抖。(4)命令处理。根据闭合键的键值,程序应完成该键所设定的功能。24.3运算模块程序的设计在此模块中,要实现“加”、“减”、“乘”、“除”四种整数的运算,我们需要定义三个数:a、b、c ,类型为长整型(-2147483648+2147483647);其中a为第一个数,b为第二个数,c为两数运算的结果。本设计还要求可以根据需要进行连续多次的运算,即把c的值赋给a,输入运算符,再输入b,按下“=”号,再得到c,再赋给a,以此反复。在运算中a的值有可能是负数,而b必定是正数,所以在进行“加”、“减”、“乘”三种运算时都可能产生溢出,都需要进行报错;在除法运算时,若除数为0,也需要报错。设d=+2147483647,e=-2147483648,判断溢出的方法是:(1)加法:当0<a<d时,若b>d-a,则溢出;(2)减法:当e<a<0时,若b>a-e,则溢出;(3)乘法:当0<a<d时,若b>d/a,则溢出; 当e<a<0时,若b>e/a,则溢出;需要注意的是,在本设计中除法运算时为了保留四位小数需对c转化为float型并进行×10000的操作,我们可以想象当c> +214748.3647时,c扩大一万倍就不再属于长整型的范围了,这就产生了溢出错误。为了不让这种情况发生,本设计规定了当c> +214748.3647或c<-214748.3648时,结果显示不保留小数;当c<+214748.3647或c>-214748.3648时,结果显示保留四位小数。运算模块程序流程图如图4.3所示。开始判断是哪个运算符乘减除加除数是否为0 N错误信息送显示缓冲区运算结果是否溢出Y Y 数值送显示缓冲区 N 图4.3 运算模块程序流程图4.4显示模块程序的设计在本设计中,液晶只用显示字符,不需要显示汉字或图形,且需要显示的字符在TC1602液晶模块内置的字符发生存储器里都有,在编写程序时,只要查表就可得到相应字符的代码,比较方便。显示程序的流程图如图4.4所示。开显示液晶初始化 判断是否显示字符 N 相应功能的设置 Y Y送地址 送数据 判断是否显示完 N 返回 Y 图4.4 显示程序流程图在这个模块中,我们需要了解液晶的基本操作时序写指令和写数据。写指令:输入:RS=L,RW=L,D0D7=指令码,E=高脉冲;输出:无。写数据:输入:RS=H,RW=L,D0D7=数据,E=高脉冲;输出:无。4. 5 DS1302实时时钟模块程序的设计从前面我们已经了解到了时钟芯片的功能很强大,设计这部分程序前,我们必须对DS1302有关日历、时间的寄存器进行深入的了解。在本设计中,我们只用到了时间,所以我们在这里就只对时间寄存器进行解释,时(85H、84H)、分(83H、82H)、秒(81H、82H)寄存器及控制寄存器(8FH、8EH)介绍如表4.1所示。表4.1 时、分、秒、控制寄存器介绍读寄存器写寄存器bit7 bit6bit5bit4bit3bit2bit1bit0 范围81H80HCH10秒秒005983H82H10分分005985H84H 0 020时10时 时0238FH8EH WP 0000000从表中,我们可以很明了的知道以上寄存器的功能和使用方法,需要说明的是控制寄存器的位7(WP)是写保护位,其他七位都为0,在对任何时钟和RAM进行写操作前,WP必须为0。当WP为1时,禁止对任一寄存器进行写操作,也就是说在电路上电的初始态WP为1,必须先将它置为0,才可进行写操作。还有秒寄存器的位7位定义为时钟暂停标志(CH)位置为1时,时钟振荡器停止,DS1302时钟芯片处于低功耗状态;为0时,时钟开始运行。例如,执行以下语句,就在时钟芯片中写入了时间12:30:01。write_ds1302(0x8e,0x00); /去保护write_ds1302(0x84,0x12); /写小时,12时write_ds1302(0x82,0x30); /写分钟,30分write_ds1302(0x80,0x01); /写秒钟,01秒write_ds1302(0x8e,0x80); /写完后,上保护DS1302时钟程序流程图如图4.5所示。开始相关变量初始化DS1302去保护复位端产生一个高电平复位端产生一个高电平写1302地址延时写1302地址将该地址数据读出延时地址增加向该地址写数据地址增加数据是否读完 N数据是否写完N显示数据 Y Y 图4.5 DS1302时钟程序流程图5. 计算器系统的组装与调试5.1软件系统的调试与仿真在本次设计中,C程序是在Keil软件中编写并编译的,在程序编写中主要出现了以下问题:(1)由于程序过长过复杂,容易出现少了或多了一个“”的现象。(2)有的变量所定义的类型错误,虽然程序无错误,但一仿真结果错误。(3)事先未被定义的被调函数放在了主调函数的后面,导致错误。(4)所定义的芯片引脚与仿真图中引脚不匹配。(5)仿真的结果有时正确有时是乱码,例如:5+12=17正确,但若是运算2147483645+10,结果就是乱码。这是因为定义的是长整型,而此结果已经溢出,不属于长整型了,我们一眼就能看出是溢出,应该提示错误信息,但是计算机不能,所以在编写程序时不能直接判断运算结果是否大于长整型,而应该间接判断,判断方法在4.3运算模块的设计中已讲解过。在Keil和Protues的联合调试下,经过了多次认真的分析与修改,程序终于能实现我预期的要求。Protues仿真如图5.1所示。图5.1 Protues 仿真图5.2硬件系统的组装与调试在软件仿真成功后,下一步就是硬件实物的焊接了,焊接电路图为第3部分硬件设计的原理图(见本文第17页)在焊接前一定要认真阅读焊接注意事项,并在万能电路板上对各元件的放置进行合理布局,此时不仅要考虑正面整体的美观,还要考虑背面布线的方便性,尽可能减少布线的复杂度。焊接完毕后就要进行调试了,此过程中出现了以下问题: (1)通过STC-ISP软件把在Keil中生成的.hex文件加载到单片机中,开机,进行运算,发现液晶屏点亮但不显示任何数据,经过对电路的检查,发现本应接地液晶第3脚(VL)接到了电源端,改正后液晶可以显示。 (2)液晶虽然可以显示了,但在进行计算时并不能正确显示,经过多次检查,发现硬件并无错误,断定为软件的错误,最后发现软件中液晶初始化不完整,可是在仿真时是正确的,这充分说明了仿真与实际硬件的区别。经过多次的调试,我的计算器终于能达到同仿真时一样的效果了。计算器实物如图5.2所示。图5.2 计算器实物图计算器进行各种运算的截图如图5.3所示。

    注意事项

    本文(毕业设计(论文)基于单片机的简易计算器的设计.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开