并行数码管显示室温第一组_第1页
并行数码管显示室温第一组_第2页
并行数码管显示室温第一组_第3页
并行数码管显示室温第一组_第4页
并行数码管显示室温第一组_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 题目:51控制数码管显示室温院系:电子工程学院光电系专业:光信息科学与技术学生:刘爽、叶润之、薛富斌指导老师:贺锋涛2014年7月26日摘要随着单片机相关课程的学习,我们已经初步了解51 的有关运行方法,了解有关下载芯片与单片机的连接和运行,程序的下载和烧录。为了进一步学习51单片机对一些常用电子器件的控制,并熟悉51的相关知识和操作,我们完成了51控制数码管显示温度。本文主要介绍一个基于51单片机测温系统,详细的描述了利用51单片机和DS18B20进行温度测试的原理及过程,最终用四位数码管显示所测温度,对各个部分电路也进行了比较详细的介绍。该系统可以非常方便的进行温度的测量,结构简单,抗干

2、扰性强。使用起来非常方便,具有精度高,体积小,功耗低,价格便宜等特点。既让我们进一步了解了51单片机的使用和相关知识,也可以当温度处理模块嵌入到其他系统中,方便后续相关课程的学习。关键字:单片机;测温系统;四位数码管;DS18B20;目录引言摘要1 1. 硬件设计1.1DS18B20简介1.1.1DS18B20的特点1.1.2DS18B20使用中的注意事项1.1.3DS18B20的内部结构1.1.4DS18B20测温原理1.2显示电路1.2.1数码管介绍1.2.12数码管引脚及工作原理1.3主要控制器1.4电路原理图及实物图2.软件设计3结论4参考文献11 DS18B20简介1.1.1 介绍D

3、S18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢、封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。1.DS18B20特点(1)、采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)。(2)、测温范围

4、为-55-+125,测量分辨率为0.0625,(3)、内含64位经过激光修正的只读存储器ROM,(4)、适配各种单片机或系统机,(5)、用户可分别设定各路温度的上、下限,(6)、内含寄生电源 2. DS18B20封装结构图DS18B20管脚排列:1. GND为电源地;2. DQ为数字信号输入/输出端;3. VDD为外接供电电源输入端(在寄生电源接线方式时接地) 1.1.2 DS18B20使用中的注意事项1.1.3 1.1.3DS18B20内部结构:主要由4部分组成:64 位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。ROM中的64位序列号是出厂前被光刻好的,它可以看作是该

5、DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8+X5+X4+1)。 ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。1.1.4DS18B20测温原理1.2显示电路1.2.1数码管介绍led数码管(LED Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。中文名称:数码

6、管外文名称:LED分类:七段数码管和八段数码管基本单元:发光二极管本质:半导体发光器件1.2.2数码管引脚及工作原理(本次使用四位一体数码管:3641AH)工作原理:四位一体数码管3641AH是共阴极数码管,12、9、8、6号管脚分别为位选段,当某一个输入低电平时,对应的1、2、3、4个数码管被选定。然后根据段选a、b、c、d、e、f、h决定该数码管的那几个发光二极管亮,从而显示相应的数字,以这样的方式显示要显示的内容。1.3主要控制器1.4电路原理图及实物图原理图:实物图:2. 软件设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序。2.1主程

7、序主程序的主要功能室温度的实时显示,读出并处理DS18B20测量的当前温度值,温度测量每一秒进行一次。这样可以在一秒之内测量一次被测温度。2.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需要进行CRC校验,校验有错时不进行数据的改写。2.3温度转换命令子程序温度转换命令子程序的主要功能是发温度转换开始命令。在本程序设计中采用1s显示程序延时法等待转换的完成。2.4温度计算子程序计算温度子程序将RAM中读取值进行BCD码的转化运算,并进行温度值正负的判定。2.5温度数据显示子程序温度数据显示子程序的主要功能是对显示缓冲器中的显示数据进行刷新操作,采用动态扫描方式。3.

8、 结论通过这次基于DS18B20传感器测量温度的设计,我学到了不少新的知识。首先,这次设计让我把书本上学到的理论知识转化成为现实生活中有价值的实物。如果没有这次设计为我搭建的平台,我就不能对书本上的知识进行很好的理解,也不能熟练的把它们应用到现实生活中。还有,我们学会不能手高眼低,要踏踏实实,从基础学起、做起。但是,具体到设计时,我遇到了很多麻烦,比如如何将传感器得到的温度转换成为对应的电信号,如何将电信号输送到单片机进行控制,如何把测得的温度用数字显示出来等等。这就要求我们学习要一步一个脚印,掌握扎实的理论基础了。最重要的一点是,我在这次设计中培养了自己的学习能力。由于好多知识超出了我们的课

9、本范围,这就要求我们自己通过资料来增加我们的知识,解决遇到的一些问题。在短时间内从书本资料中筛选出我们所需要的知识,对我们的自主学习能力有很大的帮助。就拿DS18B20来说,我们书本上没有介绍到这种温度传感器,所以我们就通过学习DS18B20的说明书,了解它工作的原理以及特性,清楚在实际应用时要注意的事项,对DS18B20进行初始化、编程的要求和规定等。培养了自主学习的能力,无论以后我要做什么样的设计,我都能够通过查阅资料来实现。最后,本次设计能够顺利完成。4. 参考文献1郭天祥.新概念51单片机c语言设计.电子工业出版社.2012年。2万隆.单片机原理及应用技术教程.清华大学出版社。附录:#

10、include#define uchar unsigned char#define uint unsigned intuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;sbit DQ = P14;/18b20传输数据端口sbit w = P22;/数码管显示位选端sbit d = P21; /数码管显示段选端uchar a;void delay(uint x)/延时x msuint i,j;for(i=x;i0;i-)for(j=110;j0;j-);void delay1(uint x)/微小延迟while(

11、x-);void init_ds18b20(void)/初始化ds18b20:让ds18b20一段相对长时间低电平,/然后一段相对非常短时间低电平即可启动ds18b20芯片uchar initflag=0;DQ=1;/DQ复位,不要也可行delay1(10);/稍做延时DQ=0;/单片机拉低总线delay1(80);/相对长延时DQ=1;/释放总线,即拉高了总线delay1(10);/相对短延时initflag=DQ;/启动标记delay1(10);void initT0(void)/中断函数EA=1;/开总中断TMOD=0x01; /设置定时器0为工作方式0000 0001TH0=(6553

12、6-45872)/256;/装初值11.0592M晶振定时50ms数为45872TL0=(65563-45872)%256;ET0=1;/开定时器0中断TR0=1;/启动定时器void time0() interrupt 1 /定时器1中的中断序号为1TH0=(65536-45872)/256; /重装初值TL0=(65536-45872)%256;a+; /每中断一次叠加一次avoid writebyte(uchar dat)/向18b20写入数据uchar i;for(i=0;i=1;delay1(5);uchar readbyte(void)/读18b20的数据uchar i,dat=0

13、;for(i=0;i=1;/二进制数值右移一位,让从总线上读到的位数据,依次从高位移动到低位DQ=1;/释放总线,此后DS18B20会控制总线,把数据传输到总线上if(DQ)/控制器进行采样dat|=0x80;/若总线为1,即DQ为1,那就把dat的最高位置1;/若为0,则不进行处理,保持为0delay1(5);/确保读的时序长度return dat;uint readtemp(void)/读取,转换温度uchar low,high;uint temp=0;init_ds18b20();/初始化writebyte(0xcc);/忽略ROM指令writebyte(0x44);/温度转换指令del

14、ay(2);init_ds18b20();/初始化writebyte(0xcc);/忽略ROM指令writebyte(0xbe);/读RAM暂存器指令low=readbyte();/读取到的低位第一个字节为温度high=readbyte();/读取到的高位第一个字节为温度temp=high4);/读取低位右移4位temp=(high*256+low)*0.0625*10+0.5; /转化为温度输出的数字在扩大十倍return temp;void display(uint a,uint b,uint c) /数码管显示函数w = 1; /打开位选端口P0 = 0xfe; /编码选择第一位w = 0; /关闭位选端口/P0 = 0x00; /送段选数据前关闭所有显示,防止打开段选锁存d = 1; /打开段选P0 = tablea; /选择第一位输出数字编码d = 0; /关闭段选delay(2); /w = 1;P0 = 0xfd;w = 0;/P0 = 0x00;d = 1;P0 = tableb|0x80;/按位或,同时输出小数点d = 0;delay(2);w = 1;P0 = 0xfb;w = 0;/P0 = 0x00;d = 1;P0 = tablec;d = 0;delay(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论