第一篇:基于51单片机的新型蓄电池容量检测仪
基于51单片机的新型蓄电池容量检测仪
夏桂书
(中国民用航空飞行学院航空工程学院,四川 广汉 618307)
本文在《中国测试》2013年第39卷第5期页码:68-71
摘要:为对蓄电池进行准确的容量测试,设计一种基于51单片机的新型蓄电池容量检测仪。该装置通过恒流电路控制蓄电池的放电,然后通过A/D转换采样,采集并存储蓄电池在放电过程中的放电电压值样本得到放电曲线,计算出被测蓄电池的准确容量,通过蓄电池电压能够快速估算出该时刻对应电池剩余容量值。测试结果表明:该容量检测仪精度良好,测量误差在1%以内,能够快速准确判定蓄电池剩余容量,具有较高的实用性与推广价值。关键词:蓄电池;容量检测;MOSFET晶体管;快速测量;51单片机
中图分类号:TM912;TM930.114;TP368.2;TP274文献标志码:A文章编号:1674-5124(2013)05-0068-04
New intelligent battery capacity detector based on 51 MCU
XIA Gui-shu
(Aviation Engineering Institute,Civil Aviation Flight University of China,Guanghan 618307,China)
Abstract: The new intelligent battery capacity detector based on 51 MCU is proposed for testing the battery capacity accurately.This device controls the battery discharge through the constant current circuit,and then the voltage value during its discharge process is measured and the signal is converted by A/D converter.After that,51 MCU can give the discharge curve and calculate battery capacity accurately.Besides,the current charge state of the battery is figured out according to the voltage value in a quick mode.The result shows that the new capacity detector is with high accuracy and the measurement error is within 1%.Because of this characteristic,the new detector can quickly and accurately determine the remaining battery capacity,so it has high practicality and promotional value.Key words: battery; capacity detection; MOSFET; quick measurement; 51 MCU
第二篇:基于单片机体温检测仪系统的设计与实现
In this paper, a temperature detection system based on a single-chip microcomputer is designed to detect human body temperature, display it in digital form, and play the detected human body temperature specific value through the mode of voice playback.The system is composed of several parts: SCM, sensor, LCD, and voice module.The hardware structure is designed with the microcontroller STC89C52 as the core.It detects the human body temperature through the temperature sensor DS18B20, displays the human body temperature value on the LCD1602, and then plays the detected value through the voice module..Part of the system software through the software keil C language program development and design, debugging.The designed electronic body temperature detector has realized temperature detection, digitization, and electronization, which is of great help to the development of future thermometers.The electronic thermometer can gradually replace mercury(toxic element)thermometers, which greatly improves the use value of thermometers, makes readings clear, and reduces Human body damage, safety and environmental protection have further improved the smart life of people.Keywords: Body temperature detector;Electronic;STC89C52 microcontroller;LCD1602
I
基于单片机体温检测仪系统的设计与实现
目录
摘要...........................................................................................错误!未定义书签。Abstract.....................................................................................错误!未定义书签。目录...........................................................................................................................II 1 绪论.............................................................................................................................................1 1.1 背景..................................................................................................................................1 1.1.1 项目背景.......................................................................................................................1 1.1.2 国内发展状况...............................................................................................................1 1.1.3 项目研究内容和要求...................................................................................................2 2 系统分析与设计.........................................................................................................................3 2.1 系统分析..........................................................................................................................3 2.1.1 系统流程.......................................................................................................................3 2.2 概要设计..........................................................................................................................3 2.2.1 程序流程.......................................................................................................................3 2.2.2 功能模块介绍...............................................................................................................3 3 系统实现...................................................................................................................................12 3.1 读ROM地址...............................................................................................................12 3.2 读取温度........................................................................................................................13 3.3 显示温度........................................................................................................................14 4 测试结果...................................................................................................................................16 4.1 测试计划........................................................................................................................16 4.2 仿真结果........................................................................................................................18 5 总结与展望...............................................................................................................................IV 参考文献...................................................................................................................V 致谢...........................................................................................错误!未定义书签。
II
基于单片机的体温探测仪设计 绪论
1.1 背景
体温是人们身体状况的重要指标之一。体温的高低影响着人们的健康状况,会引起一系列的疾病,所以在生病的时候,体温的数值至关重要,而温度检测仪是人们常用的手段。1.1.1 项目背景
在正常的健康状态下,体温是稳定的,保持在约36.2至37.2℃,具体的温度数值产生状况可以区分为:低热:37.4℃~38℃;中等度热:38.1℃~39℃:高热:39.1℃~41℃;超高热:41℃以上。体温的变化会影响人们的健康,所以检测体温就显得非常重要。在现代发展过程中,体温探测器是最重要的手段之一。我们经常使用的水银温度计就是其中之一。然而,由于包含有毒元素和电子技术的水银温度计的发展,电子温度计逐渐发展并渐渐取代水银温度计。
最早的温度计产生在16世纪,由意大利发明家伽利略发明,后来伽利略的学生和其他科学家,在这个基础上反复改进,华氏温度计诞生了;华氏温度计制成后又经过30多年,瑞典人摄尔修斯改进了华伦海特温度计的刻度,他把水的沸点定为100度,把水的冰点定为0度。后来施勒默尔把两个温度点的数值又倒过来,就成了现在的百分温度,即摄氏温度,用℃表示,成为了人们常用方式。
在现代技术的高速发展,电子体温检测仪逐步出现发展壮大,渐渐取代普通体温计,电子体温计由温度传感器,LCD显示器,和集成电路等电子元件组成。电子体温检测仪可以快速准确地测量一个人体温,与传统的水银温度计相比,电子温度检测仪具有读数方便,测量时间短,精度高,记忆性好等优点。特别是电子体温计不含水银,对人体和环境没有影响,特别适合家庭,医院等场合使用。
1.1.2 国内发展状况
中国的电子温度计产业起源于1998年,发展速度超过30%,并在一年内超过10年。利润率,政策壁垒和技术壁垒低一倍甚至10倍以上,吸引了大量公司进入该行业。目前,拥有80多个电子温度计的国产品牌是行业领先的国外品牌,如“欧姆龙”,“夏尔”,“网关”等。有“海尔”,“Delcon”,“Yucon”和“Hypercon”。华辰,华安,康复,冲等迅速发展。未来国内品牌扩张,试图进入该行业的厂商将达到50家以上。由于电子温度计行业逐步标准化和高新类的电子产品的兴起,电子体温计产品行业进入空前高速发展阶段。
常用的电子温度计有三种类型:硬棒温度计:广泛应用于家庭的温度计,使用腋下测量和口腔测量。软棒类型:软头电子体温计可以任意弯曲,多方位,无死角,适合所有部位的测量,一般可以使用口,腋,肛三种测量方法。安抚奶嘴类型:婴儿安抚奶嘴电子体温计是根据宝宝的生理特点精心设计和制造的。所有部件都设计
基于单片机体温检测仪系统的设计与实现
成圆弧形,曲率基于婴儿嘴巴的形状。硅胶奶嘴中的温度传感器包含一个温度传感器。与以往传统市场的体温计相比,它的误差一般不超过±0.1℃,易于读取和携带,但是当由体温,时间和外界空气,体内不同部位测得的体温和温度差异导致稳定性差。
1.1.3 项目研究内容和要求
在本项目中,设计的体温检测仪要求便于携带,精度准确,具有播报功能。所以在设计中选取了单片机STC89C52为核心,因为STC89C52它具有便携性,易用性和高性能等优点,它内部具有存储器4K,宽度8bit,128内存,本设计使用它可以满足我们所有的需求。此外还选用了温度传感器DS18B20为主的检测体温模块,检测体温温度,用LCD1602显示体温数值作为体温检测仪的显示器,最后加以来实现体温检测到的数值播报功能。在本项目中研究的主要是体温检测,经过温度传感器进行温度采集,再进行数字转换,通过单片机转发给显示模块LCD1602,在进行数值播报这一系列功能实现的过程。
具体功能:
1、显示温度范围 0摄氏度到85摄氏度。
2、温度精确到小数点后一位。
3、LCD1602显示DS18B20检测到的温度数值。
4、当温度超过一定上限的数值,会进行温度交警,LCD显示“temp is too high”
基于单片机体温检测仪系统的设计与实现 系统分析与设计
2.1 系统分析
在这个设计当中选用了单片机STC89C52作为核心,主要起主控作用,控制着整个系统的运行。这个体温检测仪系统采用了温度传感器DS18B20进行温度的检测,当传感器检测温度之后,会在LCD1602上显示相应的温度数值。2.1.1 系统流程
系统设计流程图如图1-1所示。
图2-1系统设计框图
2.2 概要设计 2.2.1 程序流程
程序流程图如图2-2程序流程图所示
图2-2程序流程图
2.2.2 功能模块介绍
单片机系统模块:主要由STC89C52单片机、复位电路和晶振电路三个部分组成。
基于单片机体温检测仪系统的设计与实现
STC89C52单片机是ATMEL公司制造的低电压,高性能CMOS 8位微控制器。它采用ATMEL的高密度非易失性存取技术,内置8个字节的只读存储器(EPROM)和128字节内部RAM,k字节Flash闪速存储器。STC89C52单片机拥有较高的性能,而且成本低,可用于各种控制领域,它集成了微型计算机的主要组件,包括CPU,存储器,可编程I / O端口,定时器/计数器和串行端口。
芯片参数:
1、工作电压:3.3V--5.5V
2、工作频率范围:0--40MHz 3、8位CPU
4、片集成256字节RAM。5、4个8位的并行I/O接口:P0,P1,P2,P3
6、单片机下载程序直接通过P30 P31 RXD和TXD串行端口。
7、具有EEPROM功能。8、2个16位定时/计数器 9、5个优先级别的5个中断源
10、定时器可以用来模拟许多异步串行端口。它的基本结构如图3-1所示。
图2-3单片机基本结构图
电源电路:此最小系统中的电源供电模块的电源可以通过计算机的USB口供给,也可使用外部稳定的5V电源供电模块供给。电源电路中接入了电源指示LED,图中R2为LED的限流电阻。当LED发亮时,这表示USB电源电路供电成功。
基于单片机体温检测仪系统的设计与实现
图2-4电源电路图
晶振电路:电路中的C1非极性电容器和C2非极性电容器是启动电容器。当12MHz晶体振荡器工作在高频时,它会产生一定的寄生电感。为了平衡电感并产生谐振,可以添加两个10-33pf的非极性电容。
单片机内部有一个振荡电路,我们需要将晶振电路连接到外部工作。晶体和电容以及内部电路组成一个振荡电路。只要MCU接通电源,电容就开始振荡,晶体振荡器工作,从而使MCU具有连续的时钟信号。51单片机有一个12路分频器,所以时钟周期为t = 1 /12000000≈1us。
图2-5晶振电路图
基于单片机体温检测仪系统的设计与实现
LCD显示模块:LCD1602是一种用于显示字母,数字,符号等的点阵式液晶模块。由多个5X7或5X11点阵字符位组成,每个点字符位都可以显示一个字符,每一位在点线之间有一个间隔,每行也有一个间隔,它会播放一个字符间距和行。间距的作用。LCD1602指显示内容为16X2,表示可显示两行,每行16个字符的LCD模块(可显示字符或者数字)。我们可以通过单片机的端口来控制LCD1602的数据引脚,数据命令和使能引脚由SCM的P1.5,P1.6和P1.7端口控制。通过遵循LCD1602通信时序控制,我们可以显示要显示的数据,通过P2端口发送给LCD实时显示。
图2-6 LCD显示电路图
LCD1602采用标准的16脚接口,其中: 1:GND是电源地
2:VCC连接到5V电源的正极。
3:V0是LCD对比度调节端子。当正电源连接时,对比度最弱。当电源接地时,对比度最高。(对比度过高,会产生“鬼影”,使用时可用10K电位器调节对比度)。
4:RS为寄存器选择,高电平为1时选择数据寄存器,低电平为0时选择指令寄存器。
5:RW是读/写信号线。读操作在高电平(1)下执行,写操作在低电平(0)下执行。
6:E(或EN)端为使能端,高电平时读信息(1),负跳时执行指令。7〜14:D0〜D7为8位双向数据终端。第15至第16脚:空脚或背光电源。15:针背光正极 16:针背光负极。
功能特点:3.3V或5V工作电压,对比度可调,包括复位电路,提供多种控制命令,如:清屏,字符闪烁,光标闪烁,显示移位等功能,具有80字节数据显存DDRA内存是192个字符发生器CGROM与5X7点阵和8个用户可定义的5X7字符发生器CGRAM。
特点应用:微功耗,体积小,显示内容丰富,超薄轻便,常用于袖珍仪器和低功耗应用。LCD1602指令、功能令、指令码如下图所示:
基于单片机体温检测仪系统的设计与实现
图2-7
LCD1602指令集图
测温模块:由DS18B20传感器组成,单总线结构,DS18B20的DQ与单片机P3口连接,通过上拉电阻接电源,只要发送DS18B20传感器相应的ROM地址,就能访问该器件。本系统通过DS18B20传感器检测到人体温度,再调用单片机中的读取DS18B20温度的程序:向总线放启动温度转换命令,启动连接总线上的DS18B20模块温度装换——根据传感器的64位ROM地址,发送到总线匹配对应的传感器模块——向总线发读取暂存器命令读DS18B20模块转换的温度值。
图2-8
测温模块电路图
基于单片机体温检测仪系统的设计与实现
DS18B20传感器的工作原理:DS18B20的读写时序和温度测量原理与DS1820相同,但由于温差取得的位数不同,温度转换延时时间从2s到750ms不等。DS18B20温度测量原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号给计数器1。高温度系数晶体振荡器随着温度显着地改变其振荡速率,并且所产生的信号用作计数器2的脉冲输入。计数器1和温度寄存器预设为对应于-55°C的基准值。计数器1对由低温度系数晶体振荡器产生的脉冲信号进行倒计数。当计数器1的预置值减小到0时,温度寄存器值将增加1,计数器1的预置再次被加载,并且计数器1重新启动。对由低温度系数晶体振荡器产生的脉冲信号进行计数,并且重复该周期直到计数器2达到0.温度寄存器值的累积被停止。此时,温度寄存器中的值是测量温度。斜率累加器用于补偿和校正温度测量过程中的非线性,其输出用于校正计数器的预设值。技术性能:
1、独特的单线接口模式,DS18B20只需要一条端口线即可连接微处理器,实现微处理器与DS18B20的双向通信。
2、温度范围-55°C〜+ 125°C,固有温度误差(注意,不是分辨率,以前出错了)1°C。
3、支持多点联网功能,多个DS18B20可以并行连接在三根线上,最多只能并联8根,实现多点温度测量,如果数量过多,会使电源电源电压过低,导致信号传输不稳定。
4、电源:3.0〜5.5V / DC(数据线寄生供电)
5、不需要使用任何外部组件
6、测量结果以9〜12位串行传输
7、不锈钢保护管直径Φ6
8、适用于DN15〜25,DN40〜DN250各种传媒行业管道和狭小空间设备的测温
9、标准安装螺纹M10X1,M12X1.5,G1 / 2“可选
10、PVC电缆直接出线或德式球接线盒出线,方便与其他电器设备连接。接线方法:
面对传感器平坦的一面,左正右负,一旦逆转,它们会立即变热,并可能燃烧!同时,反过来也是传感器始终显示85°C的原因。在实际操作过程中,正负旋转反转,传感器立即发热,液晶屏不显示读数,正负极端显示85°C。另外,如果使用51单片机,中间引脚必须连接4.7K-10K的上拉电阻,否则,由于高电平不能正常输入/输出,或者在电源显示85°C后立即或 使用几个月后温度升至85°C并正常。特点:
独特的第一线接口只需要一个端口通信,简化了分布式温度检测应用。不需要外部组件来提供数据总线电力。电压范围为3.0 V至5.5 V.不需要备用电源。测量温度范围为-55°C至+ 125°C。华氏度相当于-67°C至257°F-10°C至+85°C±0.5°C
基于单片机体温检测仪系统的设计与实现
温度传感器可编程分辨率为9至12位,温度转换为12位数字格式,最大可达750毫秒,用户可定义的非易失性温度报警设置,应用包括温度控制,工业系统,消费类电子产品温度计,敏感系统。
描述DS18B20的数字温度计提供9到12位(可编程设备温度读数)。由于DS18B20是一种端口通信,中央微处理器只有一个与DS18B20的端口连接。对于读写和温度转换,可以从数据线本身获得能量,无需外部电源。由于每个DS18B20包含一个唯一的序列号,所以同一条总线上可以同时存在多个DS18B20。这使得温度传感器可以放置在许多不同的地方。它有许多用途,包括空调环境控制,建筑物中温度设备或机器的传感,以及过程监控和控制。
DS18B20使用单线通信接口,由于第一线通信接口,必须先完成ROM设置,否则存储器和控制功能将不可用。主要提供以下功能命令之一:1.读取ROM 2.ROM匹配3.搜索ROM 4.跳过ROM 5.报警检查。这些指令在没有设备的64位平版ROM序列号上运行。可以选择一条线上的多个设备来选择一个设备。同时,总线可以知道总线上有多少设备以及总线上有哪些设备。
如果指令成功完成DS18B20温度测量,则数据将存储在DS18B20的存储器中。控制功能指示DS18B20执行温度测量。测量结果将被放入DS18B20的存储器中,并可由存储器功能的指令器读取,读取内容的片上存储器。温度报警触发TH和TL有一个字节的EEPROM数据。如果DS18B20不使用警报检查指令,则这些寄存器可用于一般用户存储目的。片内还包含配置字节以理想地解决温度数字转换问题。写入TH,TL指令和配置字节是使用存储器功能指令完成的。通过寄存器读寄存器。所有数据的读写从最低位开始。
部件描述:DS18B20的存储器由暂存RAM和电可擦除RAM组成,电可擦除RAM又包括温度触发器TH和TL以及配置寄存器。内存可以完全确定第一线端口的通信,用写入寄存器的命令将数字写入寄存器,然后读取寄存器的命令也可用于确认这些数字。当进行确认时,可以使用命令复制寄存器将这些数字传送到电可擦除RAM中。当寄存器中的数字被修改时,此过程确保数字完整性。
高速缓冲存储器RAM由8个字节的存储器组成;读取寄存器的命令可以读取第九个字节。该字节用于验证前八个字节。
64位光刻ROM,其前8位是DS18B20自己的代码,接下来的48位是连续的数字代码,最后8位是CRC校验的前56位。64位光刻ROM还包含五个ROM功能命令:读取ROM,匹配ROM,跳转ROM,查找ROM和报警查找。
外部电源连接:DS18B20可以使用外部电源VDD或内部寄生电源。当VDD端口连接到3.0V至5.5V的电压时,使用外部电源;当VDD端口接地时使用内部寄生电源。无论是内部寄生电源还是外部电源,I / O端口线都必须连接一个约5KΩ的上拉电阻。
配置寄存器配置有不同的位数,以确定温度和转换次数。可以看出,R1和R0
基于单片机体温检测仪系统的设计与实现
是温度决定位,可以通过R1和R0的不同组合来配置为9位,10位,11位和12位温度显示。这样,可以知道对应于不同温度转换位的转换时间。四种配置的分辨率分别为0.5℃,0.25℃,0.125℃和0.0625℃,出货时配置为12位。
温度读数:DS18B20配置为12位。读取温度时,读取16位数据。前5位是符号位。当前5位为1时,读取温度为负值;目前的5位。在0时,读取温度为正值。当温度为正值时,读取方法为:将十六进制数转换为十进制数。当温度为负值时,读数方法为:将16加到16的倒数,然后转换为10进制。例:0550H = +85 度(0*16^0+5*16^1+5*16^2+0*16^3=1360;1360*0.0625=85),FC90H =-55 度。
ROM指令表如下所示:
图2-9 ROM指令表图
RAM指令表:
图2-10 RAM指令表图
时序:
使用时间间隙来读写 DSl8B20 的数据位和写命令(1)初始化
时序见图 2.11 总线 在to 时段发送一复位脉冲(最短为 480us 的低电平信号)接着在 tl 时段释放总线并进入接收状态 DSl8B20 在检测到总线的上升沿之后 等待 15-60us 接着 DS18B20 在 t2 时段发出存在脉冲(60-240 us)如图中虚线所示。
基于单片机体温检测仪系统的设计与实现
图2-11 初始化时序
(2)写时间隙
当总线 t0 时段从高电平到低电平时,就产生写时间隙,见图 2-12和 图 2-13,从 t0时段开始在15us 之内应将所需写的位送到总线上 DSl8B20 在 t 后 15-60us 间对总线采样,若低电平写入的位是 0。见图 2-12,若高电平写入的是 1,见图 2-13连续写 2 位间的间隙应大于 1us。
图2-12 写0时序
图2-13 写1时序
(3)读时间隙
见图 2-13主机总线 to 时段从高拉至低电平时 总线只须保持低电平l 7us 之后在 t1 时段将总线拉高 产生读时间隙 读时间隙在 t1 时段后 t 2 时段前有效 t z 距 to 为 15us 也就是说 t z 时段前主机必须完成读位 并在 t o 后的 60 us 一 120 us 内释放总线。
图2-14 读时序
读取温度过程:调用初使化子程序---送入跳过 ROM 命令(0xcc)---送入温度转换命令(0x44)---温度转换,再次初使化 ds18B20---送入跳过 ROM 命令(0xcc)-----送入读温度暂存器命令(0xbe)---读出温度值低字节----读出温度值高字节。
报警模块:当检测到的体温数值超过37摄氏度时,系统会进行报警显示,LCD1602进行报警提示,LCD第二行会显示“temp is too high”。
基于单片机体温检测仪系统的设计与实现 系统实现
3.1 读ROM地址
读ROM地址程序要把DS18B20模块连接到单总线上,并把当前DS18B20模块的ROM地址读取:过程如下,首先计算存储当前DS18B20模块ROM地址的存储单元的偏移地址,然后初始化DS18B20,发送和读取ROM命令,并将ROM地址读入内存位置。读ROM地址部分程序: void read_ROM(){
uchar j;
j = NUM1*8;
DS18B20_init();
write_byte(0x33);
ROM[j] = read_byte();}
图3-1 ROM读取地址程序的流程图
基于单片机体温检测仪系统的设计与实现
3.2 读取温度
读取DS18B20温度时,首先向总线放启动温度转换命令,启动连接总线上的DS18B20模块温度装换;再根据传感器的64位ROM地址,发送到总线匹配对应的传感器模块;最后向总线发读取暂存器命令读DS18B20模块转换的温度值。读取温度部分程序: void read_temp()
{ DS18B20_init();write_byte(0xcc);
write_byte(0x44);
delay(400);
DS18B20_init();write_byte(0xcc);write_byte(0xbe);
DATA_L = read_byte();
DATA_H = read_byte();
temp1=DATA_H*256 + DATA_L;
temp=temp1*0.0625;temp2=temp*10;}
图3-2 DS18B20读取温度程序的流程图
基于单片机体温检测仪系统的设计与实现
3.3 显示温度
显示温度传感器读出的温度值,DS18B20传感器的温度值是12位,存放在2个字节中,其中高字节的高5位为符号位,如果温度值是正数,则符号位0,如果温度值是负数,则符号位为1。在显示温度程序时,首先根据高位字节的高5位确定是正数或者负数,并提取高位字节的百位,十位和十位数字,并将其转换为字符代码并将其放入相应的缓冲区;将其内容显示在液晶监视器上。显示温度部分程序: void disp_temp(){
uchar k;
} 报警提示: if(temp2 > 370)
{
wc51r(0xc0);
{
wc51ddr(LCD2_line[k]);
delay(2);
} } else {
wc51r(0xc0);
wc51r(0x80);
LCD1_line[10] =(temp2%100)%10+0x30;LCD1_line[7] =(temp2/100)+0x30;
LCD1_line[8] =(temp2%100)/10+0x30;
LCD1_line[9] = '.';LCD1_line[12] = '^';LCD1_line[13] = 'C';for(k=0;k<16;k++){
wc51ddr(LCD1_line[k]);
delay(2);}
for(k=0;k<16;k++)
基于单片机体温检测仪系统的设计与实现
for(k=0;k<16;k++)
}
{
wc51ddr(LCD3_line[k]);
delay(2);
} }
图3-3 DS18B20显示温度程序的流程图
基于单片机体温检测仪系统的设计与实现 测试结果
4.1 测试计划
在keil,我们编译程序并通过keil编译编译器,以确保程序没有错误。如果没有错误,我们使用keil软件模拟逐步模拟并检查相关寄存器的值以确认程序是否正确。或者,通过编译生成的十六进制文件编译仿真软件并检查结果,直到结果没有错误。
Proteus仿真软件不仅可以在仿真软件的接线图中,Keil编译的编译程序可以直接下载到单片机仿真器上,可以模拟实验结果,从而检测出设计成功。
在keil中,我们编写了一个由keil中的编译器编译的程序。这确保语法无错误。我们在keil中使用软件仿真来模拟逐步模拟,并且检查相关寄存器的值。该过程是正确的。或者编译生成的HEX文件并将其写入仿真软件以查看特定效果,并且可以无误地完成。
Keil C51由ARM公司开发。它是一款非常强大的单片机开发工具,用于51单片机的开发和设计,内部具体的编译和调试软件仿真等等。您也可以开发ARM程序。Keil软件只需要设置生成HEX,就可以将高级语言翻译成机器可识别的机器语言。
设计开发过程使用Keil C51开发环境。首先打开keil C51程序开发软件,双击这个软件进入软件开发的主界面,这时候没有项目文件,我们需要创建一个项目,点击项目项目,选择第一个选项,然后选择保存位置和项目名称,然后弹出选择单片机类型的接口,因为我们使用的硬件单片机STC89C52和AT89S52属于同一个。当keil创建项目时,我们可以用AT89C52替换STC89C52微控制器。由于它们都属于5微控制器,请选择确定,然后单击确定。
图4-1 keil创建工程
完成上述步骤后,需要创建.c文件并将其保存,然后想要将保存的.c文件添加
基于单片机体温检测仪系统的设计与实现
到项目中,右键单击该项目组,然后选择添加文件...,然后 你可以看到项目目录中的.c文件。此时,您可以将程序写入程序区域。程序编写完成后,需要编译。Keil C51软件可以生成可直接使用的HEX格式文件。因此,还必须生成HEX文件。要生成HEX文件,您必须在IDE的“Projet”>“Output”HEX-80中选择HEX Format列,然后勾选Create HEX File列。如下图所示:
图4-2 keil配置图
接下来我们把编译生成的hex文件,下载到仿真软件中的模拟单片机,进行仿真测试。
Proteus软件是英国Lab Center Electronics公司发布的EDA工具软件(该软件是广州飞马电子科技有限公司的总代理)。它不仅具有其他EDA工具软件的仿真功能,而且还可以仿真MCU和外围设备。它是模拟微控制器和外围设备的更好工具。尽管目前国内的推广工作刚刚起步,但单片机爱好者,从事单片机教学的教师以及致力于单片机开发和应用的科技工作者对此表示赞赏。
Proteus是英国着名的EDA工具(仿真软件)。从原理图布局和代码调试到单片机和外围电路的协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。它是世界上唯一将电路仿真软件,PCB设计软件和虚拟模型仿真软件相结合的设计平台。该处理器型号支持8051,HC11,PIC10 / 12/16/18/24/30 / DsPIC33,AVR,ARM,8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并继续增加其他系列处理器模型。在编译方面,它也支持许多编译器,如IAR,keil和MPLAB。
特征: 1.原则布局
2.PCB自动或手动布线 3.SPICE电路仿真
基于单片机体温检测仪系统的设计与实现
革命性的特点: 1.交互式电路仿真
用户甚至可以使用RAM,ROM,键盘,电机,LED,LCD,AD / DA,一些SPI器件和一些IIC器件等实时应用。
2.仿真处理器及其外围电路
可以仿真51系列,AVR,PIC,ARM等。常用的主流单片机。您也可以直接在基于原理图的虚拟原型上编程,然后显示和输出。运行后您可以看到输入和输出的效果。通过配备系统配置的虚拟逻辑分析仪和示波器,Proteus建立了完整的电子设计开发环境。4.2 仿真结果
经过仿真测试,系统顺利运行,LCD显示准确地得出检测的结果。
图4-3 电路模拟仿真图
实物检测成果如下图所示:
基于单片机体温检测仪系统的设计与实现
图4-2 系统实物检测图
基于单片机的体温探测仪设计 总结与展望
本系统通过以单片机STC89C52为核心设计开发的体温检测仪,用DS18C20传感器检测体温,在LCD1602显示体温数值,在最后的实验下基本实现了这些功能,满足了项目需求。但是该系统还是存在着不少的缺陷,还有许多改进的地方需要完善。相较于其他的温度检测系统来说,本次设计的体温检测仪最大的亮点就在于它的集成度较高,携带也比较方便,我对此系统还有更近一步的空间,对于温度传感器的知识了解还不是很深入,对此掌握的还不是很熟练。通过了这次的温度检测仪的设计和开发,对温度传感器的知识有了进一步的了解,在设计的过程中也学习到了很多知识,也了解了自己的不足之处,希望在今后能够加深对这方面的知识,在以后的设计过程中能更一步。
IV
基于单片机体温检测仪系统的设计与实现
参考文献
[1] 杨加国,谢维成.单片机原理与应用及C52程序设计(第三版)[M].北京:清华大学出版社,2014.[2] 李泉溪.单片机原理与应用实例仿真.北京:北京航空航天大学出版社,2007: 266-275.[3] 高卫东.51单片机原理与实践[M].北京航空航天大学出版社,2011.[4] 潘永雄.新编单片机原理及应用[M].西安电子科技大学出版社,2008.[5] 何立民.单片机应用系统设计[M].北京:北京航天航空出版社,1990:50-490.[6] 刘瑞新.单片机原理及应用教程.机械工业出版社,2003:7 [7] 楼然苗.单片机课程设计指导.北京:北京航空航天大学出版社,2007:55-63.[8] 贾巍.单片机仿真开发软件的应用[M,]中国水运出版社,2007.[9] 刘文涛.单片机应用开发实例[M].清华大学出版社,2005.[10] 王勇等.凌阳单片机原理及其毕业设计精选[M].科学出版社, [11] 刘笃仁,韩保君.传感器原理及应用技术[M].机械工业出版社,2003:8.[12] 何希才.传感器及其应用电路.北京:电子工业出版社,2001:36-47.[13] 张开生,郭国法.MCS-51单片机温度控制系统的设计[M].2005:7.[14] 赵丽娟,邵欣.基于单片机的温度监控系统的设计与实现[M].机械制造,2006:3.[15] 朱旭光,刘建辉.农业大棚的温湿度控制系统[J].自动化技术与应用,2005.V
基于单片机体温检测仪系统的设计与实现
VI