欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年2022年基于STM的简易计算器 .pdf

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

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

    2022年2022年基于STM的简易计算器 .pdf

    基于 STM32的简易计算器一总体方案设计1. 任务要求(1)在开发板的显示屏上设计并显示一个简易的计算器界面,包括结果显示窗、 09 数字键、X2、 Del 等按键;(2)可使用开发板上的键盘或触摸屏输入上述按键,并在显示窗中显示计算结果;(3)支持基本的整数加减乘除运算;2. 设计方案设 计 的 整 体 思 路 : 选 用 意 法 半 导 体 基 于 ARM Cortex M3 内 核 的STM32F103ZET6 芯片来处理计算器中加减乘除运算,选用 3.5 寸的 TFT-LCD电阻触摸屏模块来进行控制输入并同时将输入参数及运算结果显示出来,同时通过移植 emWin ,优化计算器界面,使计算器在视觉上效果上更为人性化。二系统硬件设计系统主要器件包括ALIENTEK 精英 STM32F103V1 开发板, 3.5 寸 TFTLCD 触摸屏。1. 最小系统开发板 1.1 微控制器 Cortex-M3 采用 ARM V7构架,不仅支持 Thumb-2指令集,而且拥有很多新特性。较之 ARM7 TDMI ,Cortex-M3 拥有更强劲的性能、更高的代码密度、位带操作、可嵌套中断、低成本、低功耗等众多优势。STM32 的优异性体现在如下几个方面:1. 超低的价格。以 8 位机的价格,得到32 位机,是 STM32 最大的优势。 2. 超多的外设。 STM32 拥有包括: FSMC 、TIMER 、SPI、IIC 、USB 、CAN 、IIS 、SDIO 、ADC 、DAC 、RTC 、DMA 等众多外设及功能,具有极高的集成度。 3. 丰富的型号。 STM32 仅 M3内核就拥有 F100、F101、F102、F103、F105、F107、F207、F217等 8 个系列上百种型号,具有QFN 、LQFP 、BGA 等封装可供选择。 同时 STM32 还推出了 STM32L 和 STM32W 等超低功耗和无线应用型的M3芯片。 4. 优异的实时性能。 84 个中断, 16 级可编程优先级,并且所有的引脚都可以作为中断输入。 5. 杰出的功耗控制。 STM32 各个外设都有自己的独立时钟开关,可以通过关闭相应外设的时钟来降低功耗。 6. 极低的开发成本。 STM32 的开发不需要昂贵的仿真器,只需要一个串口即可下载代码,并且支持SWD 和 JTAG两种调试口。 SWD 调试可以为你的设计带来跟多的方便,只需要2 个 IO 口,即可实现仿真调试。 MCU部分原理图如图 1-1 所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - 图 1-1MCU 部分原理图1.2 复位电路 STM32F103的复位电路如图 1-2 所示:图 1-2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 因为 STM32 是低电平复位,所以设计的电路也是低电平复位的,这里的R2和 C10构成了上述复位电路。1.3 电源电路STM32F103 板载的电源供电部分,如图1-3 所示:图 1-3 图中,有两个稳压芯片: MP2359和 AMS117, DC-IN用于外部直流电源流入,范围是 DC6-24V ,输入电压经过MP2359DC-DC芯片转换为5V 电压输出,其中D4是防反接二极管,避免外部直流电源极性相反的时候,烧坏开发板,K1为开发板的总电源开关, F1为 1000ma 自恢复保险丝,用于保护 USB 。 AMS117为 3.3V稳压芯片,给开发板供电。2.TFT-LCD 电阻触摸屏2.1 电阻触摸屏原理电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜, 它以一层玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理,光滑防擦的塑料层,它的内表面也涂有一层涂层, 在它们之间有许多细小的 (小于 1/1000英寸)的透明隔离点把两层导电层隔开绝缘。当手指触摸屏幕时, 两层导电层在触摸点位置就有了接触, 电阻发生变化, 在 X和 Y两个方向上产生信号, 然后送触摸屏控制器。控制器侦测到这一接触并计算出(X,Y)的位置,再根据获得的位置模拟鼠标的方式运作。这就是电阻技术触摸屏的最基本原理。电阻触摸屏的优点;精度高、价格便宜、抗干扰能力强、稳定性好电阻触摸屏的缺点:容易被划伤、透光性不太好、不支持多点触摸TFT-LCD模块原理图如图 2-1 所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - 图 2-1 TFT-LCD 模块采用 2*17 的 2.54 公排针与外部连接, 接口定义如图 2-2 所示:图 2-2 从图 2-2 中可以看出, TFT-LCD模块采用 16 位的并方式与外部连接,之所名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - 以不采用 8 位的方式,是因为彩屏的数据量比较大,尤其在显示图片的时候, 如果用 8 位数据线,就会比16 位的方式慢一倍以上,所以选择16 位接口。 TFT-LCD模块采用 8080并行接口方式,使得MCU 可以快速的访问,该模块的 8080 并口有如下信号线: CS:TFT-LCD片选信号线。 WR :向 TFT-LCD写入数据。 RD:从 TFT-LCD读取数据。 D15:0:16位双向数据线。 RST:硬复位 TFT-LCD 。 RS:命令 / 数据标志( 0,读写命令; 1,读写数据)。2.2 触摸屏控制芯片从图 2-1 中可以看出, TFT-LCD模块的触摸屏控制芯片为XPT2046 。XPT2046是一款 4 导线制触摸屏控制器,内含12 位分辨率 125KHZ转换速率逐步逼近型A/D 转换器。 XPT2046支持从 1.5V 到 5.25V 的低电压 I/O 口接口。 XPT能通过执行两次 A/D 转换查出被按的屏幕位置, 除此之外,还可以测量加在触摸屏上的压力。内部自带 2.5V 参考电压可以作为辅助输入、 温度测量和电池监测模式之用,电池监测的电压范围可以从0V到 6V。3.FSMC简介大容量,且引脚数目在100 脚以上的 STM32F103 芯片都带有 FSMC 接口,本次实验所采用的开发板的主芯片为STM32F103ZET6,是带有 FSMC 接口的。FSMC ,即灵活的静态存储控制器, 能够与同步或异步存储器和16 位 PC存储卡连接, STM32 的 FSMC 接口支持包括SRAM 、NAND FLASH、NOR FLASH 和 PSRAM等存储器。 FSMC 框图如图 3-1 所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - 图 3-1 从图 3-1 中我们可以看出, STM32 的 FSMC 将外部设备分为3 类:NOR/PSRAM、NAND 设备、PC卡设备。它们共用地址数据总线等信号,它们具有不同的 CS以区分不同的设备。本次实验所使用的TFT-LCD就是用 FSMC_NE4 做片选,其实就是讲 TFT-LCD当成 SRAM 来控制,之所以 TFT-LCD可以被当成 SRAM 设备来使用,是因为一般的外部SRAM 的控制有:地址线(如A0-A18)、数据线( D0-D15 )、写信号(WE)、 读信号 (RS)、 片选信号 (CS), 如果 SRAM 支持字节控制,那么还有 UBLB信号。而 TFT-LCD的信号包括: RS 、D0-D15 、WR 、RD 、CS 、RST和 BL等,其中正在操作的 LCD的时候需要用到的就只有:RS 、D0-D15 、WR 、RD和 CS 。其操作时序和 SRAM 的控制完全类似, 唯一不同的是 TFT-LCD有 RS信号,但没有地址信号。TFT-LCD通过 RS信号来决定传送的数据是数据还是命令,本质上可以理解为一个地址信号,比如把RS接在 A0上面,那么当 FSMC 控制器写地址 0 时候,会使得 A0变为 0,对 TFT-LCD来说,就是写命令。而 FSMC 写地址时候, A0将会变为 1,对 TFT-LCD来说就是写数据了。这样,就可以把数据和命令区分开了。此次实验选择的开发板是将RS连接在 A10上面。STM32 的 FSMC 支持 8/16/32 位数据宽度,这里用到的LCD是 16 位宽度,所以在设置的时候选择16 位宽度,STM32 的 FSMC 将外部存储器划分为固定大小为256M字节的四个存储块,如图3-2:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 14 页 - - - - - - - - - 图 3-2 从图中可以看出, FSMC总共管理 1GB的空间,拥有 4 个存储块 (Bank),此次实验用到的是存储块1。STM32的 FSMC存储块 1(Bank1)被分为 4个空间, 每个区管理 64M 字节空间,每个区都有独立的寄存器对所连接的存储器进行配置。Bank1的 256M 字节空间由 28 根地址线 (HADDR27:0) 寻址,其中HADDR25:0来自外部存储器地址FSMC_A25:0 , 而 HADDR26:27 对 4 个区进行寻址, Bank1存储区选择表如图3-3所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 - - - - - - - - - 图 3-3 其中需要注意 HADDR25:0 的对应关系:当 Bank1接的是 16 位宽度存储器的时候: HADDR25:1 FSMC_A24:0; 当 Bank1接的是 8 位宽度存储器的时候: HADDR25:1 FSMC_A25:0; 不论外部接 8/16位宽设备, FSMC_A0 永远接在外部设备地址A0。此次实验使用的是 Bank1的第 4 区,即 HADDR27:26=11 ,进行配置对应第 4 去的寄存器组,来适应外部设备。4AT24C02 简介AT24C02 是一个 2K串行 CMOS E2PROM,内部含有 256 个 8 位字节,该器件通过 IIC 总线接口进行操作。 本次实验需要先向 24C02读取数据判断触摸屏是否已经校准过了, 如果没有校准, 则执行校准程序, 校准过后再进入电阻触摸屏测试程序,如果已经校准了, 就直接进入电阻触摸屏程序。STM32F103 与 24C02电路连接如图 4-1 所示:图 4-1 管脚名称及功能:A0 A1 A2 :器件地址选择SDA :串行数据或地址SCL :串行时钟WP:写保护VCC : 1.8V6.0V GND:地名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - 三系统软件设计1.系统整体流程系统在复位或者上电之后, 开始执行各个模块之间的初始化,其中主要的是触摸屏初始化, 初始化之后, 单片机需要进行检测触摸屏是否已经校准,如果还未进行校准, 将进入校准模式进行校准, 首次校准完成, 之后再进行使用计算器时是不需要进入校准, 有就是说单片机只需要进行一次校准,之后的测试将跳过此阶段。校准阶段完成后,将进入计算器主界面,开始输入第一个参数,也就是需要进行运算的数字,之后选择需要对数字进行的操作方式符号“+”、“ - ”、“*”、“ / ”、“ ”和“”,然后输出第二个参数,按下“=”键得出想要的结果。若还需要在此结果上进行计算,可以在得出结果后, 直接再次选择需要进行的操作方式, 再输入下一个参数, 即可得到结果, 此次设计的计算器是可以支持连续计算操作。若需要重新计算,按下界面上的“RST ”键清除内容,便可开始新的计算。触摸屏模块流程图如3-1 所示:否是图 3-1 开始是否校准进行校准主界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14 页 - - - - - - - - - 程序运算表达式流程图如图3-2 所示:图 3-2 2. 软件实现方法2.1 主函数程序中主函数主要是包括延时函数初始化、中断优先级分配、LCD初始化函数、定时器初始化、内存管理初始化、GUI时钟使能、 GUI初始化以及计算器主界面。由于移植了 emwin设计界面, 需要用到定时器定时查询触摸,内存分配以及使能 GUI时钟。主函数代码如图 3-3 所示:图 3-3 主界面输入第一个参数加减乘除平方开方输入第二个参数显示结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - 2.2 触摸按键函数在程序初始化各个模块之后, 开始检测触摸按键函数, 是否有按键按下来执行相应的操作。 触摸屏检测到相应的键值的方法是:在使用触摸屏时, 通过手指触摸所要的键值, 由于手指触摸需要一定的区域, 所以通过触摸屏上的坐标来划分一定范围给每一个键值, 这样就可以通过手指触摸到某一块区域来确定触摸到哪个键值。触摸按键函数代码(仅以数字1 为例)如图 3-4 所示:图 3-4 2.3 基本计算方法实现函数在使用计算器计算时, 需要判断当前是采用加减乘除哪种运算,在程序中通过当手指触摸到其中一个运算符号(如“+”),使用一个标识位来进行标识,然后在进行运算时候, 通过这个标识位来判断是进行哪种运算。最后在运算完成之后,清除相应的标志位,以免影响下一次判断。计算方法实现代码(仅以加法为例)如图3-5 所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - 图 3-5 图中 a 是加法符号标识位,当按下“+”时,标志位 a 将置 1。attend 是输入的第一个参数,在判断有运算符号按下后,attend将第一个参数赋值给attend1 , 然后 attend 继续存储第二个参数, 以免第二个参数将第一个参数覆盖。函数 displayequal ()是计算实现函数, 通过按下“=”来调用此函数, 当有“=”按下时,执行相应的运算,并同时将相应的运算标志位清零,如上图所示,标志位 a 被清零。2.4 连续计算方法实现在一般情况下,计算器的使用都需要用到连续计算, 也就是算到一个数之后,需要对算出来的数继续计算。 在本次实验中实现这种方法的基本思路是:在进行连续计算时,需要判断这次计算是否是第一次, 因此需要设定一个标志位来判别,本次程序中采用标志位f 来进行判别, 当有任何一种计算符号 (+、- 、*、/ 、 )被按下,标志位f 就进行加 1,程序代码如图 3-6(仅以“ +”为例):图 3-6 在判断是否是第一次计算之后, 在接下来的计算中需要对标志位f 的状态执行不同的操作,当标志位f 为 1 时,也就是进行第一次计算,操作与上面介绍的基本计算方法实现函数的操作是一样的,当标志位f 大于 1 时,也就是正在进行连续计算,此时的操作是,将上一次计算的结果result 赋予给 attend1, 然后进行输入第二操作数, 因为此时是按下计算符号, attend 的值还未输入, 此时的上一次计算结果为第一操作数。第二操作数输入之后,按下“=”键便可得到相应的答案,程序代码如图3-7(仅以“ +”为例):名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - 图 3-7 2.5 EMWIN 相关函数在本次实验中, 为了使计算器界面在显示和操作上更为人性化,移植了EMWIN 程序,因为用 LCD本身的函数设计界面在显示效果上比使用了GUI设计要差了许多。 EMWIN 源码移植到工程中的文件如图3-8 所示:图 3-8 在工程中, EMWIN_Config是 LCD接口以及 emWin配置文件,其中GUI_X.c是 GUI所依赖的外部配置, GUIConf.c 是 GUI 初始化配置, GUIDRV_Template.c是GUI 读 点 、 画 点 、 画 线 等 函 数 配 置 , GUI_X_Touch_Analog.c ,LCDConf_FlexColor_Template.c是 LCD初始化配置。EMWIN_LIB 是 STemWin 函数库。使用 GUI函数显示的计算器主界面程序代码如图3-9 所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 14 页 - - - - - - - - - 图 3-9 四实验心得本次实验中, 由于本人能力有限, 只设计了一个简单的计算器, 只能够简单的“ +”、“ - ”、“*”、“ / ”、“”和“ ”,而且在进行减法运算时,只能够大数减小数, 未能做到显示负数, 在进行开方和除法运算时, 只能进行整数计算,无法显示小数部分。在使用EMWIN 设计界面时,也只是用到了它的基本显示函数,未能深入的使用到其它更为有效的函数。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -

    注意事项

    本文(2022年2022年基于STM的简易计算器 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开