首页 >> 抹平机

基于AT89C51单片机最小系统的数字体温计设计茂名

瑞凯五金网 2022-08-05 16:16:39

基于AT89C51单片机最小系统的数字体温计设计

基于AT89C51单片机最小系统的数字体温计设计 2012年08月27日 摘 要:以AT89C51为核心,采用DS18B20为温度采集模块和四位供阴LED为显示模块的简易数字体温计。引言 传统的体温计是由水银制成的,存在测温时间长、读数不便等缺点,不方便人们的使用。此外在最近的一些数字体温计的电路制作中,基本上都是用温度传感器采集温度,再经过放大电路的放大,放大后的电压在接入A/D转换器变成数字信号,最后才输入微控芯片中,经过微控芯片的处理后再输出显示。这样的系统不仅电路比较复杂,而且成本较高。而本文所用的DS18B20则是一片集成了温度的采集和A/D转化为一体的芯片,这样不仅使整个系统简单、而且操作灵活,可编程程度大大的提高。1 、系统的硬件部份 本系统采用AT89C51单片机,AT89C51通过P1.0与DS18820进行单总线通信,启动DS18B20温度采集功能并取出转化后的体温数值。最后将体温值显示在外接在PO口与P2口的四位共阴LED上。 本系统采用的第二个关键芯片是DS18B20。它与单片机的通信采用的是单总线通信协议,由于本系统的采集电路中只用到了一个DS18B20,所以本文主要只介绍单总线通信中的写时序、读时序和DS18B20的相关命令。 写时序:单片机向DS18B20写入逻辑1或0部至少要60us,并且两次独立的“写时隙”之间至少需要1us的恢复时间。在写逻辑l时:单片机对总线拉低后再15us之后,单片机再将其拉高至少45us,此时向DS18B20写入逻辑1,在写逻辑0时,单片机对总线拉低至少保持60us,此时向DS18B20写入逻辑0。相应的c语言程序为:voidwriite_bit(ucharbitball){P1.0=0;if(bitball=1)P1.0=1;delay(6);P1.0=1;}和相应的时序图。 读时序:在单片机发出读数据指命后,立刻产生读时序,先将总线拉低至少1us,DS18B20才开始向总线发送逻辑1或0;如果DS18B20发送的是逻辑l则整个时序为高电平,如果发送的是低电平则单片机必须在前15us内采集总线的电平状态。读时序至少要60us,在时序结束之后DS18B20会释放总线。由于本系统在DS18B20的DQ引脚与单片机相联的引脚之间没有接上拉电阻,所以相应的C语音程序为:uchar read_bit(){uchar i,j;P1.0=0;P1.0=1; for(i=0;i<3;ii++);j=P 1.0return(j);}2、系统的软件设计 系统程序一开始就根据单总线通信的ROM命令向DS18B20发送跳过读ROM的命令(CCH),接着向DS18B20发出启动温度转换命令(44H),然后在开启定时器0和开中断,接着程序就开始判断时问是否经过0.2ms(即DS18B20的温度采集是否成完),同时在这0.2ms内,四位共阴LED显示上次DS18B20所采集的体温值(如果是第一次判断0.2ms则是不显示任何数值),当0.2ms过去后,向DS188B20发出读 SRAM命令(BEH)并将新的体温数值显示在LED中。这就是此系统的程序设计思路。3、结论 在本文中采用了数字温度传感器模块和简易的LED显示模块使得整体电路比较简单,成本较低、但是灵敏度高、反应快而且使用安全,可以作为居家用品,便于日常体温测量。它具有很高的实用性和广大市场。

治疗妇科疾病医院排行榜

治疗妇科炎症医院

濮阳治性功能障碍医院哪家好

治疗阳痿早泄好的医院

济南戒赌瘾

友情链接