1、 北方民族大学学士学位论文 论文题目: 便携式温湿度测量仪的设计与制作 北方民族大学教务处制毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按
2、照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本
3、学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日摘 要无论是工业生产还是科技研究、医疗、国防等领域,经常涉及到温度和湿度两个物理参数,对其精确的测量是各个领域的基本要求,并且有着重大的意义。本文介绍了一种基于单片机的温湿度测量仪。采用SHT10温湿度传感器作做为信号采集模块,通过12864液晶屏将测量显
4、示出来。测量仪还配有按键和蜂鸣器,可以设定报警上下限。当测量值超出报警限时,蜂鸣器发出声音报警。另外测量仪内部设计了RS-485转换电路,可以将测量值和报警上下限传给上位计算机。本设计包括设计和制作部分。其中设计部分由硬件设计和软件设计组成,软件设计包括对温湿度传感器信号采集和处理程序,按键处理程序,12864液晶驱动和显示程序,外部存储芯片读写程序,与上位机通信程序。硬件设计包括升压电路,单片机系统电路,RS-485转换电路,液晶驱动电路,蜂鸣器报警电路。本设计经过测量,功能达到任务书要求。关键词 温度 湿度 测量 单片机 制作IIIABSTRACTWhether industrial pr
5、oduction or technological research, medical, defense and other fields, often related to two physical parameters of temperature and humidity.Precise measurement is the basic requirements of the various fields and has great significance.This article describes the temperature and humidity measuring ins
6、trument based on the MCU.SHT11 temperature and humidity sensor as signal acquisition module, 12864 LCD display measuring value. You can set the security alarm line, when the measured value exceeds the alarm level, the buzzer sound indicates an alarm.In addition, the inside of the measuring instrumen
7、t designed RS458 converter circuit,though which The measuring instrument can communicate with the PC.on the other words ,Measuring instrument send the measured values And through the host computer you can set the alarm line .The graduation project including the design and production.The design part
8、include hardware and software design。Software design include temperature and humidity sensor signal acquisition and processing procedures, the key handler, 12864 LCD driver and display program, external memory chips reading and writing procedures, to communicate with the host computer program.Hardwa
9、re design include step-up circuit, the MCU system circuit, the MAX conversion circuit, LCD driver circuit and buzzer alarm circuit。This design can be simulated by pretus .Products have been measured ,which can reach the requirements of the mission statement.KEYWORDS temperature humidity measure MCU
10、makeIV目录前言1第1章 系统总体设计2 1.1 系统设计任务要求2 1.1.1 系统设计任务2 1.1.2 系统设计要求2 1.2 重点研究内容与实现方法3 1.2.1 重点研究内容3 1.2.2 实现途径及方法3 1.3 系统总体设计方案3 1.3.1 核心处理部分3 1.3.2 温湿度传感器部分4 1.3.3 显示部分5 1.3.4 电源部分6 1.3.5 其它部分6第2章 硬件电路设计7 2.1 核心处理电路7 2.1.1 振动器和时钟7 2.1.2 复位电路7 2.2 电源电路8 2.3 显示电路9 2.4 通信电路10 2.5 存储芯片电路11 2.6 按键电路12 2.7 传
11、感器连接电路12 2.8 系统总电路图13第3章 软件设计14 3.1 主程序14 3.2 测量程序15 3.2.1 启动传感器15 3.2.2 温度测量15 3.2.3 测试值处理16 3.2.4 温湿度测量子程序流程图19 3.3 显示程序20 3.4 键盘程序21 3.5 通信程序22第4章 程序编写和仿真25 4.1 程序编写25 4.2 软件仿真25第5章 调试28 5.1 静态调试28 5.2 联机仿真调试28总结30致谢31参考文献32附录1:仿真电路图34附录2:电路原理图35附录3:PCB 顶层图36附表4:PCB 底层图37附录5:实物PCB图38附录6:焊接完成图39附录
12、7:设计程序40附录8:英文原文65附录9:中文翻译71VI北方民族大学学士学位论文 便携式温湿度测量仪的设计与制作前言温湿度是自然界中和人类打交道最多的两个物理参数,无论是在生产实验场所,还是在居住休闲场所,温湿度的采集或控制都十分频繁和重要。据统计,全球每年有1/4以上的工业制造不良品与潮湿的危害有关1。对于电子工业,潮湿的危害已经成为影响产品质量的主要因素之一。温湿度测量广泛应用于农业研究、工业、环保、卫生防疫、实验室、建筑业、仓储运输、博物馆、温室等领域。传统上温度测量和湿度测量是分开的。随着科技的进步出现了温湿度共测的传感器,目前数字温湿度仪器正是基于这种传感器设计的。数字式温湿度仪
13、的出现,克服了传统水银温度计读难,使用范围窄,传统干湿球显示法的复杂,精度低等缺点。随着电子技术的发展,特别是传感器技术有了前所未有的突破,温湿测量仪的设计也受到广泛关注,越来越多的专家学者在这方面进行了广泛的研究。在2010年第23卷第10期电子科技杂志上,朱楠、赵树田发表的湿度温度监控系统设计一文介绍了利用Sensirion公司的一款数字温度湿度传感器SHT11,这款传感器的特点是芯片内部有一个加热器。由于这个加热器的存在。使得经过加热前后通过对测出的相对温湿度值进行比较,可以确定传感器是否工作在正常状态同时使得在潮湿的环境下使用加热器可以避免传感器凝露,缩短响应时间,提高精度2。在201
14、0年第1期的现代计算机(专业版)杂志上刘志军、高志一、管勇中发表了基于SWC数字温度湿度计设计一文,作者介绍了使用两个单片机分别处理温度信号和湿度信号的设计方案3,电路简单实用。徐晓冰、乐敛军在2010年第9期的科技与生活上发表的仓库温度湿度测量系统设计一文中介绍到了使用温度传感器和湿度传感器分别测量温湿度,使用一个单片机进行测量数据处理的设计方案4。陈静在科技信息2011年的第28期上发表的基于单片机的温度湿度系统设计一文中介绍使用DHT11温湿度传感器和AT89S52单片机实现温湿度测量的方案5。本课题旨在设计制作一种便携式的数字温湿度测量仪,它采用两节干电池供电,具有体积小、携带方便的特
15、点。同时它还带有RS485接口,与上位计算机配合可以方便的构成数据采集网。第1章 系统总体设计1.1 系统设计任务要求 1.1.1 系统设计任务 熟悉使用单片机系统、SHT10温湿度传感器、12864液晶屏等器件,设计出一款使用单片机做为处理器的温湿度测量仪。它能够实时在12864液晶屏上显示出当前温湿度,同时液晶屏上还显示人为可设置的报警限,当温度或者湿度超出设定范围时,蜂鸣器发出报警声。将测量仪与上位机连接,可将当前温湿度值和报警上下限上传给上位机。报警上下限通过仪器自带的键盘和上位机设定。主要技术指标有以下 温度测量范围和精度为-40100,2。 湿度测量范围和精度为0100RH,4RH
16、。测量仪采用电池供电。 3V直流电源供电。 带 RS-485通信接口,可将数据上传给上位计算机。1.1.2 系统设计要求达到以下六点要求 根据设计任务,采购系统所需元器件。 使用Protel99软件完成系统电路原理图设计,并根据PCB图制作出PCB实物电路板。 完成硬件组装和调试。 使用Keil开发环境设计程序完成各项功能。 使用Proteus 软件完成电路仿真。 完成硬件调试,保证硬件能正常工作。1.2 重点研究内容与实现方法1.2.1 重点研究内容本课题的工作包括硬件和软件两部分。硬件部分包括集成温湿度传感器、单片机系统、液晶显示模块、键盘、非易失数据存储芯片、RS-485接口电路、电源变
17、换电路等。重点集成温湿度传感器的选型,难点是硬件的设计、制作与系统的调试。软件部分主要是测量程序的设计。重点是集成温湿度传感器数据读取模块、显示模块、键盘处理模块以及通信协议的设计。难点是测量数据的处理和显示模块的驱动和通信协议的设计。1.2.2 实现途径及方法本课题主要通过资料查找、设计需求分析、系统总体设计,软硬件总体设计、详细的软件与硬件设计、硬件采购、PCB加工、硬件组装、软硬件调试、功能验证等过程完成。本课题利用Protel软件完成硬件设计,使用keil 51软件完成全部控制软件的仿真调试工作,通过硬件仿真器完成软硬件调试,最后通过实际测试来验证仪器的全部功能。1.3 系统总体设计方
18、案1.3.1 核心处理部分目前市场上已有很多不同的处理芯片,基于成本和性能考虑,本设计将STC单片机做为处理芯片。价格方面STC比一般处理芯片低,这里不再阐述,主要从性能方面叙述。STC89C52是一款8位处理器,内部自带8K ROM,足以存入现实任务要求的C51程序。STC89C52具有两个外部中断,可以满足由中断触发的按键设计。STC89C52的串行接口是一个全双工增强性的UART通信接口,能够同时收发,根据设计任务要求,测量仪能够和上位机进行通信故可以设计为与上位机进行通信的接口。此外,STC89C52有足够的I/O接口。综上所述STC89C52适合作为本设计的处理器。1.3.2 温湿度
19、传感器部分目前市场上流行的两款温湿度传感器是DHT系列和SHT系列,本设计选择SHT而不用DHT。原因是同样成本的DHT11远不如SHT,甚至不能满足设计要求,例如DHT温度测量范围:0+60湿度测量范围:2090%RH而设计要求的测量范围是温度40+100,湿度0100%RH.。下面重点介绍SHT系列传感器。SHT系列温湿度传感器具有响应速度快。抗干扰强,性价比高等特点,内部除了温湿度敏感元件外,还有一个放大器A/D转换器。OTP内存和数字接口。精度及测量范围见Error! Reference source not found.表1-1 SHT不同型号的精度和测量范围型号温度()湿度(RH)
20、精度测量范围精度测量范围SHT0.5-401284.50100SHT0.5-401284.00100SHT0.5-401283.00100从上表可以看出,SHT传感器能够满足设计要求 。SHT传感器的引脚如表1.3.2-1所示。表1-2 SHT传感器引脚151.3.3 显示部分单片机的应用系统中,显示部分通常有发光二极管,数码管和LCD。如果简单的信号显示,可以使用发光二极管,其特点电路简单,缺点是,显示信息量十分窄,一个发光二极管只能代表三个状态点亮,熄灭和闪烁。就算使用多个发光二极管,信息量也十分有限,功耗也大,系统中如果需要显示数据,则可以选择数码管。数码管的缺点是,只能显示阿拉伯数字和
21、几个英文字母。无法显示汉字。本设计需要显示出 “当”、“前”、“温”、“湿”、“度”汉字字样。以便用户方便使用,显然发光二极管和数码管是不能实现的。本设计选择LCD液晶屏。下面重点介绍LCD。LCD液晶有分为两种,1602和12864。1602LCD可以显示的内容为162,即可以显示两行,每行16个字符。它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个51或者157等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,1602只能显示字符和数字而不能显示汉字。故本设计不采用。12864是指12864点阵液
22、晶块的简称。又分为带字库和不带字库两类。本设计所设计的汉字不多,故选择不带字库12864 。 12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及12864全点阵液晶显示器组成。可完成图形显示,也可以显示84个(1616点阵)汉字。功能引脚如下表1-3 引脚功表1-3 引脚功表6 1.3.4 电源部分根据设计任务,要求3V干电池组供电,而单片机的供电电压以及各种数字芯片都要求使用+5V电平供电。故需要设计一个升压电路由3V升到5V。升压芯片使用LM2577。LM2577的工作原理是通过改变调整功率管导通和截止的时间比例来稳定输出电压的,其内部有个晶体管,外围电路接个电感。当晶体管导
23、通时,电感电流增大,存储的电能和三极管导通的时间成正比,当晶体管截止时,电感存储的电能转换到输出电容中。具体转换关系在硬件设计介绍。1.3.5 其它部分根据设计任务,还需设计按键调整报警限,单片机复位以及蜂鸣器报警,调节报警限需要三个按键,设置键、加号键和减号键。单片机复位需要一个按键。一共四个按键。第2章 硬件电路设计2.1 核心处理电路单片机有CHMOS型HMOS型两种。CMOS的优点是低功耗,HMOS的优点是高密度。CHMOS(互补金属氧化物HMOS)是CMOS和HMOS(高密度沟道MOS工艺)的结合,具有它们的优点。CHMOS的器件在编号中用一个C来加以区别:如80C51,80C31,
24、89C52等。本设计使STC89C52,下面介绍均是CHMOS单片机。2.1.1 振荡器和时钟单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是放大器的输入端和输出端单片机的这个放大器与作反馈元件的片外晶体或陶瓷振动器一起构成了稳定的自激振荡器,发出的脉冲直接送到内部的时钟电路。电路如图2-1外部晶振选择11.592MHz,电容通常选择30pF。在设计电路板时,晶振及电容应尽可能靠近引脚XTAL1和XTAL2这样可以减少寄生电容。保证其稳定工作。2.1.2 复位电路单片机复位时指PC指向0000H,使单片机从起始地址0000H开始执行程序。振荡器在正常运行的情况
25、下,复位靠在RST引脚上加持续两个机器周期的高电平来实现。在RST引脚出现高电平后的第二个周期执行内部复位。以后每周期重复一次直到RST变为低电平。一般复位电路有两种,上电自动复位和按键复位,上电复位在RST引脚和VCC之间接一个电容来实现。图2-1中8.2k电阻式施密特触发器输入端的下拉电阻,在上电是RST和VCC的电压时相同的。随着充电的减少,RST的点位逐渐下降。时间常数为电阻值与电容值的乘积这个数值满足单片机的复位操作。复位引脚外接一个复位按键。按下按键时RST电压与VCC相同。本设计使用上电复位和按键复位结合。Error! Reference source not found.-1
26、单片机晶振和复位电路图2.2 电源电路基于LM2577芯片设计升压型的稳压电路,LM2577简单易用,功能完善的特点7 。基本指标是输入为3V输出为稳定的5V。LM2577典型运用电路如 -2所示输出电压可由电阻R9和和R10确定,输出电压和电阻的关系式如下VCC1.23(1R0R9)8其中1.23V是片内基准电压,确定电压时先固定R9后R10部分接一个滑动变阻器,这样就能调节输出电压在一个范围内的确定值。但在电路设计中应尽可能减少可变动的值。因为可变阻值会影响系统的稳定性。因此将R10算出并用固定值代替。根据上式 选用R10=6.2kVCC=1.23(6.22)5.043 图2-2 升压电路
27、2.3 显示电路单片机P0口是一个8位漏极开路型准双向I/0端口9,驱动拉电流负载需要接10k的上拉电阻。将12864的8位DB(数据地址线)接到P0,功能控制引脚接到P2的其中5位。12864的第三引脚是控制液晶显示对比度,接在滑动变阻器上,可以调节显示的对比度。19脚和20脚分别是控制背光的正负极,使用三极管作为开关通过P1.6控制。原理图如图2-3所示。图2-3 液晶与单片机连接电路2.4 通信电路基于MAX485芯片设计 RS-485接口芯片用于完成将TTL电平转换为RS-485电平接口10。在设计输出电路时,必须想办法排除传输电路上的干扰问题,选择适合的线路特性阻抗。不同的环境干扰源
28、是不同的,实际情况会出现很多复杂的干扰,所以对485总线要采取一定的措施。由于通信载体是双绞线,它的特性阻抗为120左右11,因此在设计电路时,应该在输出端A,B之间接一个120的电阻,减少传输线对信号的干扰。根据MAX-485的性能,其接收器检查差分输出端A和B。当检测到A端的电压减去B端的电压不小于200mV时,则输出逻辑1 A端的电压减去B端的电压不大于-200mV时,则输出逻辑0,其他情况确定Error! Reference source not found.。解决这个问题的办法是人为地使A端电位高于B两端电位,这样RXD的电平在485总线不发送期间(总线悬浮时)呈现唯一的高电平单片机
29、就不会被误中断而收到乱字符。通过在485电路的A、B输出端加接上拉、下拉电阻R11、R13,即可很好地解决这个问题。如图2-4所示。 图2-4 RS-485电路图2.5 存储芯片电路24C16芯片通过I2C协议和单片机通信。I2C总线是两线式串行总线。I2C总线的主要优点是其简单性和有效性13。SCL和SDA端口内部是漏极开路结构,所以均要接上拉电阻。AT24C16使用I2C通信协议和单片机通信。由于只扩展一片,地址引脚接地,电路图如 图-5所示。 图2-5 存储芯片与单片机连接电路图 2.6 按键电路按键采用中断触发方式,三个按键通过与门接到单片机外部中断0,三个按键分别接P1.0、P1.1
30、和P1.2当任何一个按键按下均会触发中断,在中断服务程序中读取P1.0、P1.1和P1.2的状态然后进行相应的操作。如Error! Reference source not found.-6所示。图2-6 键盘电路图2.7 传感器连接电路SHT10传感器数据线接到P2.6,时钟线接到P2.5。在供电电源处接一个电容,目的是去藕。如 图-7所示。 图2-7 传感器与单片机连接电路图2.8 系统总电路图综合上面各个部分电路,得到测量仪的完整电路图,见附录2。第3章 软件设计3.1 主程序主程序主负责初始化和测量和显示。一开始先调用初始化函数。包括液晶初始化,定时器初始化,开中断等,然后调用测量程序
31、进行测量。最后将测量值和上下显示出来。主程序流程图如图3-1所示。图3-1 主程序流程图3.2 测量程序3.2.1 启动传感器首先通过一组时序来启动传感器,时序图如图3-2所示:开始在钟线SCK低电平时,将数据线DATA拉高,等时钟线SCK到高电平时,将数据线DATA拉回低电平。等SCK等下一个高电平到来时。数据线DATA拉高。图 3-2 SHT10启动时序图143.2.2 温度测量上电后SHT10首先复位后才能启动,之后再测量。复位操作为:数据线DATA保持高电平,触发9次以上时钟。测量时首先发一组命令表,命令表见表3-1,结束后,DATA线将数据线拉至低电平,并进入空闲状态,表明测量已经结
32、束。接着读两个字节的测量值15。DATA线加粗部分由SHT10控制。表3-1 SHT10指令表15 图3-3 SHT10时序图153.2.3 测试值处理相对湿度的计算公式15如下 RHlinear是相对湿度。SORH是12位测量值。C1 ,C2,C3是常数取值如,表3-2所示。 表3-2 湿度常数取值表1 由于测试参考温度是25OC,显然和实际的有一定差距,湿度会受到温度的影响,需要对其进行修正。修正公式15如下。 t1 和t2是常数,Tc是测量温度, RH是实际湿度取值见表3-3。 表3-3 湿度常数取值表2温度计算公式 15如下 T是实际温度,d1和d2是常数取值见表3-4,SOT是测量温
33、度14位。 表3-4 湿度常数取值表在程序中具体实现如下void calc_sth10(float *p_humidity ,float *p_temperature) const float C1=-4.0; / 12位湿度精度 修正公式const float C2=+0.0405; / 12位湿度精度 修正公式const float C3=-0.0000028; / 12位湿度精度 修正公式const float T1=+0.01; / 14位温度精度 5V条件 修正公式const float T2=+0.00008; / 14位温度精度 5V条件 修正公式float rh=*p_humi
34、dity; / rh: 12位 湿度 float t=*p_temperature; / t: 14位 温度float rh_lin; / rh_lin: 湿度 linear值float rh_true; / rh_true: 湿度 ture值float t_C; / t_C : 温度 t_C=t*0.01 - 40; /补偿温度rh_lin=C3*rh*rh + C2*rh + C1; /相对湿度非线性补偿rh_true=(t_C-25)*(T1+T2*rh)+rh_lin; /相对湿度对于温度依赖性补偿if(rh_true100)rh_true=100; /湿度最大修正if(rh_true
35、0.1)rh_true=0.1; /湿度最小修正*p_temperature=t_C; /返回温度结果*p_humidity=rh_true; /返回湿度结果3.2.4 温湿度测量子程序流程图图3-4 测量程序流程图3.3 显示程序12864的显示,首先写入水平和垂直坐标值,之后再写入数据。流程图如图3-5所示。 图3-5 显示子程序流程图3.4 键盘程序键盘使用中断触发,在中断服务程序中调用键盘扫描程序扫描P1.0、P1.1和P1.2进行相应操作。键盘扫描和处理子程序流程图如图3-6所示。 图 3-6 键盘扫描流程图3.5 通信程序通信程序的主要任务是将数据发给上位机。由于使用单片机和上位机
36、通信只能传输十六进制和ASCII码。传输十六进制不适合用户读数,因此选择ASCII方式传输。向上传输时,先对传输的数据进行处理,把数据转换成字符再传给上位机。使用串口通信,必须对串口进行初始化。设置波特率等工作。还需定义通信协议,具体方法如下:设置单片机为接收状态,当收到命令时进行相应的操作。命令的格式和含义如表3-5所示。发送子程序和接收子程序的流程图如图3-7和图3-8所示。表3-5 通信命令表命令格式 SMT*mT*MH*mH*命令含义向上位机发送当前测量值和上下限。将*替换当前温度上限,*为整数。将*替换当前温度下限,*为整数。将*替换当前湿度上限,*为整数。将*替换当前湿度下限,*为
37、整数。图3-7 接收中断子程序流程图 图3-8 发送子程序流程图第4章 程序编写和仿真4.1 程序编写使用Keil软件编写和调试程序,在Keil C51中变量的使用,由于51内核单片机的存储结构的特殊性,Keil C51中变量的使用与标准C有所不同。正确地使用变量,有利于获得高效的目标代码19。CPU存储结构与变量的关系。刚开始,如果没注意到变量的定义。会导致空间不够,因而编译不能通过,如图4-1所示。解决这个问题常见的方法有两种。 第一种方法是:由于51的片内数据存储器为128B,而52的片内数据存储器为256B,将51换成52就行了,keil软件在仿真时不能通的原因是KEIL默认的编译芯片
38、的片内数字存储器是128B,需要设置芯片为52系列芯片。第二种方法是:扩展外部存储器改变变量定义的位置,由于这种方法需要扩展外部数据存储器。本设计不采用,这里不再介绍。 图4-1 编译未通过4.2 软件仿真软件仿真应注意以下两个问题第一:清除无效零,比如18oC 显示为018oC 9%RH显示为009% 正确的显示不应该带有前面无效零。第二 清除余留显示,比如温度下限从-1跳到0,在显示-1时,在负号坐标上给12864传输的负号的代码。在1位置坐标上传输1的代码。当显示0C时在1的位置上传输0代码,覆盖了1的代码,这样就显示出0,在负号位置上不传输任何代码。上显示的负号依然存在,这样会错误的显
39、示成-0和这个问题类似的还有从10 到9的跳变。100到99的跳变,-10到-9的跳变。第三 负数的显示,在调用显示程序显示负号时,应该先将负号进行处理,才能显示。解决以上问题的方法如下。针对第一个问题,在调用显示最高位时,先判断需要显示的数是否为0,若为了0,则不显示,非零显示。显示次高时,首先判断最高位是否为了0,若为0再次判断次高位是否为0,若为了则不显示。否则显示。同理显示第三位也是一样的原理。先判断前两位是否为0. 通过这个方法很好地解决了无效零的问题。 shidu0=humi/1000; /湿度百位 shidu1=humi%1000/100; /湿度十位 shidu2=humi%1
40、00/10;/湿度个位if(shidu0!=0) / 判断最高位是否为0 disP_sz(6,6,Ez+16*shidu0); else disP_sz(6,6,lin);if(shidu0|shidu1!=0) /判断最高位和次高位是否为了0disP_sz(7,6,Ez+16*shidu1);else disP_sz(7,6,lin) ;针对第二个问题,必须在不显示0的坐标部分,增加清屏语句,而-10到-9,单独将原来的负号清除。这样才能到达正常显示。针对第三个问题,在调用显示时,判断如果是负数,则对负数去反,在最高位前面显示负号。 if(temp_val.f0)temp_val.f=-te
41、mp_val.f ; fuhao=1; else fuhao=0; 图 4-2 错误显示 图 4-3 正确显示 图 4-4 错误显示 图 4-5 正确显示第5章 调试单片机的整个开发过程,无论是硬件还是软件的设计都需要设计人本人完成,这样可以提高系统的适用性,软件能够很好地和硬件连接。同时提高工作效率,据统计每个系统的调试占去了总开发时间的2/319,由此可见调试有很大的工作量需要完成。可以能会有很多预想不到的问题在调试期间出现。一般情况下,需要先排除明显的硬件故障,在和软件配合调试不断排除和解析问题,最后解决所有问题,完成实物制作。5.1 静态调试静态调试主要排除电路逻辑错误。特别是电源线,
42、信号,和地线是否出现短路,短路等问题,这些问题的出现可能是因为,本身电路图有问题,导致印刷出来的电路板不能使用。或者是因为厂家加工的工艺问题。如果加工精度不高,会导致焊盘和信号线接触以及信号线短路等。排除这类问题的方法是:第一:设计原理图时,要规划好各个元件的位置,由于我做的是双面板。LM2577芯片设计成贴片,这样就要求贴片一定放在顶层,从顶层走线。第二:仔细检查打印出来的电路板,对照原理图看是否有不同之处,使用万用表测量每一信号线,电源线和地线。第三:测试电源是否工作正常,由于本设计有个升压电路,从3V升5V,如果控制不当,容易使电压升过高,从而烧坏元器件。所以一定使用万用表测量电源和地之间是否有正常的5