(完整word版)基于STM32的简易计算器_第1页
(完整word版)基于STM32的简易计算器_第2页
免费预览已结束,剩余16页可下载查看

下载本文档

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

文档简介

1、基于STM32的简易计算器一.总体方案设计1. 任务要求(1) 在开发板的显示屏上设计并显示一个简易的计算器界面,包括结果显 示窗、09 数字键、+、x、*、 x2、V、=、Del 等按键;(2) 可使用开发板上的键盘或触摸屏输入上述按键,并在显示窗中显示计 算结果;(3) 支持基本的整数加减乘除运算;2. 设计方案设计的整体思路:选用意法半导体基于 ARM Cortex M3 内核的STM32F103ZET 芯片来处理计算器中加减乘除运算,选用 3.5 寸的 TFT-LCD 电阻 触摸屏模块来进行控制输入并同时将输入参数及运算结果显示出来, 同时通过移 植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.超多的外设。STM32 拥有包括:FSMC TIMER

3、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 和 STM32V 等超低功耗和无线应用型的 M3 芯片。4.优异的实时性能。84 个中断,16 级可编程优先级,并且所有的引脚都 可以作为中断输入。5.杰出的功耗控制。STM32 各个外设都有自己的独立时钟开关,可以通过 关闭相应外设

4、的时钟来降低功耗。6.极低的开发成本。STM32 的开发不需要昂贵的仿真器,只需要一个串口 即可下载代码,并且支持 SW 床口 JTAG 两种调试口。SW 调试可以为你的设计带 来跟多的方便,只需要 2 个 IO 口,即可实现仿真调试。MCU 部分原理图如图 1-1 所示:IK UPPAD34STM ADCPAI351JS4RT2 iffPJ2-J6USART1 BXPA31?GK J?E 5TSL&ACPA4助F= J41PM4;PA?43QV VWffPAS 00U5ARTL TXFAS IIQLUSARTl RXPAIDL02DSTFPA11IMUSBTO-卩;L12 L&

5、;J.PA13悔JTCKPAI4GBC-LED JTG1PA13hOLCD HLPBO44I 5CKPBE 47T MISOEHDOTFBI4t-iftF WtJ-i JJ DOPB3KJJ-FTFQ KUt J|K$TP34H4LEXJOPfi135M SCLP64擁C 5J3AP&-B2EPm13?ddOTE INPB9啟GSC弧P3LO69oc rtfP3LLFillSPG SCRra.i4ST口-M1WF&ZSFE.MOEIptmOT D0PCPKGV DLKE出QV D2PCI2SQV D3PC3 2SQV D4-PC444OV D5PC545ffl? NPCS讥PC

6、57PCS5DO DLPCS5EH:OJ2PCIOkhSOTO D3FCIIIE2SOW SCKPCI2IE5PCI3rn3176SK一JLF5MCJ32PDOH4LCpMEicqPDIIB5OfO C3IDPO2thQV XLFD3门GNDFSIC NOEPWILSFSMC MWEFD5 119FIF O WR37卩EMiliRSIS? RE卩CP阳FSMcCbyPD8 T?F$MC:D4PD9FSMCJ335PD10詡roilSOPD12卩D13FSKSC DOPD1415F3J PD15iAKOTtiUSU1PM悶WP ViARPjCTi ADCHJJNfl T&!5(目1 T&

7、amp;CjLH LELJULMS-f眯PAI畑皿JgWCmaEMgL! TEMgt PA21JSART2_TX亦归a53 a. ?AJ-VSAKT2 KXADCLU INS TBE CM TBECH4 PA-l-SPILNSSDAC OUT U5ART2 CKADCIZ JbHPA5m_5CELDAClaUT2ABI2_IN5 ?A6_M15OTIKB_BKD7 ADC LI WTBUCH PA/TSEnlkiOSFTIMEN AIKCH2PASAATl_CK-TBfi_CHl MCOPASVSRTl-TXTXLCW PAI&tARTLJUiWIjOBADIVSAKT L_CTS C

8、 AN_KXmL0U岱BD戦FAD2VSAKT1 TSOLN IX-TIM1 ETKUSmPFAI3-jnE_5UTMD?An4JTCE_TirLE旳SJlDFiPB NSSES3 WSffi) Tbh_m.?$bfc_LOFE1FSMC NHLLPE2TKAJCEK.FSNfiC,A23PE3 TKACEDO FSMCAl PJTJTt4EDlFaK:A2D瑶STKACEEQ悝 忙 玉 嘶mACEEFSMCAlPE?F$MC_rH PEmi5耐fW5 FElOraK IT PEI ra.K _MPE12 TSXJCJW PEBFaSC DIO理MFSMLDU理WFSMUDQFBO ADC 1

9、2_13尬05伽_02饵FBI ADC L2JbWmD_CH48_tffi ?B2BOOIJFB3 nTDOWE5TO 55lL3_SCKlZSJ tK?B4 MRST 5JUJiI5O汪512口SEAI SPI3_3JO5112S3_SD?Bfil2l 5CLTBJ4. CHL耐IX匸亚見珈丘NADV TM4 CEO:腆TOH CW霸OPM?9 0-1X 2_5CLU5ARTj_T;曲LlgjKBA伽RTS_RX_JLZ SFE N55I252 WSTZfDMJALSARU CKTUaKBOTlO ADC3 mFSMC DTK5S13-OT2JCKI2S2 CKWlBtnCTSTDJLCli

10、LN?SW5FE!EQIEiET3玄A,m.L_CEOTM1CJBN?C&ADC123 INIO KI ADC123IN1PC2ADClMJffl2 POAJXU3JBK4ADCL2JN14POADLI二:二P 匸豹JHIIME.CHL SDKJp范“ 口LMEKTUdSCJCDIOD? ?CST&S CH5SDJD DCPC?TBESCEWSDJODDKID-UAXT4_JXSIMO DI pciiuaiO眷咏山K12UARlT5JIX$Di0_CKKITAMKR-RTC ?CL4CJNPCHPS匚SZLOCTiTOFSABC D2PDQTSAIC为HHTIMMITR匸艇丁口

11、皿口矶口FDJTKJXKPD+F$MK_TOE卫璃ICJSWEFD&jiomrrPD-TS1BC M1T5MC NCE2iTKrSiDBSTOFSilCD】*5DD&TSMC D15PDHTSMCJU?DTK_A3B羽/FSMCRl甲#占巧比迥萨护中工巧SPOT!WC3.3 VUC3.33JfTIFSMCJLl FFiraKJLZE3TO,K:_A3 ETARSJC A4E5FSMCA5PHADCLEMdKjqtSf PTADC3_F$MC_N?IKmADCsjMFKjmnPT1ADC3M您HPFlLFSXK.aMOSlfiETL2房MC_AfiPFBFSMt_A7ET14ra

12、C_ASPFlSfSltK A9PGO-FWC.AIOPGIFSMCJMLKj2mK.AL2KSF$M_AL3PG4F5M_AL4 PG5FSNK.A15PM 0BC rm PGTSBCim p&碍珂!C JOB PGJOFSiKJKE-iJF$MC_NEJPGIITKBiJK12FSMC_ME4PG13E5MCA24PG14ravKT_A25 PG 13141 PED】PEJ1 nKEVl3 PE4KEYD4 FE5LEDI5 PE656 PE:FSIC D459 PEEFS3,iC 125SO PE9FSMC Dfi栉PE16KUdp出?K I1TU菟ns笳FEUroD9弼?EBf

13、K D10护FEWFSMC Dll6S PE3RMC D1210 PFD11 PFL羽PRis ml-i PF4IS PF)IE ST*19 ET?211 ?FSLIGHT 5EN5CK21TRCEI_jyPFUijcs53 PFLJH FL455 PFL55fi PGOFSMCJUC57 PGE7 jPG2EE啟 EWR391 P&5yRpJKQ?2 PGTNRF C5帕?G5NRf.tE124 ?G9125 ?G0126 PG】TRE DQ127 ?G2FSAiC NEl12S ?G3dV S&AIM:1贮PG巧FTHLOEVBATCKCJNCRC.CVTJRSTVrtt2

14、4RKETS3.IH-TOC3 5MVCC3.J -=-mDV55AVCC33MVCC3.3MEll tl2 tl3 tutpltLd. tPltltt l?iL图1-1MCU部分原理图1.2 复位电路STM32F103 的复位电路如图 1-2 所示:图1-2因为 STM32 是低电平复位,所以设计的电路也是低电平复位的,这里的 R2 和C10 构成了上述复位电路。1.3 电源电路STM32F10 板载的电源供电部分,如图 1-3 所示:图1-3图中,有两个稳压芯片:MP2359 和 AMS117, DC-IN 用于外部直流电源流入,范围是 DC6-24V 输入电压经过 MP2359DC-DC

15、 芯片转换为 5V 电压输出,其中 D4 是防反接二极管,避免外部直流电源极性相反的时候,烧坏开发板,K1 为开发板的总电源开关,F1 为 1000ma 自恢复保险丝,用于保护 USBAMS117 为 3.3V 稳压芯片,给开发板供电。2.TFT-LCD 电阻触摸屏2.1 电阻触摸屏原理电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层, 表面涂有一层透明氧 化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理,光滑防擦 的塑料层,它的内表面也涂有一层涂层,在它们之间有许多细小的(小于 1/1000 英寸)的透明隔离点把

16、两层导电层隔开绝缘。 当手指触摸屏幕时,两层导电层在 触摸点位置就有了接触,电阻发生变化,在 X 和丫两个方向上产生信号,然后送 触摸屏控制器。控制器侦测到这一接触并计算出(X,丫)的位置,再根据获得的 位置模拟鼠标的方式运作。这就是电阻技术触摸屏的最基本原理。电阻触摸屏的优点;精度高、价格便宜、抗干扰能力强、稳定性好电阻触摸屏的缺点:容易被划伤、透光性不太好、不支持多点触摸DC POWER INGNDY D3SS14I Uli73BSTSWGNDNFBENVBTN1 C35DC INPOWERSSI 4GND31C.32103n|R37 MP23 59 R38 .53KVBTN104Q20L

17、LFs410斗GNDVCC3.3GND49.9KU10OUT JNOUTGND64Fl1000mAWSBGNDKIVO2_VOLTAP2 TAPI1/02 /Ol-OUFAMS111JTFT-LCD 模块原理图如图 2-1 所示:TFTLCD丄人3 fhlJlLCD壽o-厂LCD R5LCDPT.6LCD RD7LCD DO9LCD D10LCIHJJ11LCD D3垃LCD DJ13LCD D514LCD DOISLCD D71LCD Effi17LCD TO1LCD D10ISLCD DU 20LCD D1221LCD D1322DccrljnrJJLCD D1524餾魏EELEDAEYw

18、 w0 0 1212 3 3 4 4 5 5 WY-WY-VCC33TdrE!35LEDKJS14 LEDK5 flLEDKXLEDKJ LEDK2光LEDA却X+27 XT25LCD IVR3L CD RST5LCD DI/n j9LtrLDS11LCD D7JJLCD D915LCD Dll17LCD DI319LLU D1J21BLCTE23VCC5S25GM)i?1 KuyjT PEXT CSS3L CD CS4 LCD RD6LCDbO9 LCD D2PIO LCD IM12 L CD D614 LCD-bS16 LCD DIOIS LCD DD20 LCD D1422GND14曾O

19、C弭26GNDJS RL VDD30 T MOST32 TBU:34 T UC2 LD RSZ=C2ZZZC1JOuFl 104X- 2囲T:fcZ XPT2046HL DC卷,1- tzBL CTB.VCC33 GOTT MTSO 6可 FCSLCP2?27HCSRSWRRDRSTDBODB1DB2DB3DB4DB5DB6DB7DBSDB9DB10DB11DB12DB15DB14DB15GXDBLVDD3 3VDD 礼 3GNDGNDBL VDDMISOMOSIT PENMCTCSCLKTFT TC图2-2LCD RS4 LTD_RD6KDPO8LCD D210 LCD ru1? LCD D

20、61-1 ICDD816 LCD-D10IS LCD D122C LCD D14TTTccTT2fi GND 23 BL 3DI SiOsl32 BUSY-34 T CLK从图 2-2 中可以看出,TFT-LCD 模块采用 16 位的并方式与外部连接,之所以不采用 8 位的方式,是因为彩屏的数据量比较大,尤其在显示图片的时候,如 果用 8位数据线,就会比 16 位的方式慢一倍以上,所以选择 16 位接口。TFT-LCD 模块采用 8080 并行接口方式, 使得 MCI 可以快速的访问, 该模块 的 8080并口有如下信号线:CS : TFT-LCD 片选信号线。WR :向 TFT-LCD 写入

21、数据。RD :从 TFT-LCD 读取数据。D15:0:16位双向数据线。RST :硬复位 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转换查出被按的屏幕位置,除此之外,还可以测量加在触摸屏上的压 力。内部自带 2.5V参考电压可以作为辅助输入

22、、温度测量和电池监测模式之用,电池监测的电压范围可以从 0V 到 6V。3.FSMC 简介大容量,且引脚数目在 100 脚以上的 STM32F103E 片都带有 FSM(接口,本 次实验所采用的开发板的主芯片为 STM32F103ZET6 是带有 FSM(接 口的。FSMC 即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储 卡连接,STM32 的 FSMC 接口支持包括 SRAM NAND FLASHINOR FLASH 口 PSRAM 等存储器。FSMC 匡图如图 3-1 所示:NVICFSMC-fl1断图3-1从图 3-1 中我们可以看出,STM32 勺 FSM(将外

23、部设备分为 3 类:NOR/PSRAMNANDS 备、PC 卡设备。它们共用地址数据总线等信号,它们具有不同的 CS 以区 分不同的设备。本次实验所使用的 TFT-LCD 就是用 FSMC_NE 做片选,其实就是 讲TFT-LCD 当成 SRAM 来控制,之所以 TFT-LCD 可以被当成 SRAMK 备来使用,是 因为一般的外部 SRAM 勺控制有: 地址线 (如 A0-A18) 、 数据线 (D0-D15、 写 信号 (WE) 、读信号(RS)、片选信号(CS),如果 SRAMfc 持字节控制,那么还有 UBLB 信号。而 TFT-LCD 的信号包括: RS D0-D15 WR RD CS

24、 RST 和 BL 等, 其中 正在操作的 LCD的时候需要用到的就只有:RS D0-D15 WR RD 和 CS 其操作 时序和 SRAM 勺控制完全类似,唯一不同的是 TFT-LCD 有 RS 信号,但没有地址信 号。TFT-LCD 通过 RS 信号来决定传送的数据是数据还是命令,本质上可以理解 为一个地址信号,比如把 RS 接在 A0 上面,那么当 FSM(控制器写地址 0 时候, 会使得A0 变为 0,对 TFT-LCD 来说,就是写命令。而 FSMC 写地址时候,A0 将会 变为 1,对TFT-LCD 来说就是写数据了。这样,就可以把数据和命令区分开了。 此次实验选择的开发板是将 R

25、S 连接在 A10 上面。STM32 勺 FSM(支持 8/16/32 位数据宽度,这里用到的 LCD 是 16 位宽度,所 以在设置的时候选择 16 位宽度,STM32 的 FSM(将外部存储器划分为固定大小为 256M字节的四个存储块,如图 3-2 :采岂时钟控観曙HCLK配置寄弃器NOR/PSRAM信号NAND佶号FSPCJNTRFSMC_NCE4_1FSMC_NCE4_2FSMC_NIORDFSMC-NIOWRFSMC_NIOS16FSMC.NFEGFSMC CC1F$MCNCE3:2FSMCJNT3:2|FSMC_N=4:1|FSMC-NL(orNADV)FSMC_NBL1:ONOR

26、&洁控制器FSMC_AI25:OFSMC_D1 5:0|FSL1C_NOEFSMC_NV/EFSP?IC NWAITNANDPC-rr存命控制器图3-2从图中可以看出,FSMC 总共管理 1GB 的空间,拥有 4 个存储块(Bank),此 次实验用到的是存储块 1。STM32 的 FSMC 存储块 1(Bank1 被分为 4 个空间,每个区管理 64M 字节空间, 每个区都有独立的寄存器对所连接的存储器进行配置。Bankl 的 256M 字节空间由 28 根地址线(HADDR27:0)寻址,其中 HADDR25:0 来自外部存储器地址FSMC_A25:0而HADDR26:27对4个区进

27、行寻址, Bank1存储区选择表如图3-3 所示:Bankl所选区片选信号地址范围HADDR27:2625:0第1区FSMC NE10X6000, 000063FF, FFFF00FSMC_A25:0第2区FSMC NE20X6400, 000067FF, FFFF01地址存储块支持的存储器类型NOF / PSRAM、NAND闪存PC卡第3区FSMC NE30X6800, 00006BFFpFFFF10第4区FSMC NE40X6C00, 00006FFF, FFFF11图3-3其中需要注意 HADDR25:0 的对应关系:当 Bank1 接的是 16 位宽度存储器的时候: HADDR25:1

28、 严 FSMC_A24:0; 当 Bank1 接的是 8 位宽度存储器的时候:HADDR25:1 严 FSMC_A25:0;不论外部接 8/16 位宽设备,FSMC_A0 永远接在外部设备地址 A0。此次实验使 用的是 Bank1 的第 4 区,即 HADDR27:26=11 进行配置对应第 4 去的寄存器组, 来适应外部设备。4. AT24C02 简介AT24C02 是一个 2K 串行 CMOS2PROM 内部含有 256 个 8 位字节,该器件通 过IIC 总线接口进行操作。本次实验需要先向 24C02 读取数据判断触摸屏是否已 经校准过了,如果没有校准,则执行校准程序,校准过后再进入电阻

29、触摸屏测试 程序,如果已经校准了,就直接进入电阻触摸屏程序。STM32F103 与 24C02 电路 连接如图 4-1 所示:管脚名称及功能:A0 A1 A2 器件地址选择SDA 串行数据或地址 SCL 串行时钟WP:写保护VCC 1.8V6.0VGND:地三系统软件设计1系统整体流程系统在复位或者上电之后,开始执行各个模块之间的初始化,其中主要的是 触摸屏初始化,初始化之后,单片机需要进行检测触摸屏是否已经校准, 如果还 未进行校准,将进入校准模式进行校准,首次校准完成,之后再进行使用计算器 时是不需要进入校准,有就是说单片机只需要进行一次校准, 之后的测试将跳过 此阶段。校准阶段完TIC

30、SCL IPB6 136IK SDAPB7 137PB6 I2CI SCL riM4_( HlPB7 I2CrSDATSMC_NADV TIM4_CH2VCC3.3U9i11J AOV1 r-AlWP -3V Jrr4 A2Q厂ITLSLL reiiA.-ND2 K 02704 GND,4,7K6ncSCLR34IIC SDAK35二1LJf8C31图4-1成后,将进入计算器主界面,开始输入第一个参数,也就是 需要进行运算的数字,之后选择需要对数字进行的操作方式符号“+”、“ - ”、“ * ”、“/”、“和“m,然后输出第二个参数,按下“=”键得出想要 的结果。若还需要在此结果上进行计算,

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

32、ine niain (vaiei) delay_inix (); NVTC PriorityGroupCDuf xg (&JVIG Prior it yGr口up 2); TFTLCD_Xnlt();TP_Init (| ;(999, 71)JTIM-6_Int_Inn (9 99, 71); mymeirxm t ( SRAMINJ-;RCC_AHBPeriphClckCmd(RCC_ARBFexiph_CRCrENABLE) WM_Se Great eFlags (WM_CF_MEMDEV).;GUI_InJLE () GUISetBkColor (GUI_BLACK| ;GUIC

33、丄居;GUI_SetColor(GUI_WHITE);GUISetTextMode(GUI_TM_TRANS); GUISetFont (GUI_Foiit24_ASCII);图3-32.2 触摸按键函数在程序初始化各个模块之后,开始检测触摸按键函数,是否有按键按下来执行相应的操作。触摸屏检测到相应的键值的方法是:在使用触摸屏时,通过手指触摸所要的键值,由于手指触摸需要一定的区域,所以通过触摸屏上的坐标来划 分一定范围给每一个键值,这样就可以通过手指触摸到某一块区域来确定触摸到 哪个键值。触摸按键函数代码(仅以数字 1 为例)如图 3-4 所示:if (tp dev.x(0&tp_d.

34、ev. y 0 420400)j十十;L+;k=l; displaynuidoer ();图3-42.3 基本计算方法实现函数在使用计算器计算时,需要判断当前是采用加减乘除哪种运算,在程序中通过当手指触摸到其中一个运算符号(如“+”),使用一个标识位来进行标识,然后在进行运算时候,通过这个标识位来判断是进行哪种运算。最后在运算完成 之后,清除相应的标志位,以免影响下一次判断。计算方法实现代码(仅以加法为例)如图 3-5 所示:if(tp dev.xDzdev.y(021 -if cp_davix 0 lz5) -a-L;e= 0;f+;if (f=l)diBplayadti();attendl

35、=attend;attend=J;j=0;1=0; elseif (a3 re5ult=atterLCi+attendl;GUI_CLear ():GUISerBkColor(GUI_BLACK;GtTISeVColor (GUI WHITE):GUl2SetTextMode(ET_TH_TRAN5):GUI_SerFonE (6GUI Font,24 ASCII);L电X _ali-!T ri _图3-5图中 a 是加法符号标识位,当按下“ +”时,标志位 a 将置 1。attend 是输 入的第一个参数,在判断有运算符号按下后,atte nd 将第一个参数赋值给attend1 ,然后 at

36、tend 继续存储第二个参数,以免第二个参数将第一个参数覆盖。 函数displayequal ()是计算实现函数,通过按下“=”来调用此函数,当有“=” 按下时,执行相应的运算,并同时将相应的运算标志位清零,如上图所示,标志 位 a 被清零。2.4 连续计算方法实现在一般情况下,计算器的使用都需要用到连续计算,也就是算到一个数之后,需要对算出来的数继续计算。在本次实验中实现这种方法的基本思路是:在进行连续计算时,需要判断这次计算是否是第一次,因此需要设定一个标志位来判别, 本次程序中米用标志位 f 来进行判别,当有任何一种计算符号(+、-、*、/、卅、“被按下,标志位 f 就进行加 1,程序代

37、码如图 3-6 (仅以“ + ”为例):ZL(匸卩dev. x 3 5C tp d&v. y 1 21C 4_-if (tp_devx J 135) _ _a+;a=L;f+;图3-6在判断是否是第一次计算之后,在接下来的计算中需要对标志位 f 的状态执 行不同的操作,当标志位 f 为 1 时,也就是进行第一次计算,操作与上面介绍的 基本计算方法实现函数的操作是一样的,当标志位f 大于 1 时,也就是正在进行连续计算,此时的操作是,将上一次计算的结果result 赋予给 attend1,然后进行输入第二操作数,因为此时是按下计算符号,attend 的值还未输入,此时的上一 次计算结果为第一操作数。第二操作数输入之后,按下“=”键便可得到相应的答案,程序代码如图 3-7 (仅以“ +”为例):if (f=l)displayad且; attendl=attend; attend=O;j=0;1=0;a=l;elsediplayadd (); resulL-atrend

温馨提示

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

评论

0/150

提交评论