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

合集下载

基于STC89C52单片机的计算器

基于STC89C52单片机的计算器

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于单片机的产品自动计数器设计

基于单片机的产品自动计数器设计

的物 体 的 变化 转 换 成 电信号,计 数 显示 电路开 始 计数 ,并 将 其显 间 内输 入的 脉冲 数 目,并将 其 结果 以 数字 的 形式 显 示 出来。具 有
示 出来。当数字 达到 设定值 时,报 警电路 报警 ,延时 3秒后 自动关 闭, 体 积小 、功 能强 、可靠性 高、抗干扰性 好、性能 价格 比高等 特点 ,可
Digital Space R291
技术 交流
基于单片机 的产品自动计数器设计
蒋琳 徐忠根 商丘工学院 摘 要 :本文设计了一 种基于 STC89C52单片机 控制 的产品自动计数 器,系统由 ^/D、D/A转换 、显示 电路、报警 电路 等 组成 ,利 用红外发光 管发射 红外线,红外接 收管接 收此 红外 线识 别和接 收产品信号,信号送入单 片机 进行控制 计数 ,并通过数 码管显示数值 。 关 键 谭:单片机 自动计数器 红外检 测 STC89052
当有物 体 经过 自动 计数 器时 ,红 外发 光二 极管 发 出的信 号被 [33】郭天祥 .《5l单片机 C语言教程—· 入门、提高、开发、拓展全攻略》 物 体 反 射至 光 电接收 管 ,被 其接 收 ,红 外发 射与 接收 电路 把被 计 M .北京 :电子工业 出版社 ,2013.
报 警 电路 主要 由蜂 鸣器 、三 极 管和 电 阻组 成 。当电流 通 过 电
磁 线圈 时,通过 产生磁 场来 驱动膜 发 声,驱 动蜂 鸣器需 要 电流 。当
计 数器 的显 示值与 设定 的 报警 值相 同时 或 者超 出时 ,发 出信 号到
报 警电路 ,由蜂 鸣器 发 出报 警信 号,报警 延 时 3秒 自动关 闭 ,开始
1系统 结构 设 计 本文 设 计 的产 品 自动 计数 器主 要 由 LED显 示 、红 外 线 发 射 和 接 收电路 、报警 电路和 单片机 中控 组成 。系统结 构如 图 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的简易计算器设计专业班次:姓名:学号:指导教师:学期:2011-2012学年第2学期日期:2012.2word格式-可编辑-感谢下载支持目录1.引言 01.1 设计意义 01.2 设计任务和主要内容 02. 硬件设计 (1)2.1 系统框图 (1)2.2 最小系统 (1)2.3 矩阵键盘 (2)2.4 LCD1602 (3)3. 软件设计 (4)3.1矩阵键盘扫描原理 (4)3.2 LCD1602的软件设计 (5)3.3 主程序设计 (7)3.4 源程序 (8)3.5 调试结果 (8)4. 设计小结 (8)参考文献 (9)附录 (9)1.引言随着社会的发展,人们生活水平的提高,单片机的应用越来越贴近生活了,人们常用单片机来实现一些简单的电子设计。

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

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

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

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

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

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

基于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 显示数据和结果。

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

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

基于STC89C52单片机的计算器

基于STC89C52单片机的计算器

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于STC89C52的计算器设计与仿真_宋慧超

基于STC89C52的计算器设计与仿真_宋慧超

……
//算 数 运 算
3 仿真及结果分析 硬件和软件设计分别利用Prot eus与Kei l集成开发环境
实现。C语言程 序 代码由Ke i l 编写并 编译,将产生的可执行 文件加载到Prot eus中[5],实现仿真功能。
系统 仿真 总体电 路图如图2 所 示,系统 启 动后屏 幕上 显 示 欢 迎信息“We l c o m e!”。具体 结 果 演 示 如图3所 示,计 算 器可 以 进行 较 高 精度 的 加 减 乘 除 运 算,支 持小 数 运 算,结 果 保留 到小数点后5位,其中,图3(a)为大数量的加法运算,结果用科 学 记 数 法 显 示;图3 ( b) 为 减 法 运 算,结 果 为负 数;图3 (c) 和图 3(d)分别为乘法、除法运算,结果均保留到小数点后5位。
摘 要:单片机具有体积小、控制功能强、功耗低、环境适应能力强、扩展灵活和使用方便等优点,已广泛应用在生活的各个领
域,该文提出一种基于单片机的高精度计算器设计方案,核心控制系统采用STC89C52单片机,利用LCD1602液晶显示屏显示运
算过程与结果,设计4×4键盘构成按键模块,用来模拟0~9及加、减、乘、除、清零按键。软件程序利用单片机C语言编写,并在
4×4 键盘又称为行列式键盘,它是4条I/O线作为行线, 4 条I/O线作为列线组 成的键 盘,在行线和列线的每 一个交 叉点上设置一个按 键 [3],这种结构可以有效地提高单片机系 统中I/O口的利用率。4 条行线 分别接单片 机 P1.3~P1.0,4 条列线接单片机 P1.4~P1.7,每位按键对应的功能可参见图 2系统硬件仿真图。
公共交 通枢 纽 站的服务范围和服务区域。(2)对 枢 纽的服务 区域 内的 客 流 分布进 行 详 细 分 析,确 定 公共 交 通 枢 纽布置 的 备 选 点,原 则 上 选 取 客 流 量 较 大,换 乘 频 率 较 高 的 客 流 交汇 地 点作为公共 交 通 枢 纽备 选 地 点。(3) 根 据已知 客 流 量,通 过 优化方法在被选枢纽选址中确定交通枢纽的最终地址。

基于STC89C52单片机多功能计算器设计与仿真

基于STC89C52单片机多功能计算器设计与仿真

0 引 言
多 功 能 计 算 器 作 为 一 种 快 速 通 用 的 计 算 工 具 为 日常 计 算 提 供 了方 便 ,同 时 又 可 以 兼 有 时 钟 显 示 和 温 度 显 示 功 能 。 该 计 算 器 以 STC89C52单 片 机 为 核 心 进 行 计 算 器 模 拟 系 统 的 设 计 ,输 入 采 用 4× 4矩 阵 键 盘 ,可 以 进 行 加 、减 、乘 、除 数 字 运 算 ,并 在 LCD1602上 显 示 操 作 过 程 ,不 计 算 时 ,显 示 当 前 时 间 和 温 度 ,通 过 按 键 切 换 模 式 时 ,可 进 行 时 间 的 调 整 。
和 液 晶 显 示模 块 组 成 ,其 中 ,单 片机 的 P0 口 用 作 输 出 端 口接 LCD1602的 8个 数 据 引 脚 ,P2 口接 使 能 端 和 读 写 引脚 ,驱 动
LCD16O2显 示 ;P1口作 为 输 入 端 口 ,外接 4x4的 矩 阵 键 盘 ;P3口接 DS18B20温 度 传 感 器和 DSI 302时 钟 芯 片 ,用 于 实 时 监 测
郭 占苗 , 吴 沛。 (西安 航 空职业 技 术学 院 ,1.电子 工程 学 院 ,2.学生 处 ,西安 710089)
摘 要 :基 于 STC89C52单 片机 设 计 一 款 用 LCD16O2液 晶 显 示 的 多功 能计 算 器 。 由矩 阵 键 盘 模 块 、温度 图
1 原 理 的 设 计
2 软 件 的 设 计
该 多 功 能计 算 器 主要 包 括 键 盘 输 入 模 块 、单 片 机 主 控 芯 片 、显 示模 块 、时 钟模 块 和 温 度 控 制 模 块 等 5部 分 组 成 ,键 盘 部 分 主 要 用 于 计 算 器 运 算 时输 入 数 字 ,切 换 计 算 器 或 时 间 显 示 ,以 及 时 间 显 示 时 进 行 时 间 调 整 的 功 能 ;单 片 机 主 要 完 成 数 据 处 理 功 能 ,包 括 确 定 按 键 ,完 成 运 算 ,以及 输 出 数 据 ;显 示 器 部 分 主 要 完 成 单 片机 输 出 的 显 示 ;时 钟 模 块 完 成 当前 时 间 的精 准 显 示 ,温 度 传 感 器 对 实 时 温 度 进 行 检 测 [1]。主 要 原 理 框 图 ,如 图 1所 示

基于STC89C52的计算器设计与仿真

基于STC89C52的计算器设计与仿真

基于STC89C52的计算器设计与仿真宋慧超【摘要】Single chip microcomputer has the advantages of smallsize,strong control function,low power consumption,strong adaptability to environment,flexible and easy to use.It has been widely used in various fields.This paper presents a design scheme of high precision calculator based on Single chip microcomputer.Control system is STC89C52 microcontroller.Operation process and results are displayed in theLCD1602 LCD screen.The key module is composed of 4*4 keyboard which is used to simulate the 0-9 and add,subtract,multiply,divide ,reset button. Software program is written in C language and compiled by C51 Keil and verified by Proteus simulation.%单片机具有体积小、控制功能强、功耗低、环境适应能力强、扩展灵活和使用方便等优点,已广泛应用在生活的各个领域,该文提出一种基于单片机的高精度计算器设计方案,核心控制系统采用STC89C52单片机,利用LCD1602液晶显示屏显示运算过程与结果,设计4×4键盘构成按键模块,用来模拟0~9及加、减、乘、除、清零按键.软件程序利用单片机C语言编写,并在Keil C51开发环境下编译,硬件系统通过proteus工具软件设计并仿真.【期刊名称】《科技创新导报》【年(卷),期】2015(000)029【总页数】3页(P159-160,162)【关键词】单片机;4×4键盘;LCD1602【作者】宋慧超【作者单位】内蒙古民族大学物理与电子信息学院内蒙古通辽 028000【正文语种】中文【中图分类】TN43计算器是人们生活中最常见的工具之一,随着科技的迅猛发展,计算器的功能越来越强大,对精度的要求也越来越高。

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

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

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单片机 计算器C语言程序

STC89c52单片机 计算器C语言程序

STC89c52单片机计算器C语言程序STC89C52单片机计算器C语言程序下面是STC89C52单片机计算器的C语言程序,适用于P2位选P0段选时钟12MHZ。

程序代码如下:includedefine uchar unsigned chardefine uint unsigned intuchar Led[17] = {0x3f。

0x06.0x5b。

0x4f。

0x66.0x6d。

0x7d。

0x07.0x7f。

0x6f。

0x77.0x7c。

0x39.0x5e。

0x79.0x71.0x00};long float Number[]={0,0,0,0};uchar A[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};long int D[] = {0,0,0,0,0,0,0,0};uchar code C[] = {0x0.0xFE。

0xFD。

0xFB。

0xF7.0xEF。

0xDF。

0xBF。

0x7F};uchar k=16;uchar b;long float Out_put;uchar e=0;uchar g=0;uchar L=0;uchar g1=0;uchar g2=0;uchar g3=0;uchar g4=0;char j=-1;uchar m=0;uchar n=0;uchar x=0;程序中包含了头文件和宏定义,以及数码管段选、数码管显示位控制寄存器、数码管显示内容寄存器、数码管位选、按键控制变量等各种变量。

其中,Led数组存储了数码管的段选值,Number数组存储了数字,A数组存储了数码管的位选值,D数组存储了数码管的显示内容,C数组存储了数码管的位选值,k、b、Out_put、e、g、L、g1、g2、g3、g4、j、m、n、x 等变量用于按键控制和运算。

代码中没有明显的格式错误,可以直接使用。

下面是已经修改过的文章:uchar xo = 0./*控制开始计数小数点的变量*/long int result;void Delay(uint o) {uint i。

基于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();}}。

基于STC89C52单片机的出租车计价器设计

基于STC89C52单片机的出租车计价器设计
4.4 主界面显示子函数 20
4.5 等候计时中断函数 20
5.系统调试 21
6.设计总结 21
致谢 24
附录 25
基于STC89C52单片机的出租车计价器设计
摘 要
随着城市日益的发展,交通出行方式变得多样化。出租车作为人们的主要出行工具之一,也发展得越来越快。出租车行业的发展在某种意义上,也体现了本座城市的交通发达情况。在出租车变得越来越重要的今天,计价器作为其计费工具,也就显得十分重要。
Keywords:Mileage fare meter ; transportation journey way ; monolithic integrated circuit
1.前言
社会的进步,使得交通出行的方式变得多种多样。在交通如此发达的今天,人们出行变得十分方便。如今,使用计程车出行已经成为了人们日常生活中的基本出行方式之一,越来越多人会因为其快捷、方便的特点选择使用计程车出行。出租车行业的发达与否在某种意义上也代表了一个地方的交通发达状况。因此,让出租车行业拥有一个快速、健康的发展变得尤为重要。除了提高行业的整体服务质量和加强对行业的管理之外,有着优越性能的计价器对出租车来说也是十分重要的。
This time mileage fare meter design uses the plan is take the STC89C52 monolithic integrated circuit as a core, uses the Hall sensor to survey the wheel the rotation turn analog computation travel distance. The demonstration output use is can demonstrate Chinese character the LCD12864 liquid crystal display monitor. Also can act according to the different situation to select the different charge method, like the daytime, evening, with waits for and so on the situations on the way. May carry on the manual revision charge price, has the replacement function.

基于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 显示数据和结果。

基于STC89C52的光电计数器设计

基于STC89C52的光电计数器设计

光电计数器的设计摘要本系统采用的是以单片机STC89c52为核心的自动计数器。

采用反射式光电传感器,将红外发光管与光电接收管相邻安放,每当物体通过一次,红外光就被物体反射,光电接收管接收一次,光电接收管的输出电压就发生一次变化,这个变化的电压信号通过放大和处理后,形成计数脉冲,通过光电隔离耦合并行输入至STC89c52单片机的P1口,通过软件控制和键盘设定计数值并用LED加以显示,便可实现对物体的计数统计。

所谓的光电传感器是将光信号转化为电信号的一种传感器。

它的理论基础是光电效应。

这类效应大致可分为三类。

第一类是外光电效应,即在光照射下,能使电子逸出物体表面。

利用这种效应所做成的器件有真空光电管、光电倍增管等。

第二类是内光电效应,即在光线照射下,能使物质的电阻率改变。

这类器件包括各类半导体光敏电阻。

第三类是光生伏特效应,即在光线作用下,物体内产生电动势的现象,此电动势称为光生电动势。

这类器件包括光电池、光电晶体管等。

光电效应都是利用光电元件受光照后,电特性发生变化。

敏感的光波长是在可见光附近,包括红外波长和紫外波长。

市场上的光电计数器采用的光电传感器有摄像头、光电管等,采用的光的种类有普通光和激光,可见光和不可见光等。

光电传感器一般由光源、光学通路和光电元件三部分组成。

光电式传感器是以光电器件作为转换元件的传感器,光电检测方法具有精度高、应用快、非接触等优点,而可测参数多,光电传感器的结构简单,形式灵活多变,因此,光电传感器在检测和控制中应用非常广泛。

关键词计数器光电传感器单片机数码管毕业设计(论文)AbstractThe system USES the microcontroller is STC89c52 as the core of the automatic counters. By reflecting photoelectric sensor, the infrared luminescence tubes and optoelectronics receiving tube adjacent put, whenever objects through time, infrared light is reflected, photoelectric receiving tube receiving once, photoelectric receiving pipe output voltage has a time change, this change voltage signal by amplifying and processed, forming counting pulses, through photoelectric isolating coupling parallel input to STC89c52 MCU P1 mouth, through software control and keyboard Settings count value and LED to display, can realize to the object counting statistics. This counter can or mechanical artificially count way into electronic counted, and using LED digital pipe display, can be applied to many professions, to meet modern production and lifestyle needs.The so-called photoelectric sensor is light signals are converted to electrical signals a sensor. It is based on the theory of the photoelectric effect. This kind of effect can be roughly classified into three kinds. The first kind is the photoelectric effect, namely in light, can make the electronic escaping surface. Using this effect made devices have vacuum phototubes, photomultiplier tubes, etc. The second type is inside the photoelectric effect, that is, in a light ray can make physical resistivity change. Such devices including various types of semiconductor photoconductive resistance. The third type is born volts effect that light, the object in light effect produced inside emf phenomenon, this electromotive force called light born electromotive force. Such devices including si-based ones, photoelectric transistor, etc. The photoelectric effect is using photoelectric element by light, the electrical characteristics change. Sensitive in the visible light wavelengths is near, including infrared wavelength and uv wavelength. Market photoelectric counter adopts photoelectric sensor have a webcam, phototubes to wait, use light species are regular light and laser, visible and not visible, etc. Photoelectric sensor are usually made of light source, optical path and photoelectric element of three parts. Photoelectric sensor is photoelectric device as conversion of components of the sensor, photoelectric detection method has high accuracy, application quickly, non-contact wait for an advantage, but measurable lots of parameters, photoelectric sensor of simple structure, and flexible in form, therefore, photoelectric sensors in the detection and control is widely used.keywordscounter, photoelectric sensor, microcontroller, digital tube.毕业设计(论文)目录一、绪论 (1)二、光电计数器整体设计过程 (2)(一)光电计数器的设计任务及要求 (2)1.1设计任务 (2)1.2设计要求 (2)1.3总分析结果 (2)(二)设计方案的选择 (3)2.1采用组合逻辑电路和时序逻辑电路实现 (3)2.2以CD4518为核心的计数电路 (3)2.3以STC89c52为核心的计数电路 (4)2.4方案的选定 (4)2.5系统结构框图 (5)(三)硬件结构及功能 (5)3.1 芯片STC89c52 (5)3.1.1 STC89c52的引脚功能 (5)3.1.2 STC89c52系统结构图 (9)3.2 光电传感器的原理和特点 (9)3.2.1 反射式光电传感器 (9)3.2.2 光敏二极管 (11)3.2.3 红外发光二极管的原理和特性 (12)3.3 蜂鸣器的原理 (12)3.3.1 电磁式蜂鸣器内部结构 (13)3.3.2电磁式蜂鸣器驱动原理 (14)3.4 LED数码显示器简介 (15)3.4.1 LED数码显示器的结构 (15)3.4.2 LED数码显示器的两种接法 (15)(四)硬件电路设计 (16)4.1 发射与接收电路 (16)4.2 计数与显示电路 (17)4.3 报警电路 (18)(五)电路设计原理 (18)5.1计数测量 (18)5.2 中断方式计数 (19)(六)软件程序设计 (19)(七)结论 (23)参考文献 (24)附录 (25)附录一 (25)附录二 (26)一、绪论所谓的光电计数器是利用光电元件制成的自动计数装置。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

目录1.总体方案选择 (2)1.1 实验要求: (2)1.2方案设计 (2)2.硬件原理电路图的设计及分析 (2)2.1主控模块 (2)2.1.1 STC89C52单片机主要特性 (3)2.1.2 STC89C52单片机管脚图 (4)2.1.3 STC89C52单片机的中断系统 (4)2.1.4 STC89C52单片机的定时/计数器 (4)2.2矩阵键盘模块设计: (5)2.2.1矩阵键盘原理介绍 (5)2.2.2矩阵键盘电路设计 (5)2.3 LCD液晶显示器简介 (6)2.3.1液晶模块简介 (6)2.3.2液晶显示部分与89S52的接口 (7)3系统软件设计 (9)3.1系统软件流程图 (9)3.2系统整体原理图 (10)4.系统调试 (11)4.1硬件调试 (11)4.2软件调试 (11)4.3调试结果 (12)5. 心得体会 (13)1.总体方案选择1.1 实验要求:1)通过小键盘实现数据的输入,并在LED数码管上显示2)实现+、-、*、/3)在LED数码管上显示结果4)并有清零,退出功能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)组成。

STC89C52单片机的基本组成框图见图2-1。

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

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

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

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

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

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

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

关键词:单片机;控制系统;计算器;多功能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问题的提出说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国,这种计算工具叫筹策,又被叫做算筹。

直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。

十七世纪中叶,法国伟大科学家帕斯卡引用算盘的原理,发明了第一部机械式计算器,在他的计算器中有一些互相联锁的齿轮,人们可以像拨电话号码盘那样,把数字拨进去,计算结果就会出现在另一个窗口中,但是只能进行简单的加减计算。

十七世纪末,莱布尼兹在德国将其改进成可以进行乘除的计算。

再后来,英国牧师奥切德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数、指数函数和对数函数。

这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具[1]。

如今,计算器已成为日常生活中比较常见的电子产品,人们利用它代替了许多多位数的计算。

尤其是小型计算器,它携带方便,成为了财政、学习、商务领域的必需品。

随着人们对生活品质的要求越来越高,计算器仍具有广泛的需求,存在很大的发展空间和市场价值。

如何使计算器技术更加成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,成了如今电子领域重要的研究课题。

而时间在注重效率的今天,成为了一个重要的概念。

本次设计中,将尝试实现计算器的四则运算功能,并在此基础上,增加时钟功能,完成多功能计算器的设计。

1.2国内外研究现状1956年,美国贝尔实验室用晶体管代替真空管,制成了世界上第一台全晶体管计算器。

它使计算器的体积、重量、功耗都大为降低,但是计算能力较差。

至60年代,世界上已经生产数3万多台晶体管计算器,运算速度达到了每秒300万次,逐步发展成了计算机。

现在,除了日本、美国以外,欧亚的多功能计算机发展也很迅速。

计算器的发展普遍追寻用简单经济的技术芯片实现功能齐全的市场产品,如日本Casio FX系列科学计算器、Canon WS等电子计算器,功能齐全,计算精确,但使用的都是自己的专用集成芯片,市场价格在100元左右。

国外电子计算器正向着智能化、高性能、体积小的方向发展,所以单片机实现多功能计算器的设计很具有推广性[1]。

在国内,近几年来,现在市场上的计算器类型也是数不胜数,形状多样化、用途多功能化。

计算器的发展也比较快,不少厂家推出了与Casio计算器相类似的产品,一定程度上实现了计算器芯片的国产化,但价格依然较高,扩展功能也不足。

这充分表明了,我们国家的多功能计算器的技术和开发商存在着一定的问题,具有很大的发展空间。

1.3设计目标1.3.1设计目的本设计旨在进一步掌握单片机理论知识,理解系统的硬件、软件设计,综合运用本科阶段所学知识进行设计,提高解决实际问题的能力,为本科的学习做一次实践性总结,为今后对单片机的应用和开发打下良好的基础。

1.对各个模块的工作原理有较清楚的认识,设计硬件电路;2.充分分析内部逻辑的概念,进行软件设计和调试,学会使用并能够以其为平台设计出具有四则运算能力及时钟功能的简易计算器。

1.3.2系统功能通过对本设计题目的分析和与指导老师的讨论,该计算器应实现以下功能:1.能实现两整数间一次运算,运算方式包括加、减、乘、除四种逻辑运算,操作过程可显示;2.计算结果溢出提示及错误警告;3.计算器有清零功能;4.计算器/时钟一键切换;5.带时钟功能,且时间可调节;6.有按键提示音。

2系统方案选择2.1硬件部分单片机是靠程序运行的,通过不同的程序实现不同的功能,并且可以修改。

通过使用单片机编写的程序可以实现高智能、高效率以及高可靠性。

因此我们采用单片机作为计算器的主要功能部件,可以很快地实现运算及时钟功能。

另外,需要配备按键、显示器、时钟芯片、电源分别完成数值和操作符的输入、计算器/时钟功能切换、调节时间、显示运算结果及时间的功能。

系统方案选择如下:2.1.1 单片机型号的选择STC89C52单片机是低功耗、高性能、采用CHMOS 工艺的8位单片机。

它完全兼容MCS-51系列单片机的所有功能,并且本身带有2K的内存储器,可以在编程器上实现闪烁式的电擦写达几万次以上。

在STC89C52 内部有FLASH 程序存储器,编程速度很快,擦除时也无需紫外线,使用非常方便。

因此STC89C52是较理想的芯片[2]。

2.1.2 按键的选择方案一:4*4矩阵式键盘。

矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组。

当系统功能比较复杂,按键数量很多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。

在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。

这样,一个端口就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,采用编码键盘可以简化设计,而且虽然这种键盘的编程方法较为复杂,但已相当成熟。

方案二:独立式按键。

独立式按键电路配置灵活,软件结构简单,成本低廉。

但每个按键需占用一根输入口线,如果设置过多按键,会占用单片机的I/O口资源[3],而且在制作实物过程中会给布线带来不便。

相关文档
最新文档