




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于51单片机的数字温度计设计一.选择主题随着时代的发展,智能控制,仪器小型化,电力美化备受关注。单片机控制系统无疑在这方面发挥了重要作用。单片机的应用系统设计已经成为新的技术热点。数字温度计是典型的例子,这在广泛应用和生产生活的各个方面都有很大的市场前景。二.设计目的1.了解51单片机的功能和实际应用。掌握仿真开发软件的使用。3.掌握数字温度计电路的设计、装配和调试方法。三.实验要求1.以51系列微控制器为核心,构成数字温度计。2.使用数字温度传感器作为检测设备进行单点温度检测。3.温度显示用4位led数码管显示。3位整数,1个小数。四、设计理念1.根据设计要求,选择stc89c51rc微控
2、制器作为核心设备。使用ds18b20数字温度传感器进行温度检测。与单片机的接口是p3.6针。3.使用usb电缆连接充电材料,连接电源,然后用按钮开关控制电路。硬件电路设计的完整框图如图1所示。v.系统的硬件配置和功能1.主控制器单芯片stc89c51rc有低压电源和小尺寸、40针、模拟图像,如下图所示。2.显示回路显示电路使用p3端口rxd、txd串行端口输出段代码的总计4位led数字管。led数码管在仿真软件中如下图所示。3.温度传感器ds18b20是美国dallas半导体企业新推出的增强型智能温度传感器,与现有热敏电阻等温度测量元件相比,直接读取测量的温度,并根据实际要求通过简单编程实现9
3、-12个字符的数字值读取。ds18b20的性能特征包括:1.唯一的单线接口只需要一个端口针进行通信。简单的多点分布应用。3.不需要外部设备。4.可以通过数据线供电。5.零备用功耗。温度测量范围-55到125摄氏度。电路图如下图所示。在模拟软体中,如下图所示。ds18b20温度测量电路图如下图所示。对于正常温度测量,ds18b20的温度测量分辨率为0.5摄氏度,可通过以下方法获得高分辨率温度测量结果:将分辨率为0.5度的温度测量读取到ds18b20提供的读取寄存器命令(beh)中,然后从测量结果中剪切最低有效位置(lsb)以获取测量的实际温度的整数部分tz,然后使用beh命令获取计数器1的计数剩
4、余值cs和每度值cd。考虑到ds18b20测量的温度的整数部分与舍入0.25,0.75摄氏度的边界的关系,实际温度ts可以计算为:ts=(tz-0.25) (cd-cs)/cd六。系统范围的硬件电路根据设计要求和设计思路,硬件电路设计框图在仿真软件proteus中完成,如下图所示。其中,led数码管通过由4个pnp晶体管q2、q3、q4、q5和8个电阻组成的动态扫描显示温度。基座与微控制器p1.0、p1.1、p1.2连接,ds18b20的数据i/o端点与微控制器p3.6针连接。外部晶粒为12mhz。vii .系统编程数字温度计的应用主要包括主程序、温度检测程序、温度转换程序、led显示程序等。
5、想法如下图所示。viii .测量和结果分析1.proteus模拟结果蛋白质组编译软件、源程序编译和模拟调试。在软件中选择传感器后,可以将环境温度设置为34.9,如下图所示。2.硬件测试结果硬件测试验证电路板和焊接的质量,如果焊接不正确,请打开电源并检查指示灯显示器。最终项目图表如下:通电后,室温下指示灯显示的次数如图所示ix。设计经验这次实验对我们队来说难得第一次接触了模拟软件pro teus,使用时多次失败。因为该软件与现有使用的软件有很大的不同,使用时一直出错,布线时原稿放置错误,混乱,输入源代码也很顺利,结果更令人满意。其次是编程。我们根据别人的成功先例,根据自己的设计要求进行了编程。其
6、中经历了很多曲折,最终我的收获是编程必须仔细,对每个细节稍有不慎,程序不能正常运行。在这次练习和学习中,我们不顾这段时间的困难,从他身上学到了很多新的知识和技能,也认识到了经历失败最终成功的喜悦。总之,通过这次电子综合设计获得了很多,希望以后在各种研究事业中也坚持这种精神。x.附录源程序#include#include# definucharunsignedchar#defineuint unsignedintsbitdata=p1 1;/ds18b20访问端口uchar code table =0x3f,0x06,0xx5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0xx
7、6f,0x77/常用阴极字体代码int temp/温度值int ss/中间的变量int ddint j;uchar data b;/计时器中断计数uchar data buf4;/字体显示中间变量int alarmh=320/预设警告值int alarml=100/定义交换机的访问端口sbit k1=p2 5;/sbit k2=p2 6;/sbit k3=p2 7;/确认sbitk 4=p2 4/切换sbitbell=p1 0 0/蜂鸣器s bithlight=p1 2;/正温度指示器sbit l light=p1 3;/负温度指示器sbitwarn=p1 4 4/警报指示灯sbit red=
8、p1 6;/最高温度设定指示器sbitgreen=p1 7 7/最低温度设定指示器位元集=0;/初始化位标志=0;/设定旗标int n;/函数的声明区域void key _ to1();void key _ to2();void delay(uint);void key();void show();/函数的定义区域/*延迟子函数*/void delay(uint num)while(num-);/ds18b20温度传感器所需的函数,分为初始化、读写字节,读取4个温度函数init_ds18b20(void) /传感器初始化uchar x=0;data=1;/重置dqdelay(10);/稍微延迟
9、data=0;/降低单芯片dqdelay(80);/精确延迟大于480us /450data=1;/拉高总线delay(20);x=data/短暂延迟后,如果x=0,则初始化成功如果x=1,则初始化失败delay(30);读取readonechar(void)/一个字节uchar i=0;uchar dat=0;for(i=8);i0;i-)data=0;/脉冲信号dat=1;data=1;/脉冲信号if(数据)dat |=0x80delay(8);return(dat);write one char(unsigned char dat)/单字节写入uchar i=0;for(i=8);i0;
10、i-)data=0;data=dat0x01delay(10);data=1;dat=1;delay(8);int readtemperature(void) /读取温度uchar a=0;uchar b=0;int t=0;float tt=0;init _ ds 18 b20();write one char(0x cc);/跳过读取序列号列号的操作write one char(0x44);/转换起始温度init _ ds 18 b20();write one char(0x cc);/跳过读取序列号列号的操作write one char(0x be);/读取温度寄存器等(共可以读取9个寄
11、存器),前两个是温度a=readone char();/低b=readone char();/高t=b;t=8;t=t | a;tt=t * 0.0625t=tt * 10 0.5return(t);显示void display 00()/* * * * * *负子函数dd=-(temp-1);buf1=dd/100;buf2=dd/100;buf3=dd0/10;buf0=dd;/动态显示for(j=0);j5;j)p2=0xff/初始指示灯熄灭p0=0x00p2=0xfd/小数显示p0=0x80/小数显示delay(100);p2=0xff/初始指示灯熄灭p0=0x00p2=0xf7/选择
12、片lcd1p0=0x40delay(100);p2=0xffp0=0x00p2=0xfb/选择片lcd2p0=tablebuf2;delay(100);p2=0xffp0=0x00p2=0xfd/选择片lcd3p0=tablebuf3;delay(100);p2=0xffp0=0x00p2=0xfep0=tablebuf0;/选择片lcd4delay(100);p2=0xff/显示正子函数voiddisplay()buf1=temp/1000;/显示100个字符buf2=temp/100;/显示10个字符buf3=temp 0/10;/显示字符buf0=temp;/小数for(j=0);j3;
13、j)p2=0xff/初始指示灯熄灭p0=0x00p2=0xfd/小数显示p0=0x80/小数显示delay(300);p2=0xff/初始指示灯熄灭p0=0x00p2=0xf7/选择片lcd1p0=tablebuf1;delay(300);p2=0xffp0=0x00p2=0xfb/选择片lcd2p0=tablebuf2;delay(300);p2=0xffp0=0x00p2=0xfd/选择片lcd3p0=tablebuf3;delay(300);p2=0xffp0=0x00p2=0xfep0=tablebuf0;/选择片lcd4delay(300);p2=0xffvoid key() /密钥扫描子例程if(k1)!=1)delay(20);if(k1!=1)while(k1!=1) key _ to1();f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年机械制造工程师资格考试试题及答案解析
- 2025年互联网运营总监专业水平检测试题及答案解析
- 2025年村级档案员招聘笔试模拟测试题
- 课件中使用图表的目的
- 小学英语长元音教学课件
- 2025年农业合作社财务专员面试模拟题
- 2025年宠物针灸治疗总结面试题及答案
- 数学可爱的小猫教学课件
- 2025年市级文化馆招聘面试模拟题及答案
- 2025年电梯安全使用题集
- 人教版九年级上册历史期末复习知识点考点背诵提纲详细版
- 护理人员行为规范
- 2025版安全生产法全文
- 2025年中国护腰垫数据监测报告
- 2025年中远海运集团招聘笔试备考题库(带答案详解)
- 新教师职业素养提升培训
- 2025至2030中国工业混合式步进电机行业发展趋势分析与未来投资战略咨询研究报告
- 小学生课件藏文版下载
- 委托协议承办会议协议书
- 养生馆转让协议书
- 外观检验考试试题及答案
评论
0/150
提交评论