王丽滨 赵云鹏
【摘要】本次设计的基于STM32的科学计算机系统以单片机为主控制单元;以TFT-LCD液晶显示屏进行输出和输入;以C语言作为本次设计的编码语言,编写本次的逻辑控制;并在 Keil5平台上进行编译和运行;从而实现数据运算的基本功能,同时本次设计还精确到小数点后六位。通过多次试验后还是保持良好的精确性,且该设计的组成成本低、性能稳定,是获取精确数据的重要保障。本次设计以STM32系统为基础,采用科学计算器系统,计算需要计算的数值,实现加减乘除,取余,实现小数、负数的运算。采用常用的数学函数的运算,精确到小数点后6位,在触摸屏上输入和输出。通过触摸屏进行人机交互,按键直接显示在触摸屏上,不需要传统的机械按键,完成数学表达式的计算,包括三角函数,log,ln等一些常用的数学函数, 实现基本的四则运算,并将表达式和结果实时显示出来。
【关键词】单片机;人机交互;四则运算;计算器系统
1. 硬件部分设计
1.1 需求分析
随着计算机科学和电子技术的快速进步,人们的生活生产越来越朝着智能化的方式出发。如果说微型计算机的出现是现代科学研究的一次巨大飞跃,那么单片机等电子技术的出现就是现代生产领域和测量领域的一次具有创新活力的科技革命。
本文设计的是一种基于STM32科学计算器系统,其输入方式是通过触摸屏进行输入,以屏幕按键的方式代替了传统的机械按键,同时该设计可以精确到小数点后六位,可以计算出一些函数的值,可以为人们方便地提供数据,具有重要意义。
由硬件部分和软件部分结合,通过编程提示进行相应的人机交互,编译整个设备的运行情况。随后系统检测当前的输入信息,并通过内部设定的逻辑进行数据的运算,以此来实现对数据的获取。
1.2 系统的组成
本次基于STM32的科学计算器系统的设计通过硬件主机处理屏幕输入的信号,然后得出对应的数据。本系统主要是在触摸屏上显示各种信息文本,所以硬件电路比较简洁,不需要很多硬件。PC机通过RS232串行接口和STM32进行数据通信,STM32和显示屏通过16位并行接口通信,和触摸板通过SPI接口进行通信。
本设计系统组成结构图如图1.1所示。
1.3 基于stm32的控制電路设计
科学计算器系统使用STM32单片机作为整个系统的控制MCU,单片机控制电路具体包括,按键复位电路,晶振电路,储存电路,电源电路等多个部分。
1.3.1 复位电路
复位电路的可靠性直接影响微控制器系统的可靠性,因此您必须正式复位电路配置并进行检查。STM32微控制器通常由主动复位,复位按钮和电源按钮以及复位方法供电,优点是可以在接通电源后立即进入复位状态,当出现问题时,您可以在任何地方制作电路指向重置。
1.3.2 晶振电路
STM32的时钟信号通过两种方法完成,其一就是内部方式,通过芯片里面的振荡电路,产生时钟信号:其二就是外部方式,时钟信号从外部导入。假若没有时钟来完成时钟驱动单片机则无法工作。这类电路是拿来配合外面晶体来进行振荡,假若时钟运行时为0的话则无法工作。诚然超过单片机工作所需频率时同样会导致单片机无法正常工作,所以通常选用石英晶体振荡器。这个电路在加大电量约为10ms延迟后振荡器开始起振,在引脚处会出现5V的正弦波时钟信号是,振荡频率主体是通过石英晶振的频率确定。
2. 软件部分设计
2.1 主程序设计
在整个数据的处理过程中,首先通过单片机、显示模块、储存模块进行初始化管脚信息,便于整个设计进行自检工作。因为设计不会告诉我们此时运行到那个阶段了,但是通过我们的编程提示进行相应的人机交互,编译我们了解整个设备的运行情况。随后系统检测当前的输入信息,并通过内部设定的逻辑进行数据的运算,以此来实现对数据的获取。具体流程图如图2.1所示。
2.2 显示部分设计
显示部分设计包括显示模块选择,显示程序设计和显示模块程序设计。
2.2.1 显示模块的选择
在此设计中,有两个选项可以选择主显示模块:
通过对以上两种方案的分析,为了让本次检测的数据更加直观清晰的显示出来,同时本次设计需要屏幕作为输入工具,而数字管不满足该功能,所以本次显示模块选择的是TFT-LCD显示屏。
2.2.2 显示程序设计
显示模块采用TFT-LCD进行显示,程序开始后首先进行的是初始化的工作。随后微控制器获取并处理相关的数据,在主函数调用的情况下,利用单片机内部的串行接口,可以实现显示处理。这样不仅可以节省单片机的并行接口资源,而且在大多数不使用串行接口的情况下,可以减少或是免去扩展接口。
2.3 显示模块程序设计
显示模块程序由LCD初始化程序和定时器中断程序,首先由LCD初始化程序将屏幕上需要显示的按键显示,再由定时器中断程序定时刷新屏幕显示表达式的区域,将输入的表达式实时显示出来。
LCD初始化流程图如图2.3所示:
3. 系统运行与测试
3.1 硬件测试
在首先整体进行硬件排查以及调试的过程中,首先就要进行各个模块以及主要的处理主单片机之间的管脚引线是否安装合理,如果相对应的数据传输引脚没有完成合理的接通,那么在后期软件逻辑处理的时候不能得到关键的数据值,那么对于整个设计的软件错误排查就不能方便快速的找到对应的问题,然后检查设备的规格和极性是否有错误。然后,如果电路板和电源之间存在短路,将使用万用表解决此问题。
3.2 软件调试
当调试完科学计算器设计硬件间的连接没有任何问题后,接下来就可以应用计算机进行科学计算器软件程序的调试工作。首先用keil打开之前写好的程序代码,因为是按模块化的方式来编写的程序代码,所以可以按照单个模块来进行代码的测试,如果在调试的过程中,发现代码运行出错,则可以很快找到对应模块的代码,并对其进行修改。按照这种方式一个一个模块的进行科学计算器软件的调试,当调试了多次还没出现什么问题后,就可以准备下一步的整体系统调试工作了。
参考文献:
[1] 张亚.基于LabVIEW系统开发的科学计算器[J].电子世界,2019(22):48-49.
[2] Ma Hnin Yu Myaing , Ma Naing. Arduino Based Scientific Calculator[J]. South Asia Management Association,2019,3(5).
[3] 毛超勋.科学计算器在测距导线和三角高程计算中的应用[J].内蒙古煤炭经济,2018(24):141-143.
[4] Adriel G. Roman.. CONJECTURING HIGHER COMPETENCIES IN STATISTICS USING SCIENTIFIC CALCULATOR.[J]. International Journal of Advanced Research (IJAR),2018,6(11).
作者简介:王丽滨,辽宁省沈阳市, 研究方向:电子信息工程。通讯作者:赵云鹏,辽宁朝阳,讲师,研究方向:信息系统。