(完整word版)基于STM32的简易计算器_第1页
(完整word版)基于STM32的简易计算器_第2页
(完整word版)基于STM32的简易计算器_第3页
(完整word版)基于STM32的简易计算器_第4页
(完整word版)基于STM32的简易计算器_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于STM32的简易计算器.总体方案设计1.任务要求(1) 在开发板的显示屏上设计并显示一个简易的计算器界面,包括结果显 示窗、09数字键、+、一、X、十、 X2、/ =、Del等按键;(2) 可使用开发板上的键盘或触摸屏输入上述按键,并在显示窗中显示计 算结果;(3) 支持基本的整数加减乘除运算;2.设计方案选用3.5寸的TFT-LCD电阻同时通过移设计的整体思路:选用意法半导体基于ARM Cortex M3内核的 STM32F103ZET芯片来处理计算器中加减乘除运算, 触摸屏模块来进行控制输入并同时将输入参数及运算结果显示出来, 植emWin优化计算器界面,使计算器在视觉上效果上更为人性

2、化。二.系统硬件设计系统主要器件包括ALIENTEK精英STM32F103V开发板,3.5寸TFTLCD触 摸屏。1. 最小系统开发板1.1微控制器Cortex-M3采用ARMV7构架,不仅支持Thumb-2指令集,而且拥有很多新 特性。较之ARM7 TDMI Cortex-M3拥有更强劲的性能、更高的代码密度、位带 操作、可嵌套中断、低成本、低功耗等众多优势。STM32的优异性体现在如下几个方面:1.超低的价格。以8位机的价格,得到32位机,是STM32最大的优势。2.IIS、3.F107、F207、F217等8个系列上百种型号,具有 QFN LQFP BGA等封装可供选超多的外设。STM3

3、2拥有包括:FSMC TIMER SPI、IIC、USB CANSDIO ADC DAC RTC DMA等众多外设及功能,具有极高的集成度。丰富的型号。STM32仅M3内核就拥有F100、F101、F102、F103 F105、择。同时STM32还推出了 STM32L和STM32V等超低功耗和无线应用型的 M3芯片。4. 优异的实时性能。84个中断,16级可编程优先级,并且所有的引脚都 可以作为中断输入。5. 杰出的功耗控制。STM32各个外设都有自己的独立时钟开关,可以通过 关闭相应外设的时钟来降低功耗。6. 极低的开发成本。STM32的开发不需要昂贵的仿真器,只需要一个串口 即可下载代码,

4、并且支持SWffn JTAG两种调试口。SW调试可以为你的设计带 来跟多的方便,只需要2个IO 口,即可实现仿真调试。MCU部分原理图如图1-1所示:口盟 UPPAD 345JM ADCPAI 35T?r JgUiAKTZ RY PA3 (T yrsLO £ 閃 四曲斗3CfV_m* PAE IM i7蚯丁L TX PAJ I讥空K卫 EX PiUD LQIUffllKGBt LEDTTniMli klOLCD HLPBO46T 5CKPBIT MESOBOOTpai4£titoWESJLDOpajLJ3tituHlLK.JlKLF聲屮PSEUSEK SCLPfl4屈DC

5、SDAffirrBSEPPffin肝KfMOTEIMPQ9E40mz住PBIOffiTXPSILF Cfpan刃bJLJ SLKFBilTL穷1 述J旳rbi4SrLJ MU5JfttiyOVJX-PCOOV DLKti*ov niPCZ2SPCJ2SvnPC444CV DSKF45OV DSPCSSSPCT甲a)©D0PCSSDfiOZDLK&5KO I>2KEOillaKO DJFCIIIII5D£O SCKPCI2IDPCI57YI£PAIT. IQi 空F !里 賢b空FAM何PAO-KUF VSAXRjCTiADCT&15jCHin

6、iKC_fHl_tLK WII_irLXPAI.nJSAJtnjtTi'ADCBJ;n'TIMJjCffi-TlM(H2?Alt3AKT2,RX-ADCL2JJNiT&C_CTHTiyC.Ch4 ?A4-SP1L/5SDAC OUT USAKT? CKADC12 IM ?A3-SPn_5CELnAC_Ol7n AIC!2_SSI5 ?JWJJlSOiE_BKI?;ADC LJ_IW6-TD.U_CH ?A7SPn_EEl»7P.l£jZUlN ADC 2_D77TM3_CTO PAfWATl.CKOTMi.QI MCQ -P拈 rSAMl-lXTIM

7、LjaC 陶 01話AJtr LJtXFML口13 PAk VVSAJtrutTiCLRMMLmX;甜阴 ?AI2.VSAKrijnCA> TXTML ETRlEEF ?AliJnE SWEOQ ?AUJTCE_niCLE ?AI 5JTEa-J_H E3i_W5fE04_£TS-FSMt_MBLD rElFMC,NHLL PE2TBtACEOtFSfc J23 PES TEACEDO FaK_AlS KEJ TltACEDPFSMC_A?ll FE5TFtAjCnZl;FSJC_A2l PWgCErFaJCa PEKMCJX fEtrSMCJM ffifl凶武_r»

8、 PEioraicjr PEliraK_M PEnra-KM FEBFaJC_blO FEMFSat DU PEI 讯幣 JCALIFBO AJXl 2JWT&U_-T1M3_CTCW PBIAK 12_EJflT&D_CK*e_CffitJ?B3 TTDCiTBtAtESn'_5Ct'lH3/k?EJ JNlKSTSroEO ?B5TXl_aEAI-SH3_E51l2SJ SD 域 DCl-SCLTKH CSU 嗽 lXl_Emrs 底£DV mtl-CKI PBETTMTfflJWIOjM - r»TTM4_<lMWI0_K re】

9、啊2C_S<1/USA1T5 ffln-lX2 赵VTiJiX_=Ei2-ni5P5Z,l*rC2_UaAlU5ART3_CKTIMlflMNffOAEC3j5raiMr_E ?31J-SmjCKr&2CEI;5ABT3.CT5TDJLCHLN ?31|-FL;_MIMUiA£TJ _RI5TnL_aCN ii5-yjn2ZyvMins2_s&TiMi_rajwpformc_aj& 莊 IdJAL PF2FTLICJ12 PF3raK_JJ PTAFSMC JJ PTSYShtJJ PMADO冲 TSMEjqrSin PTAKJJNTSMOMG THAK

10、5_lHtF&K_NK)UTt PFTADCm?斑 JC CDCOT:FSiK_D2PW114)fS5KJ51PDIL匕aODO匚畑PD2Ll&OV SO.P031肿FSMC NDEPEM|$FSBC NTPD3LE9tirU JbfcCaJPOfl122RSlfiT KEPD?Hi尸綿kHhpoe?7fSMC DJ?D9POlfl甘roil90PDl:M卩D13i2FEIBC DOPDIJ15r"bL D】PO15S$BOOTJIJt1.2?C&ADC123_KQ =tl ADcnaKii KiADCl3JS;KSADC123_CJIJK4AKL2JN14K

11、3-ADCL2JNb nS2_UC£TIMBA3IL SDLO.m ?CT<T:SJ_HCKTIMS_C?IZSniD' JD? ?CB TD.E CEB SDB'DC- " iOTBCSlCBJ SM<DI iCUhXL血_TX SDK>_IH kiipablOxdkCd? Kll-UAJtTJIXBDIO.CEK15-TAMTB!cftTCKl40g_WPC15-0SO2 OCTP=llFSSLKre 比 ?rnfSMC_Afi PFiy亦肛A PFWfSMC_A3 PTlSrfSMC AP?DOFS1BC-D2?DITSiBC_Di?

12、DtT&ijJlRT;AK丁 EjmmiQJZMDPDJKMCjCUC -阻沁忙_ywE=TOio*ArT沖西IC_XELT5yiCCE2 nBT51BC_D3 nwmicZDiJ?DiaTSJ.lC_D5pdiitsxkZaw FDIifSit_A? H5IJrT$K_Al fC3T®5FDI'RMC JlliiOfiC蛍二SSOi应 上上上启I 1 kdnyrJRpbf|UJrJ300711STSBlTLoJZETfl <VCG WC3.3M复位电路POflF£MC_AlOPGlPEMt_ALLreiF!iMC_AL2KfJF$Mt_AL3P&am

13、p;iraJCJLLqP&STSMCJUT ?wmK: DmpGS 附粹ic皿 PGIOTSMCJXEJJ raJCJEJ WnT&ICJJCEiJK1AE1jC_JE4PG13TSMC J24PG14FS?_J23PGL3VCC3JSIVCC3JMF】t汕gm匸5*応乍门甘屯t】口 口" RL图1-1MCU部分原理图STM32F103的复位电路如图1-2所示:RESET CC5Lh* RF 珂 FT TRFSFTCIO i KtEj图1-2CMCJN<RCJXTONDHBSTv:*e-VrttVT®AVS SA111 旺01 Pfc?)12rEJi?

14、£1KFl'O4?£>LEDL3=TB3E?E-FSMC D4別FSMC D5兰曰KyifJM?E0FSMC D?E】rSJ.K D6?£】mK D9FEHfSMC DJDPEMfK Oil?EJ宓 t D121DjTKJ121PiJjFF4li?F5IE=T519页2D?FSLIGHT SENSOR21?r?T MQSI1:jWLli1 tt?J-19IfcsSTWiiffLJ巧?FL?MPGOF5MC Alfl37?Gfir?&2EE?GiB9旳, FC5KTJEQKiTXKF C时NKf cr1¥ PW125 ?G0IM ?G

15、IWEtE DO127PG12KMC NeIHPG JOViw re】fifCLrktJ2 poasHKJ D 百IH232J璋 SBET2 VDPAaiEHiVOCJ JMG5D;1VEDA电* 22-VCCJ.l 因为STM32是低电平复位,所以设计的电路也是低电平复位的,这里的 R2 和C10构成了上述复位电路。1.3电源电路STM32F10板载的电源供电部分,如图1-3所示:DC POWER INGNDGNDDC_rNdP OWERSS14BSTswGNDFBENC32103Vll6 JR37VCC3.3卒D3.SS14L14,7uHVBTXHiyn 二.20ikF100可UlOend

16、沁VCC5GNDVEIN牡邙louFOUT JNOUTGXDAMSl 117-3.31/02 VOL TAP2 TAPL 1/02 /QlBUTTONlOOOniAGNDGNDTOS E图1-3图中,有两个稳压芯片:MP2359和AMS117, DC-IN用于外部直流电源流入, 范围是DC6-24V输入电压经过 MP2359DC-DC芯片转换为5V电压输出,其中 D4是防反接二极管,避免外部直流电源极性相反的时候,烧坏开发板,K1为开发板的总电源开关,F1为1000ma自恢复保险丝,用于保护USBAMS117为3.3V 稳压芯片,给开发板供电。2.TFT-LCD电阻触摸屏2.1电阻触摸屏原理电

17、阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层, 表面涂有一层透明氧 化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理,光滑防擦 的塑料层,它的内表面也涂有一层涂层,在它们之间有许多细小的(小于1/1000 英寸)的透明隔离点把两层导电层隔开绝缘。 当手指触摸屏幕时,两层导电层在 触摸点位置就有了接触,电阻发生变化,在X和丫两个方向上产生信号,然后送 触摸屏控制器。控制器侦测到这一接触并计算出(X,丫)的位置,再根据获得的 位置模拟鼠标的方式运作。这就是电阻技术触摸屏的最基本原理。电阻触摸屏的优点;精度高、价格便宜

18、、抗干扰能力强、稳定性好 电阻触摸屏的缺点:容易被划伤、透光性不太好、不支持多点触摸TFT-LCD模块原理图如图2-1所示:LCD CS4LCD ES5jC'DVkTtALCD RD7LCD DO9LCD D10TTETlr11LCD D?11LCD DJLCD D5uLCD ue1)LCD D7«LCD Dfi17LTD WIfiLCD UlO1?LCD Dll:oLCD D1221LCD DBT1LCD DI4LCD D5LCP RST aGNDGNDLEDKfi LEDKj LEDE4 LEDfG LEDIC LEDElLEDAJCY-VTCCiJX-VCC3.1VuD

19、 lOVCCLCD CS LCDWK13 LEDKj6 U LEDK5 討互 LEDKJ Ji LEDK2 药W LEEHAX-Y-2-X.35UlVCCCLK4 CSY+ DIN托 T_CLK 巧LesX- BUSY Y- DOLT CWDIN* VCC 讯 WrfXFr2(U614 T MOSIUTS I: TMI5011 CEWlrCA101图2-1LCD EST5 L CD 刖:LCD Dj 9LCD D5rrLCTriF7 IT g開KP PhLCD Dimj-B-Ui:; rr BL E ” VCC3 J 35 5535T M15C F 丁 Pen刃TCSBLCDCSRSUHEDE

20、STDBODBlDB:DB3DBJDfijDEdDfi7DBSDG9DBIODBllBitDfiiaDBI4DB15Cf®BLW3JVDD玷GESDGNDBL VDDMISO期owT PENMOT<CLK.TFTTTD*!4 LCD RD-gLCDt«a LCD D210 LCD W12 LCD DtiU LCETtugle LCD DIOIS LCD DI:20 LCD D1422 GND21 VCCl:6 GNEJS BL rDDJO i MOSl?2 TRUST54 rCLXj LCD R5TIDR1VCC3.3I匚BL -DD £I£DKI

21、R4LEHK:LEDAIKT BL CIKR1.K2 BACKLIGHI VOLTAGE SELTFT-LCD模块采用2*17的2.54公排针与外部连接,接口定义如图2-2所示:LCD CSLCDLCD收LCD RST5LCD DI7LCD m9LCD D511LCD D'713LCD D915LCD Dll17LCD DH19LCD DU丿1BL CTKVCC335GND?7r Nuso月T PENhT CS3SCSRSWRRDRSTDBODBlDB2DB3DB4DB5DB6DB7DBSDB9DBIODBllDB12DEBDB14DB15GXDBLVDD3 3VDD3JGNDGNDB

22、L TODhusoSIOSIT PENMOt'csCLX2 LCD ES4LCD血6LCD DOSLCD D210LCD D412LCD be14LCDg16LCDbO13LCD D1220LCD D1422GNDiiVCC3326GND23BL VDDA)T MOSIj2厂BUSY弭T CLKTFT T E C图2-2从图2-2中可以看出,TFT-LCD模块采用16位的并方式与外部连接,之所以不采用8位的方式,是因为彩屏的数据量比较大,尤其在显示图片的时候,如 果用8位数据线,就会比16位的方式慢一倍以上,所以选择16位接口。TFT-LCD片选信号线。 向TFT-LCD写入数据。 从

23、TFT-LCD读取数据。位双向数据线。TFT-LCD 模块采用8080并行接口方式,使得MCI可以快速的访问,该模块 的8080并口有如下信号线:CSWRRDD15:0:16RST :硬复位 TFT-LCDRS :命令/数据标志(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转换查出被按的屏幕位置,除此之外,还可以测量加

24、在触摸屏上的压 力。内部自带2.5V参考电压可以作为辅助输入、温度测量和电池监测模式之用, 电池监测的电压范围可以从 0V到6V。3.FSMC简介大容量,且引脚数目在100脚以上的STM32F103E片都带有FSM(接口,本 次实验所采用的开发板的主芯片为 STM32F103ZET6是带有FSM® 口的。FSMC即灵活的静态存储控制器,能够与同步或异步存储器和16位PC存储 卡连接,STM32的 FSMC接口支持包括 SRAM NAND FLASHINOR FLASH口 PSRAM 等存储器。FSMC匡图如图3-1所示:F3MC_A125:O FSMC_D(1 5:01 FSMC_N

25、OE F3MC_NWE FSM 匚 NWAITFSMC NCE3:2FSMCJhT3:2FSMC_ME4dJ FSMC_ML (orNADV FSMC_NBL1:0 FSMC_CLKFSMCJNTRFSMC_NCE4_1 FSMC-NCE4-2 FSMC_NIORD FSMC_NIOWFt FSMC_NI0S16FSMC_NPEGF5MC CDNOFVP 合 RAM卜公用信号 MM口佶号图3-1从图3-1中我们可以看出,STM32勺FSM(将外部设备分为3类:NOR/PSRAM NANDS备、PC卡设备。它们共用地址数据总线等信号,它们具有不同的CS以区 分不同的设备。本次实验所使用的 TFT

26、-LCD就是用FSMC_NE做片选,其实就是 讲TFT-LCD当成SRAM来控制,之所以TFT-LCD可以被当成SRAMS备来使用,是 因为一般的外部SRAM勺控制有:地址线(如 A0-A18)、数据线(D0-D15、写 信号(WE)、读信号(RS)、片选信号(CS),如果SRAMfc持字节控制,那么还有UBLB 信号。而TFT-LCD的信号包括:RS D0-D15 WR RD CS RST和 BL等,其中 正在操作的LCD的时候需要用到的就只有:RS D0-D15 WR RD和 CS其操作 时序和SRAM勺控制完全类似,唯一不同的是TFT-LCD有 RS信号,但没有地址信 号。TFT-LCD

27、通过RS信号来决定传送的数据是数据还是命令,本质上可以理解 为一个地址信号,比如把 RS接在A0上面,那么当FSM®制器写地址0时候, 会使得A0变为0,对TFT-LCD来说,就是写命令。而FSMC写地址时候,A0将会 变为1,对TFT-LCD来说就是写数据了。这样,就可以把数据和命令区分开了。 此次实验选择的开发板是将 RS连接在A10上面。STM32勺FSM(支持8/16/32位数据宽度,这里用到的LCD是 16位宽度,所 以在设置的时候选择16位宽度,STM32勺FSM(将外部存储器划分为固定大小为 256M字节的四个存储块,如图 3-2 :地址存储块支持的存储器类型>

28、WAND闪存NOR/ PS RAMPC卡图3-2从图中可以看出,FSMC总共管理1GB的空间,拥有4个存储块(Bank),此 次实验用到的是存储块1。STM32的FSMC#储块1(Bank1被分为4个空间,每个区管理64M字节空间, 每个区都有独立的寄存器对所连接的存储器进行配置。Banki的256M字节空间由28根地址线(HADDR27:0)寻址,其中 HADDR25:0来自外部存储器地址 FSMC_A25:0而HADDR26:27对4个区进行寻址,Bank1存储区选择表如图3-3 所示:Banki所选区片选信号地址范围HADDR27:2625:0第1区FSMC NE10X6000, 000

29、0"63FF, FFFF00FSMC_A25:0第3区FSMC NE20X6400, 0000"67FF, FFFF01第3区FSMC NE30X6S00, 0000-6BFF, FFFF10第4区FSMC NE40X6C00, OOOOGFFF, FFFFn图3-3其中需要注意HADDR25:0的对应关系:当Bank1接的是16位宽度存储器的时候:HADDR25:1严FSMC_A24:0; 当Bank1接的是8位宽度存储器的时候:HADDR25:1严FSMC_A25:0;不论外部接8/16位宽设备,FSMC_A0永远接在外部设备地址 A0。此次实验使 用的是Bank1的第

30、4区,即HADDR27:26=11进行配置对应第4去的寄存器组, 来适应外部设备。4. AT24C02简介图4-1PB6 r2Cl_SCL TIM4-CH1P B7j?crsnArsivrc_ADV/TiMi_CH2AT24C02是一个2K串行CM0S2PRC,内部含有256个8位字节,该器件通 过IIC总线接口进行操作。本次实验需要先向24C02读取数据判断触摸屏是否已 经校准过了,如果没有校准,则执行校准程序,校准过后再进入电阻触摸屏测试 程序,如果已经校准了,就直接进入电阻触摸屏程序。STM32F10与24C02电路 连接如图4-1所示:rnc SC11卩B61361 IK SDA 1P

31、B7137管脚名称及功能:A0 A1 A2:器件地址选择SDA串行数据或地址 SCL串行时钟WP:写保护VCC 1.8V6.0VGND:地.系统软件设计1.系统整体流程如果还系统在复位或者上电之后,开始执行各个模块之间的初始化,其中主要的是 触摸屏初始化,初始化之后,单片机需要进行检测触摸屏是否已经校准, 未进行校准,将进入校准模式进行校准,首次校准完成,之后再进行使用计算器时是不需要进入校准,有就是说单片机只需要进行一次校准, 之后的测试将跳过 此阶段。校准阶段完成后,将进入计算器主界面,开始输入第一个参数,也就是 需要进行运算的数字,之后选择需要对数字进行的操作方式符号“+”、“ - ”、

32、此次设计的计算器是可以RST键清除内容,便可“*”、“/”、“a7和“rf” ,然后输出第二个参数,按下“=”键得出想要 的结果。若还需要在此结果上进行计算, 可以在得出结果后,直接再次选择需要 进行的操作方式,再输入下一个参数,即可得到结果, 支持连续计算操作。若需要重新计算,按下界面上的 开始新的计算。触摸屏模块流程图如3-1所示:图3-1程序运算表达式流程图如图3-2所示:图3-22. 软件实现方法2.1主函数程序中主函数主要是包括延时函数初始化、中断优先级分配、 LCD初始化函 数、定时器初始化、内存管理初始化、 GUI时钟使能、GUI初始化以及计算器主 界面。由于移植了 emwin设

33、计界面,需要用到定时器定时查询触摸,内存分配以 及使能GUI时钟。主函数代码如图3-3所示:inc main 1( VO id)delayinit():HVTC Pri-oritytjrQupCQnfig (NVTC Pri rxryGrOup 2> ;T£TLCD_lnit();TP_Init (j ;TIM3_Int_Init 099,71);TIMe_IrLt_lPLlt ( 999, 719);iiiy_iaeirinit (SRAMIH;nCC_AHEPeriphClockCnid (ECC_AHBFeriph_CRC.ENABLE ;|WM_SBtCzBateFla

34、gS (WM_CF_KEMDEV> ;GUI_lnit ();GUI-SetBlcColoi (GUI_BLACK);GUIClear(:Guz_s*tcoiar(gui_hhitefGUI-SetTextMode(GUI_TM_TRANS);GUISetFont(C GUI_Font24_AS CII);图3-32.2触摸按键函数在程序初始化各个模块之后,开始检测触摸按键函数,是否有按键按下来执 行相应的操作。触摸屏检测到相应的键值的方法是: 在使用触摸屏时,通过手指 触摸所要的键值,由于手指触摸需要一定的区域,所以通过触摸屏上的坐标来划 分一定范围给每一个键值,这样就可以通过手指触摸

35、到某一块区域来确定触摸到 哪个键值。触摸按键函数代码(仅以数字1为例)如图3-4所示:if (tp dev.Xf 01 >100££tF dev,y01<42Qif (tc_dev.x 0<120fiitE:_dev* v|0 >400e-;j+;1+;fe=l; displaynumJoer (:图3-42.3基本计算方法实现函数在使用计算器计算时,需要判断当前是采用加减乘除哪种运算,在程序中通过当手指触摸到其中一个运算符号(如“+”),使用一个标识位来进行标识,然后在进行运算时候,通过这个标识位来判断是进行哪种运算。最后在运算完成 之后,清除相应

36、的标志位,以免影响下一次判断。计算方法实现代码(仅以加法为例)如图 3-5所示:if (tpdev. X (0 O£4tp_dev. y 0 Jif(cp dev,X0J<12O£irF dev.y0>135)a=l;e=0; f+; if (f=l displayadl); attendl=attend; attend=0;j=O;1=0;elsedisplayadd ;| attendl=re3ul匸; =;1=0;void, displaysqual void) if (e=lja=0;GUI_Clear;GUISerBkColor(GUI_3LACK;G

37、UISetTextHode (OTT_TM_TRAN5); GUI5erFonu(fiGUI Fan匸24 ASCII J;图3-5图中a是加法符号标识位,当按下“ +”时,标志位a将置1。attend是输 入的第一个参数,在判断有运算符号按下后,atte nd将第一个参数赋值给attend1 ,然后attend继续存储第二个参数,以免第二个参数将第一个参数覆盖。 函数dis playequal ()是计算实现函数,通过按下“=”来调用此函数,当有“=” 按下时,执行相应的运算,并同时将相应的运算标志位清零,如上图所示,标志 位a被清零。2.4连续计算方法实现在一般情况下,计算器的使用都需要用

38、到连续计算,也就是算到一个数之后, 需要对算出来的数继续计算。在本次实验中实现这种方法的基本思路是: 在进行 连续计算时,需要判断这次计算是否是第一次,因此需要设定一个标志位来判别, 本次程序中采用标志位f来进行判别,当有任何一种计算符号(+、-、*、/、rf、 “被按下,标志位f就进行加1,程序代码如图3-6 (仅以“ + ”为例):dev.xO>£ ttpdev.y<210 >if(tp dev.x0<lZ0itp dev»v0>1S5>图3-6在接下来的计算中需要对标志位f的状态执 也就是进行第一次计算,操作与上面介绍的 样的,当标

39、志位 f大于1时,也就是正在进行a+士;a*l;e=0;f+;口号,在判断是否是第一次计算之后, 行不同的操作,当标志位f为1时, 基本计算方法实现函数的操作是 连续计算,此时的操作是,将上一次计算的结果 result赋予给attend1,然后进行 输入第二操作数,因为此时是按下计算符号,attend的值还未输入,此时的上一 次计算结果为第一操作数。第二操作数输入之后,按下“=”键便可得到相应的 答案,程序代码如图3-7 (仅以“ +”为例):if (f=1)displayed且(> attendl-attend; attend=O;3=0;1=0;a=l;elsedisplayadd();resuit=at

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论