基于STM32的简易计算器设计毕业设计论文1.docx
- 文档编号:1913234
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:45
- 大小:1.89MB
基于STM32的简易计算器设计毕业设计论文1.docx
《基于STM32的简易计算器设计毕业设计论文1.docx》由会员分享,可在线阅读,更多相关《基于STM32的简易计算器设计毕业设计论文1.docx(45页珍藏版)》请在冰点文库上搜索。
基于STM32的简易计算器设计
摘要
单片机的出现是计算机技术高速发展的产物,它是嵌入式控制系统的核心。
现在已经广泛的应用到我们日常生活的很多领域中,比如:
科技设备、电子设备、通信工程、汽车产业,工业等。
本设计的简易计算器就是利用STM32单片机作为核心控制器制作而成的。
最近学习了STM32多功能开发板,想通过STM32开发板来做一个项目。
现如今计算器的应用很广泛,大到科研计算,小到算术结账,日常生活中都免不了用到它。
所以选择制作一个简易的计算器来作为自己的毕业设计。
从而检查一下自己对这块板子的理解和自己的动手实践能力。
制作这个项目我还用到了微控制器、LCD液晶显示屏、触摸屏、FSMC。
每一个器件我都细心了解,熟练的应用它们,最终完成了我的毕业设计。
关键词:
STM32、单片机、触摸屏、计算器
Abstract
Theemergenceofthesinglechipmicrocomputeristheproductofthehighspeeddevelopmentofcomputertechnology,itisthecoreoftheembeddedcontrolsystem.Isnowwidelyusedinmanyareasofourdailylife,suchas:
scienceandtechnologyequipment,electronicequipment,communicationsengineering,automobileindustry,industry,etc.ThisdesignissimplecalculatorUSESSTM32MCUasthecorecontrollerismadeandbebecome.
RecentlylearnedSTM32multi-functiondevelopmentboard,wanttopasstheSTM32developmentboardtodoaproject.Nowadayscalculatorapplicationisveryextensive,bigtoscientificcomputing,smalltoarithmeticinvoicing,useitindailylifeareinevitable.Sochoosetomakeasimplecalculatorasagraduationdesignofitsown.Tocheckyourunderstandingoftheboardandtheirpracticalability.Ialsousedtomakethisprojecttothemicrocontroller,LCDliquidcrystaldisplayscreen,touchscreen,theFSMC.Icarefullyunderstandeachdevice,skilledapplicationofthem,finallycompletemygraduationdesign.
Keywords:
STM32,Microcontroller,Touch,Calculator.
目录
1引言 1
2.总体方案设计 2
2.1任务要求 2
2.1.1任务 2
2.1.2要求 2
2.2设计方案论证 2
2.2.1单片机的选型 2
2.2.2显示屏的选型 2
2.2.3外部存储器的选型 2
2.3系统总体设计 2
3系统硬件设计 4
3.1微控制器简介 4
3.2LCD液晶显示简介 4
3.3触摸屏模块简介 6
3.4FSMC简介 8
3.5整体系统硬件设计 10
3.5.1单片机设计 10
3.5.2电源部分设计 11
3.5.3单片机和触摸屏接口设计 12
4系统软件设计 13
4.1系统各个模块初始化 13
4.2显示模块程序设计 13
4.3触摸模块程序设计 14
4.4实现运算表达式的程序设计 15
5效果图展示 16
6总结 19
参考文献 20
附录 21
致谢 42
1引言
中国古代有四大发明闻名于世,当然最早的计算器也诞生于中国。
在中国古代,最早采用的一种用来计算的工具叫筹策,又称算筹。
这种算筹的制作材料有木头、兽骨等,但大多数是用竹子制成的。
大约二百七十枚一束,体积很小,利于人们随身携带。
直到现代,我们仍在使用的珠算盘,珠算盘是中国古代计算工具里的一项有利发明。
明代时候的珠算盘与我们现今用的就已经基本相同。
可见其实用性。
17世纪初,西方国家的计算工具取得了迅速的发展,在计算工具领域里出现了一些新的发明,英国数学家纳皮尔发明了“纳皮尔算筹”,英国牧师奥却德发明了圆柱形对数计算尺,这种计算尺得到了广泛的应用,它不仅能计算加减乘除,平方,开方运算,而且可以计算函数运算。
这些计算工具的使用与发展为现代计算器的发展奠定了良好的基础。
16世纪40年代,年仅19岁的伟大法国科学家帕斯卡引用算盘的原理,发明了第一部机械式计算机,在他发明的计算器中有一些相互关联的齿轮,一个齿轮转过十位,就会使另一个齿轮转过一位,这样,人们就可以像拨打电话号码那样,把数字拨进去,计算结果就会出现在显示界面上,但是这种计算器只能进行加减运算。
1694年,莱布尼兹在德国将它改造成可以进行乘除的计算器。
后来,一直到了20世纪50年代末,电子计算器才被发明出来。
本文设计的是一种基于STM32的简易计算器的设计,通过触摸屏进行人机交互,按键可以直接显示到触摸屏上,不需要传统的机械按键。
它与传统的机械按键不同,传统的机械按键需要占用大量的单片机I/O口,而触摸屏不同,它只需要通过SPI接口和单片机通信就可以。
2.总体方案设计
2.1任务要求
2.1.1任务
本设计的计算器完成一些简单数学的运算,加减乘除。
并将表达式和结果实时显示在液晶屏上。
2.1.2要求
1.基本功能
实现基本的四则运算,并能在触摸屏上显示表达式和结果。
2.拓展功能
能实现小数,负数的运算。
3.技术指标
能实时显示计算表达式和结果,能精确到小数点后六位。
2.2设计方案论证
2.2.1单片机的选型
单片机选用意法半导体基于ARMCortex-M3内核的STM32F103ZET6,意法半导体的单片机具有良好的性能,如:
低功耗,易开发,性价比高。
而且其体系和构架的相关资料丰富,用它能快速的开发出整个系统。
2.2.2显示屏的选型
如今的液晶显示屏种类多样,我们选用的是2.8寸的TFT液晶屏,320x480的分辨率,支持16位色,16位数据接口,该屏幕自带触摸控制功能,可以直接在屏幕上通过触摸来控制所显示的按键。
2.2.3外部存储器的选型
我们这里用的外部存储器是FSMC。
由于其每一个存储器模块都有其独立的片选控制,由于其每一个存储器模块都有独立的片选配置,因此它的每一个存储器模块都可以独立配置,而且它还具有接口方便,体积小,断电不丢失数据等特点,所以能在工业自动化控制方面和仪器仪表中得到广泛的应用。
2.3系统总体设计
根据设计要求和模块选型所确定的系统总体方案设计如图2.1所示,此系统主要是在触摸屏上显示数学表达式,所以硬件电路比较简单。
STM32最小系统和显示屏之间利用FSMC进行16位并行接口通信。
STM32系统开发板
触摸模块
FSMC模块
LCD显示模块
图2.1系统总体方案设计图
3系统硬件设计
3.1微控制器简介
为了进行大量浮点数的运算,并且能很好的支持彩屏的显示,我们选用了计算能力较强的基ARMCortex-M3系列的STM32F103ZET6作为微控制器。
Cortex-M3是ARM公司研发的一个系列,主要应用于微控制开发领域,采用的架构是ARMv7-M,它包括16位所有的Thumb指令集,还包括基本的32位Thumb-2指令集架构。
Thumb-2在Thumb指令集架构上进行了多方面的改进,它与Thumb比较,不仅具有超高的代码密度,而且还可以提供16/32位指令的超高性能。
ARM的Cortex-M3处理器是现在比较高端的嵌入式ARM处理器,它为实现MCU的需要提供了诸多便捷,例如:
低成本的平台,引脚数目缩减,还把系统的功耗降低了,并且同时还提供了超高的计算性能和先进的中断响应。
基于AVRCortex-M3的RISC处理器是32位,它能供应多余的代码效率,在一般8位和16位系统的存储结构上发挥了ARM内核的超高性能。
本设计采用意法半导体公司生产的STM32F103ZET6就是基于ARMCortex-M3内核的,它具有很多优点,如:
低成本、低功耗、高性能。
最高频率能够达到72MHz,大于512K字节的闪存和64K字节的SRAM,2个高级控制定时器,4个通用的定时器,112个GPIO端口,2个基本定时器,又包括先进和标准的通信接口多个:
4个SPI接口,多达3个I2C接口,2个I2S接口,1个SDIO接口,5个USART接口,1个USB接口和1个CAN接口。
这些各式各样的外设配置,能够把STM32F103系列的微控制器应用于多种场合:
(1)空调通风暖气系统,警报系统,和语音视频对讲等等。
(2)电机驱动和应用设计。
(3)PC游戏外设和GPS平台。
(4)医疗机械设备和手持设备。
(5)工业领域:
可编程控制器(PLC),变频器,扫描仪和打印机。
3.2LCD液晶显示简介
薄膜晶体管即TFT,即每个液晶的像素点都是依靠在像素点后面的薄膜晶体管来驱动,这样就能够达到高对比度、高亮度、高速度、显示屏幕画面,是至今为止最优秀的LCD彩色显示设备之一,其效果非常接近于CRT显示器,是目前大部分台式机子和笔记本电脑上的主要显示设备。
TFT的每个像素点都是依靠集成在自身上的TFT来管理,是有源像素点。
所以,不但可以把速度极大提高,而且也可以把其亮度和对比度大大的提高,同时达到超高水平的还有分辨率。
TFT-LCD的液晶显示屏是薄膜晶体管型液晶显示屏,又叫作“真彩”(TFT)。
TFT液晶把每个像素都按有一个半导体开关,每个像素都能够通过点脉冲来控制,所以每个节点都是相对独立的,而且能够连续控制,这样既提升了显示屏的反应速度,同时还能够精确的控制显示色阶,所以TFT液晶的色彩更为逼真。
TFT是薄膜晶体管有源矩阵液晶显示器件。
TFT液晶显示器把每个像素点上都按有一个场效应开关管,这样会比较容易实现真彩色、高分辨率的液晶显示器件。
现在的TFT型液晶大多数都能够实现18bit以上的彩色(218色),甚至有的还会达到24bit彩色;在分辨率上,实现了SVGA(800×600)、VGA(640×480)、SXGA(1280×1024)、XGA(1024×768)、SXGA(1280×1024),甚至把UXGA(1600×1200)都已转换为现实。
TFT优点:
TFT的亮度好,对比度高,层次感强。
缺点是高耗电且高成本。
TFT型的液晶显示器主要构造有:
导光板、萤光管、滤光板、偏光板、配向膜、玻璃基板、薄模式晶体管、液晶材料等等。
我们这里使用的TFTLCD模块是ILI9486型号的,其有下面一些特点:
(1)显示屏2.8寸。
(2)分辨率是320x480。
(3)自身携带触摸屏,能够用来当作控制输入。
(4)16位的真彩显示。
(5)通用的接口为显示部分是16位的并行接口,触摸控制模块是SPI接口。
这个模块使用的是显尚光电的DST2001PHTFTLCD,DST2001PH的应用控制器是ILI9320。
TFTLCD模块使用的是80并口方式与外部进行连接,80并口(16位数据线模块)有以下这些信号线:
CS:
TFTLCD片选信号。
RD:
从TFTLCD读取数据。
WR:
向TFTLCD写入数据。
RST:
硬复位TFTLCD。
RS:
数据/命令标志(1,读写数据:
0,读写命令;)。
D[15:
0]:
16位双向数据线。
这个模块的控制器是ILI9320,此控制器TFTLCD模块的RST信号线是直接连接在STM32复位脚上的,而不是被软件控制,这样就可以省下来一个IO口。
除此之外我们还需要一个背光控制线来这里控制TFTLCD的背光。
因此,我们总共需要21个IO口。
此控制器是自身携带显存的,其显存总内存是172820,即18位模式下的显存量。
显示与模块的16位数据线的对应关系为565方式。
在计算机中,常见的颜色有8位,16位,24位,36位色,其中的24位,36位称为真彩,我们这个模块里采用的是16位的,最低的5位表示蓝色,中间6位表示为绿色,最高的5位表示为红色。
总之,数值越大,表示该颜色越深。
我们在此使用的模式为RGB模式,RGB色彩就是我们经常说的三原色,R代表Red(红色),G代表Green(绿色),B代表Blue(蓝色)。
之所以称它们是三原色,原因是在自然界中肉眼所能看到的全部色彩都可以用这三种色彩混合叠加而成,所以也称为加色模式。
RGB模式又被称为RGB色空间。
它是一种色光表色模式,它被广泛的应用于我们的日常生活中,比如家用电视机,计算机显示屏,幻灯片等都是利用光来成色。
比如,我们想要显示红色,那么就可以用F800H表示,绿色就可以用07EOH,蓝色就可以用001FH。
三种颜色混合在一起就是白色(FFFFH)。
3.3触摸屏模块简介
我们这里TFTLCD选用的触摸屏是电阻式触摸屏,下面我们简单的介绍一下电阻式触摸屏的原理。
电阻式触摸屏是应用压力感应来进行控制的。
电阻式触摸屏的主要模块是一块与显示器表面非常适合的薄膜电阻屏,这是一种具有多层的复合薄膜,它的基层是由硬塑料平板和一层玻璃构成,表面还涂有一层非常透明的氧化金属导电层,在上面还铺有一层外表面硬化处理、光滑防磨擦的硬塑料层、在它的内表面还涂有一层涂层,在它们之间有非常多的细小(小于1/1000英寸)的透明隔离点,用来把两层导电层隔开绝缘。
当你用手指触摸屏幕时,两层导电层在触摸点这个位置就有了接触,引发电阻发生变化,在X和Y两个方向上产生信号,然后把信号传送到触摸屏控制器,控制器侦测到这一接触信号后,会马上计算出坐标(X,Y)的位置,然后再根据获得的位置坐标来模拟鼠标的方式运作,这就是电阻触摸屏技术的基本原理。
电阻屏有如下的特点:
1.其工作环境状态是与外界环境完全隔离的,所以不怕污垢、水汽和尘土。
2.可以用任何物体来与其触摸,还可以用来写字,画图,这是它的一大优势。
3.电阻触摸屏的精确度只由A/D转换的精确度来决定,所以可以很容易的达到4096*4096。
我们这里的TFTLCD模块选择的就是四线电阻式触摸屏。
下面简单的介绍一下四线电阻式触摸屏。
四线电阻式触摸屏的结构图如图3.1所示,在玻璃基板或者丙烯酸基板上铺盖有两层透平和均匀导电的ITO层,用来分别做为X电极和Y电极,它们之间被均匀排列的透明格点分开绝缘。
其中下层的ITO附着在玻璃基板上,上层的ITO与PET薄膜附着。
X电极和Y电极的正负端由“导电条”(图中黑色条形部分)分别从两端引出,并且X电极和Y电极导电条的位置相互垂直。
引出端总共有四条线:
X+,X-,Y+,Y-,这就是四线电阻式触摸屏名称的由来。
图3.1四线电阻式触摸屏的结构图
计算触点的X,Y坐标方法步骤如下所示:
1.计算Y坐标,在Y+电极要施加驱动电压Vdrive,Y-电极需要接地,用X+当作引出端测量得到接触点的电压值,因为ITO层均匀导电,所以触点电压与Vdrive电压之比即触点Y坐标与屏高度之比。
2.计算X坐标,在X+电极要施加驱动电压Vdrive,X-电极需要接地,用Y+当作引出端测量得到接触点的电压值,因为ITO层均匀导电,所以触点电压与Vdrive电压之比即触点X坐标与屏宽度之比。
四线电阻式触摸屏既能够得到触点的(X,Y)坐标,也能够测得触点的压力,原因是toplayer施压后,上下层ITO就会发生接触,在触点上本来是有电阻存在的。
如图3.2所示,压力越大,接触面积越充分,电阻越小,我们就可以通过测量这个电阻的大小就能够得到压力的大小。
图3.2四线电阻式触摸屏触电感应图
TFTLCD模块自带的触摸屏控制芯片是XPT20-46。
XPT20-46是一个有4导线制的触摸屏控制器,内含12位分辨率125KHz转换速率非常接近A/D转换器。
XPT20-46能够支持1.5~5.25的低电压I/O接口。
XPT20-46可以通过执行两次A/D转换就能够查出被按的屏幕位置,除此之外,还能够测量压在触摸屏上的压力。
内部自带的2.5V参考电压能够当作辅助输入、温度测量和电池监测模式之用、电池监测的电压范围是0V~6V。
XPT20-46的片内集成还有一个温度传感器。
在2.7V的正常工作状态下,关闭参考电压,功耗可以小于0.75mW。
XPT20-46采用微小的封装形式:
TSSOP-16、QFN-16(0.75mm厚度)和VFBGA-48。
工作温度范围:
-40℃~+85℃。
3.4FSMC简介
FSMC(FlexibleStaticMemoryController,可变静态存储控制器))是STM32系列中内部集成256KB以上Flash,后缀为xC、xD和xE的高存储密度微控制器特有的存储控制机制。
之所以称为“可变”,是因为经过对特殊功能寄存器的设置,FSMC可以根据不一样的外部存储器类型,发出以之对应的地址、数据、控制信号类型来匹配信号的速度,从而使STM32系列微控制器不仅可以应用各种不同类型、不同速度的外部静态存储器,而且还可以在不增加外部器件的情况下,同时还可以扩展多种不同类型的静态存储器,从而满足系统设计对存储容量、产品体积和成本的综合要求。
内部结构:
STM32微控制器之所以可以支持NORFlash和NANDFlash这两类访问方式截然不同的存储器扩展,原因是在FSMC内部实际上含有NORFlash和NAND/PCCard两个控制器,分别支持着两种完全不同的存储器访问方式。
在STM32的内部,FSMC的一端经过内部高速总线AHB与内核Cortex-M3相连接,另一端外部总线则是面向扩展存储器的。
内核把外部存储器的访问信号发送给AHB总线后,会通过FSMC转换成为符合外部存储器通信规则的信号,再发送给外部存储器的对应引脚,从而实现内核与外部存储器之间的数据交换。
这里FSMC起到了桥梁的作用,它既可以进行信号类型的转换,还可以进行信号时序和宽度的调整,从而屏蔽掉不同存储类型的差异,使之对内核而言没有任何区别。
技术优势:
①支持丰富的存储操作方法。
FSMC不但支持多种数据宽度的异步读/写操作,而且还支持对NAND、NOR、PSRAM存储器的同步突发访问方式。
支持多种静态存储器类型。
②STM32经过FSMC能够与PSRAM、SRAM、ROM、NORFlash和NANDFlash存储器的引脚直接相连接。
③支持代码从FSMC扩展的外部存储器中直接运行,而不必要首先调入内部SRAM。
④支持多种存储器型号。
通过把FSMC的时间参数重新设置,从而扩大系统中可用存储器的速度范围,为用户提供灵活的存储芯片选择空间。
⑤全部外部存储器共享控制器数据、输出的地址和控制信号,每个外部设备能够经过一个唯一的片选信号来区分。
FSMC在任一时刻只访问一个外部设备。
⑥支持同时扩展多种存储器。
在FSMC的映射地址空间中,不同的BANK是相互独立的,可以用来扩展不同类型的存储器。
当系统中使用和拓展多个外部存储器时,FSMC会通过总线悬空延迟时间参数的设置,从而防止存储器之间对总线的访问冲突。
主要功能:
具有静态存储器接口的器件,包括:
静态随机存储器(SRAM)、只读存储器(ROM)、NOR闪存、PSRAM(4个存储器块)。
1.两个NAND闪存块,支持硬件ECC,而且可以检测高达8K字节数据。
2.16位的PC卡兼容设备。
3.支持对同步设备的成组访问模式,如PSRAM和NOR闪存。
4.8或16位数据总线。
5.每个存储器块都有其相对独立的片选控制。
6.每个存储器块都能够独立配置。
7.时序可以编程从而能支持各种不同的器件:
总线恢复周期能编程(高达15个周期)、等待周期能编程(高达15个周期)、写使能延迟和输出使能可编程(高达15个周期)、相对独立的读写时序和协议,还能够支持宽范围的存储器和时序。
8.PSRAM和SRAM器件使用的写使能和字节选择输出。
9.将32位的AHB访问请求,转换到连续是8位或16位的,对外部8位或16位器件的访问。
10.拥有16个字节,每个字节32位宽的写入FIFO,可以在写入较慢存储器时释放AHB进行其具体操作。
在重新开始一次新的FSMC操作之前,要把FIFO先清空。
映射地址空间:
FSMC可以管理1GB的映射地址空间。
该映射地址空间划分为4个大小是256MB的BANK,每个BANK又分为4个64MB的子BANK。
FSMC的2个控制器管理的映射地址空间是不相同的。
NORFlash控制器管理第1个BANK,NAND/PCCard控制器管理第2~4个BANK。
因为两个控制器管理的存储器类型不相同,所以在扩展时要根据采用的存储设备类型来确定其映射位置。
其中,BANK1的4个子BANK全部拥有相对独立的控制寄存器和片选线,能够分别扩展一个相对独立的存储设备,而BANK2~BANK4仅仅有一组控制寄存器。
3.5整体系统硬件设计
3.5.1单片机设计
如图3.3,是STM32F103ZET6的最小系统原理图,10K电阻接一个复位引脚NRST到VCC,再接一个104的电容到地,这样即可构成上电复位的电路。
OSC_OUT和OSC_IN中间并联一个8MHz的晶振,再在晶振的两端分别接上20pF的电容到地,这样即可构成单片机的外部振荡电路。
图3.3STM32F103ZET6的最小系统原理图
3.5.2电源部分设计
整个系统由电脑的USB接口供电,再由系统中的AMS1117—3.3稳压芯片降压到3.3V,供给单片机和触屏系统应用。
电路图如图3.4所示。
图3.4电源设计的电路图
3.5.3单片机和触摸屏接口设计
系统的触摸屏接口如图3.5所示。
各引脚定义如下:
LCD_CS:
TFTLCD片选信号。
LCD_RD:
从TFTLCD读取数据。
LCD_WR:
向TFTLCD写入数据。
LCD_D[15:
0]:
16位双向数据线。
LCD_BL:
触摸屏背光源的控制引脚。
RESET:
硬复位TFTLCD。
LCED_RS:
命令/数据标志(0,读写命令;1,读写数据)。
T_SCK:
触摸屏时钟信号端。
T_CS:
触摸屏片选端。
T_MOSI:
触摸屏串行数据输入端。
T_MISO:
触摸屏串行数据输出端。
T_PEN:
触摸屏中断输出端。
图3.5系统的触摸屏接口图
4系统软件设计
4.1系统各个模块初始化
系统在复位或上位之后,最先进行的就是系统各个模块的初始化,其各个模块的初始化流程图如图4.1所示:
开始
系统时钟初始化
延时初始化
LCD初始化
触摸屏初始化
显示计算器的输入界面
计算结果
图4.1各个模块的初始化流程图
4.2显示模块程序设计
LCD初始化流程图如图4.2所示:
开始
设置IO口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STM32 简易 计算器 设计 毕业设计 论文
![提示](https://static.bingdoc.com/images/bang_tan.gif)