版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机的DS18B20数字温度计的设计学生: 指导教师: 摘要:本文介绍了用STC89C52单片机、DS18B20温度传感器、74HC138、74HC245、4位共阴极数码管所设计的数字温度计电路,简要的说明电路图,并且给出了硬件组成及其功能以及用C语音编写的程序设计。关键词:STC89C52 DS18B20温度传感器 Abstract: We briefly introduce the digital thermometer circuit that designed by DS18B20, 74HC138, 74HC245, AT89S52 and nixie tube. And gi
2、ves a brief description of the electric circuit. Whats more, it introduce each part of the hardware and the programmer that compiled by CKey words: STC89C52 DS18B20一、硬件部分:本课程设计硬件主要分为温度传感器、STC89C52、74HC138、74HC245和数码管等五部分。1、 温度传感器:DS18B20是美国DALLAS半导体公司推出的第一片支持“一线总线”接口电路的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配
3、微处理器等优点,可直接将温度转化成串行数字信号供处理器处理。其特性如下:(1) 适应电压范围宽,电压范围在3. 05.5V,在寄生电源方式下可有数据线供电。(2) 独特的单总线接口方式,它与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通信。(3) 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。(4) 在使用中不需要任何外围元件,全部传感器及转换电路集成在一只形如三极管的集成电路内。(5) 测温范围-55+125,在-10+85时精度为±0.5。(6) 可编程分辨率为912位,对应的可分辨温度分别为0.5,0.25,0.125,0.
4、0625,可实现高精度测温。(7) 在9位分辨率时,最多在93.75ms内把温度转换为数字;12位分辨率时,最多在750ms内把温度值转换为数字,显然速度更快。(8) 测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。(9) 负压特性。电源极性接反时,芯片不会因为发热而烧毁,但不能正常工作。2、STC89C52 80C52是INTEL公司MCS-51系列单片机中基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗
5、特征,它基于标准的MCS-51单片机体系结构和指令系统,属于80C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。80C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,80C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。80C52有PDIP(4
6、0pin)和PLCC(44pin)两种封装形式。3、74HC138: 74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。 74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。利用这种复合使能特性,仅需4片74HC138芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5
7、线到32线)译码器。任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则74HC138亦可充当一个8输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态。 74HC138与74HC238逻辑功能一致,只不过74HC138为反相输出。 4、74CH245: 总线驱动器,典型的TTL型三态缓冲门电路。 由于单片机等CPU的数据地址控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。 另外,也可以使用74HC244等其他电路,74HC244比74HC245多了锁存器。 二、电路电路图如下
8、所示:在本电路中,单片机的P0口通过锁存器,连接到数码管的位选管脚,P2通过三八译码器,连接到数码管的段选管脚。增加锁存器和三八译码器的目的,主要是为了增加数码管的驱动电流,解决共阴极数码管因驱动不足而无法显示的问题。其次,蜂鸣器通过PNP型三极管驱动,当实际温度超过设定的温度界限时, P3.4管脚输出低电平时,蜂鸣器报警。3个按键分别接着P1.0-P1.2,按键按下时,向单片机输入低电平,单片机检测到低电平后坐出相应的动作。实物图如下所示:三、实验程序程序使用C语言编写,具体如下:#include<reg52.h>#include <intrins.h>#define
9、 uchar unsigned char#define uint unsigned intint temp_h;/存储上限值int temp_l;/存储下限值/int tempp;/存储用来比较的温度int temp;/存储温度uchar shi;/存储十位数值uchar ge;/存储个位数值uchar xiao;/存储小数点后第一位uchar flag1;/模式标志uchar flag3;/确认标志sbit key1=P10;/模式转换sbit key2=P11;/加1sbit key3=P12;/确认sbit DS=P37;/定义DS18B20接口sbit feng=P34;/定义蜂鸣器i
10、nt tmp(void);void tmpchange(void);void tmpwritebyte(uchar dat);uchar tmpread(void);bit tmpreadbit(void);void dsreset(void);void delayb(uint count);uchar table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/不带小数点的共阴极数码管代码uchar table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;/带小数点的工阴极数码管代
11、码void init()key1=1;key2=1;key3=1;flag1=0;flag3=0;temp_h=0;temp_l=0;void delayms(unsigned int v)unsigned int m,n;for(m=v;m>0;m-)for(n=73;n>0;n-);void display()/温度显示函数shi=temp/100;/获取十位ge=temp%100/10;/获取个位xiao=temp%10;/获取小数点后第一位P2=0x00;P0=0x05;P2=tableshi;delayms(5);P2=0x00;P0=0x06;P2=table1ge;d
12、elayms(5);P2=0x00;P0=0x07;P2=tablexiao;delayms(5);P2=0x00;void display_h()/显示上限温度shi=temp_h/10;ge=temp_h%10;xiao=0;P0=0x04;P2=0x76;/显示hdelayms(5);P2=0x00;P0=0x05;P2=tableshi;delayms(5);P2=0x00;P0=0x06;P2=table1ge;delayms(5);P2=0x00;P0=0x07;P2=tablexiao;delayms(5);P2=0x00;void display_l()/显示下限温度shi=t
13、emp_l/10;ge=temp_l%10;xiao=0;P0=0x04; P2=0x38;/显示ldelayms(5);P2=0x00;P0=0x05;P2=tableshi;delayms(5);P2=0x00;P0=0x06;P2=table1ge;delayms(5);P2=0x00;P0=0x07;P2=tablexiao;delayms(5);P2=0x00;void main()/主函数init();/调用初始化程序while(1)/大循环while(flag1=0)&&(flag3=0)/模式0,显示温度,flag1作为模式标志位,0为显示模式,1为上限调整模式
14、,2为下限调整模式tmpchange();/温度转换temp=tmp();display();/调用温度显示函数if(key1=0)/按下key1,则转换到上限调整模式delayms(200);flag1=1;key1=1;while(flag1=0)&&(flag3=1)/显示模式并开始比较feng=1;tmpchange();/温度转换temp=tmp();display();/调用温度显示函数/temp=temp/10;while(temp>temp_h)|(temp<temp_l)tmpchange();/温度转换temp=tmp();display();/
15、调用温度显示函数feng=0;while(flag1=1)/模式1,上限调整模式/temp_h=0;/给上限温度赋零while(flag1=1)display_h();if(key2=0)temp_h+;/key2=1;while(!key2)display_h();if(key1=0)/按下key1,则转换到下限调整模式/delayms(200);flag1=2;temp_h=temp_h*10;while(!key1); /key1=1;if(key3=0)/按下key3,显示温度并开始比较flag1=0;flag3=1;/key3=1;/tempp=tempp_h;temp_h=temp
16、_h*10;while(!key3);while(flag1=2)/模式2,下限调整模式/temp_l=0;while(flag1=2)display_l();if(key2=0)temp_l+;/key2=1;while(!key2)display_l();if(key1=0)/按下key1,则转换到上限调整模式delayms(200);flag1=1;temp_l=temp_l*10;while(!key1); /key1=1;if(key3=0)/按下key3,显示温度并开始比较flag1=0;flag3=1;/key3=1;/tempp=temp_l;temp_l=temp_l*10;
17、while(!key3);void delay(void)/空5个指令_nop_();_nop_();_nop_();_nop_();_nop_();void delayb(uint count) /delay uint i; while(count) i=200; while(i>0) i-; count-; void dsreset(void) /DS18B20初始化 uint i; DS=0; i=103; while(i>0)i-; DS=1; i=4; while(i>0)i-; bit tmpreadbit(void) / 读一位 uint i; bit dat;
18、 DS=0;i+; /小延时一下 DS=1;i+;i+; dat=DS; i=8;while(i>0)i-; return (dat); uchar tmpread(void) /读一个字节 uchar i,j,dat; dat=0; for(i=1;i<=8;i+) j=tmpreadbit(); dat=(j<<7)|(dat>>1); /读出的数据最低位在最前面,这样刚好/一个字节在DAT里 return(dat); /将一个字节数据返回 void tmpwritebyte(uchar dat) /写一个字节到DS18B20里 uint i; ucha
19、r j; bit testb; for(j=1;j<=8;j+) testb=dat&0x01; dat=dat>>1; if(testb) / 写1部分 DS=0; i+;i+; DS=1; i=8;while(i>0)i-; else DS=0;/写0部分 i=8;while(i>0)i-; DS=1; i+;i+; void tmpchange(void) /发送温度转换命令 dsreset(); /初始化DS18B20 delayb(1); /延时 tmpwritebyte(0xcc); / 跳过序列号命令 tmpwritebyte(0x44); /发送温度转换命令int tmp() /获得温度 float tt; uchar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考英语七选五解题技巧训练
- 铝合金型材加工技术与应用
- 六年级语文《北京春节》教学设计
- 基于多种群协同粒子群与模糊PID的列车虚拟编组控制研究
- 中模量PAN基碳纤维压缩破坏影响因素及结构调控研究
- 基于双流生成与边界扩展的人脸反欺诈研究
- 滨海盐碱耕地土壤养分动态与综合肥力研究
- 初中英语语法总结与专项训练
- 硅改性酚醛气凝胶及其纤维增强复合材料的制备与性能研究
- 科普类文本汉译中的美学再现-《エネルギーをめぐる旅―文明の歴史と私たちの未来》(节选)案例分析报告
- 2025年成人高考专升本生态学基础真题及答案
- 2025年肿瘤内科正高试题及答案
- 水务大数据分析与应用-洞察及研究
- 十八项电网重大反事故措施第一课培训课件
- 修理扫帚课件
- 抖音电商直播投放策略指南
- 人与大自然的不和谐之音
- GB/T 7287-2008红外辐射加热器试验方法
- 七年级第一次家长会-下载完整版课件
- 5第六章生物多样性丧失的原因课件
- 电气设备状态监测与故障诊断课件
评论
0/150
提交评论