下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子设计实验名称:基于STC89C52RC单片机的简易计算器设计姓 名:学 号:.344指导老师:一、可行性研究-二、方案述2.1、功能介基本功能扩展功能2.2、总体设计方案 总体设计思路- 方案论证与比较 系统组成三、详细设计1. 各个模块设计 输入模块: 运算模块: 显示模块:阀件电设计2.键盘扫描. 单片机控制 LCD 1602 显示硬件连接12121314153.元件的介绍STC89C52单片机组成 复位和复位电路LCD 1602 显示556-7器4.PCB设计以及结果显示 五、总结附录主要程序代码19222425、设可彳亍性分析:1.2.1经济可行性由于只是实验性质的编程,所以在设计
2、和开发都不需要过多的经费,但是系统投入运行以后,硕件维护和损耗所造成的耗费是必须的,但是数目也不会很大。所以经过初步分析,经济上基本上是可行的1.2.2技术可行性在技术方面,因为都学习了 C语言,硕件课程设计等课程,对于开发语言C语言也有一定的掌控能力,应该能够完成相应的任务。1.2.3运行可行性该成果简单易操作,非常容易使用。1.2.4法律可行性由于我们需要完成的功能相对简单,没有太多涉及到很专业方面的内容,更没有计划将系统利用到商业用途,所以不存在侵权或者版权纠纷方面的问题。125结论该系统的软硬件都比较容易理解和实现,所以,具有实现一计算器的可行性。二、设计方案简述2.1功能概述系统基本
3、功能:(1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合 分析后,最后采用LCD显示数据和结果。(2)采用键盘输入方式,键盘包括数字键(09)、符号键(+、-、X、清除键(onV)和等号键(=),故只需要16个按键即口J,设计中采用集成的计算 键盘。(3)在执行过程中,开机显示零,等待键入数值,当键入数字,通过 LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD ±输出运算结(4)错误提示:当计算器执行过程中有错误时, 会在LCD上显示相应的提示,如:error。当输入的
4、数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示 overflow ;当除数为0时,计算器会在LCD上提示扩展功能:加上括号的混合运算2.2总体设计思路本设计主要采用以下基本模块来实现: 控制器模块,输入模块,输出模块和电源模块。通过对控制器进行编程。使其对输入模块的信号进行处理计算,然后通过输 出模块反馈给使用者以计算结果。线路原理框图方案论证与比较控制部分的设计方案论证与选择根据设计要求,控制器主要用于红外信号的接收和辨认、控制步进电机的动 作,控制显示步进电机的转速等。对于控制器的选择有以卞三种方案。方案一:采用计算器专用芯片实现。用计算器专用芯片进行设计并编程实现。
5、这种设计方案计算效率高、速度快、而且成本也相对较低,是厂家做计算器的最佳 方案。但是本人对计算器专用芯片掌握的不够,还不足以实现设计计算器,所以这 个方案不可去。方案二:采用FPGA (现场可编程门阵列)作为系统的控制器。FPGA将所有 器件集成到一块芯片上,体积小,节省空间,提高了稳定性;直接面向用户,具 有极大的灵活性和通用性,使用方便,硬件测试和实现快捷,开发效率高,工作可 靠性好。可以实现各种复杂的逻辑功能,规模大,密度高,采用并行的输入输 出方式,系统处理速度高,适合作为大规模实时系统的控制核心。由 FPGA内部 编程实现计算器功能,本设计对数据处理速度的要求不是很高,FPGA的高速
6、处理的 优势得不到充分的体现,由于其集成度高,使其成本偏高,同时由于芯片的引脚较 多,实物电路板布线复杂,加重了电路设计和实际焊接的工作。并且FPGA的价格 相对较高,性价比太低。方案三、用单片机实现。由于单片机集成了运算器电路、控制电路、存储器、 中断系统、定时器/计数器以及输入/输出口电路等,所以用单片机设计控制电路省 去了很多分立元器件。由于单片机是可编程芯片,并且它可以运用C语言编写,对 于一些复杂的计算功能,可以调用C语言库函数。使编写程序变得非常简单。所以 该课题用单片机实现,不仅功能易于实现,而且精确度高,稳定性好,抗干扰能 力强。并且由于其成本低、体积小、技术成熟和功耗小等优点
7、,且技术 比较成熟。性价比也相当高。更重要的是本人经过几年的学习,对单片机已有深 刻的理解,并且可以灵活运用。综上所述,并通过各个方面综合比较为达到最佳效果。我们采用方案三利用 单片机控制器。显示电路的设计方案论证与选择方案一:数码管显示方案。数码管显示使用两个四位一体动态数码管显示方 案,此设计电路如图所示。采用动态数码管显示,具有程序简单,对外界环境要求 低,易于维护,同时其精度比较高,精确可靠,操作简单。显示直观的特点。但只 能显示数字和一些代码,不能显示汉字及一些常用的符号,且硬件设计比较复杂。LCD 1602显示器所谓1602是指显示的内容为即可以显示两行,每行16个字符。目前字符液
8、 晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于 HD44780写的控制程序可以很方便地应用于大部分的字符型液晶。字符型LCD 1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背 光电源线VCC (15脚)和地线GND (16脚),其控制原理与14脚的LCD完全一样, 引脚定义如下表所示:nifw-a电平输入出作用U&£7Ucc3Uvv此电隹4B-S/I£MZUZ16L1 10If矶下Wf&H吋訂&今rDB«I/IWA/asrtht;11£总绞矶最低悝S»mil/"I
9、««总线儿""9DO?WX/«(±«3S&l*nr5?XA八W/n洽入/«出总虑監“g*PBSZi濡入/輪向航«总鴉*5“taDHA/I額入,精114鹤«总钱Un”14DO7Z1桶入丿筍岀救SB总歿"2最6位,15AMCCICDTfF光电苏正賀1AVW萸記血沖負:BtHD44780 内置了 DDRAM、 CGROM 和 CGRAM。DDRAM就是显示数据RAM ,用来寄存待显示的字符代码。共80个字节,其 地址和屏幕的对应关系如下表:显示位fi1214567 » uo
10、第一行. -emI01H1Q3H汕H(KH27H地址第二行fI>|QH41H42H67HHD44780的指令集1 清屏指令捋今功能貓!RSR/U11T1DB7 1 DB6 1 DB务 I DGIi I DB3DB2Di1DBQ可冋I1清屛eQIlli« 1 « 1 0 1 0 1 «0011,64功能:1清除液晶显示器,即将DDRAM的内容全部填入空白的ASCH码 20H ;2光标归位,即将光标撤回液晶显示屏的左上方;3将地址计数器(AC)的值设为0。2 光标归位指令挹令功能指令编码驕 /nsRSR/VDB7DB61DB5 1 DKhDB3DB7DB1DBS
11、光标归位010 1 0001K1.64功能:1把光标撤回到显示器的左上方;2把地址计数器(AC)的值设置为0;3保持DDRAM的内容不变3 进入模式设置指令I指令功靛抬令编码/usRSft"DB7DB61&B91 D&H0B3OB?DeiDBd遊入模式设置BaIIB101901r/DsUB参数设定的情况如下所示:功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符 是否移动。位名M)设置0=写入新数据后光标左移1二写入新数据后光标右移0二写入新数据后显示屏不移动1二写入新数据后显示屏整体右移 1个字4 显示开关控制指令拒令功能拒令编码/USR/ViD
12、BA08S11 1OS? 1 OBID9a显示开关控制000001D 1 C却9功能:控制显示器开朕、光标显示朕闭以及光标是否闪烁。参数设定的情况如 下:位名D0=显示功能关1-显不功能开C0二无光标1=有光标B0二光标闪烁1二光标不闪烁指令功能指令編码ZusRSRAIDB7066DB5眄DB3DB2DB11瞬芻9011 0100 1 11S/C1«7LX4B5 设定显示屏或光标移动方向指令S/C0011功能:使光标移位或使整个显示屏幕移位。参数设定的情况如下: 设定情况光标左移1格,且AC值减1光标右移1格,且AC值加1显示器上字符全部左移一格,但光标不动显示器上字符全部右移一格,
13、但光标不动R/L01016 功能设定指令I指今功能I扌旨令褊码/USRSIHZWrDB7W5DMD63DO?081DBSj功能设定0149设定数据总线位数、显示的行数及字型。参数设定的情况如下:功能:位名DL0二数据总线为4位1=数据总线为8位0=显示1行1-显示2行0二 57点阵海字符 X1 = 510点阵海X字符7设定CGRAM地址指令!指令功能捲令编码时冋/U5RSR/W1067DB61 1 1905 1 DBm 1 DD3 | DB21 1DB1 1 DiJO1 itJgCGRAM1 tim901的地址沁)<10功能:设定下一个要存入数据的CGRAM的地址。8设定DDRAM地址指
14、令指令功能指令编码执行/USRSR/MPG7DB4IIkBSDB 毎PB3PB2DB1DS0设定DDRAMB1CCRA啲地址40功能:设定下一个要存入数据的CGRAM的地址。©主意这里我们送地址的时候应该是0x80+Addwss ,这也是前面说到写地址命令 的时候要加上0x80的原因)9读取忙信号或AC地址指令指今功能指今编码/USR$R/W如pee00SI1DB®pea帕 21061槪蠶号91施内容(7位40功能:1读取忙碌信号BF的内容,BF = 1表示液晶显示器忙,暂时无法接收 单片机送来的数据或指令;X BF=0时,液晶显示器可以接收单片机送来的数据或指令:2 读取
15、地址计数器(AC)的内容。10数据写入DDRAM或CGRAM指令一览指令功能指令编码ZusRSR/tfDB7DB杓DB5DB4 DB31 1DB2DIM j DBB数据写入到 DD和谨 CCRAH*1笑与入的数齬D DO功能:1将字符码写入DDRAM ,以使液晶显示屏显示出相对应的字符;2 将使用者自己设计的图形存入CGRAM O11 从CGRAM或DDRAM读出数据的指令一览抱今功能指令鋼韬/USDfi7VB5DSMDB3DB2PB1PBS从 CCRAH数据11娶诙出的數舟功能:读取DDRAM或CGRAM中的内容。 基本操作时序:读状态RS=L , RW 二H , E=H输出:DBODB7=
16、状态字RS=L , RW二L , E二下降沿脉冲,DBODB7=指令码 输出:无RS=H , RW =H , E二H输出:DBODB7=数据RS=H , RW =L , E二下降沿脉冲,DBODB7=数据输出:无 2.2.2.3、键盘设计方案与选择方案一:独立键盘。独立键盘为一端接地,另一端接I/O 口,并且要接上拉电 阻。这种键盘的硕件都很容易实现,但每一个按键就要用一个W 口,适合本次设 计。写指令读数据输入:输入:输入:输入:方案二:通过PS2协义,用键盘同单片机相接,从而实现单片机与键盘通信。其电路如图所示。现在PC机广泛采用的PSe接口为引脚的连接器。1数据线(DATA);未用;3电
17、源地(GND) ; 4电源(+5 V ) ; 5吋钟(CLK) ; 6未用。由此图可知,使用键盘硬件结构比较简单,但键盘的体积太大,所以此系统不采用此方案。 方案三:自制编码键盘。编码键盘的电路如图所示,这种键盘有编程简单, 占用资源少,但其硬件比较复杂,要用很多的二极管,不是很理想O方案四:4粋矩阵式键盘。其电路图如图所示,这种键盘的硬件简单,使用 的X) 口也不多,而且这种键盘的编程方法已很成熟。本次设计也可以采用这种 矩阵式键盘。其电路图如图丄 T ' - : - I- t 7b- I - Y 1 I 二 r- 4;匸丄 I:A* rr - 11- J I I 1-i .二 1
18、- 1 V f *'.!< > hfi_ftl4tllni 4 f IT fntf TltlT- - T- It 1 11 - :« _j5 mX 2 : - ,jl _z:©琴i話0膏 r,唱:naHsun. ;-i : / .:丄 -11 In- r I » 11: - ' < <:«: = J 二- 一 -一 '-H lx L t±ow;FWPB* 0:I LEZOh :_tn -2 _._J .主体设计部分:(1)、系统模块图:(2)、算术运算程序流程图:(3)、系统总流程图:厂开始LI、
19、/2、内部时钟模式电路:C2-UC-IHIGZD当单片机工作于内部时钟模式的时候,只需在XTAL1和XTAL2引脚连接一个晶体振荡器或者陶瓷振荡器,并接两个电容后接地即可,在使用时对于电容的选择有一定的要求:当外接晶体振荡器的时候,电容值一般选择C1=C2二30+10pF或 30-10pF;当外接陶瓷振荡器的时候,电容值一般选择C1=C2二40+10pF或 40-10pF;3、STC89C52 介绍:STC89C52是一种低功耗、高性能 CM0S8位微控制器,和在系统可编程具有8K在系统可编程Fhsh存储器。在单芯片上,拥有灵巧的8位CPUFhsh,使得STC89C52为众多嵌入式控制应用系统
20、提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Fhsh , 512 字节 RAM , 32位W 口线, 看门狗电路, 内置 4KB EEPROM ,M AX810复位电路,三个16位定时器龙十数器, 一个6向量2级屮断结构, 全双工串行口。另外STC89X52可降至OHz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停 止工作,允许RAM、定时器龙十数器、串口、屮断继续工作。掉电保护方式下,RAM最高内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。运作频率35M hz , 6T/12T可选。和a tn el的对比STC89C52RC单片机:8
21、K字节程序存储空间;512字节数据存储空间;内带4K字节EEPROM存储空间;可直接使用串口下载;AT89S52单片机:8K字节程序存储空间;256字节数据存储空间;TO PIO 匚140(72 EX) Pit C233P12匚339P第3匚437P1,4 匚536iMOSIJPlSC35(WisorPie 匚734(scKrPU c533RST匚G32<RXO) P3.0 c1031(TXD| P3.1 匚113a(PTTC) P12 匚1229irrrps.s 匚1323(TD)P3.4C1427(TT)P3,5C1526两冋6匚牌re玄7匚1724XTAUiC1923XT AU 匚
22、IS22GND匚2021没有内带EEPROM存储空间; VCC PC 0 (ADO) PC KADI) PC 2 (ADZ) PG 3 (AD3) PG4(AD4) PC 5 (ADS) PCe (ADO)卓VPP ALEROG P27(A15 P2e(A14) P2 4(A12) P2 3 (A11) P2 1 (A9) P20 (A3)4、LCD 1602 介绍:1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对 比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电
23、位器调 整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄 存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E或EN)端为使能(enabfe)端。 第714脚:D 0D 7为8位双向数据 端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极602LCD的特性n提供各种控制命令,如: n有80字节显示数据存储 n内建有192个5X7点阵的字型的字符发生器CGROMn+5V电压,对比度可调n内含复位电路n8个 再读上 (前面加Ox清屏、字符闪烁、光标闪烁、显示移位等多种功能 器DDRAM 可由用户自定义的5X
24、7的字符发生器CGRAM读的时候,先读左边那列,为 0x42面那行,如:感叹号!的ASCH为0x21 ,字母B的ASCH 表示十六进制)(初始化)1602通过D 0D 7的8位数据端传输数据和指令。显示模式设置:0011 0000 K)x38设置16X2显示,5X7点阵,8位数据接口;显示开关及光标设置:(初始化) 0000 1DCBD显示(1有效)、C光标显示(1有效)、B光标 闪烁(1有效) 0000 01NS N = l(读或写一个字符后地址指针加1&光标加1),N二0(读或写一个字符后地址指针减1&光标减1),S = 1且N = 1 (当写一个字符后,整屏显示左移) s
25、=0当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H ,所以数据地址为80H+地址码(0-27H , 40-67H)其他设置:01H(显示清屏,数据指针二0,所有显示=0); 02H(显示回车,数据指针二0)。(三)、键盘接口电路:计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的X) 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四条X)线作为行 线,四条X)线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4X4个。这种行列式键盘结构能有效地提高单片
26、机系统 中U) 口的利用率。矩阵键盘的工作原理:计算器的键盘布局如图1所示:一般有16个键组成,在单片机中正好可以用 一个P 口实现16个按键功能,这种形式在单片机系统中也最常用。图1矩阵键盘布局图fj矩阵键盘内部电路图如图2所示:IT(四)、LCD显示模块:本设计采用LCD液晶显示器来显示输出数据。通过D(H)7引脚向LCD写指令 字或写数据以使LCD实现不同的功能或显示相应数据。LCDL LJd)44L I _J_益 TEfCUIbLSiO 'n<<*944CJ?tEitq 8n叩4FB!1AV5!岂尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高
27、效率,以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以很 快地实现运算功能。PCB设计:1、实验现象、数据记录 数码显示及运算最多九位显示及运算当超出时溢出显示五、总结在实验中遇到了这样那样的问题,软件的编辑中使得C语言的应用更加熟练; 在硬件的实现中又出现了软件和硬件不统一的问题,本实验我做了两次,第 一次的时候STC89C52单片机的P2 口的P20P27分别对应连接到LCD 1602 的D7D0 口,这就使得在写程序的时候需要把所有读写的数据以及地址都按 位取反,改写程序比较复杂,最终调试失败,又改变了硕件电路。最终成功;本次设计不管在软件,或是在硬件方面都让我受益匪浅,让
28、我所学的知识得 以应用到实践,经过这次创新性实验,也令我看到了很多的不足,在实验中的一 些程序不能够及时编辑正确,需要很长时间的设计。硕件中我对单片机实验板上 的很多硕件不是很清楚,使得在下载程序后,又进行了很长时间的调整。六、主要程序代码Key.C#iichde<ieg52±> #defiie ucharuns迴ned char ffdefee uiituns迴ned int #deaie KEYDATA Pl ucharkey;uchar dis_buff;void D ehyl (uintx)until for 乍 0;Kx;廿+) for(fO;jC112 ;t+
29、) ucharKeyS can (void) uchar tern p=0;key=0;KEYDATA=Oxffi;DehyKl);temp 二 KEYDATA;tern p=tem p&OxfO;tern p= (tern p>>4) OxfD);iffem p=l)key=0;else if fem p=2)key=l;else iffem p=4)key=2;else iftem p=8)key=3;else key=16;KEYDATA=0x0f;DehyKl);temp二KEYDATA;tern p=tem p&OxOf;tern p=c (tem p l
30、Oxffl);if (tern p=l)key+=12;else if (tern p=2)key+=8;else iffem p=4)key+=4;else iffem p=8)key+=0;else key=16;if(key<16) dis_bu 年 key;letLixn dis_buff;ucharK eyD ow n (void) ucharkeyF hg;uchar tem p;KEYDATA=Oxffl;if(KEYDATA !=0xfi) tem p=KEYDA TA;DehylOO);iffem p二二KEYDATA) keyFag=l;else keyFag=O;
31、eke keyFag=O;1602X#richde<ieg52.h>#iichde< htrhs.h>ttdeSie ucharunsigned char#defce uhtunsned htsbitxs=P2"5;sbitxw=P2八6;sbite=P2"7;sbitbPO 7;void delaylm s (void)ucharijfcr乍0水10;汁+)for(F0;jC33;t+) ; voildehy charn)uchar i;fcr乍 0;Kn;廿+)dehylm sO; ucharBusyTesttyoid) (bitlesuM ;e
32、=l;_nop_0;_nop_0;_nop_0;_nop_0;iesultl=bf;e=0;retim lesuM ;void W riteC om m and ©char com m and)while(BusyTestO=l);rs=0;iw=0;e=0;_nop_0;_nop_0;P0=com m and;_nop_0;_nop_0; e二0;VO id W xTteAddress (ucharaddii)W riteC om m and feddrOxSO); voidW riteD ata ©chard)While(BusyTestO=l);is=l;xw=0;e
33、二0;_nop_0;PO=d;_nop_0; e二0;void Lcdhit(void) dehy(15);W rteC om and 0x38);dehy(5);W riteCom and 0x38);dehy(5);W riteCom and 0x38);dehy(5);W riteCom and 0x06);dehy(5);W riteC om and 0x01);dehy(5);W riteCom and 0xOc);dehy(5);W riteCom m andOxOe);dehy(5);M ah.c #hchde<ieg52±> #defiie ucharun
34、s迫ned char #deQie uiituns迪ned int ucharpositbn=OxOO;uchar strhg 130; 存放输入的表达式ucharcode wam= fERRO R ucharcode num t 射丁7了4门了0;'8丁5;'2丁二丁9','6丁3;&俄化门;ucharC urthi e 7= 50,15,13,7,5,1,8;ucharopr15; 操作符htopt15;操作数uchar bptbpr; /记录操作数和操作符数组的下标bitfeg二0;術记是否输入“(”操作符循环嵌套long iesuUfO ;uch
35、arpp ;力己录表达式的字符位置 bitequatO ; 标记是否开始计算htop=0 ;用来记录合成的数值 bitnonnatl/用来记录是否正常,正常就进行运算,否则停止运算 ucharopeiate力用来标记操作数和操作符的堆栈1相当于清屏bitequaFhg二0用來标记等号是否按下,按下之后为 uchar shifi=0;sbitm 1=P 3 八7 ;sbitm 2=P 3飞;sbitm 3=P3"5 ; H用来标识shift键是否按下,按下则灭ucharpzp=0 ;用来保存修改状态下等号的位置 ucharW liteAddiess bcharaddi);ucharW
36、xiteDalachard);ucharW liteC om m and bcharcom m and);void LcdhitO; ucharKeyD own (void);ucharKeyScan (void);void h it (void)htxpositbn=0x00;for(i=0;K30;廿+)strhgKKa,;flag=0;PP=0;equatO;nom at 1;shiflFO;oprIbhO;bpiFO;bpi=0;pzp=0;op=0;void D isphyNum bfe (bng num bte) 俺:示结果,把结果转换为字符串形式在输出r 1UP,,八,,,八,八
37、1tLicharnum xl8J=la>a,a,a,a,a,a>a; ucharF 仃 0x42;LcdhitO;W riteC om m and (OxOc);关光标显示W riteAddiess 0x40);W riteD ata C=0;if (hum beO) riteAddiess 0x41);W riteD ata f-);num be=O-num bfe;if (hum bb=O)liteAddiess )x42);W riteD ata 0+0x30);else white (hum be>0)num X炉num bfe% 10 ;num be=num ble
38、AO;fH;while (hum xEfl= a)W rteAddressO-+);W riteD ata (hum X讲0x30);L;void D isphyEnortyoid)显示错误uchar i;nonn atO;划 riteAddiess0x40+;W riteDataamKD;void C ahulate (void) 卜算(htm ;sw ifch GprEbp欣 10) fcase 0 :flag=l ;biBak;case 1 m =optE"DpiKopt|HiDpil;opti)p1±+4m ;bleak;case 2 m = opt:pt:bppl
39、Fbpt"2 ;opt:bp廿+4m ;bleak;case 3 m =optEptJk)ptlHbp£optEbp廿+4m ;bleak;case 4 m =opti>pt21ptCbpt"l;iffoptbpt-l=O)D isphyEnorO; else iDpiFi)pt"2;optfiop廿+4in ;bleak;void IhsertO prucharoperaQiBentrant (iffopemteA0>opri)p3rl/10 |bpera"te=10) oprH+i)p 诈 opeiatB;elseif(i)pr
40、!=0)C akuhte 0;iffoperate=15)if(fhg=O)hsertD pr6peiate);elseflag=0; 力用来使递归结束else if(bpr=0) bpi+=l;opriDpr=opeiate;ucharKeyC har(void) ucharch;ucharn=KeyScan 0;if(shift!=2) sw itch (h)case 0 :if(shift=O)ch=/k表示清除else ch= w bieak;I柚 表不修改case12 :shiflF (shift+1)% 3 ;ch= m bieak;case13:if(shifiF=0)ch=7;
41、else ch=T;break;case14 :if(shfflF=O)ch='*'else ch=7;bieak;case15 :if(shiftF=O)ch='+'else ch=T;break;defeult:ch=num |n;bieak;ese ch=¥显示数字letJin ch; void W riteNum (jjchar num ,uchar add) riteAddiess(add);W riteD ata (hum A0+0x30);W riteAddiess fedd+l);W riteD ata (hum % 10+0x30);
42、void D isplay0 riteNurn Curtin e(610x00);riteAddiess 0x02);riteD ata ;riteNum Curtin e010x03);riteAddiBSS 0x05);riteD ata ;riteNum Curtin eB10x06);nteAddiess 0x09);riteD ata CD ');riteAddiess ®xOa);riteD ata Ca');riteAddiess 0xOb);riteDataCy);riteNum Curtin e510x0d);riteNum Curtin e10x4
43、4);riteAddiBSS 0x46);riteD ata C:);riteNum Curtin e110x47);nteAddiess 0x49);riteD ata C:');riteNum Curtin e01Ox4a); void m ah (void) (hitO;LcdhitO; w h ife (1) sw itch (shift) case 0 m 1 = 1 ?n 2=0 ?n 3=0 break;case Im 1=0 ;m 2=1 ?n 3=0 ;biEak;case 2 m 1=0 川 2=0 ?n 3=1 ;biEak; if(shift=2) if(KeyD ownO=l) ucharch;ch=KeyCharO;if(ch=N)if (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年荆门市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(满分必刷)
- 雅安市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(b卷)
- 2026年武汉市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)完整答案详解
- 2026年郑州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及参考答案详解
- 2026年湖州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及1套完整答案详解
- 2025年广东省辅警考试公安基础知识考试真题库及参考答案
- 2026年金昌市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解
- 蚌埠市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及参考答案详解1套
- 池州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(精练)
- 2025年高危妊娠的试题及答案
- 自考《公共经济学》详细知识点
- DZ∕T 0270-2014 地下水监测井建设规范
- DL-T5153-2014火力发电厂厂用电设计技术规程
- (高清版)JTGT 3365-02-2020 公路涵洞设计规范
- 八年级物理单位换算专项练习
- 压力容器制造质量保证手册
- 国家职业技术技能标准 6-12-03-00 药物制剂工 人社厅发201957号
- 医养结合知识培训课件
- 培训人才发展体系搭建
- 【工程测量实用技术实践实验报告:水准测量1600字】
- 混凝土浇筑令(样板)
评论
0/150
提交评论