基于单片机的数字温度计_第1页
基于单片机的数字温度计_第2页
基于单片机的数字温度计_第3页
基于单片机的数字温度计_第4页
基于单片机的数字温度计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理与应用术课程设计基于单片机的数字温度计设计院 系 :机电工程学院专业(班级):电子信息工1班姓 名:谢冰芬学 号:20124081043指导教师:邵海龙、陈滨职 称:完成日期: 2014 年 10 月 20 日摘要本文提出了基于MCS-51系列单片机的数字温度计的制作电路和编程思想。该数字温度计以ATMEL公司的AT89S52 单片机为主控,配以达拉斯公司的DS18B20数字温度传感器,采用四位数码管显示。实现了对温度的测量和显示。关键词: STC89C52单片机;数字传感器DS18B20;数码显示;AbstractIs proposed in this paper, based o

2、n digital thermometer of MCS - 51 series microcontroller circuit and programming ideas. The digital thermometer taking ATMEL company's AT89S52 single chip microcomputer as the master, with Dallas DS18B20 digital temperature sensor, using four digital tube display. Implementation of the temperatu

3、re measurement and display.Key words: STC89C52 singlechip; Digital sensor DS18B20. Digital display;目录第一章   设计要求与总体框图1.1设计要求1.2总体框图第二章   电路设计方案及设计原理2.1显示系统的方案比较 2.1.1方案1数码管显示 2.1.2方案2液晶显示2.2 温度传感器模块的方案比较2.2.1 方案1模拟温度传感器测温2.2.2 方案2数字温度传感器2.3单片机系统的方案比较 2.3.1 方案1 2.3.2 方案2第

4、三章   软件设计3.1显示模块的实现方法3.2单片机系统的实现方法3.3 温度模块的实现方法第四章  制作及性能测试与分析 4.1 制作过程4.2 测试环境与测试条件4.3测试结果心得体会第一章   设计要求与总体框图1.1设计要求(1)数字温度计.(2)采集测温范围为-50+110 .(3)温度精度在0.1 ;误差±0.2以内.(4)显示模块,采用4个LED数码管显示.1.2总体框图第二章电路设计方案及设计原理2.1显示系统的方案比较2.1.1方案1:采用数码管动态显示使用七段LED数码管,采用动态显示的方法来

5、显示各项指标,此方法价格成本低,显示效果好,功耗较大。2.1.2方案2:采用LCD液晶显示采用1602 LCD液晶显示,此方案显示内容相对丰富,单价格过高。综合上述原因,采用方案1,使用数码管作显示电路。本设计采用共阴极数码管共阴极数码管是一类数字形式的显示屏,通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示的参数。由于它的价格便宜、使用简单、在电器,特别是家电领域应用极为广泛,空调、热水器、冰箱等等。绝大多数热水器用的都是数码管,其他家电也用液晶屏与荧光屏。 共阴极结构:LED显示器有共阴极和共阳极两种结构,下面只介绍共阴极结构。见图3

6、,在共阴极结构中,各段发光二极管的阴极连在一起,将此公共点接地,某一段发光二极管的阴极为高电平时,该段发光。共阴极字段码:LED显示09某个字符时,则要求在adp送固定的字段码,如要使LED显示“0”,则要求a、b、c、d、f各引脚为高电平,g和dp为低电平,字段码为“3fh” 。dp g f e d c b a0 0 1 1 1 1 1 1 3fh共阴极字符09七段码如下:字符: 0 1 2 3 4 5 6 7 8 9字段码:3fh 06h 5bh 4fh 66h 6dh 7dh 07h 7fh 6fh2.2温度传感器模块的方案比较2.2.1 方案1:采用模拟温度传感器测温由于本设计是测温电

7、路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。2.2.2 方案2采用数字温度传感器进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。综合考虑,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。DS18B20可以程序设定912位的分辨率,精度为

8、77;0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存。温度传感器DS18B20引脚如图3-4所示。图3-3 DS18B20TO92封装温度传感器引脚功能说明:VDD :可选电源脚,电源电压范围35.5V。当工作于寄生电源时,此引脚必须接地。DQ :数据输入/输出脚。漏极开路,常态下高电平。GND :为电源地图3-4 DS18B20内部结构图DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该

9、DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。 这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为

10、0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。 例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,

11、第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。 该字节各位的意义如下:TM R1 R0 1 1 1 1 1低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如表1所示:(DS18B20出厂时被设置为12位)表3-3 DS18B20温度转换时间表R1R0分辨率/位温度最大转向时间00993.750110187.510113751112750根据DS18B20的通讯协议,主机控制DS18B20完

12、成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。3.3.2 温度传感器与单片机的连接温度传感器的单总线(1-Wire)与单片机的P1.7连接,。下图为DSl8b20与单片机的接口电路。 2.3单片机系统的方案比较 2.3.1 方案1 8052采用8051外接程序存储器,电路复杂,且芯片已经停产。 2.3.2 方案2 AT8

13、9S52采用AT89S52自带程序存储器。综合上述原因,采用方案2,使用AT89S52作为主芯片。下图为最小系统 包括震荡电路和复位电路。AT89S52特点图3.2.1-1 单片机AT89S521、主要性能: (1) 8031 CPU与MCS-51 兼容 8K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-33MHz 三级加密程序存储器 256*8位内部RAM 32条可编程I/O线 三个16位定时器/计数器 八个中断源 全双工UART串行通道 低功耗的闲置和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符 片内振荡器和时钟电路 (2) 管脚说明: V

14、CC:供电电压。 GND:接地。2、AT89S52的功能特性描述AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位

15、 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。此外, AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。3、AT89S52引脚功能AT89S52 单片机为40 引脚芯片见图3.2.1-2。图3.2.1-2 AT89S52引脚图(1

16、)口线:P0、P1、P2、P3 共四个八位口。P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。 对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉

17、低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能: P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用)P2口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个

18、TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个TTL 逻辑电平。对P3

19、端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如表3.2.1所示。 表3.2.1 P3口管脚 备选功能:端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)在flash编程和校验时,P3口也接收一些控制信号。 此外,P3口还接收一

20、些用于FLASH闪存编程和程序校验的控制信号。 (2)其他引脚说明:RST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。 ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 对FLASH存储器编

21、程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低

22、电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。 FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 XTAL1,XTAL2接石英晶体振荡器。如图12所示外接晶体引脚图。图3.2.1-3晶振外接结构引脚图XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式

23、时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择,在本设计电路中选用了12MHz。电容取20PF左右。机器周期12×时间周期,如12MHz的机器周期为1微秒。第三章   软件设计3.1显示模块的实现方法流程图如下显示部分程序如下:void DIS_SEG(void)/在LED上显示数据if(ng=1)P0=0x40;elseP0=tabDisplay_Digit3; / 数码管显示负数 或正的百位SEG1=0; Delay_ms(5); /延时2ms SEG1=1; P0=tabDisp

24、lay_Digit2; /温度十位 SEG2=0;Delay_ms(5); /延时2ms SEG2=1; P0=(tabDisplay_Digit1+0x80); /温度个位和小数点SEG3=0;Delay_ms(5); /延时2ms SEG3=1; P0=tabDisplay_Digit0; /小数位SEG4=0;Delay_ms(5); /延时2ms SEG4=1; 3.2 温度模块的实现方法DS18B20模块流程图如下。DS18B20模块程序如下/初始化DS18B20uchar Init_DS18B20() uchar status; DQ1 = 1;Delay(8); /延时DQ1 =

25、 0;Delay(90);/延时DQ1 = 1;Delay(8);status = DQ1;Delay(100);DQ1 = 1;return status;/读一个字节uchar ReadOneByte() uchar i,dat=0;DQ1 = 1;_nop_();for(i=0;i<8;i+) DQ1 = 0;dat >>= 1;DQ1 = 1;_nop_();_nop_();if(DQ1)dat |= 0X80;Delay(30);DQ1 = 1;return (dat); /写一个字节void WriteOneByte(uchar dat) uchar i;for(

26、i=0;i<8;i+) DQ1 = 0;DQ1 = dat& 0x01;Delay(5);DQ1 = 1;dat >>= 1; /读温度值void Read_Temperature() EA=0; if(Init_DS18B20()=1)DS18B20_IS_OK=0;else WriteOneByte(0xcc); /跳过序列号WriteOneByte(0x44); /启动温度转换Init_DS18B20();WriteOneByte(0xcc);/跳过序列号WriteOneByte(0xbe);/读取温度寄存器Temp_Value0 = ReadOneByte(); /温度低8位Temp_Value1 = ReadOneByte();/温度高8位DS18B20_IS_OK=1;EA=1;/处理温度值void Display_Temperature()/ uchar i;uchar t = 150;/,延时 ng = 0; /与负值标志if(Temp_Value1&0xf8)=0xf8) Temp_

温馨提示

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

评论

0/150

提交评论