基于单片机的电子秤毕业设计报告.doc
传感器文献综述设计题目: 传感器的前程与挑战 _班 级: 测控111班 指导 汪斌/谢东福/如清 日 期: 2014.10.8 10.17 29 / 31目录第一章 课程设计任务书11.1设计题目:电子秤硬件电路设计11.2设计目的11.3设计任务与主要技术指标11.3.1课程设计的任务1第二章 总体方案设计22.1 电子秤工作原理22.2 基于AT89C51单片机的主控电路32.2.1 单片机硬件接口32.3 电阻应变式传感器42.4 前级放大器部分52.5 A/D转换器82.6 显示模块82.7 键盘输入9第三章 硬件设计103.1 显示模块103.2 测量电路103.3 模数转换电路113.4 键盘与报警模块12第四章 软件设计134.1 程序运行框图134.2 ADC0832采样子程序144.3 显示子程序设计144.4 键盘控制子程序设计154.5 报警子程序16第五章 仿真结果175.1 电子秤硬件电路仿真图175.2 仿真结果17第六章 结束语19参考文献19附录1 c程序源代码20第一章 课程设计任务书1.1设计题目:电子秤硬件电路设计1.2设计目的称重技术自古以来就被人们所重视,作为一种计量手段,广泛应用于各个领域,但是随着微电子技术的应用,传统的机械称重工具已经满足不了人们的要求。电子称量装置、电子秤、电子天平等以其准确、快速、方便、显示直观等诸多优点而受到人们的青睐,所以电子称替代机械称是发展的趋势。1.3设计任务与主要技术指标1.3.1课程设计的任务设计任务要求:电子秤硬件电路设计并用Proteus软件进行仿真调试。设计硬件电路要求:1、 根据电路的要求选择电阻应变式传感器2、 可液晶显示所称物体重量、设置商品单价(元/Kg)与商品总价输出;3、 电子秤称重围:09.999;重量误差不大于0.005;4、 性能稳定、计数要精确,具有校准旋钮,简化电子称的校准操作;5、具有溢出声光报警,提示用户纠正操作功能。第二章 总体方案设计方案设计:本设计选用电阻应变式传感器作为物体重力感知设备,将物体的重量转换成与被称物体重量成一定函数关系(一般成正比关系)的电信号。此信号再由A/D转换把模拟信号转变成数字信号,进行模数转换,通过单片机的处理,然后把数字信号输送到显示电路中去,最后由显示电路显示出测量和计算结果。可以用一个行列式键盘,输入被称量物品的种类和单价,调用单片机中的程序进而算出其总价。同时,外设调零旋钮,易于调零校准,相比于机械称大大节省了校准时间;并且在称量商品的质量与总价超过预设最大值时,电子称会发出声光报警,提示用户错误操作,以免对设备造成更大损害。2.1 电子秤工作原理本设计电子称由七部分组成:应变式传感器、模拟信号放大模块、模数转换模块、主控制器模块、键盘、显示模块与报警模块。系统工作流程图1如下。键盘模块显示模块AT89C51芯片控制模块电阻式应变传感器运放电路报警模块校准电路图1 系统工作流程图由应变式传感器原理可知其将压力信号转变成微弱的电信号,经运放电路将其放大到信号处理所需压值得电信号,然后经AD转变换器将其转换成数字信号,送经总控制器进行处理;键盘的功能是设定商品单价(元/Kg)并送入总控制器,经处理后得出商品总价,经显示模块将商品的质量、单价、总价输出,当商品的总质量超过电子称测量极限或总价超出预设总价上限,报警模块会发出提示音和LED闪烁的报警提示,提醒用户操作非法,应与时取消当前操作,以免造成损失。2.2 基于AT89C51单片机的主控电路AT89C51是一个低电压,高性能CMOS 8位单片机,片含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器和Flash存储单元,AT89C51单片机在电子行业中有着广泛的应用,功能强大、适合于许多较为复杂控制应用场合。2.2.1 单片机硬件接口1、与显示模块接口P0:P0.1-P0.7接显示模块的D0-D7数据/指令输入端,P2.0-P2.4接LCD的控制端,控制显示模块的数据刷新等操作。2、 与AD转换器接口P3.5-P3.7接AD转换器的片选/CS、转换时钟CLK、数据输出DO端,单片机通过片选和时钟控制转换器的数模转换,经过DO获取转换结果。4、 与键盘接口单片机的P1口接行列式键盘,其中P1.0-P1.3作为行扫描接口,P1.4-P1.7作为键盘的列扫描接口。5、 与报警模块接口P3.1作为报警模块的输入连接接口,控制报警器的开关,报警器开时蜂鸣器会发出提示音,LED会被点亮。单片机接口图如下:图2 单片机接口图2.3 电阻应变式传感器电阻应变式传感器是一种利用电阻应变效应,将各种力学量转换为电信号的结构型传感器。电阻应变片式电阻应变式传感器的核心元件,其工作原理是基于材料的电阻应变效应,电阻应变片即可单独作为传感器使用,又能作为敏感元件结合弹性元件构成力学量传感器。导体的电阻随着机械变形而发生变化的现象叫做电阻应变效应。电阻应变片把机械应变信号转换为R/R后,由于应变量与相应电阻变化一般都很微小,难以直接精确测量,且不便处理。因此,要采用转换电路把应变片的R/R变化转换成电压或电流变化。其转换电路常用测量电桥。直流电桥的特点是信号不会受各元件和导线的分布电感与电容的影响,抗干扰能力强,但因机械应变的输出信号小,要求用高增益和高稳定性的放大器放大。下图为一直流供电的平衡电阻电桥,将受力状态相同的两片应变计接入电桥对边,不同的接入邻边,应变计初始化阻值是R1R2R3R4,当其变化值R1R2R3R4时,其桥路输出电压UoutKE。其中K为应变灵敏系数,为电阻丝长度相对变化,E为电桥供电电压:图3 传感器结构原理图当电桥输出端接无穷大负载电阻时,可视输出端为开路,此时直流电桥称为电压桥,即只有电压输出。当忽略电源的阻时,由分压原理有:当满足条件R1R3R2R4时,即=0,即电桥平衡,该式称平衡条件。应变片测量电桥在测量前使电桥平衡,从而使测量时电桥输出电压只与应变片感受的应变所引起的电阻变化有关。若差动工作,即R1=R-R,R2=R+R,R3=R-R,R4=R+R,则电桥输出为应变片式传感器有如下特点:(1)应用和测量围广,应变片可制成各种机械量传感器。(2)分辨力和灵敏度高,精度较高。(3)结构轻小,对试件影响小, 对复杂环境适应性强,可在高温、高压、强磁场等特殊环境中使用,频率响应好。(4)商品化,使用方便,便于实现远距离、自动化测量。 通过以上对传感器的比较分析,题目要求称重围09.999Kg,重量误差不大于0.005Kg,考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,所以传感器量程必须大于额定称重9.999Kg 。我们选择的是L-PSIII型传感器,量程20Kg,精度为 0.01%,满量程时误差0.002Kg,完全满足本系统的精度要求。2.4 前级放大器部分经由传感器或敏感元件转换后输出的信号一般电平较低;经由电桥等电路变换后的信号亦难以直接用来显示、记录、控制或进行A/D转换。为此,测量电路中常设有模拟放大环节。这一环节目前主要依靠由集成运算放大器的基本元件构成具有各种特性的放大器来完成。放大器的输入信号一般是由传感器输出的。传感器的输出信号不仅电平低,阻高,还常伴有较高的共模电压。因此,一般对放大器有如下一些要求:1、输入阻抗应远大于信号源阻。否则,放大器的负载效应会使所测电压造成偏差。2、抗共模电压干扰能力强。3、在预定的频带宽度有稳定准确的增益、良好的线性,输入漂移和噪声应足够小以保证要求的信噪比。从而保证放大器输出性能稳定。4、能附加一些适应特定要求的电路。如放大器增益的外接电阻调整、方便准确的量程切换、极性自动变换等。我们考虑了以下几种方案:方案一 : 利用普通低温漂运算放大器构成多级放大器。普通低温漂运算放大器构成多级放大器会引入大量噪声。由于A/D转换器需要很高的精度,所以几毫伏的干扰信号就会直接影响最后的测量精度。所以,此种方案不宜采用。方案二 :采用专用仪表放大器,如:AD620,INA126等。此类芯片部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单。以AD620为例,其部等效图如下所示:图4 AD620部等效图接口图如下所示:图5 AD620接口图电路的工作原理:A1、A2工作在负反馈状态,其反向输入端的电压与同相输入端的电压相等。即Rg两端的电压分别为Vin+、Vin-。因此(2.1)设图中电阻R1=R2=R,则A1、A2两输出端的电压差U12为 (2.2)将式(2.3)代入式(2.2)得放大器的增益Av为 (2.3)可见,仅需调整一个电阻Rg,就能方便的调整放大器的增益。由于整个电路对称,调整时不会造成共模抑制比的降低。在接口图中,通过改变可变电阻R3的阻值大小来改变放大器的增益,放大器增益计算公式如下:AD620 具有体积小、功耗低、精度高、噪声低和输入偏置电流低的特点。其最大输入偏置电流为20nA,这一参数反映了它的高输入阻抗。AD620在外接电阻Rg时,可实现11000围的任意增益;工作电源围为±2.3±18V;最大电源电流为1.3mA;最大输入失调电压为125V;频带宽度为120kHz(在G=100时)。基于以上分析,我们决定采用制作方便而且精度很好的专用仪表放大器AD620(仿真中用OPAMP代替)。2.5 A/D转换器本设计选用ADC0832转换器,ADC0832 是美国国家半导体公司生产的一种 8 位分辨率、双通道A/D 转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者与企业欢迎,其目前已经有很高的普与率。ADC0832 为 8 位分辨率 A/D 转换芯片,其最高分辨可达 256 级,可以适应一般的模拟量转换要求。其部电源输入与参考电压的复用,使得芯片的模拟电压输入在 05V 之间。芯片转换时间仅为 32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过 DI 数据输入端,可以轻易的实现通道功能的选择。2.6 显示模块采用可以设置显示单价,金额,中文等的LCD,它具有低功耗、可视面大、画面友好与抗干扰能力强等功能,其显示技术已得到广泛应用。LCD 显示器的工作原理:液晶显示器的主要材料是液态晶体。它在特定的温度围,既具有液体的流动性,又具有晶体的某些光学特性,其透明度和颜色随电场、磁场、光照度等外界条件变化而变化。因此,用液晶做成显示器件,就可以把上诉外界条件的变化反映出来从而形成现实的效果。为了得到良好的显示效果,我们采用可以多行显示的屏幕,由于无需太大屏幕,我们选择了通用型点阵式128×64型LCD。2.7 键盘输入键盘输入是人机交互界面中重要的组成部分,它是系统接受用户指令的直接途径。键盘是由若干个按键开关组成,键的多少根据单片机应用系统的用途而定。键盘由许多键组成,每一个键相当于一个机械开关触点,当键按下时,触点闭合,当键松开时,触点断开。单片机接收到按键的触点信号后作相应的功能处理。因此,相对于单片机系统来说键盘接口信号是输入信号。 因此,我们选择功能更好的专用键盘,既在各个键印上刷好其功能以方便使用(例如:1、2、3、4与小数点、清除等)。第三章 硬件设计本设计电子称的硬件电路包括传感器检测模块、信号放大模块、数模转换模块、信号处理模块、主控制模块、键盘与报警模块,电路经Proteus软件仿真达到接近实际电路的效果,下面是硬件的设计与仿真结果。3.1 显示模块显示模块用于显示商品的质量,在设置商品单价的情况下,商品的总价会显示在屏幕的最下方如图所示:图6 显示模块图3.2 测量电路测量电路的组成包括:传感器检测电路、模拟信号放大电路;在仿真环境里L-PSIII型传感器的检测原理可用如下电桥电路代替:图7 测量电路滑动变阻器的作用是在L-PSIII的输出电压围模拟其在不同应变下输出的不同电压,将其输出给下一级信号放大电路进行电压放大,放大电路如下图;我们采用OPAMP的差动式放大器来实现该功能,通过输出端的电压表,我们可以很方便的在仿真环境里,使用校准电阻对输出端进行校准操作。图8 系统信号放大、校正模块3.3 模数转换电路本设计的模数转换有ADC0832芯片与其外围电路完成控制数据转换、数据处理、商品单价输入与显示以与报警功能是由AT89C51来完成,图9 模数转换模块3.4 键盘与报警模块键盘采用4×4键盘,可以实现商品单价的输入、基数按结果、清零、重置等功能。如下图:图10 键盘模块按数字键和小数点键可设置商品单价,按下“=”键显示商品的总价,当按下ON/C键时清除所设商品单价与计算结果。当所放商品总价超过255元时,报警电路便会发出持续报警声,LED灯点亮,直到物品重量或商品总价值低于上限。第四章 软件设计4.1 程序运行框图软件主要三个方面:一是初始化系统;二是按键检测;三是数据采集、数据处理并进行显示。程序采用模块化的结构,这样程序结构清楚,易编程和易读性好,也便于调试和修改。开始MCU初始化、LCD进入显示画面、ADC0832初始化N是否载物?MCU存储ADC0832采样值NN是否按键?MCU执行计算,并将结果送给LCD显示结束结束键是否按下?图11 程序运行框图4.2 ADC0832采样子程序MCU通过拉低CS、拉高CLK来启动ADC0832进行外部压力传感转换后的电压信号进行采样,每产生8个CLK脉冲,DATA获得一位完整的8bit数据,此时MCU发送中断请求,拉高CS,拉低CLK,并将数据DATA返回。开始拉低CS,拉高CLKNDATA右移8位拉高CS,拉低CLK,返回数据DATA结束图12 ADC0832采样子程序4.3 显示子程序设计显示子程序主要是来判断是否需要显示,以与如何去显示,也是十分重要的程序之一。而显示子程序是其他程序所需要调用的程序之一。 LCD液晶能够显示比较复杂的汉字和图形,首先必须对其写入控制操作字,包括图形的显示方式,字体的模式。然后写入初始行地址,指针自动左移,直到写完全部数据为止。开始写入控制字写入初始化Y是否换行?NN数据写完?结束图13 显示程序模块4.4 键盘控制子程序设计本设计中采用了4*4矩阵式键盘,单片机定时进行查询。首先单片机发送行扫描代码,然后进列扫描,当发现某一列出现了低电平时,即返回相应的键盘值。若没有发现则说明当前行没有键按下,行扫描右移一位,继续执行列扫描。MCU根据相应的键值,即可确定被按下的键。开始发送行扫描码发送列扫描码右移一位N列扫描结束?右移一位行扫描结束?N返回键值图14 键盘控制子程序4.5 报警子程序当电路检测到称重的物体超过仪器的测量限制时,将产生一个信号给报警电路。使报警电路报警从而提醒工作人员注意。开始采集重量大于上限?N报警结束图15 报警子程序第五章 仿真结果5.1 电子秤硬件电路仿真图图16 硬件电路仿真图 5.2 仿真结果上调滑动变阻器,LCD显示的重量为4.507kg,然后在键盘上按下45,随即单价显示“45元”,按下“=”键,显示总价为42.86元。图17 仿真结果图当所放商品的质量超过10Kg或商品总价超过255元时,如重量为9.996千克,单价为28元,总价为279.888元,则LCD不显示总价,且报警电路便会发出持续报警声,LED灯点亮。图18 超重仿真显示第六章 结束语本次设计不仅应用了传感器技术,而且将单片机技术、数模电路等基础技术融合到一起,不仅考察了学生的个人综合能力,更是对学生的团队合作能力与个人素质的考察;而且通过这次课程设计,让我对传感器设计基础知进一步巩固加深,更重要的是获得了许多新的实践经验。这其中包括我进一步学会了如何去做设计,学会知道团队精神的重要性,在这次的课程设计当中,在一些材料的选用,与其它同学进行了交流,提高了自己的工作效率。通过这次课程设计,加强了同学之间的交流,大大增进了我们班的凝聚力,协作的精神更强了,而且自己也学到了很多实际的有用的东西,相信对以后的工作一定会大有益处。经过软件的最终仿真结果,设计实现了上述功能,系统可以连续稳定可靠运行,实现了预期功能,完成设计目标。参考文献1徐科军.传感器与检测技术M.电子工业.20122孟祥莲 高洪志.单片机原理与应用M.工业大学.20103晓峰编.电子技术基础M,中国电力工业J,20104建领.51系列单片机开发宝典M.电子工业.20075王细荣.文献信息检索与论文写作M.XX交通大学.20096马令坤等.电子工艺实训教程M.电子科技大学.20057阎石.数字电子技术基础.:高等教育,20098何立民等.单片机中级教程原理与应用M.航空航天大学出版社.1999 9王素珍,淑芬,周梅称重配料系统传感器电源与放大电路J传感器技术,200610王幸之AT89系列单片机原理与接口技术M航天航空,2006附录1 c程序源代码#include<reg52.h>#include<LCD.h>#define uchar unsigned char#define uint unsigned intuchar code table="0123456789" /数字uchar code *weight="Weight: . Kg "/要显示的第一行容uchar code *price="Price:"uchar code *mone="Money:"uchar code *runout="Runout"uchar n,k,s,bb=0,data1,dip=0,dap=0,data3=0;/n用来显示总输入,k识别输入字符性质,dap识别显示方式,dip为小数识别,bb小数字位数识别double sum,money,date,date1,date2; /sum为重量,money为总金额, date为输入单价, date1单价整数,data3去皮重量uchar str_TME=0,0,0,0,0;/重量显示uchar money1=0,0,0,0,0,0;/金额显示uchar str_TME1=0,0,0,0,0; /去皮重量void jianpan() ;/键盘函数申明sbit speak=P31;/报警void delay(uint z) /延时1mS函数uint x,y;for(x=z;x>0;x-)for(y=10;y>0;y-);/* 液晶子程序*/sbit lcden=P21;sbit lcdrs=P20;void write_(uchar ) /写指令函数lcdrs=0;P0=;delay(5);lcden=1; /en需要下降沿才能写入delay(5);lcden=0;void write_data(uchar date)lcdrs=1;P0=date;delay(5);lcden=1; / en需要下降沿才能写入delay(5);lcden=0;void init() /初始化lcden=0;write_(0x38);/功能设置为2行显示,5X7点阵write_(0x0c);write_(0x06);write_(0x01);/*设置第(xPos,yPos)个字符的地址*/参数:xPos为显示第几列,yPos为显示第几行void LcdPos(uchar xPos, uchar yPos) uchar tmp; xPos&=0x0f; /x:0-15 yPos&=0x01; /y:0-1 if(yPos=0) /显示第1行 tmp=xPos; else tmp=xPos+0x40; tmp|=0x80; write_(tmp);/*在指定行列显示指定字符*/参数:xPox 光标所在列 yPos 光标所在行 c 待显示字符void WriteChar(uchar c, uchar xPos, uchar yPos) LcdPos(xPos, yPos); write_data(c);/*显示字符串*/参数: *s 指向待显示字符串;yPos光标所在行;xPos光标所在列void WriteString(uchar *s, uchar xPos, uchar yPos) uchar i; if(*s=0) /遇到字符串结束 return; for(i=0;i+) if(*(s+i)=0) break; WriteChar(*(s+i), xPos, yPos); xPos+; if(xPos>15) break; /*AD0832AD转换子程序*/sbit bADcs=P35; /片选位sbit bADcl=P36; /时钟位sbit bADda=P37; /数据位void ad(void) uchar i; bADcs = 0;/当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,开始工作CS为低电平 bADcl=0; /第一个时钟下降沿前da为1,第二个与第三时钟下降沿前的数据为通道选择 bADda=1; /选置起始位 bADcl=1; bADcl=0; / 1down bADda=1; /通道选择第1位 bADcl=1; bADcl=0;/ 2 down bADda=0; /通道选择第2位,通道选择为1,0选通道0 bADcl=1; bADcl=0;/ 3 down bADda=1; bADcl=1; bADcl=0;/ 4 down for(i=8;i>0;i-) data1<<=1; /从第7位开始,要左移data1=data1<<1 bADcl=0;bADcl=1;if(bADda=1) data1|=0x01; /如果输出1,data1最后一位补1 bADcs=1;/转换完后CS置1 /*AD0832AD数据处理程序*/void changs() /数据处理程序 uchar val_Integer; /定义整数变量 unsigned int val_Decimal; /定义小数变量data1 = data1-data3; sum=data1*0.0196*2 ; /data1*5/255 val_Integer=(uchar)sum; val_Decimal=(unsigned int)(sum-val_Integer)*1000); str_TME3=val_Decimal%10; str_TME2=val_Decimal/10%10; str_TME1=val_Decimal/100; str_TME0=val_Integer;void display(void)/重量显示程序lcd_display_shuzi(1,0,5,str_TME0); lcd_display_shuzi(1,0,6,11); lcd_display_shuzi(1,0,7,str_TME1); lcd_display_shuzi(2,0,0,str_TME2); lcd_display_shuzi(2,0,1,str_TME3); lcd_display_hanzi(2,0,2,5);lcd_display_hanzi(2,0,3,6);lcd_display_hanzi(2,1,2,7);lcd_display_hanzi(2,2,2,7);/*总价=单价与重量相乘数据显示程序*/display2() uchar val_Integer; /定义整数变量 unsigned int val_Decimal; /定义小数变量 money=sum*date; /总价计算if(money<256)/金额小于256正常显示,超出报警 val_Integer=(uchar)money; val_Decimal=(unsigned int)(money-val_Integer)*1000);money13=val_Decimal/10%10;money12=val_Decimal/100;money11=val_Integer%10;money10=val_Integer/10; lcd_display_shuzi(1,2,5,money10); lcd_display_shuzi(1,2,6,money11); lcd_display_shuzi(1,2,7,11); lcd_display_shuzi(2,2,0,money12); lcd_display_shuzi(2,2,1,money13); else /报警 WriteString(mone,0,1); WriteString(runout,7,1); speak=0;/*数据录入显示与处理程序*/datainput() lcd_display_shuzi(1,1,4+s,n); if(s>3)lcd_display_shuzi(2,1,s-4,n); if(dip=0)/如果为整数,处理整数办法 if(s>1) date1=date1*10+n;/如果是第二次以上输入,数据处理 else date1=n;/第一次输入数据等于输入值 else/小数处理办法, if(bb=0)/第一位小数 date2=n*0.1; if(bb=1)/第二小数,只能处理两位,第三位不处理,但能显示 date2=date2+n*0.01; bb+; /小数位识别加1 date=date1+date2;/录入数据等于整数加小数 k=0;/输完一次则K置0void main() uchar temp;lcd_init();clear_screen(0);lcd_display_hanzi(1,0,0,0);lcd_display_hanzi(1,0,1,1);lcd_display_shuzi(1,0,4,10);lcd_display_hanzi(1,1,0,2);lcd_display_hanzi(1,1,1,3);lcd_display_shuzi(1,1,4,10); lcd_display_hanzi(1,2,0,3);lcd_display_hanzi(1,2,1,4);lcd_display_shuzi(1,2,4,10); k=0; while(1) ad();/模数转换 changs(); /重量数据处理 display();/重量数据显示 P1=0xf0; /按键判断 temp=P1; temp=temp&0xf0; if(temp!=0xf0) jianpan();/调键盘程序 if(k=1)/判断是数字输入则变数据 dap=0;/显示单价 datainput();/数据处理与显示 if(k='.') lcd_display_shuzi(1,1,4+s,11); dip=1; if(k='=')/如果是等号输入则调计算程序 s=0;dap=1;/显示金额,S为第几次按键识别 display2(); /金额处理与显示程序 if(k=' ')/清屏 n=0;date=0;date1=0;date2=0;dap=0;/数据为0 k=0;speak=1;dip=0;bb=0;s=0;data3=0; str_TME10=0; str_TME11=0; str_TME12=0; str_TME13=0; clear_screen(0);lcd_display_hanzi(1,0,0,0);lcd_display_hanzi(1,0,1,1);lcd_display_shuzi(1,0,4,10);lcd_display_hanzi(1,1,0,2);lcd_display_hanzi(1,1,1,3);lcd_display_shuzi(1,1,4,10); lcd_display_hanzi(1,2,0,3);lcd_display_hanzi(1,2,1,4);lcd_display_shuzi(1,2,4,10); if(k='-') str_TME10=str_TME0;str_TME11=str_TME1;str_TME12=str_TME2;str_TME13=str_TME3;data3 = data1;lcd_display_hanzi(1,3,0,10); /去lcd_display_hanzi(1,3,1,11); /皮lcd_display_shuzi(1,3,4,10); /:lcd_display_shuzi(1,3,5,str_TME10); lcd_display_shuzi(1,3,6,11); lcd_display_shuzi(1,3,7,str_TME11); lcd_display_shuzi(2,3,0,str_TME12); lcd_display_shuzi(2,3,1,str_TME13); /*键盘子程序*/ void jianpan