电子设计基于STC89C52RC单片机的简易计算器设计说明

合集下载

基于STC89C52的简易计算器设计..

基于STC89C52的简易计算器设计..

福建电力职业技术学院课程设计课程名称:《智能仪器》题目:基于STC89C52的简易计算器设计专业班次:姓名:学号:指导教师:学期:2011-2012学年第2学期日期:2012.2目录目录1.引言 (1)1.1 设计意义 (1)1.2 设计任务和主要内容 (1)2. 硬件设计 (2)2.1 系统框图 (2)2.2 最小系统 (2)2.3 矩阵键盘 (3)2.4 LCD1602 (4)3. 软件设计 (5)3.1矩阵键盘扫描原理 (5)3.2 LCD1602的软件设计 (6)3.3 主程序设计 (8)3.4 源程序 (9)3.5 调试结果 (9)4. 设计小结 (9)参考文献 (10)附录 (10)1.引言随着社会的发展,人们生活水平的提高,单片机的应用越来越贴近生活了,人们常用单片机来实现一些简单的电子设计。

计算器在人们的日常生活中是不可或缺的电子产品之一,目前市场上的计算器基本可以满足我们的日常需求,但它还在发展之中,我们要继续研究出更加强大的计算器。

基于这样的理念,本设计采用单片机来设计简易计算器。

本设计是以STC89C52为单片机,LCD为显示器设计的简易计算器,所设计的计算器将完成两位数的加、减、乘、除等功能。

1.1 设计意义通过本次课程设计,进一步掌握单片机知识,知道AT89S52单片机的原理、编程和各种功能的应用,了解简易计算器的工作原理,初步掌握计算器的硬软件设计、编写、调试和仿真,充分提高动手能力和排除故障的能力,同时通过课程设计加深我们对单片机的认识和兴趣,发挥我们的创新能力和动手能力。

1.2 设计任务和主要内容本设计要制作的就是单片机于生活中最为常见的一种应用——简易计算器,以STC89C52单片机作为核心来进行的数字计算器模拟系统设计,可以完成计算器的键盘输入,进行加、减、乘、除两位数范围内的基本四则运算,并在LCD 上显示相应的结果。

设计电路采用AT89C51单片机为主要控制电路,显示采用LCD静态显示,软件方面使用C语言编程,并用PROTUES仿真。

基于STC89C52单片机的计算器

基于STC89C52单片机的计算器

基于STC89C52单片机的计算器一、引言计算器是一种用于进行数学运算的设备。

在现代社会中,计算器被广泛应用于各个领域,包括教育、科学研究、工程设计等。

本篇文章将介绍基于STC89C52单片机的计算器设计。

二、设计目标本设计的目标是实现一个简单的、功能齐全的四则运算计算器。

该计算器具有基本的加、减、乘、除运算功能,可以进行整数和小数的运算。

同时,该计算器还具备清零、撤回、保存结果等辅助功能。

三、硬件设计1.单片机选择本设计选择STC89C52单片机作为主控芯片。

STC89C52是一款具有低功耗、高性能的单片机,拥有8位宽的数据总线和16位宽的地址总线,适用于本设计所需的计算器功能。

2.显示器选择本设计选择8位共阳数码管作为显示器。

由于STC89C52单片机的IO 口输出电流较小,为了驱动数码管显示,需要通过数码管驱动芯片进行扩展以增大驱动电流。

3.按键选择本设计选择矩阵键盘作为输入设备。

根据计算器所需的功能,可以设置数字键、运算符键、功能键等按键。

四、软件设计1.指令集设计本设计根据计算器功能的需求,设计了一套适合STC89C52单片机的指令集。

包括加法指令、减法指令、乘法指令、除法指令等,以及相应的操作数寻址方式。

2.界面设计本设计通过8位共阳数码管显示器和矩阵键盘构建了计算器的界面。

通过编程实现数码管显示数字和结果,以及按键的检测和响应。

3.运算功能实现本设计通过编程实现了加法、减法、乘法、除法等基本运算功能。

通过数码管显示输入的数字和结果,实现了计算器的正常运算。

4.辅助功能实现本设计通过编程实现了清零、撤回、保存结果等辅助功能。

通过按下相应的功能键,可以实现清除当前输入、撤回上一步操作或保存当前结果等操作。

五、实验验证六、结论通过本次设计,成功实现了基于STC89C52单片机的四则运算计算器。

该计算器具有基本的加、减、乘、除运算功能,可以进行整数和小数的运算。

同时,该计算器还具备清零、撤回、保存结果等辅助功能。

基于STC89C52单片机的计算器的设计

基于STC89C52单片机的计算器的设计

基于单片机的计算器的设计中文摘要近些年来,随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强、体积小、功耗低、价格便宜、工作可靠、使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,数据采集以及家用电器等各个领域。

计算器这一小小的程序机器实际上是从计算机中割裂出来的衍生品,但因其方便快捷的操作模式,已经被广泛应用于商业等日常生活中,极大的方便了人们对于数字的整合运算。

计算器一般由运算器、控制器、存储器、键盘、显示器、电源等设备组成。

键盘是计算器的输入部件,一般采用接触式或传感式。

显示器是计算器的输出部件,有发光二极管显示器或液晶显示器等。

除显示计算结果外,还常有溢出指示、错误指示等,部分计算器还带有时钟功能。

关键词:单片机;控制系统;计算器;多功能Calculator Design Based on Single-chipABSTRACTIn recent years, as computer penetration in the social field and large-scale development of integrated circuits, micro controller applications are continually deepening, because of its powerful function, small size, low power consumption, cheap, reliable, easy to use, etc. Therefore particularly suitable for systems with control of more and more widely used in automatic control, intelligent instruments, data acquisition, military products and home appliances fields.This little Calculator program was actually cut out from the computers of derivatives, but the derivatives for its quick and convenient operation mode, has been widely used in daily life, such as business, great convenience for the integration of the people digital computation.Calculator generally be constitute of logic, controller, storage, keyboard, display, power composition. The keyboard is calculator input parts, generally uses the contact or sensing type. Display is the calculator output components, have LED display or LCD etc. In addition to displaying calculation results, overflow indicator and error indicates can be shown, some calculator also with clock function.KEY WORD: single chip;control system;calculator;multifunctional目录1绪论 (1)1.1问题的提出 (1)1.2国内外研究现状 (1)1.3设计目标 (2)1.3.1设计目的 (2)1.3.2系统功能 (2)2系统方案选择 (3)2.1硬件部分 (3)2.1.1 单片机型号的选择 (3)2.1.2 按键的选择 (3)2.1.3 显示器的选择 (4)2.1.4 时钟芯片的选择 (4)2.1.5 电源的选择 (4)2.2软件部分 (4)2.3系统方案概述 (5)3系统组成 (6)3.1单片机STC89C52 (6)3.2液晶显示屏LCD1602 (9)3.3时钟芯片DS1302 (10)3.4锂二氧化锰电池CR2032 (10)4硬件电路设计 (11)4.1总体设计 (11)4.2硬件电路设计 (11)4.2.1单片机时钟电路的设计 (11)4.2.2单片机复位电路的设计 (12)4.2.3按键电路的设计 (13)4.2.4时钟芯片电路的设计 (14)4.2.5显示电路的设计 (15)4.2.6按键发声电路的设计 (16)5系统软件设计 (18)5.1 总体设计 (18)5.2 键盘扫描的程序设计 (19)5.3 显示模块的程序设计 (20)5.4 运算模块的程序设计 (20)5.5 时钟模块的程序设计 (22)6系统调试 (23)6.1软件调试 (23)6.1.1 KeiluVision2简介 (23)6.1.2调试过程 (23)6.2硬件调试 (24)6.2.1 Proteus简介 (24)6.2.2调试过程 (24)6.2.3硬件电路调试 (25)7结论 (27)参考文献 (28)致谢 (29)附录 (30)操作说明 (30)系统电路原理图 (31)核心代码 (32)1绪论1.1问题的提出说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国,这种计算工具叫筹策,又被叫做算筹。

基于STC89C52单片机的简易计算器

基于STC89C52单片机的简易计算器

基于STC89C52单片机的简易计算器目录内容摘要 (2)关键词 (2)ABSTRACT (2)1绪论 (2)2系统设计 (4)2.1设计任务与要求 (4)2.2总体设计方案 (5)3系统硬件设计 (6)3.1控制器模块 (6)3.2按键模块 (7)3.3时钟日期模块 (9)3.4液晶显示屏显示模块 (12)3.5硬件元件清单 (14)4软件设计与仿真 (14)4.1主程序设计 (15)4.2仿真结果 (18)4.3系统调试 (19)5参考文献 (19)内容摘要:该计算器以STC89C52单片机为核心控制芯片,实现了简单的加、减、乘、除功能,采取的是键盘输入和液晶显示屏的输出结果显示。

主要硬件构成部分由五个:一个STC89C52单片机芯片,一个液晶显示屏(LCD),一个4*4矩阵键盘和一个时钟芯片(DS1302)一个蜂鸣器,可以实现8位的整数数值操作计算。

附加时钟显示的功能。

关键词:单片机STC89C52 液晶显示屏LCD 时钟芯片DS1302 Abstract:The calculator with STC89C52 single chip as the core control chip, the realization of a simple addition, subtraction, multiplication, in addition to function, is taken by the keyboard input and liquid crystal display outputThe desigh. is taken by the keyboard input and liquid crystal display output. The main hardware components from five: a STC89C52 chip, a liquid crystal display ( LCD ), a 4 x 4 matrix keyboard and a clock chip ( DS1302 ) a buzzer, can achieve a 8 bit integer numerical operation calculation. Additional clock display function.Keywords:The single chip computerSTC 89 C52 Liquid crystal display (LCD) LED the Clock DS1302 chip1.绪论:单片机是指一个集成在一块芯片上的完整计算机系统。

基于STC89C52单片机的计算器

基于STC89C52单片机的计算器

基于STC89C52单片机的计算器一、引言计算器作为一种常见的电子设备,经常被人们用于日常的数学计算。

本文将介绍一种基于STC89C52单片机的计算器的设计与实现。

该计算器具有基本的四则运算功能,并且支持浮点数的运算。

二、硬件设计1.单片机选择本文选择STC89C52单片机作为计算器的核心处理器。

STC89C52是基于8051架构的单片机,具有强大的计算和控制能力,适合用于计算器的设计。

2.显示器设计本文选用16x2LCD液晶显示器作为计算器的显示器。

液晶显示器具有容量小、功耗低、反射型等优点,非常适合计算器的显示要求。

3.按键设计本文选用矩阵按键设计。

通过矩阵按键设计,可以设计出较多的按键功能,并且能够节省IO口的使用。

4.电源设计计算器使用直流电源供电,可以选择使用电池或者外部电源适配器供电。

三、软件设计计算器的软件设计主要包括界面设计和计算功能设计两个方面。

1.界面设计计算器的界面设计主要包括显示数字和调用函数。

a.显示数字通过将用户输入的数字显示到LCD液晶屏上,实现数字的显示功能。

液晶屏可以显示16个字符,可以一次性显示一个较长的数字。

b.调用函数通过监测用户按键的输入,调用相应的函数实现计算功能。

可以设置加、减、乘、除等函数,并通过按键的组合调用相应的函数。

2.计算功能设计计算器的计算功能设计主要包括四则运算和浮点数运算两个方面。

a.四则运算通过四个函数实现加、减、乘、除的功能。

在用户按下相应的运算符号键后,调用相应的函数对输入的数字进行相应的运算,并将结果显示在LCD液晶屏上。

b.浮点数运算在用户输入的数字或运算结果存在小数的情况下,可以设计相应的浮点数运算函数,通过运算可以得到带有小数点的结果,并将结果显示在LCD液晶屏上。

四、系统实现五、总结基于STC89C52单片机的计算器设计和实现包括硬件设计和软件设计两个方面。

通过合理的硬件设计和功能完善的软件设计,可以实现一款功能强大的计算器。

基于单片机的简易计算器的设计

基于单片机的简易计算器的设计

基于单片机的简易计算器的设计
摘 要 单片机是采用超大规模集成电路技术,把一台计算机的主要部件集成在一个芯片上所构成的一种集成电路芯片,因此单片机被称为单片微型计算机。由于单片机体积小、价格低、可靠性高、适用面宽以及有其本身的指令系统等诸多优势,在各个领域、各个行业都得到了广泛应用。很多大专、本科院校都开设了关于单片机原理与应用方面的课程。
I
关键词: 单片机,计算器,运算,扩展
ABSTRACT
SCM 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.
本设计就是依据单片机的原理来进行简易计算器的设计的,设计采用了STC89C52RC单片机作为计算器的主控制器,TC1602液晶作为显示器,4×4矩阵键盘作为输入按键,通过软硬件相结合,来实现整数的“加”、“减”、“乘”、“除”运算。并在计算器顺利完成的基础上,对系统进行了简单的扩展,增加了电子表功能,使系统完善化和多功能化。

基于stc89c52单片机的红外计数器设计及实现

基于stc89c52单片机的红外计数器设计及实现

基于stc89c52单片机的红外计数器设计及实现摘要:本文介绍了基于STC89C52单片机的红外计数器的设计和实现。

该计数器采用红外传感器作为输入信号,使用单片机作为处理器,能够实现自动计数,可以应用于各种场合的计数任务。

本文从硬件设计、软件设计两个方面进行了详细介绍,并给出了实际测试结果。

关键词:STC89C52单片机;红外计数器;硬件设计;软件设计一、绪论二、硬件设计2.1 红外传感器红外传感器是红外计数器的输入信号源,采用两个红外传感器进行输入信号的采集。

一般来说,红外传感器具有发射管和接收管两部分组成,发射管会发射一个特定频率的红外光,接收管则可以接收这个频率的红外光。

通过发射管和接收管之间的反射和折射效应,可以实现对物体进行探测。

2.2 显示器为了方便实时显示计数结果,该计数器装配了数码管显示器。

数码管显示器可以显示0~9的数字,通过不同的控制信号可以实现不同数字的显示。

2.3 单片机选型由于计数器需要进行计算和显示计数结果,因此需要一款性能优良的单片机来实现这些功能。

本设计采用了STC89C52单片机作为处理器。

STC89C52单片机是一款高性能、低功耗的8位单片机,具有多种外设和扩展接口,适合于各种应用场合。

2.4 电源模块为了保证计数器的正常工作,需要提供稳定可靠的电源。

本设计采用了交流电转直流电的方式,通过稳压芯片将电源输出电压稳定在5V左右,以满足单片机和显示器的工作电压要求。

3.1 程序设计流程该计数器的程序设计采用C语言编写,主要实现了两个功能:读取红外传感器输入的信号,进行计数并更新计数结果。

具体程序设计流程如下:1)初始化端口:设置单片机输入输出管脚的模式和初值。

2)初始化定时器:设置定时器的时钟源、计数模式和计数初值。

3)循环读取输入信号:连续检测两个红外传感器的输入信号,当检测到信号变化时,进行计数并更新计数结果。

4)显示计数结果:将计数结果存储到单片机中的寄存器中,通过数码管实现实时显示。

51单片机简易计算器设计报告

51单片机简易计算器设计报告

51单片机简易计算器设计报告
本文将介绍51单片机简易计算器的设计报告。

该计算器通过
16位的LCD显示屏实现了基本计算功能,包括加、减、乘、除、取反、开方等。

1. 硬件设计
该计算器的核心部件是STC89C52单片机。

STC89C52是一种
高性能、低功耗的8位单片机,拥有8KB的Flash程序存储器和128字节的内部RAM,可提供多种功能和通讯接口。

通过
I/O口与LCD模块通讯,实现输出功能。

该计算器使用16位的LCD显示屏,显示范围为-99.99~99.99,共有6个数字位。

显示屏使用了ST7920控制器,可通过串行、并行等多种方式控制。

2. 软件设计
该计算器的软件设计主要包括三部分:键盘扫描,计算功能和LCD显示。

键盘扫描:该计算器采用4x5矩阵键盘,通过程序对键盘进行扫描,实现对不同按键的检测。

计算功能:该计算器可以实现基本的四则运算、取反、开方等功能。

对于四则运算,通过栈来实现计算,将运算符压入栈中,然后将操作数从栈中取出进行计算。

LCD显示:该计算器使用16位的LCD显示屏,通过程序控制数据和命令的传输,将计算结果显示在LCD屏幕上。

3. 总结
通过对51单片机简易计算器的设计报告,可以看出该计算器实现了基本的计算功能,通过硬件设计和软件设计相结合,将计算器的功能实现得十分完整。

该计算器的设计初步掌握了51单片机的应用,有助于后续项目的开展。

单片机课程设计_简易计算器设计

单片机课程设计_简易计算器设计

单片机课程设计报告选题名称:基于STC89C52单片机的简易计算器设计系(院):物理与电气工程学院专业:电子信息科学与技术班级:12级电信(4)班姓名:储飞学号:080212177汪中苗 080212159 指导老师:王陈宁完成时间:2014/6/9目录一.课程任务二.设计方案三.硬件介绍及硬件电路图 3.1单片机最小系统3.2键盘电路图3.3数码管显示电路图四.软件编程4.1 程序设计框图4.2 4*4按键电路原理4.3 数码管显示电路原理4.4 计算器键盘定义4.5 实现程序五.系统仿真及调试六.课程小结七.指导老师评价一.课程任务及性能指标基于STC89C52单片机的简易计算器,采用12MHZ晶振,设计要求:(1)计算器用一位显示,计算10以内的加减法。

(2)计算器第一次显示0,第一次按数字键显示D1,第二次按符号键不显示,第三次按数字键显示D2,最后按等号键显示D3. (3)两数相加或相减结果应在0~18范围,超过该结果则返回显示错误。

减法的结果不存在负数。

二.设计方案按照系统设计的功能的要求,初步确定设计系统由主控模块、显示模块、键扫描接口电路共四个模块组成,电路系统构成框图如图1.1所示,主控芯片使用51系列AT89C52单片机,采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性Flash程序存储器。

它是一种高性能、低功耗的8位COMS微处理芯片,市场应用最多。

监测模块采用二极管和扬声器(实验室用二极管代替)组成电路。

键盘电路采用4*4矩阵键盘电路。

显示模块采用4枚共阳极数码管和74ls273锁存芯片构成等器件构成。

整个单片机的接口电路:P0:用于显示输出;P3:用于键扫描输入;三.硬件介绍及硬件电路图3.1单片机最小系统单片机最小系统就是支持主芯片正常工作的最小电路部分,包括主控芯片、复位电路和晶振电路。

主控芯片选取STC89C52RC芯片,因其具有良好的性能及稳定性,价格便宜应用方便。

基于单片机的简易计算器设计

基于单片机的简易计算器设计

2013 - 2014 学年_一_学期山东科技大学电工电子实验教学中心创新性实验研究报告实验项目名称__基于51单片机的简易计算器设计_2013 年12 月27 日四、实验内容2、实验内容(一)、总体硬件设计本设计选用AT89C52单片机为主控单元。

显示部分:采用六位LED动态数码管显示。

按键部分:采用2*8键盘;利用2*8的键盘扫描子程序,读取输入的键值。

(二)、键盘接口电路计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。

矩阵键盘采用两条I/O 线作为行线,八条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。

这样键盘上按键的个数就为2×8个。

这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。

矩阵键盘的工作原理:计算器的键盘布局如图2所示:一般有16个键组成,在单片机中正好可以用一个P口和另一个P口的两个管脚实现16个按键功能,这种形式在单片机系统中也最常用。

矩阵键盘布局图:矩阵键盘内部电路图如下图所示:(三)、LED显示模块本设计采用LED数码显示来显示输出数据。

通过D0-D7引脚向LED写指令字或写数据以使LED实现不同的功能或显示相应数据。

(四)运算模块(单片机控制)MCS-51 单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。

如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O 口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。

单片机是靠程序运行的,并且可以修改。

通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以很快地实现运算功能。

单片机计算器

单片机计算器

二、计算器的设计一、设计目的利用STC89C52进行程序的设计,实现简易计算器功能。

二、功能描述1、设计一个计算器,可以进行四则运算,利用4位数码管显示运算的两数及其运算结果2、键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键。

通过不同的按键执行运算过程。

3、开机显示零,等待键入数值,当键入数字,通过数码管显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在数码管上输出运算结果。

三、硬件系统设计1、所需设备:单片机实验板,USB 转 RS-232串口线,电脑2、接线设计:1)串口线与单片机实验板的连接对应实验板电路图为:四、软件系统设计1、软件功能模块设计及流程图开机显示零;等待键入数值;当键入数字,通过数码管显示出来;当键入+、-、*、/运算符,计算器在内部执行数值转换和存储;并等待再次键入数值,当再键入数值后将显示键入的数值;按等号就会在数码管上输出运算结果。

工作流程图:完整程序及程序模块注释如下:/******************************************************************** * 文件名:单片机实现计算器功能* 功能描述: 1、设计一个计算器,利用4位数码管显示两数及其加减乘除的结果2、设置初始值0,通过不同的按键来表示两数的运算关系3、通过按键实现清零作用* 程序员:0938003 游瑞蓉* 日期:2012.06.01********************************************************************* /#include <reg51.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charbit keydown;uchar flag=0,scancode=0x0ff,temp=0,t=0;uint data count[4];uchar data dis_buf[4]={0,0,0,0};uchar code dis_code[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77, 0x7c,0x39,0x5e,0x79,0x71};/******************************************************************** * 名称 : init_t0()* 功能 : 定时器********************************************************************* **/void init_t0(){TMOD=0xf1;ET0=1;EA=1;TH0=0x06;TL0=0x06;TR0=1;}/******************************************************************** * 名称 : display()* 功能 : 显示,利用4位数码管显示数值,为0的高位不显示* 输出 : 仅最少的位数显示计算得到的数值********************************************************************* **/void display(void){dis_buf[0]=t/1000;dis_buf[1]=t%1000/100;dis_buf[2]=t%100/10;dis_buf[3]=t%10;}/******************************************************************** * 名称 : display1()* 功能 : 清零显示,利用4位数码管显示数值,仅最低位显示0********************************************************************* **/void display1(void){dis_buf[0]=dis_buf[1]=dis_buf[2]=dis_buf[3]=0;count[0]=count[1]= count[2]= count[3]=0;flag=0;temp=0;t=0;}/******************************************************************** * 名称 : Convert_Scancode()* 功能 : 实现按键的读取。

单片机设计实验报告简单计算器的设计

单片机设计实验报告简单计算器的设计

目录1.总体方案选择 (2)1.1 实验要求: (2)1.2方案设计 (2)2.硬件原理电路图的设计及分析 (3)2.1主控模块 (3)2.1.1 STC89C52单片机主要特性 (3)2.1.2 STC89C52单片机管脚图 (4)2.1.3 STC89C52单片机的中断系统 (5)2.1.4 STC89C52单片机的定时/计数器 (5)2.2矩阵键盘模块设计: (5)2.2.1矩阵键盘原理介绍 (5)2.2.2矩阵键盘电路设计 (6)2.3 LCD液晶显示器简介 (7)2.3.1液晶模块简介 (7)2.3.2液晶显示部分与89S52的接口 (8)3系统软件设计 (10)3.1系统软件流程图 (10)3.2系统整体原理图 (11)4.系统调试 (12)4.1硬件调试 (12)4.2软件调试 (12)4.3调试结果 (13)5.心得体会131.总体方案选择1) 1.1 实验要求:2)通过小键盘实现数据的输入, 并在LED数码管上显示3)实现+、-、*、/4)在LED数码管上显示结果并有清零, 退出功能1.2方案设计本系统以STC89C52单片机为控制核心, 对系统进行初始化, 主要完成对键盘的响应、液晶显示灯功能的控制, 起到总控和协调各模块之间工作的作用。

单片机通过检测键盘读取使用者按下对用功能的按键, 然后通过单片机内部运放把运算的结果显示在液晶屏幕上。

图1-1系统结构框图本系统结构如图1-1所示, 本设计可分为以下模块: 单片机主控模块、键盘模块、功率放大模块、闹铃模块、按键设置模块。

下面对各个模块的设计方案逐一进行论证分析。

2.硬件原理电路图的设计及分析2.1主控模块STC89C52有40个引脚, 4个8位并行I/O口, 1个全双工异步串行口, 同时内含5个中断源, 2个优先级, 2个16位定时/计数器。

STC89C52的存储器系统由4K的程序存储器(掩膜ROM), 和128B的数据存储器(RAM)组成。

基于STC89C52RC单片机的简易计算器设计《 电子设计大赛》概要

基于STC89C52RC单片机的简易计算器设计《 电子设计大赛》概要

基于单片机简易计算器的设计汇总两个方案学院专业班级学号学生姓名联系方式指导教师职称2013年5月基于单片机的简易计算器的设计摘要近几年单片机技术的发展很快,其中,电子产品的更新速度迅猛。

计算器是日常生活中比较常见的电子产品之一。

如何才能使计算器技术更加的成熟,充分利用已有的硬件和软件条件,设计出更出色的计算器。

本设计是以STC89C52单片机为核心的计算器模拟系统设计,输入采用4*4矩阵键盘,可以进行加、减、乘、除带符号数字运算(六位整数、两位小数),并在液晶显示屏LCD1602上静态显示操作过程及结果。

本设计的操作过程是利用SCTT89C51的来控制LXD1602显示器,SCT89C51有共四个端口,作为数据的输入端和输出端,其中两个端口作为输出端,两个端口作为输出端,两个特殊的端口XTAL2和XTAL1,则作为外部振荡器的输入端和输出端。

四个端口的作用是:一个输入端接4*4矩阵键盘,另一个数据输入端接显示屏LCD1602的三个特殊端口,而另外两个端口作为输出端口,一个端口接显示屏LCD1602的数据端口,另一个端口作为振荡电路的输入端和输出端,连接好电路,接通电源,则可在液晶显示屏LCD1602显示加、减、乘、除的运算过程及结果,这是计算机的设计总过程。

关键词:单片机;C语言;计算器Simple calculator design based on single chipABSTRACTSingle-chip computer technology developing rapidly in recent years, among them,electronic product update speed is fast. The calculator is one of the electronic products are common in everyday life. How can you make the calculator technology more mature, make full use of existing hardware and software conditions, design a better calculator.This design is based on STC89C52 single-chip microcomputer as the core of calculator simulation system design, input use 4 * 4 matrix keyboard, could add, subtract, multiply and divide signed number-crunching six (integer, two decimal places), and static on the LCD display LCD1602 display operation process and results. This design process is controlled by using SCTT89C51 LXD1602 display, SCT89C51 has a total of four ports, as the data input terminal and output terminal, two of the port as the output side, the two ports as the output side, and two special port XTAL1 and XTAL2, as external oscillator input end and output end. Four port is: a 4 * 4 matrix keyboard input, another data input termination display LCD1602 three specific ports, and the other two ports as output port, a port display LCD1602 data port, another port as oscillation circuit input end and output end, good connection electric circuit, switch on the power, can be in the LCD display LCD1602 display of add, subtract, multiply and divide operation process and result, this is the computer's design process.Key words:Single chip microcomputer; The C language; Calculating machine基于单片机的简易计算器的设计序言随着社会的发展,科学的进步,人们的生活水平在逐步地提高,尤其是微电子技术的发展犹如雨后春笋般的变化。

基于STC89C52单片机的计算器

基于STC89C52单片机的计算器

4X4矩阵键盘实现的计算器一、功能实现基本的两个整数加、减、乘、除运算,采用4X4矩阵键盘输入数据,结果由LCD1602显示。

可以显示负数结果,并且还具有清除功能。

该软件基于普中科技的HC6800_EM3 V2.2平台,微处理器为STC89C52单片机。

二、硬件电路图硬件各个部分的电路图如下:1、STC89C52单片机电路图2、LCD1602显示电路图3、矩阵键盘电路图P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0012345678910(+)11(-)12(*)13(/)14(=)15(CLR)三、软件程序1、LCD1602驱动程序(1)LCD1602.c#include <reg52.h>#include <intrins.h>sbit LCD_RS = P2^6;sbit LCD_RW = P2^5;sbit LCD_EN = P2^7;#define delayNOPs(); {_nop_();_nop_();_nop_();_nop_();};// 延时函数,延时大约1ms乘以nvoid DelayNms(unsigned int n){unsigned char x;while(n--){for(x=0; x<250; x++){_nop_();_nop_();_nop_();_nop_();}}}/***************************************************************************/ /* */ /* 检查LCD忙状态 */ /* 返回值为1时,表示忙,等待。

返回值为0时,表示闲,可以写入指令与数据。

*/ /* 读状态:RS=L,RW=H,E=H,D0-D7=状态字 */ /* */ /***************************************************************************/bit Lcd1602_is_busy(void){bit result;LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;delayNOPs(); // 保证使能脉冲的宽度result = (bit)(P0&0x80);LCD_EN = 0;return(result);}/*******************************************************************//* *//* 写指令到LCD *//* RS=L,RW=L,E=高脉冲,D0-D7=指令码 *//* *//*******************************************************************/void Lcd_Write_Command(unsigned char cmd){while(Lcd1602_is_busy());LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;P0 = cmd;delayNOPs(); // 保证使能脉冲的宽度LCD_EN = 1;delayNOPs();LCD_EN = 0;}/*******************************************************************//* *//* 写显示数据到LCD *//* RS=H,RW=L,E=高脉冲,D0-D7=数据 *//* *//*******************************************************************/void Lcd_Write_Data(unsigned char dat){while(Lcd1602_is_busy());LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;P0 = dat;delayNOPs();LCD_EN = 1;delayNOPs();LCD_EN = 0;}/*******************************************************************//* *//* LCD初始化设定 *//* *//*******************************************************************/void Init_Lcd1602(void){DelayNms(15);Lcd_Write_Command(0x38); // 设置成:16*2显示,5*7点阵,8位数据接口DelayNms(5);// Lcd_Write_Command(0x08); // 显示关闭// DelayNms(5);Lcd_Write_Command(0x0C); // 显示开,关光标DelayNms(5);Lcd_Write_Command(0x06); // 移动光标,输入方式从左到右DelayNms(5);Lcd_Write_Command(0x01); // 清除LCD的显示内容,数据指针清零,将光标撤回液晶显示屏的左上方DelayNms(5);}(2)LCD1602.hvoid Lcd_Write_Command(unsigned char cmd);void Lcd_Write_Data(unsigned char dat);void Init_Lcd1602(void);void DelayNms(unsigned int n);2、矩阵键盘驱动程序(1) 4X4KeyPad.c#include <STC89C5xRC.h>#include "LCD1602.h" // 要用到延时函数 void DelayNms(unsigned char n);#define key P1unsigned char val = 16; // 获取的键值#define KEY_NULL 0xFF // 后来加上的// 键盘扫描函数unsigned char key_scan(void){unsigned char state,KeyTemp;key = 0x0F;if(key != 0x0F) // 如果有按键按下{state = key; // 记录第一次按键状态DelayNms(10); // 延时去抖if(key == state) // 判断按键状态是否和第一次一致{key = 0x0F; // 测试列,该行可屏蔽掉switch(key){case (0x07): KeyTemp = 0; break;case (0x0B): KeyTemp = 1; break;case (0x0D): KeyTemp = 2; break;case (0x0E): KeyTemp = 3; break;}key = 0xF0; // 测试行switch(key){case (0x70): val = KeyTemp + 0; break;case (0xB0): val = KeyTemp + 4; break;case (0xD0): val = KeyTemp + 8; break;case (0xE0): val = KeyTemp + 12; break;}while(key != 0xF0); // 等待松开按键}elsereturn (KEY_NULL);}elsereturn (KEY_NULL);// else key = 0xFF; // 释放键盘总线}(2) 4X4KeyPad.hextern unsigned char key_scan(void);extern unsigned char val;#define KEY_NULL 0xFF3、计算器计算和显示程序(1)caculating and displaying.c#include <stdio.h> // sprintf语句用到#include "LCD1602.h"#include "4X4KeyPad.h"unsigned char code table1[] = {"0123456789+-*/=C"};bit number_key = 0; // 数字键bit add_key = 0; // 加法键 + bit sub_key = 0; // 减法键 -bit multiply_key = 0; // 乘法键 *bit division_key = 0; // 除法键 /bit equal_key = 0; // 等于键 =bit clear_key = 0; // 清除键double a=0,b=0,s=0; // a为计算的第一个数,b为第二个数,s为计算结果// 必须定义为浮点,否则不能够保证计算精度// 识别按键,置标记符void Key_Recognition(void){if(key_scan() != KEY_NULL) // 有按键按下时才置标志位和显示{if(val <= 9) number_key = 1;if(val == 10) add_key = 1;if(val == 11) sub_key = 1;if(val == 12) multiply_key = 1;if(val == 13) division_key = 1;if(val == 14) equal_key = 1;if(val == 15) clear_key = 1;Lcd_Write_Data(table1[val]); // 显示按键对应的字符}}// 计算被计算的两个数 Gets the number of two to be calculatedvoid Get_Parameters_for_calculation(void){if(equal_key != 1) // 没有按等号键才进入{if((add_key||sub_key||multiply_key||division_key) != 1) // 没有按下运算键(+-*/){if(number_key == 1) // 是数字键{a = a*10 + val; // a为运算的第一个数number_key = 0;}}else // 按下运算键(+-*/){if(number_key == 1){b = b*10 + val; // b为运算的第二个数number_key = 0;}}}}// 计算结果void Calculate_Result(void){if(equal_key == 1) // 只有按等号键才能计算{if(add_key == 1) // 加法s = a + b;if(sub_key == 1) // 减法s = a - b;if(multiply_key == 1) // 乘法s = a * b;if(division_key == 1) // 除法s = a / b;}}void Display_Result(void){unsigned char i = 0; // 显示字符的指针unsigned char result[16] = ""; // 待显示的字符计算结果if(equal_key == 1) // 只有按等于键才显示{equal_key = 0;sprintf(result,"%.4f",s); // 浮点数的默认有效位是小数点后6位,这里设置为4位// sprintf(&temp1[0],"%f",a);Lcd_Write_Command(0x80+0x40); // 结果在第二行显示while(result[i] != '\0'){Lcd_Write_Data(result[i]);i++;}}}// 清除显示void ClearScreen(void){if(clear_key == 1) // 只有按清除键才能清除{Lcd_Write_Command(0x01); // LCD清屏指令,把光标撤回到显示器的左上number_key = add_key = sub_key = multiply_key = division_key = equal_key = clear_key = 0;// 清除所有的状态标志s = 0;a = 0;b = 0;}}(2) caculating and displaying.hvoid Key_Recognition(void);void Get_Parameters_for_calculation(void);void Calculate_Result(void);void Display_Result(void);void ClearScreen(void);4、系统主程序#include "LCD1602.h"#include "caculating and displaying.h"void Start_Screen(void){unsigned char code table1[] = " WELCOME TO ";unsigned char code table2[] = "STC51 CALCULATOR" ;unsigned char index = 0; // 显示字符的指针Lcd_Write_Command(0x80);while(table1[index] != '\0'){Lcd_Write_Data(table1[index]);index++;}DelayNms(500);index = 0;Lcd_Write_Command(0x80+0x40);while(table2[index] != '\0'){Lcd_Write_Data(table2[index]);index++;}DelayNms(2000);Lcd_Write_Command(0x01); // 清屏}void main(void){Init_Lcd1602();Start_Screen();while(1){Key_Recognition();Get_Parameters_for_calculation();Calculate_Result();Display_Result();ClearScreen();}}。

基于单片机的简易计算器设计论文(1)

基于单片机的简易计算器设计论文(1)

基于单片机的简易计算器设计论文(1)论文题目:基于单片机的简易计算器设计引言:计算器是我们日常生活中不可缺少的工具之一,而现代计算器从产品的形态和功能上受到了广泛的关注,它们具有较高的性能和卓越的功能,但是成本较高,同时使用起来不太容易。

本篇论文主要介绍一种简易的计算器设计,该设计基于单片机,可满足日常简单计算使用。

正文:一、设计目标基于单片机的计算器设计,旨在实现以下功能:1、基本运算:加, 减, 乘, 除运算。

2、小数计算:设定包含小数点的计算功能,可进行小数运算。

3、正负运算:支持正数和负数的运算。

4、清零功能:支持清除当前运算,重置计算器状态。

二、设计方法1、硬件设计本设计采用STC89C52RC单片机,其主频为11.0592MHz,具有24KB的Flash,1KB的RAM和256B的EEPROM存储空间,外围可接收光电探测器或手动开关输入,仍可设计LCD显示屏。

2、软件设计(1)实现基本运算功能按下“+”、“-”、“*”、“/”按钮时,代码将控制单片机首先在LCD上输入第一个数字,然后执行一次运算。

通过代码实现的算法,将对之前输入的数字和当前输入的数字进行加法、减法、乘法或除法运算,然后再将结果显示在LCD屏幕上。

(2)实现小数计算功能单片机不能处理小数点,“小数点”的实现需要特殊设置。

通过将输入转换为整数,然后在LCD显示时再加上小数点实现显示小数计算的功能。

(3)实现正负运算功能通过在数字输入前添加“-”实现数字的负数化,进一步实现正负运算的功能。

(4)实现清零功能按下清零按钮时,单片机会将当前将屏幕的显示清空,并恢复到初始状态,保留设置的数据。

三、功能实现本设计基于STC89C52RC单片机,实现了基本运算、小数计算、正负运算和清零功能。

用户可以按下按键进行相关功能的操作,该计算器支持常规计算、对数、三角函数等。

四、总结通过本设计,我们可以实现一个基于单片机的计算器。

由于单片机的低成本和高性能,该计算器实现了类似于高端计算器的功能,但成本更低,且使用方便。

基于STC89C52的简易计算器设计

基于STC89C52的简易计算器设计

福建电力职业技术学院课程设计课程名称:《智能仪器》题目:基于STC89C52的简易计算器设计专业班次:姓名:学号:指导教师:学期:2011-2012学年第2学期日期:2012.2目录目录1. 引言 (1)1.1本设计的意义 (1)1.2本设计任务和主要内容 (2)2. 硬件设计 (2)2.1系统框图 (3)2.2最小系统 (4)2.3矩阵键盘 (5)2.4 LCD1602硬件设计 (6)3.软件设计 (7)3.1矩阵键盘扫描原理 (8)3.2L C D1602引脚功能时序图 (9)3.3计算器流程图 (10)4设计小结 (12)参考文献 (14)附录:课程设计程序清单 (15)1.引言随着社会的发展,科学的进步,人们的生活水平在逐步地提高,尤其是微电子技术的发展犹如雨后春笋般的变化。

电子产品的更新速度快就不足惊奇了。

计算器在人们的日常中是比较常见的电子产品之一,如何使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,使其更好地为各个行业服务,成了如今电子领域重要的研究课题。

现如今,人们的日常生活中已经离不开计算器了,社会的各个角落都有它的身影,比如商店、办公室、学校……因此设计一款简单实用的计算器会有很大的实际意义。

本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。

通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好的基础。

1.1 本设计的意义计算器在人们的日常中是比较常见的电子产品之一,如何使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,使其更好地为各个行业服务,成了如今电子领域重要的研究课题。

现如今,人们的日常生活中已经离不开计算器了,社会的各个角落都有它的身影,比如商店、办公室、学校……因此设计一款简单实用的计算器会有很大的实际意义。

基于STC89C52单片机的计算器

基于STC89C52单片机的计算器

基于STC89C52单片机的计算器随着科技的不断发展,单片机已经成为现代电子设备中的重要组成部分。

STC89C52单片机作为一种常见的单片机,因其高性价比和良好的性能而广泛应用于各种嵌入式系统中。

本文将介绍如何使用STC89C52单片机制作一个简单的计算器。

一、硬件设计1、电源电路:为单片机提供稳定的电源。

2、时钟电路:为单片机提供时钟信号,确保其正常运行。

3、复位电路:在单片机出现异常时,通过复位电路实现系统重启。

4、输入电路:用于接收用户输入的数字和运算符。

5、输出电路:用于显示计算结果。

二、软件设计1、初始化程序:对单片机的各个寄存器进行初始化。

2、显示程序:根据需要显示的内容,编写相应的显示程序。

3、输入程序:接收用户输入的数字和运算符,并将其存储在相应的变量中。

4、计算程序:根据用户输入的运算符,调用相应的函数进行计算,并将结果显示在输出电路中。

三、调试与测试1、硬件调试:检查电路板上的元器件是否连接正确,确保电源、输入和输出电路的正常工作。

2、软件调试:通过串口调试工具,对程序进行调试和修改,确保程序的正确性。

3、综合测试:在完成硬件和软件的调试后,进行综合测试,确保计算器的正常工作。

四、结论本文介绍了基于STC89C52单片机的计算器的硬件和软件设计。

通过使用单片机,可以实现简单的计算器功能,并且具有成本低、易于维护和升级等优点。

在制作过程中,需要注意硬件和软件的调试与测试,以确保系统的稳定性和可靠性。

stc89c52单片机技术资料标题:STC89C52单片机技术资料一、概述STC89C52单片机是一种广泛应用的微控制器,它由深圳宏晶科技有限公司生产。

这款单片机具有高性能、低功耗、高可靠性等特点,适用于各种嵌入式系统开发。

下面将详细介绍STC89C52单片机的技术特性、引脚配置、寄存器映射以及常用开发工具等。

二、STC89C52单片机特性1、工作频率:STC89C52单片机的时钟频率可达到35MHz,能够满足大多数应用场景的需求。

电子设计基于STC89C52RC单片机的简易计算器设计说明

电子设计基于STC89C52RC单片机的简易计算器设计说明

电子设计实验名称:基于STC89C52RC单片机的简易计算器设计姓名: __学号:指导老师:目录一、可行性研究 (3)二、设计方案简述 (4)2.1、功能介绍................................................................... .. (4)基本功能 (4)扩展功能 (4)2.2、总体设计方案............................................................................ (5)总体设计思路 (5)方案论证与比较 (6)系统组成 (7)三、详细设计 (12)1.各个模块设计 (12)输入模块:键盘扫描 (13)运算模块:单片机控制 (14)显示模块:LCD1602显示 (15)2.硬件电路设计 (16)硬件连接 (16)3.元件的介绍 (17)STC89C52单片机组成 (17)复位和复位电路 (18)LCD1602显示器 (19)4.PCB设计以及结果显示 (22)五、总结 (24)附录主要程序代码 (25)一、设可行性分析:1.2.1 经济可行性由于只是实验性质的编程,所以在设计和开发都不需要过多的经费,但是系统投入运行以后,硬件维护和损耗所造成的耗费是必须的,但是数目也不会很大。

所以经过初步分析,经济上基本上是可行的1.2.2技术可行性在技术方面,因为都学习了C语言,硬件课程设计等课程,对于开发语言c语言也有一定的掌控能力,应该能够完成相应的任务。

1.2.3 运行可行性该成果简单易操作,非常容易使用。

1.2.4 法律可行性由于我们需要完成的功能相对简单,没有太多涉及到很专业方面的容,更没有计划将系统利用到商业用途,所以不存在侵权或者纠纷方面的问题。

1.2.5结论该系统的软硬件都比较容易理解和实现,所以,具有实现一计算器的可行性。

二、设计方案简述2.1功能概述系统基本功能:(1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合分析后,最后采用LCD 显示数据和结果。

基于单片机控制的简单计算器设计方案

基于单片机控制的简单计算器设计方案

基于单片机控制的简单计算器设计方案一、引言随着单片机技术的不断发展,计算器作为人们生活中不可或缺的工具之一,也得到了广泛的应用。

本文将介绍一种基于单片机控制的简单计算器设计方案,通过单片机与键盘、显示器等外围设备的配合,实现基本的加减乘除四则运算功能。

二、硬件设计为了完成计算器的设计,我们需要准备以下硬件设备:1.单片机:选择一款性能较好的单片机,如STC89C522.键盘:选用矩阵键盘,共有16个按键。

3.显示器:采用数码管显示器,方便用户观察计算结果。

4.电源:使用适当电压的电源供电。

具体的硬件连接方式如下:1.将矩阵键盘与单片机的GPIO口相连,读取按键的输入。

2.将数码管与单片机的GPIO口相连,用于显示计算结果。

三、软件设计1.按键扫描首先,需要对键盘的按键进行扫描,以便读取用户输入的数字和运算符。

采用矩阵键盘扫描方式,可以有效减少IO口的使用数量。

通过循环扫描键盘,将按下的键值读取到寄存器中,以便后续的处理。

2.输入处理读取到键值后,需要对用户输入的字符进行处理,包括数字和运算符的识别。

在识别到数字时,将其存储到相应的数据变量中;在识别到运算符时,判断当前是否已经输入了两个数字,如果满足条件,则进行相应的运算。

3.运算处理在输入处理的基础上,需要完成基本的加减乘除四则运算。

通过设置相应的标志位变量来表示当前的运算符,根据不同的标志位执行相应的运算。

4.显示结果在完成运算后,将结果显示到数码管上,以供用户观察。

5.清零操作在计算完成后,可以通过按下清零键来将当前的计算结果清零,以便进行下一次的计算。

四、设计考虑在具体设计过程中,需要考虑以下几个方面:1.按键的防抖处理:由于按键机械结构的原因,按键在按下和释放时会产生抖动信号,因此需要对按键进行防抖处理,以保证按键输入的准确性。

2.输入错误处理:对于用户可能犯的输入错误,例如除数为零等,需要进行相应的错误处理。

3.显示结果的格式化:为了方便用户观察计算结果,可以对结果进行适当的格式化处理,例如四舍五入、精度控制等。

最新基于89C52的计算器设计

最新基于89C52的计算器设计

目录一设计内容及要求1.1 设计任务 (1)1.2 性能指标…………………………………………………………………………………………………1.二设计方案三硬件系统设计3.1 硬件系统主要组成部分设计 (1)3.2 单片机最小系统电路设计 (2)3.3 串行通信电路设计 (3)3.4 键盘电路设计 (3)3.5 显示电路设计 (4)3.6 报警电路设计 (5)四软件系统设计4.1 简易计算器的软件模块 (5)4.2 主程序设计 (5)4.3 运算流程图设计 (6)4.4键盘模块系统设计 (7)五系统调试5.1 调试步骤 (7)5.2 性能分析 (7)六总结参考文献附录一原理图附录二线路板图附录三程序一、设计内容及要求1.1 设计任务设计一十进制加减法计算器,输入范围为(1—999)的整数,除加减法计算外,自行设计两个待扩展键。

1.2 性能指标1.、完成4*4键盘的设计,分别为0~9、+、-、=、清除键、2个待扩展键;2、显示方式为液晶(1602)显示;3、要求具备清零功能;二、设计方案1、单片机选择89C52,它是新一代增强型单片机指令代码完全兼容传统8051,速度快,双串口,加密性好,抗干扰能力强,使用寿命长,价格低廉,8kflash程序空间,运用方便;2、显示系统选用1602液晶并行的显示,是一种低压、微功耗的显示器件,用1602液晶可显示数字,1602有16个外接端口,硬件接线比较简单;3、键盘部分选用采用4(行)×4(列)矩阵式键盘, 通过键盘实现数值和功能键的输入。

本课题的键盘设计为0~9十个数字键,+、-、*、/、=、清零6个功能键;4、串行通信电路选用的芯片是STC232。

三、硬件系统设计3.1 硬件系统主要组成部分设计如图1所示硬件电路主要包括:1、单片机最小系统电路;2、串行通信电路;3、键盘接口电路;4、液晶显示电路;5、报警电路;6、通过单片机最小系统来控制其他的外围电路。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子设计实验名称:基于STC89C52RC单片机的简易计算器设计姓名: __学号:指导老师:目录一、可行性研究 (3)二、设计方案简述 (4)2.1、功能介绍................................................................... .. (4)基本功能 (4)扩展功能 (4)2.2、总体设计方案............................................................................ (5)总体设计思路 (5)方案论证与比较 (6)系统组成 (7)三、详细设计 (12)1.各个模块设计 (12)输入模块:键盘扫描 (13)运算模块:单片机控制 (14)显示模块:LCD1602显示 (15)2.硬件电路设计 (16)硬件连接 (16)3.元件的介绍 (17)STC89C52单片机组成 (17)复位和复位电路 (18)LCD1602显示器 (19)4.PCB设计以及结果显示 (22)五、总结 (24)附录主要程序代码 (25)一、设可行性分析:1.2.1 经济可行性由于只是实验性质的编程,所以在设计和开发都不需要过多的经费,但是系统投入运行以后,硬件维护和损耗所造成的耗费是必须的,但是数目也不会很大。

所以经过初步分析,经济上基本上是可行的1.2.2技术可行性在技术方面,因为都学习了C语言,硬件课程设计等课程,对于开发语言c语言也有一定的掌控能力,应该能够完成相应的任务。

1.2.3 运行可行性该成果简单易操作,非常容易使用。

1.2.4 法律可行性由于我们需要完成的功能相对简单,没有太多涉及到很专业方面的内容,更没有计划将系统利用到商业用途,所以不存在侵权或者版权纠纷方面的问题。

1.2.5结论该系统的软硬件都比较容易理解和实现,所以,具有实现一计算器的可行性。

二、设计方案简述2.1功能概述系统基本功能:(1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合分析后,最后采用LCD 显示数据和结果。

(2)采用键盘输入方式,键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键(on\c)和等号键(=),故只需要16 个按键即可,设计中采用集成的计算键盘。

(3)在执行过程中,开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。

(4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示overflow;当除数为0时,计算器会在LCD上提示error。

扩展功能:加上括号的混合运算2.2总体设计思路本设计主要采用以下基本模块来实现:控制器模块,输入模块,输出模块和电源模块。

通过对控制器进行编程。

使其对输入模块的信号进行处理计算,然后通过输出模块反馈给使用者以计算结果。

线路原理框图方案论证与比较控制部分的设计方案论证与选择根据设计要求,控制器主要用于红外信号的接收和辨认、控制步进电机的动作,控制显示步进电机的转速等。

对于控制器的选择有以下三种方案。

方案一:采用计算器专用芯片实现。

用计算器专用芯片进行设计并编程实现。

这种设计方案计算效率高、速度快、而且成本也相对较低,是厂家做计算器的最佳方案。

但是本人对计算器专用芯片掌握的不够,还不足以实现设计计算器,所以这个方案不可去。

方案二:采用FPGA(现场可编程门阵列)作为系统的控制器。

FPGA将所有器件集成到一块芯片上,体积小,节省空间,提高了稳定性;直接面向用户,具有极大的灵活性和通用性,使用方便,硬件测试和实现快捷,开发效率高,工作可靠性好。

可以实现各种复杂的逻辑功能,规模大,密度高,采用并行的输入输出方式,系统处理速度高,适合作为大规模实时系统的控制核心。

由FPGA内部编程实现计算器功能,本设计对数据处理速度的要求不是很高,FPGA的高速处理的优势得不到充分的体现,由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物电路板布线复杂,加重了电路设计和实际焊接的工作。

并且FPGA 的价格相对较高,性价比太低。

方案三、用单片机实现。

由于单片机集成了运算器电路、控制电路、存储器、中断系统、定时器/计数器以及输入/输出口电路等,所以用单片机设计控制电路省去了很多分立元器件。

由于单片机是可编程芯片,并且它可以运用C语言编写,对于一些复杂的计算功能,可以调用C语言库函数。

使编写程序变得非常简单。

所以该课题用单片机实现,不仅功能易于实现,而且精确度高,稳定性好,抗干扰能力强。

并且由于其成本低、体积小、技术成熟和功耗小等优点,且技术比较成熟。

性价比也相当高。

更重要的是本人经过几年的学习,对单片机已有深刻的理解,并且可以灵活运用。

综上所述,并通过各个方面综合比较为达到最佳效果。

我们采用方案三利用单片机控制器。

显示电路的设计方案论证与选择方案一:数码管显示方案。

数码管显示使用两个四位一体动态数码管显示方案,此设计电路如图所示。

采用动态数码管显示,具有程序简单,对外界环境要求低,易于维护,同时其精度比较高,精确可靠,操作简单。

显示直观的特点。

但只能显示数字和一些代码,不能显示汉字及一些常用的符号,且硬件设计比较复杂。

方案二;LCD1602显示器所谓1602是指显示的内容为16*2,即可以显示两行,每行16个字符。

目前字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于大部分的字符型液晶。

字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚定义如下表所示:HD44780内置了DDRAM、CGROM和CGRAM。

DDRAM就是显示数据RAM,用来寄存待显示的字符代码。

共80个字节,其地址和屏幕的对应关系如下表:HD44780的指令集1.清屏指令功能:<1> 清除液晶显示器,即将DDRAM的内容全部填入"空白"的ASCII码20H;<2> 光标归位,即将光标撤回液晶显示屏的左上方;<3> 将地址计数器(AC)的值设为0。

2.光标归位指令功能:<1> 把光标撤回到显示器的左上方;<2> 把地址计数器(AC)的值设置为0;<3> 保持DDRAM的内容不变3.进入模式设置指令功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。

参数设定的情况如下所示:位名设置I/D 0=写入新数据后光标左移1=写入新数据后光标右移S 0=写入新数据后显示屏不移动1=写入新数据后显示屏整体右移1个字4.显示开关控制指令功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。

参数设定的情况如下:位名设置D 0=显示功能关 1=显示功能开C 0=无光标 1=有光标B 0=光标闪烁 1=光标不闪烁5.设定显示屏或光标移动方向指令功能:使光标移位或使整个显示屏幕移位。

参数设定的情况如下:S/C R/L 设定情况0 0 光标左移1格,且AC值减10 1 光标右移1格,且AC值加11 0 显示器上字符全部左移一格,但光标不动1 1 显示器上字符全部右移一格,但光标不动6.功能设定指令功能:设定数据总线位数、显示的行数及字型。

参数设定的情况如下:位名设置DL 0=数据总线为4位1=数据总线为8位 N 0=显示1行1=显示2行F0=5×7点阵/每字符1=5×10点阵/每字符7.设定CGRAM地址指令功能:设定下一个要存入数据的CGRAM的地址。

8.设定DDRAM地址指令功能:设定下一个要存入数据的CGRAM的地址。

(注意这里我们送地址的时候应该是0x80+Address,这也是前面说到写地址命令的时候要加上0x80的原因)9.读取忙信号或AC地址指令功能:<1> 读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;当BF=0时,液晶显示器可以接收单片机送来的数据或指令;<2> 读取地址计数器(AC)的内容。

10.数据写入DDRAM或CGRAM指令一览功能:<1> 将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;<2> 将使用者自己设计的图形存入CGRAM。

11.从CGRAM或DDRAM读出数据的指令一览功能:读取DDRAM或CGRAM中的内容。

基本操作时序:读状态输入:RS=L,RW=H,E=H输出:DB0~DB7=状态字写指令输入:RS=L,RW=L,E=下降沿脉冲,DB0~DB7=指令码输出:无读数据输入:RS=H,RW=H,E=H输出:DB0~DB7=数据写数据输入:RS=H,RW=L,E=下降沿脉冲,DB0~DB7=数据输出:无 2.2.2.3、键盘设计方案与选择方案一:独立键盘。

独立键盘为一端接地,另一端接I/O口,并且要接上拉电阻。

这种键盘的硬件都很容易实现,但每一个按键就要用一个I/O口,适合本次设计。

方案二:通过PS2协义,用键盘同单片机相接,从而实现单片机与键盘通信。

其电路如图所示。

现在PC机广泛采用的PS/2接口为miniDIN 6引脚的连接器。

1—数据线(DATA);—未用;3—电源地(GND);4—电源(+5 V);5—时钟(CLK);6—未用。

由此图可知,使用键盘硬件结构比较简单,但键盘的体积太大,所以此系统不采用此方案。

方案三:自制编码键盘。

编码键盘的电路如图所示,这种键盘有编程简单,占用资源少,但其硬件比较复杂,要用很多的二极管,不是很理想。

方案四:4*4矩阵式键盘。

其电路图如图所示,这种键盘的硬件简单,使用的I/O口也不多,而且这种键盘的编程方法已很成熟。

本次设计也可以采用这种矩阵式键盘。

其电路图如图主体设计部分:(1)、系统模块图:输入模块单片机运算模块显示模块(2)、算术运算程序流程图:(3)、系统总流程图:(4)、硬件设计:(一)、总体硬件设计:本设计选用AT89C51单片机为主控单元;显示部分:采用LCD静态显示;按键部分:采用4*4键盘;用MM74C922为4*4键盘扫描IC,读取输入的键值。

总体设计效果如下图:(二)、单片机接口电路说明:1、手动上电复位电路:当VCC上电时,C充电,在10K电阻上出现电压,使得单片机复位;几个毫秒后,C充满,10K电阻上电流降为0,电压也为0,使得单片机进入工作状态。

相关文档
最新文档