基于单片机科学计算器系统仿真设计-protues仿真全套资料

基于单片机的科学计算器系统仿真设计

摘要:

本文介绍了一种基于单片机的科学计算器系统仿真设计。该系统采用LCD1602作为显示模块,通过矩阵键盘实现用户输入。设计中特别声明了P3^5和P3^6两个I/O口,分别用于调节时间和切换计算器功能。此外,系统还集成了蜂鸣器提示功能。全局变量在设计中得到了统一的管理和使用,提高了代码的可读性和可维护性。该系统能够实现基本的数学运算、时间显示以及错误提示等功能。

**关键词:**单片机;科学计算器;系统仿真;LCD1602;矩阵键盘

一、引言

随着电子技术的不断发展,计算器作为一种便携式计算工具,在日常生活和工作中得到了广泛的应用。传统的计算器功能单一,难以满足科学计算的需求。因此,本文设计了一种基于单片机的科学计算器系统,旨在实现更丰富的数学运算功能和更好的用户体验。

二、系统总体设计

本系统主要由单片机、LCD1602显示模块、矩阵键盘输入模块和蜂鸣器模块组成。单片机作为核心控制器,负责处理用户输入、执行数学运算以及控制显示和蜂鸣器输出。LCD1602用于显示输入表达式、运算结果和时间等信息。矩阵键盘提供用户输入接口,实现数字、运算符和功能键的输入。蜂鸣器用于提供按键提示音和错误提示。

三、硬件设计

  1. 单片机电路:选用合适的单片机型号,设计其最小系统电路,包括电源电路、晶振电路和复位电路等。
  2. LCD1602显示电路:设计LCD1602与单片机的连接电路,确保显示模块正常工作。
  3. 矩阵键盘电路:设计4行5列的矩阵键盘电路,实现数字、运算符和功能键的输入。特别声明P3^5和P3^6两个I/O口,用于调节时间和切换计算器功能。
  4. 蜂鸣器电路:设计蜂鸣器与单片机的连接电路,实现按键提示音和错误提示功能。

四、软件设计

软件设计主要包括系统初始化、键盘扫描与处理、数学运算实现、LCD显示控制和时间显示控制等部分。系统初始化负责设置单片机的工作模式和初始化外设。键盘扫描与处理负责读取用户输入,并解析为相应的键值。数学运算实现负责根据用户输入的表达式执行相应的运算,并处理可能出现的异常情况。LCD显示控制负责将输入表达式、运算结果和时间等信息显示在LCD1602上。时间显示控制负责每隔约1秒更新一次时间显示。

五、实验结果与分析

通过实验验证,本系统能够正确识别用户输入的表达式,并执行相应的数学运算。LCD1602能够清晰显示输入表达式、运算结果和时间等信息。矩阵键盘输入流畅,无按键冲突现象。蜂鸣器能够正常提供按键提示音和错误提示。此外,系统还具有一定的容错能力,能够处理除数为零等异常情况。

六、结论与展望

本文设计了一种基于单片机的科学计算器系统仿真设计,实现了基本的数学运算、时间显示和错误提示等功能。该系统具有结构简单、功能丰富、用户体验良好等优点,具有一定的实用价值和市场前景。未来工作可以进一步优化系统性能,提高运算精度和速度,同时探索更多高级科学计算功能的实现。

【资源下载】下载地址如下1427:icon-default.png?t=N7T8https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
 

#include "reg51.h"
#include "液晶.h"
#include "ds1302.h"
#include "math.h"
#include "timer.h"
#include "delay.h"
#define uchar unsigned char
#define uint unsigned int
#define pi 3.141592653
//特殊位定义
sbit func=P3^5;//因为是4行5列,需要9个数据口,这个地方单独声明3.5口作为调节时间使用
sbit fun_math=P3^6;
sbit beep=P2^4;
//全局变量定义,这个地方可以统一使用一个结构体进行操作。
//计算器部分全局变量
uchar dis_time=0; //当distime为1时,显示一次时间,
uchar state=0;	//定义系统所处的状态0-1-2-3
uchar codes;//定义当前输入键值
uchar key_num[10]; //
uchar key_n=0;//记录按下的次数
uchar arith=0;//定义运算符号
long data0;  //第一个数据 ,因为计算器是对两个数据进行计算,这个第一个输入的数据
long data1;  //第二个数据  这是第二个数据的数据,按下等号键后对这两个数据进行相关运算
uchar point_en=0; //小数点使能,一个数据中只能有一个小数点,这个变量作为控制小数点输入的开关
double result1=0; //最终的运算结果
uchar dis_num=0;//记录结果中的个数
uchar fir_n=0;	//
uchar unlock=0;	 //键盘不锁住
uchar clear=0;//清除系统的全局性标志变量
uchar neg_label=0;	//输入负号的标志变量
uchar wrong=0; //计算超限标志位
uchar TIM=0;//控制大约1S显示一次时间
unsigned char get_fun=0;

 

 

本书简介 本书基于KeilμVision程序设计平台和Proteus硬件仿真平台,精心编写了100余个8051单片机C语言程 序设计案例。 全书基础设计类案例贯穿8051单片机最基本的端口编程、定时/计数器应用、中断和串口通信;硬 件应用类案例涵盖常用外部存储器扩展、接口扩展、译码、编码、驱动、光机、机电、A/D与 D/A转换等内容;综合设计类案例涉及大量消费类电子产品、仪器仪表及智能控制设备的相关技术 。 本书可作为大专院校学生学习实践单片机c语言程序设计的教材或参考书,也可作为电子工程技术 人员或单片机技术爱好者的参考资料。 目录 第1章8051单片机C语言程序设计概述  1.18051单片机引脚  1.2数据与程序内存  1.3特殊功能寄存器  1.4外部中断、定时/计数器及串口应用  1.5有符号与无符号数应用、数位分解、位操作  1.6变量、存储类型与存储模式  1.7数组、字符串与指针  1.8流程控制  1.9可重入函数和中断函数  1.10C语言在单片机系统开发中的优势 第2章Proteus操作基础  2.1Proteus操作界面简介  2.2仿真电路原理图设计  2.3元件选择  2.4调试仿真  2.5Proteus与V3的联合调试 第3章基础程序设计  3.1闪烁的LED  3.2从左到右的流水灯  3.3左右来回循环的流水灯  3.4花样流水灯  3.5LED模拟交通灯  3.6单只数码管循环显示0~9  3.78只数码管滚动显示单个数字  3.88只数码管显示多个不同字符  3.9数码管闪烁显示  3.108只数码管滚动显示数字串  3.11K1~K4控制LED移位  3.12K1~K4按键状态显示  3.13K1~K4分组控制LED  3.14K1~K4控制数码管移位显示  3.15K1~K4控制数码管加减演示  3.164×4键盘矩阵控制条形LED显示  3.17数码管显示4×4键盘矩阵按键  3.18开关控制LED  3.19继电器控制照明设备  3.20数码管显示拨码开关编码  3.21开关控制报警器  3.22按键发音  3.23播放音乐  3.24INT0中断计数  3.25INT0中断控制LED  3.26INT0及INT1中断计数  3.27TIMER0控制单只LED闪烁  3.28TIMER0控制流水灯  3.29TIMER0控制4只LED滚动闪烁  3.30T0控制LED实现二进制计数  3.31TIMER0与TIMER1控制条形LED  3.3210s的秒表  3.33用计数器中断实现100以内的按键计数  3.3410000s以内的计时程序  3.35定时器控制数码管动态显示  3.368×8LED点阵屏显示数字  3.37按键控制8×8LED点阵屏显示图形  3.38用定时器设计的门铃  3.39演奏音阶  3.40按键控制定时器选播多段音乐  3.41定时器控制交通指示灯  3.42报警器与旋转灯  3.43串行数据转换为并行数据  3.44并行数据转换为串行数据  3.45甲机通过串口控制乙机LED闪烁  3.46单片机之间双向通信  3.47单片机向主机发送字符串  3.48单片机与PC串口通信仿真 第4章硬件应用  4.174LS138译码器应用  4.274HC154译码器应用  4.374HC595串入并出芯片应用  4.4用74LS148扩展中断  4.5I2C-24C04与蜂鸣器  4.6I2C-24C04与数码管  4.7用6264扩展内存  4.8用8255实现接口扩展  ……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值