单片机智能仪器设计温度测量显示报告
- 格式:doc
- 大小:454.97 KB
- 文档页数:16
单片机原理及系统课程设计专业:自动控制班级:控1002班*名:***学号: *********指导教师:***兰州交通大学自动化与电气工程学院2013 年 3 月 7 日基于单片机的数字温度计摘要本设计将介绍一种基于单片机控制的数字温度计。
在硬件设计介绍单片机温度控制系统元器件的了解,并对硬件原理图做简洁的描述。
软件设计主要包括主程序、读取温度子程序、写一个字节子程序、读一个字节子程序、初始化DS18B20子程序、延时子程序、数码管扫描子程序。
软硬件分别调试完成以后,通过仿真实现了运行。
由于采用了智能温度传感器DS18B20,所以本文所介绍的数字温度计与传统的温度计相比它的转换速率极快,进行读、写操作非常简便。
加之DS18B20内部的差错检验所以它的抗干扰能力强、性能可靠。
关键字:AT89C52;DS18B20;温度检测;单片机AbstractThis paper studies the temperature measurement method by using AT89C52 microcontroller and DS18B20 digital temperature sensor.Besides,the temperature sensor chip,the interface circuit of microcon-troller and temperature sensor,and the software used to collect temperature information and transfer data are studied as well.The proteus simulation result shows that this temperature measurement system is simple in struc-ture,typical in circuit and convenient to control,and the analysis is proved to be reasonable through PSPICE simulatio.Keywords:AT89C52;DS18B20;temperature;microcontroller1 引言1.1设计目的通过应用单片机的知识,能够独立设计出具有温度范围广、结果精确、并且可以数字显示的温度计。
单片机温度计课程设计报告摘要:本次课程设计旨在利用单片机实现一个温度计,能够实时测量环境温度并将温度值显示在数码管上。
通过该设计,能够熟悉单片机的基本原理和编程方法,并且加深对温度测量原理的理解。
1. 引言温度是我们日常生活中非常重要的一个参数,对于很多应用来说,温度的准确测量和控制是至关重要的。
而单片机作为一种常用的嵌入式系统,具有体积小、功耗低、成本低等优点,因此被广泛应用于温度测量和控制系统中。
2. 设计原理本设计采用了DS18B20温度传感器作为温度测量模块,并通过单片机的IO口与之连接。
DS18B20传感器具有精度高、体积小、响应速度快等优点,是目前市场上常用的温度传感器之一。
通过单片机与DS18B20传感器的通信,可以获取到当前环境的温度值。
3. 硬件设计本设计所需的硬件主要包括单片机、DS18B20传感器、数码管、电阻、电容等。
其中单片机负责控制和数据处理,DS18B20传感器用于测量温度,数码管则用于显示温度值。
3.1 单片机选择在本设计中,选择了常用的STC89C52单片机作为控制核心。
STC89C52是一款8051系列的单片机,具有丰富的外设资源和强大的计算能力,非常适合本次设计的要求。
3.2 传感器连接DS18B20传感器与单片机的连接采用一根三线制,其中VCC连接到单片机的电源正极,GND连接到单片机的电源负极,DATA连接到单片机的IO口。
3.3 数码管连接数码管的连接比较简单,将数码管的8个引脚分别连接到单片机的8个IO口即可。
需要注意的是,数码管的引脚顺序可能因不同厂家而异,应根据具体数码管的型号选择正确的引脚连接方式。
4. 软件设计本设计的软件主要包括单片机的初始化配置和温度测量显示功能。
4.1 单片机初始化在使用单片机之前,需要对其进行初始化配置,包括设置IO口的输入输出方向、定时器的初始化、中断的使能等。
通过这些初始化配置,可以确保单片机正常工作并准备好接收温度传感器的数据。
天津电子信息职业技术学院传感器技能实训课题名称智能温度测温系统姓名王先民学号20班级电信S10-1专业电子信息工程技术所在系电子技术系指导教师岑永祚完成日期2011年12月11日一、 主要内容温度传感器DS18B20采集环境模拟信号,其输出送入AT89C51,单片机在程序的控制下,将处理过的数据送到移位寄存器74LS164,经74LS164输出后驱动三位数码管显示。
当被测温度高于18℃时,单片机发出控制信号使降温电扇以自然风的形式旋转,温度越高转速越快,温度36℃以上时风扇全速工作,点亮此功能指示灯。
二、 基本要求(1)设计测量温度范围-55℃~+125℃的智能测温系统,要求数码管实时显示测量温度,单片机根据温度高低确定风扇转速 (2)画出程序框图(3)有完整的整机电路图(protel 绘制)(4)完成格式正确、内容完整的实验报告三、 参考文献王祁, 智能仪器设计基础.北京:机械工业出版社,2009目录一、前言 (4)二、系统组成 (4)1、设计思路 (5)2、系统的性能指标: (5)3、系统的主要功能: (5)三、电路组成及工作原理 (5)1、温度传感器功能模块 (6)2、AT89C51单片机 ........................................................................................................ 8 3、74LS164移位寄存器 .. (12)4、晶振电路 (12)5、复位电路 ................................................................................................................... 13 6、键盘电路 . (13)7、显示电路 (14)8、稳压电路 ................................................................................................................... 14 9、显示电路 . (15)10、风扇控制电路 (15)四、课程设计心得与体会 (16)五、参考文献 (16)六、整机电路图 (17)七.心得体会 (18)智能温度测量系统的设计一、前言温度是一种基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量。
智能型温度测量仪报告题目:智能型温度测量仪院别:机电工程与自动化专业:生产过程自动化技术班级: xxx姓名: xxxXxxXxx指导老师: xxx目录引言................................................. 错误!未定义书签。
一、系统设计任务及要求........................................... - 2 -1.1系统设计任务 (2)1.2系统设计的基本要求 (2)1.3系统概述 (2)二、系统总体设计................................................. - 2 -整体设计方案的确定 (2)三、硬件电路设计及工作原理....................................... - 3 -3.1参数采集模块设计 (3)3.2显示温度模块和显示时钟介绍 (3)3.3具体硬件电路原理分析 (4)四、软件设计...................................................... - 7 -4.1主程序流程图 (7)4.2DS18B20温度读取程序(如图9) (8)4.3DS18B20温度传感器初始化 (8)4.4读出温度子程序 (9)4.5DS18B20的读写时序 (10)4.6按键流程图 (12)五、主要技术指标的测量........................................... - 12 -六、结论......................................................... - 13 -结束语........................................................... - 14 -附录:硬件原理图.................................................. - 15 -引言:温度是日常生活、工业、医学、环境保护、化工、石油等领域最常遇到的一个物理量,也是工业控制中主要的被控参数之一。
基于单片机的智能仪器综合设计实验一、实验目的在实验一~实验三的基础上,完成综合设计实验,学会信号采集、数据处理、键盘控制、LCD或LED显示等功能的智能仪器设计。
二、复习与参考实验一~实验三三、设计指标利用K分度号热电偶进行温度检测,测温范围为500-1200ºC,室温为20ºC,用LCD或LED显示室温和测量温度。
具有4路温度信号循环检测功能,通道切换时间可调;具有任意指定通道显示功能。
四、实验要求1.选择传感器,设计硬件电路,包括检测电路、信号调理电路、AD转换电路、单片机最小系统、LED显示(单号)、LCD显示(双号)、独立式按键,画出电路原理图。
2.画出软件流程图。
3.用Keil C51编写程序。
3.实验结果在LCD或LED上显示出来。
4.实验前完成第1、2项备查。
五、实验仪器设备和材料清单PC机;单片机实验板、连接导线、ST7920图形液晶模块Keil c51软件六、实验成绩评定方法实验成绩包括预习、实验完成质量、实验报告质量3部分组成,各部分所占比例分别为30%、40%、30%。
八、实验报告要求实验报告格式:●实验名称●实验目的●实验内容●硬件设计●软件设计●调试过程●参考文献●附1:电路原理图●附2:程序清单附录:实验程序源代码如下:(陈寅)#include "reg51.h"#define THC0 0xee //5ms时间常数设置#define TLC0 0x00sbit ADWR=P3^6; /***WR*****/sbit ADRD=P3^7; /***RD*****/sbit ADCS=P2^7; /***CS*****/sbit EOC=P3^3; /***EOC****/sbit ADA=P1^3; //通道选择引脚sbit ADB=P1^4;sbit ADC=P1^5;sbit CS =P1^0; /****************/sbit SID=P1^1; /**液晶引脚定义**/sbit SCLK=P1^2; /****************/sbit MODE=P2^0; /*************************/sbit UP=P2^1; /*四个按键接口,0表示按下*/sbit DOWN=P2^2; /*************************/sbit LED1=P2^3; /**4个LED灯引脚定义**/sbit LED2=P2^4; /********************/sbit LED3=P2^5; /********************/sbit LED4=P2^6; /********************//***************500~1200°C范围的K分度表,间隔10*******************/ unsigned int code K_TABLE[71]={20644,21066,21493,21919,22346,22772,23198,23624,24050,24476,24902,25327,25751,26176,26599,27022,27445,27867,28288,28709,29128,29547,29965,30383,30799,31214,31629,32042,32455,32866,33277,33686,34095,34502,34909,35314,35718,36121,36524,36925,37325,37725,38122,38519,38915,39310,39703,40096,40488,40897,41296,41657,42045,42432,42817,43202,43585,43968,44349,44729,45108,45486,45863,46238,46612,46985,47356,47726,48095,48462,48828}; unsigned char GetAdData[10]={0}; //存放获得AD值的数组变量unsigned char ViewTemperature[4]={"0000"}; //显示温度缓冲数组变量unsigned MODESelect=1;int ChangeTime=2; //通道切换时间,单位Sint TongDao=1;void delay(unsigned int j){unsigned char i;do{for(i=0;i<100;i++);}while(j--);}void send_command(unsigned char command_data) //发送命令{unsigned char i;unsigned char i_data;i_data=0xf8; //操作命令,可以查看资料delay(10);CS=1;SCLK=0;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}i_data=command_data;i_data&=0xf0;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}i_data=command_data;i_data=i_data&0x0f;i_data<<=4;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}CS=0;}void send_data(unsigned char command_data) //发送数据{unsigned char i;unsigned char i_data;i_data=0xfa; //操作命令,可以查看资料delay(10);CS=1;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}i_data=command_data;i_data&=0xf0;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}i_data=command_data;i_data=i_data&0x0f; //取低四位i_data<<=4; //左移四位,从而变成高四位for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}CS=0;}void InitLCD() //液晶初始化{send_command(0x30); //功能设置:一次送8位数据,基本指令集send_command(0x06); //点设定:显示字符/光标从左到右移位,DDRAM地址加1send_command(0x0c); //显示设定:开显示,显示光标,当前显示位反白闪动send_command(0x04); //显示设定:开显示,显示光标,当前显示位反白闪动send_command(0x01); //清DDRAMsend_command(0x02); //DDRAM地址归位send_command(0x80); //把显示地址设为0X80,即为第一行的首位}/* x,y为起始座标x(0<=x<=3),y(0<=y<=7),x为行座标,y为列座标;how为要显示汉字的个数;style为显示字符的类型,0表汉字,1表字母;str是要显示汉字的地址*/void Display(unsigned char x,unsigned char y,unsigned char how,bit style,unsigned char *stri) //液晶显示{unsigned char hi=0;if(x==0) send_command(0x80+y);else if(x==1) send_command(0x90+y);else if(x==2) send_command(0x88+y);else if(x==3) send_command(0x98+y);if(style==0){for(hi=0;hi<how;hi++){send_data(*(stri+hi*2));send_data(*(stri+hi*2+1));}}elsefor(hi=0;hi<how;hi++) send_data(*(stri+hi));}float LvBo(void)//复合滤波{unsigned char max,min,i;unsigned int sum=0;float U1;max=GetAdData[0];min=GetAdData[0];for(i=0;i<10;i++){sum=sum+GetAdData[i];if(max<GetAdData[i]) max=GetAdData[i];if(min>GetAdData[i]) min=GetAdData[i];}sum=sum-max-min;U1=(float)sum/8;U1=10.0*((U1*5.0)/255); //换成mvreturn U1;}void search (void)//查表子函数{unsigned int da=0,max,min,mid,j;unsigned int var;da=LvBo()*1000; //u1扩大1000倍da=da+798; //20度max=71;min=0;var=0;while(1){mid=(max+min)/2; //中心元素位置if(K_TABLE[mid]==da) {var=mid*10;break;} //中心元素等于查表元素,计算相应温度else if(K_TABLE[mid]>da) max=mid-1;else min=mid+1;if(max-min==1) /*线性插值计算温度值*/{j=(K_TABLE[max]-K_TABLE[min])/10; /*表中相邻两值对应温度相差10°C*/j=(da-K_TABLE[min])/j;var=10*min+j;break;}if(max==min){if(da>=K_TABLE[min]){j=(K_TABLE[min+1]-K_TABLE[min])/10;j=(da-K_TABLE[min])/j;}else if(da<K_TABLE[min]){j=(K_TABLE[min]-K_TABLE[min-1])/10;j=(da-K_TABLE[min-1])/j;min=min-1;}var=10*min+j;break;}}var=var+500;ViewTemperature[0]=var/1000+0x30;ViewTemperature[1]=var/100%10+0x30;ViewTemperature[2]=var/10%10+0x30;ViewTemperature[3]=var%10+0x30;}void LcdDisplay(void){unsigned char ViewMODESelect,ViewTongDao[5]={"0 "},ViewChangeTime[5]={"00(S)"};ViewMODESelect=MODESelect+0x30;ViewTongDao[0]=TongDao+0x30;if(MODESelect==1||MODESelect==2){if(MODESelect==1) Display(0,3,5,0,":自动切换");else if(MODESelect==2) Display(0,3,5,0,":手动切换");Display(0,0,2,0,"模式"); //液晶显示Display(0,2,1,1,&V iewMODESelect);Display(1,0,5,0,"温度通道:");Display(1,5,5,1,V iewTongDao);Display(2,0,4,0,"温度值:");Display(2,4,4,1,V iewTemperature);Display(2,6,2,1,"℃");}else if(MODESelect==3){ViewChangeTime[0]=ChangeTime/10+0x30;ViewChangeTime[1]=ChangeTime%10+0x30;Display(0,0,2,0,"模式");Display(0,2,1,1,&V iewMODESelect);Display(0,3,5,0,":设置时间");Display(1,0,5,0,"切换时间:");Display(1,5,5,1,V iewChangeTime);Display(2,0,14,1," "); //本行清屏}}void TDSelect(void) //AD通道设置{if(TongDao>=5) TongDao=1;if(TongDao<=0) TongDao=4;if(TongDao==1) {ADC=0;ADB=0;ADA=0;}else if(TongDao==2) {ADC=0;ADB=0;ADA=1;}else if(TongDao==3) {ADC=0;ADB=1;ADA=0;}else if(TongDao==4) {ADC=0;ADB=1;ADA=1;}}main(){unsigned char AdCount=0; //用来存放AD采集次数InitLCD();TMOD=0x11; //定时器0初始化TH0=THC0;TL0=TLC0;TR0=1;ET0=1;EA=1;P2|=0x07; //按键初始为高while(1){ADWR=1; /************/ADCS=0; /************/ADWR=0; /**AD初始化**/ADWR=1; /************/while(!EOC); //等待转换结束ADRD=0;GetAdData[AdCount]=P0; //读取转换结果AdCount++;if(AdCount>=10) //连续采集10次值{AdCount=0;search(); //查表LED1=!LED1;LcdDisplay(); //显示}}}void Timer0() interrupt 1{static unsigned char count=0,UPFlag=1,DOWNFlag=1; //按键标志位static unsigned int TimeCount=0;TH0=THC0;TL0=TLC0;if(MODE==0||UP==0||DOWN==0){count++;if(count>=30) //消抖处理{count=0;if(MODE==0) //按键按下{MODESelect++;if(MODESelect>=4) MODESelect=1;}else if(UP==0){UPFlag=0;if(MODESelect==2){TongDao++;TDSelect();}}else if(DOWN==0){DOWNFlag=0;if(MODESelect==2){TongDao--;TDSelect();}}}}else count=0;if(MODESelect==1){TimeCount++;if(TimeCount>=(ChangeTime*1000/5)){TimeCount=0;TongDao++;TDSelect();}}else if(MODESelect==3){if(UPFlag==0) {UPFlag=1;ChangeTime++;}else if(DOWNFlag==0){DOWNFlag=1;ChangeTime--;if(ChangeTime<=0) ChangeTime=1;}}}。
XXXX学院实验报告Experimentation Report of Taiyuan Normal University系部计算机年级大三课程单片机原理与接口技术姓名同组者日期学号项目数码管显示温度一、实验目的1、了解单片机顺序执行的特点;2、掌握C语言的编写和keilc51的使用;3、熟悉DS18B20温度传感器的使用。
二、实验仪器硬件资源:单片机开发板笔记本电脑;软件资源:软件 Keil uVision5;三、实验原理1、流程图2、连接图四、实验结果数码管显示当前温度,用手握住温度传感器,数码管显示的温度值变大。
四、实验代码及分析//主函数void main(){while(1){LcdDisplay(Ds18b20ReadTemp()); //显示读取到的温度值}}void LcdDisplay(int temp) //lcd显示{float tp;if(temp< 0) //当温度值为负数{DisplayData[0] = 0x40; //因为读取的温度是实际温度的补码,所以减1,再取反求出原码temp=temp-1;temp=~temp;tp=temp;temp=tp*0.0625*100+0.5; //留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点后面的数自动去掉,//不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5 //的就算加上0.5,还是在小数点后面。
}else{DisplayData[0] = 0x00;tp=temp; //因为数据处理有小数点所以将温度赋给一个浮点型变量//如果温度是正的那么,那么正数的原码就是补码它本身temp=tp*0.0625*100+0.5;//留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换//为整型的时候把小数点后面的数自动去掉,不管是否大于0.5,而+0.5之//后大于0.5的就是进1了,小于0.5的就算加上0.5,还是在小数点后面。
《单片机原理与应用》课程实验报告院系:班级:学生:学号:指导教师:设计时间:哈尔滨工业大学1 实验的目的、内容和设备1.1 实验的目的单片机综合实验的目的是训练单片机应用系统的编程及调试能力,通过对一个单片机应用系统进行系统的编程和调试,掌握单片机应用系统开发环境和仿真调试工具及仪器仪表的实用,掌握单片机应用程序代码的编写和编译,掌握利用单片机硬件仿真调试工具进行单片机程序的跟踪调试和排错方法,掌握示波器和万用表等杆塔工具在单片机系统调试中应用。
1.2 实验内容实验的内容是利用APP001开发板实现一个温度测量显示和控制的单片机应用系统,利用APP001开发板上的温度传感器测量温度,通过键盘输入一个稳定设定值,当测量温度高于设定温度时发出声音报警,开启散热风扇开关,并在LCD上显示实时温度值,设定温度值和散热风扇的开关状态,其中日期和时间利用单片机的定时器来产生,并能通过键盘来设定。
通过该实验学习和掌握以下的内容:1)MPLAB开发环境的使用,程序编写和排错及软件仿真2)利用MPLAB和ICD2对程序进行在线仿真和调试3)使用万用表和示波器等仪器对硬件系统进行测量和调试4)PIC18F452单片机的I/O和PWM驱动及编程方法5)PIC18F452单片机LCD和键盘接口及编程方法6)PIC18F452单片机的USART编程及与PC机的通讯方法7)利用Timer1外接32.768kHz的晶振产生RTC1.3 实验设备1)运行MPLAB的PC机2)示波器、万用表3)直流电源4)ICD2仿真器5)APP001多功能实验板2 总体设计2.1 硬件总体设计系统组成方案图1系统框图2.2 软件总体设计图2主程序框图图3 中断程序框图3 硬件设计1)散热风扇开发输出控制:实验中我们利用一个LED来模拟风扇状态,当散热风扇开关打开时,LED被点亮发光,当散热风扇关闭时,LED不发光。
开发板上的指示灯D11由RB2,低电平亮,高电平灭。
绍兴文理学院数理信息学院课程设计报告书题目温度测量仪表物电系电子信息工程专业 101 班姓名姚丽平指导教师朱敏杰时间 20XX年 7月12日课程设计任务书温度测量仪表摘要随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术,本文主要介绍了一个基于 89S51 单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感器DS18B20数据采集过程。
对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。
DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。
嵌入式系统采用的是微处理器,实现相对单一的功能,采用独立的操作系统,往往不需要大量的外围器件。
因而在体积上功耗上有其自身的优势,相比之下,一个使用Windows CE的PDA,仅靠机内电源使用几天,而一台笔记本仅仅能够支持三小时左右。
其实一个软硬件高度结合的产物,能提高执行速度和系统的可靠性。
关键词单片机;DS18B20 ;温度传感器;数字温度计; AT89S51;嵌入式系统目录1. 设计概述温度控制系统广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等 ,常用的控制电路根据应用场合和所要求的性能指标有所不同 , 在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。
这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。
单片机课程设计报告-数字温度计单片机是一种集成了微处理器核心、存储器、外围接口和定时器等功能模块的微型计算机。
在现代电子科技领域中,单片机被广泛应用于各种嵌入式系统中。
本课程设计主要针对单片机的应用实践,通过设计一个数字温度计来锻炼学生的单片机编程能力,同时加深对数字温度计的原理及应用的理解。
二、设计目标本课程设计旨在使学生掌握以下内容:1. 掌握单片机的基本原理和编程方法;2. 了解数字温度计的原理和应用;3. 熟悉温度传感器的使用和数据处理方法;4. 能够利用单片机开发出一个简单的数字温度计。
三、设计内容本课程设计主要包括以下内容:1. 单片机原理和编程基础;2. 数字温度计的原理和应用介绍;3. 温度传感器的选型及使用方法;4. 单片机数字温度计的设计和实现。
四、设计步骤1. 单片机原理和编程基础学生首先将学习单片机的基本原理和编程方法,包括单片机的体系结构、存储器组成、I/O口的使用、定时器的应用等内容。
2. 数字温度计的原理和应用介绍学生将了解数字温度计的基本原理和应用场景,包括数字温度计的工作原理、常见的数字温度计种类、数字温度计的应用领域等。
3. 温度传感器的选型及使用方法学生将学习温度传感器的选型原则,了解各种温度传感器的特点及使用方法,包括模拟温度传感器和数字温度传感器。
4. 单片机数字温度计的设计和实现学生将利用所学的单片机编程知识和温度传感器的使用方法,设计并实现一个简单的数字温度计。
学生需要考虑温度测量精度、显示方式、数据处理方法等问题。
五、教学方法本课程设计采用理论教学与实践相结合的教学方式,通过理论课堂讲解和实际操作演示相结合,加深学生对单片机和数字温度计知识的理解和掌握。
同时,鼓励学生合作学习,共同解决实际问题,提高实战能力。
六、教学评估学生将根据设计的数字温度计的实际测量情况、数据处理方法以及最终的效果进行评估,教师将根据学生的设计方案和实际操作情况进行评分。
同时,学生对单片机编程的理解和掌握水平也将作为评估的重要内容。
第1章引言在日常生活及工农业生产中经常要涉及到温度的检测及控制,传统的测温元件有热点偶,热敏电阻还有一些输出模拟信号得温度传感器,而这些测温元件一般都需要比较多的外部硬件支持。
其硬件电路复杂,软件调试繁琐,制作成本高,阻碍了其使用性。
因此美国DALLAS半导体公司又推出了一款改进型智能温度传感器——DS18B20。
本设计就是用DS18B20数字温度传感器作为测温元件来设计数字温度计。
本设计所介绍的数字温度计与传统温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于测温比较准确得场所,或科研实验室使用。
该设计控制器使用单片机STC89C51,测温传感器使用DS18B20,显示器使用LED.第2章任务与要求2.1测量范围-50~110°C,精确到0.5°C;2.2利用数字温度传感器DS18B20测量温度信号;2.3所测得温度采用数字显示,计算后在液晶显示器上显示相应得温度值;第3章方案设计及论证3.1温度检测模块的设计及论证由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。
而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。
3.2显示模块的设计及论证LED是发光二极管Light Emitting Diode 的英文缩写。
LED显示屏是由发光二极管排列组成的一显示器件。
单片机温度传感器设计报告一、设计目的本设计旨在利用单片机和温度传感器构建一个温度测量系统,实时监测周围环境的温度,并通过显示屏显示出来。
通过这个设计,可以使用户及时了解到室内环境的温度情况,为用户提供一个舒适的居住环境。
二、设计原理1.硬件部分温度传感器:采用数字温度传感器DS18B20,具有高精度、线性度高、抗干扰性好等优点,可以提高温度测量的准确性。
单片机:采用STC89C52单片机,具有丰富的外设资源和强大的计算能力,可以实现温度数据的采集、处理和显示功能。
电源:采用稳压电源,保证系统的稳定性和可靠性。
2.软件部分主程序:通过单片机的AD转换模块,将温度传感器的模拟信号转换为数字信号,然后进行温度计算和数据处理,最后将结果显示在液晶显示屏上。
温度转换算法:根据温度传感器的数据手册,利用公式将采集到的数字信号转换为实际温度值。
实时显示功能:通过控制单片机的定时器和中断,实现对温度数据的实时采集和显示。
三、设计步骤1.硬件连接将温度传感器的VCC接到单片机的5V电源引脚,GND接到单片机的地引脚,DQ接到单片机的P1口。
将液晶显示屏的VCC接到单片机的5V电源引脚,GND接到单片机的地引脚,RS、RW、E分别接到单片机的P2.0、P2.1、P2.2口,D0-D7接到单片机的P0口。
将单片机的P3口接到稳压电源的输出端,作为单片机的电源。
2.软件编程使用Keil C51软件进行编程,编写主程序和温度转换算法。
通过对单片机的中断和定时器的配置,实现对温度数据的实时采集和显示。
通过对液晶显示屏的控制,将温度数值显示在屏幕上。
同时,可以设置温度报警功能,当温度超过设定的范围时,通过蜂鸣器发出警告声。
四、实验结果经过上述设计和调试,实验结果显示良好。
温度传感器能够准确地采集到周围环境的温度值,并通过液晶显示屏实时显示出来。
当温度超过设定范围时,蜂鸣器发出警告声,提醒用户采取相应的措施。
整个系统工作稳定、准确性高、实用性强。
单片机原理与应用实验报告——温度测量显示及设定实验目的:掌握单片机温度测量的原理和方法,了解温度传感器的工作原理,学会通过单片机控制显示屏显示温度,并可以通过按键设定温度。
实验器材:1.单片机(如STC89C52)2.温度传感器(如DS18B20)3.电阻、电容等基本元件4.1602液晶显示屏5.按键开关6.杜邦线、面包板等实验原理:1.单片机温度测量原理:单片机温度测量原理主要是通过温度传感器将温度转化为电压信号,然后单片机通过模拟口接收信号并进行数字转换得到温度数值。
2.温度传感器工作原理:温度传感器内部有一个温度敏感元件,它能根据温度的变化产生相应的电压信号,然后通过数字转换将电压信号转化为数值。
3.单片机与1602显示屏的连接:将1602显示屏的数据线接到单片机的IO口,通过控制IO口输出不同的信号来控制1602的显示。
实验步骤:1.连接电路:将单片机、温度传感器、1602显示屏等元件连接在一起,确保电路正确连接。
2.编写程序:编写单片机程序,根据单片机型号和编程软件的不同,具体编写方式可能会有所不同,但主要目的是通过单片机读取温度传感器的值,并将其转化为温度,最后通过1602显示屏显示温度。
3.调试程序:4.实验数据:在实验过程中需要记录下实验数据,包括温度传感器的电压值、转化的温度值等。
5.结果分析:根据实验数据和实验结果进行分析,对实验结果进行分析和总结。
实验总结:通过本次实验,我掌握了单片机温度测量的原理和方法,了解了温度传感器的工作原理,并成功通过单片机控制1602显示屏显示温度。
通过实验,我体会到了实验设计和实验过程中的困难和挑战,但我也学到了很多知识和技能,提高了实验能力和动手能力。
在今后的学习和工作中,我会继续努力,不断学习和探索,提高自己的实验能力和创新能力。
课程设计报告课程:智能测量仪表题目:智能测量仪表学生:XXXXXX专业年级:2009 自动化指导教师:XXXXXX XXXX信息与计算科学系2013年3月25日智能测量仪表本次课程设计中智能温度测量仪表所采用的温度传感器为LM35DZ。
其输出电压与摄氏温度成线性比例关系,无需外部校准,在0℃~100℃温度围精度为0.4℃~±0.75℃。
,输出电压与摄氏温度对应,使用极为方便。
灵敏度为10.0mV/℃,重复性好,输出阻抗低,电路接口简单和方便,可单电源和正负电源工作。
是一种得到广泛使用的温度传感器。
本次课程设计的主要目的在于让学生把所学到的单片机原理、电子线路设计、传感器技术与原理、过程控制、智能仪器仪表、总线技术、面向对象的程序设计等相关专业课程的容系统的总结,并能有效的使用到项目研发中来,做到学以致用。
课程设计的容主要分为三个部分,即使用所学编程语言(C或者汇编)完成单片机方面的程序编写、使用VB或VC语言完成PC机人机界面设计(也可以用C+API实现)、按照课程设计规完成课程设计报告。
目录1.课程设计任务和要求 (3)1.1 设计任务 (3)2.2 设计要求 (3)2.系统硬件设计 (3)2.1 STC12C5A60S2单片机A/D转换简介 (3)2.2 LM35DZ简介 (7)2.3 硬件原理图设计 (7)3.系统软件设计 (10)3.1 设计任务 (10)3.2 程序代码 (10)3.3 系统软件设计调试 (17)4.系统上位机设计 (18)4.1 设计任务 (18)4.2 程序代码 (18)4.3 系统上位机软件设计调试 (21)5.系统调试与改善 (22)5.1 系统调试 (22)5.2 系统改善 (22)6.系统设计时常见问题举例与解决办法 (24)7.总结 (25)1. 课程设计任务和要求1.1课程设计任务本次课程设计要求设计出智能化温度测量仪表,要求该测量仪表能够将所测得的温度数据和当前电机设备的运行状况远传给上位机。
目录1.前言 (1)2.总体方案设计 (2)3 单元模块的设计 (4)4. 软件设计 (13)5. 系统调试 (17)6. 结论 (20)7. 总结和体会 (21)8. 致谢 (22)9. 参考文献 (23)附录一:仿真图 (24)附录三:实物图 (32)附录四:元件清单 (33)1.前言随着人民生活水平的提高,生活质量在不断的改善。
在当今的现实生活中,温度的测量无处不在,水温的测量,气温的测量,工作环境的温度测量等等。
伴随着科学技术的发展以及智能仪器的应用日渐广泛,现在的温度测量已经脱离了以前那种方式,更多的是采用智能测量的方法。
智能仪器测量有着很多的优点,测量方便快捷,测量误差小,精度高,而且在测量不同环境的温度时可以通过对程序参数的修改达到目的,比以往的温度测量方法先进很多,也方便很多。
随着单片机和传感技术的迅速发展,自动检测领域发生了巨大变化,温室环境自动监测控制方面的研究有了明显的进展,并且必将以其优异的性能价格比,逐步取代传统的温度控制措施。
国外对温度控制技术研究较早,始于20世纪70年代。
先是采用模拟式的组合仪表,采集现场信息并进行指示、记录和控制。
80年代末出现了分布式控制系统。
目前正开发和研制计算机数据采集控制系统的多因子综合控制系统。
现在世界各国的温室控制技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化的方向发展。
像园艺强国荷兰,以先进的鲜花生产技术著称于世,其玻璃温室全部由计算机操作。
英国伦敦大学农学院研制的温室计算机遥控技术,可以观测50km以外温室内的光、温、湿、气和水等环境状况,并进行遥控。
在国内,我国对于温度测控技术的研究较晚,始于20世纪80年代。
我国工程技术人员在吸收发达国家温度测控技术的基础上,才掌握了温度室内微机控制技术,该技术仅限于对温度的单项环境因子的控制。
我国温度测控设施计算机应用,在总体上正从消化吸收、简单应用阶段向实用化、综合性应用阶段过渡和发展。
辽宁科技学院智能仪器设计基础课程设计-- 温度测量显示报警院系: 专业:班级:姓名:学号:指导老师:1. 设计要求:热电阻温度设计:①温度传感器铂 PT100② 显示温度数值,精度0.1 C ③ 温度超限报警2. 方案设计:方案说明:本设计的采用STC89C5为核心,DA0804数据采集。
将外部的模拟信号经过 A/D ( ADC0804转换后送给单片机STC89C52进行处理。
处理后将显示数据传送 给数码管显示。
在到达设定的报警温度时进行报警。
温度测量显示报警是通过铂电阻的阻值随温度的变化而变化, 将阻值的变化通过电桥电路转化成电压变化,用运放把电压放大到AD 可以接受的范围,AD 将电压信号转换成数字信号传输到单片机,经过单片机处理,将温度数值显示到七段数码管上。
当温度大于80C 时蜂鸣器进行报警提示。
3.硬件设计:3.1单片机及其最小应用系统STC89C52是一个高性能单片机,40个引脚,32个外部双向输入/输出(I/O ) 端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口。
各引脚的功能如下:Vss(20):接地。
Vcc(O):接+5V 电源。
XTAL1( 19)和XTAL2( 18):在使用单片机内部振荡电路时,这两个端子用来外接石英晶体和微调电容。
如图3.1所示,本硬件图使用11.0592MHz石英晶振。
RST/V D(9):RST是复位信号输入端。
当此输入端保持两个机器周期(24个振荡周期)的高电平时,就可以完成复位操作。
ALE/PROG(30):ALE是地址锁存允许信号,在访问外部存储器时,用来锁存由P0 口送出的低8位地址信号。
在不访问外部存储器时,ALE以振荡频率1/6的固定速率输出脉冲信号。
因此它可用作对外部输出脉冲信号。
因此它可用作对外输出的时钟。
但要注意,只要外接有存储器,ALE端输出的就不再是连续的周期脉冲信号。
PSEN( 29):它是外部程序存储器ROM的读选通信号。
单片机温度湿度监测实验报告实验目的:
通过单片机实现温度湿度监测,提高数据采集效率,为温湿度环境监测提供可靠数据支持。
实验原理:
1. 温度湿度传感器原理:使用温湿度传感器采集环境温湿度数据,根据传感器的工作原理可以得知当前环境的温度和湿度信息。
2. 单片机原理:单片机作为中央处理器,负责对传感器采集到的数据进行处理,并通过合适的方式进行显示或者存储。
实验步骤:
1. 装置搭建:将温湿度传感器与单片机相连,确保连接正确稳定。
2. 电源连接:为单片机和传感器提供合适的电源连接。
3. 程序编写:根据单片机的开发环境,编写相应的程序代码,实现数据的采集和处理。
4. 调试测试:通过编写好的程序,进行温湿度数据的实时监测,并确保数据的准确性。
5. 数据展示:根据需要,可以将数据通过LED显示屏、LCD屏幕或者串口输出等方式进行展示。
实验结果与分析:
经过实验测试,我们成功地实现了温度湿度的实时监测,并将数据准确地显示在LED显示屏上。
通过对采集到的数据进行分析,我们可以推测环境的变化趋势和稳定性,为温湿度环境的控制和调节提供了依据。
结论:
单片机温度湿度监测实验取得了圆满成功,通过该实验我们不仅学到了温湿度传感器的使用方法,也掌握了单片机的编程技巧。
单片机的应用为我们提供了一种高效、准确地采集环境数据的手段,为温湿度环境监测提供了可靠的数据支持。
参考文献:
无
附录:
实验所用材料和设备清单:
- 单片机
- 温湿度传感器
- 连接线缆
- 电源连接器
实验时间:XXXX年XX月XX日
实验地点:XXXX实验室。
单片机实验报告-温度计成绩:滨江学院单片机原理及应用实验项目温度计DS18B20 院系滨江学院电子工程系专业信息工程学生姓名马骏学号 20142309029二零一七年十一月十八日一、实验目的1.1实验意义在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。
而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。
其缺点如下:● 硬件电路复杂;● 软件调试复杂;● 制作成本高。
本数字温度计设计采用美国DALLAS 半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55~125℃,最高分辨率可达0.0625℃。
DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的热点。
1.2功能要求设计出的DS18B20数字温度计测温范围在-55~125℃,误差在±0.5℃以内,采用LED 数码管直接读显示。
二、实验硬件2.1方案设计按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。
数字温度计总体电路结构框图如图所示:AT89C2051主DS18显示扫描2.2硬件设计温度计电路设计原理图如下图所示,控制器使用单片机AT89C2051,温度传感器使用DS18B20,使用四位共阳LED数码管以动态扫描法实现温度显示2.3主控制器单片机AT89C2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很适合便携手持式产品的设计使用。
系统可用两节电池供电。
AT89C2051的引脚图如下图所示:1、VCC:电源电压。
2、GND:地。
3、P1口:P1口是一个8位双向I/O口。
口引脚P1.2~P1.7提供内部上拉电阻,P1.0和P1.1要求外部上拉电阻。
P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(ANI0)和反相输入(AIN1)。
辽宁科技学院智能仪器设计基础课程设计----温度测量显示报警院系:专业:班级:姓名:学号:时间:指导老师:1.设计要求:热电阻温度设计:①温度传感器铂PT100②显示温度数值,精度0.1℃③温度超限报警2.方案设计:方案说明:本设计的采用STC89C52为核心,DA0804数据采集。
将外部的模拟信号经过A/D(ADC0804)转换后送给单片机STC89C52进行处理。
处理后将显示数据传送给数码管显示。
在到达设定的报警温度时进行报警。
温度测量显示报警是通过铂电阻的阻值随温度的变化而变化,将阻值的变化通过电桥电路转化成电压变化,用运放把电压放大到AD可以接受的范围,AD将电压信号转换成数字信号传输到单片机,经过单片机处理,将温度数值显示到七段数码管上。
当温度大于80℃时蜂鸣器进行报警提示。
3.硬件设计:3.1单片机及其最小应用系统STC89C52是一个高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口。
各引脚的功能如下:Vss(20):接地。
Vcc(0):接+5V电源。
XTAL1(19)和XTAL2(18):在使用单片机内部振荡电路时,这两个端子用来外接石英晶体和微调电容。
如图3.1所示,本硬件图使用11.0592MHz石英晶振。
(9): RST是复位信号输入端。
当此输入端保持两个机器周期(24RST/VPD个振荡周期)的高电平时,就可以完成复位操作。
ALE/PROG(30):ALE是地址锁存允许信号,在访问外部存储器时,用来锁存由P0口送出的低8位地址信号。
在不访问外部存储器时,ALE以振荡频率1/6的固定速率输出脉冲信号。
因此它可用作对外部输出脉冲信号。
因此它可用作对外输出的时钟。
但要注意,只要外接有存储器,ALE端输出的就不再是连续的周期脉冲信号。
PSEN(29):它是外部程序存储器ROM的读选通信号。
在执行访问外部ROM 指令时,会自动产生PSEN信号;而在访问外部数据存储器RAM或访问内部ROM 时,不产生PSEN信号。
目录一、题目分析 (2)二、硬件设计 (5)三、软件设计 (7)四、调试及运行 (21)五、心得体会 (22)一、题目分析1、直流电机正反转及调速直流电机正反转控制现在主要是利用分立元件和芯片驱动,分立元件主要是利用H桥驱动电路,芯片驱动主要是利用L298,采用分立元件和芯片原理是大致相同的。
集成芯片L298内部有两个H桥,可以同时控制两个直流电机,图1中所示为一个典型的直流电机控制电路。
电路得名于“H桥驱动电路”是因为它的形状酷似字母H。
4个三极管组成H的4条垂直腿,而电机就是H中的横杠,如图所示,H桥式电机驱动电路包括4个三极管和一个电机。
要使电机运转,必须导通对角线上的一对三极管。
根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
图1要使电机运转,必须使对角线上的一对三极管导通。
例如,如图2所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。
按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。
当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。
图2 顺时针旋转图3所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。
当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。
图3逆时针旋转驱动电机时,保证H桥上两个同侧的三极管不会同时导通非常重要。
如果三极管Q1和Q2同时导通,那么电流就会从正极穿过两个三极管直接回到负极。
此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值(该电流仅受电源性能限制),甚至烧坏三极管。
基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三极管的开关。
可采用下图作为驱动电路。
实际使用的时候,用分立元件制作H桥是很麻烦的,好在现在市面上有很多封装好的H桥集成电路,接上电源、电机和控制信号就可以使用了,在额定的电压和电流内使用非常方便可靠。
辽宁科技学院智能仪器设计基础课程设计----温度测量显示报警院系:专业:班级:姓名:学号:时间:指导老师:1.设计要求:热电阻温度设计:①温度传感器铂PT100②显示温度数值,精度0.1℃③温度超限报警2.方案设计:温度传感器信号调理 AD0804 STC89C52 数码管显示单片机蜂鸣器报警方案说明:本设计的采用STC89C52为核心,DA0804数据采集。
将外部的模拟信号经过A/D(ADC0804)转换后送给单片机STC89C52进行处理。
处理后将显示数据传送给数码管显示。
在到达设定的报警温度时进行报警。
温度测量显示报警是通过铂电阻的阻值随温度的变化而变化,将阻值的变化通过电桥电路转化成电压变化,用运放把电压放大到AD可以接受的范围,AD将电压信号转换成数字信号传输到单片机,经过单片机处理,将温度数值显示到七段数码管上。
当温度大于80℃时蜂鸣器进行报警提示。
3.硬件设计:3.1单片机及其最小应用系统STC89C52是一个高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口。
各引脚的功能如下:Vss(20):接地。
Vcc(0):接+5V电源。
XTAL1(19)和XTAL2(18):在使用单片机内部振荡电路时,这两个端子用来外接石英晶体和微调电容。
如图3.1所示,本硬件图使用11.0592MHz石英晶振。
(9): RST是复位信号输入端。
当此输入端保持两个机器周期(24RST/VPD个振荡周期)的高电平时,就可以完成复位操作。
ALE/PROG(30):ALE是地址锁存允许信号,在访问外部存储器时,用来锁存由P0口送出的低8位地址信号。
在不访问外部存储器时,ALE以振荡频率1/6的固定速率输出脉冲信号。
因此它可用作对外部输出脉冲信号。
因此它可用作对外输出的时钟。
但要注意,只要外接有存储器,ALE端输出的就不再是连续的周期脉冲信号。
PSEN(29):它是外部程序存储器ROM的读选通信号。
在执行访问外部ROM 指令时,会自动产生PSEN信号;而在访问外部数据存储器RAM或访问内部ROM 时,不产生PSEN信号。
(31):访问外部存储器的控制信号。
当EA为高电平时,访问内部程EA/VPP序存储器;但当程序计数器PC的值超过0FFFH(对8051/80C51/8751)或1FFFH (对8052)时,将自动转向执行外部程序存储器内的程序。
当EA保持低电平时,为对8751片只访问外部程序存储器,不管是否有内部程序存储器。
第二功能VPP内EPROM的21V编程电源输入。
P0.0~P0.7(39~32):双向I/O口P0。
第二动能是访问外部存储器时,可分时用作低8位地址和8位数据线;在对8751编程和效验时,用于数据的输入/输出。
P0口能以吸收电流的方式驱动8个LS型TTL负载。
P1.0~P1.7(1~8):双向I/O口P1。
P1口能驱动(吸收或输出电流)4个LS 型TTL负载。
在对EPROM编程和程序验证时,它接收低8位地址。
在8052单片机中,.P1.0还用作定时器2的记数触发输入端T2,P1.1还用作定时器2的外部控制端T2EX。
P2.0~P2.7(21~28):双向I/O口P2。
P2口可以驱动(吸收或输出电流)4个LS型TTL负载。
第二功能是访问外部存储器时,输出高8位地址。
在对EPROM 编程和效验时,它接收高位地址。
P3.0~P3.7(10~17):双向I/O口P3。
P3口能驱动(吸收或输出电流)4个LS型TTL负载。
P3口的每条引脚都有各自的第二功能。
图3.1 单片机最小应用系统复位电路:本硬件图使用手动复位电路,在按下复位按钮后,电容C通过R1放点,同时电源Vcc通过R1和R2分压。
而R2要比R1大许多,大部分电压降落到R2上,从而使RST端得到一个高电平导致单片机复位。
同时EA=1。
3.2PT100电阻温度传感器电阻温度传感器分为两部分:一部分为电桥电路,另一部分为放大电路。
在3.2图中,测温元件是铂电阻(测温范围0~200℃),铂电阻阻值变化在100~175.86Ω,用电桥来测量RX的变化,将电阻的阻值变化转变成电压的变化。
通过计算可得电桥差模输出为0~0.15V,由于AD转化器件能接受的电压范围为0~5V,所以电桥差模输出要经过运发放大输出。
差模运算放大器如图所接,放大倍数≈30。
将电压放大到0~4.5V,这时就可通过AD转换,将数据传送到单片机处理。
图3.2 PT100电阻调理电路3.3AD0804转换ADC0804是集成A/D 转换器。
它采用CMOS 工艺20引脚集成芯片,分辨率8位,转换时间100us ,输入电压范围在0~5V ,芯片具有三态输出数据锁存器,可直接连接到数据总线上。
图3.3 AD0804转换各引脚名称及作用:V IN (+),V IN (-)——两模拟信号输入端,用以接受单极性、双极性和差模输入信号。
DB7~DB0——具有三态特性数字信号输出口。
AGND——模拟信号地。
DGND——数字信号地。
CLK——时钟信号输入端。
CLKR——内部时钟发生器的外接电阻端。
CS——片选信号输入端,低电平有效。
WR——写信号输入,低电平启动A/D转换。
RD——读信号输入,低电平有效。
INTR——A/D转换结束信号,低电平表示本次转换已完成。
VREF/2——参考电平输入,决定量化单位。
VCC——电源5V输入。
AD0804时序图如下:3.4七段LED数码管动态显示测温范围是0~200℃,我们需要精确到小数点后一位,所以需要四个七段LED数码管。
为了节约单片机的P口,所以我们使用两片74HC573锁存器连接到P0口进行数据传输,来实现动态显示的“段选”和“位选”,U2为段选锁存器,U3为位选锁存器。
P2.6和P2.7端口来控制锁存器的锁存端。
图3.4 数码管显示3.5声报警电路如图3.5所示,蜂鸣器一端连接电源,一端连接PNP三极管e端,三极管c端接地,三极管b端加电阻连接单片机的P2.3口。
当单片机的P2.3口给低电平“0”时,蜂鸣器响起。
3.6硬件设计图完整的的电路图如下:4.软件设计4.1程序流程图开始AD数据传送处理温度数据显示否温度超过设定值?是蜂鸣器报警4.2程序C语言编程程序实现温度测量显示,并在超过80℃的时候报警。
#include<reg52.h>#include<intrins.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned intsbit dula=P2^6;sbit wela=P2^7;sbit adwr=P3^6;sbit adrd=P3^7;sbit beep=P2^3;uint adnum;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, //不带小数点的0~9编码 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; //带小数点的0~9编码void delayms(uint xms) //延时程序{uint i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}void display(uchar qian,uchar bai,uchar shi,uchar ge) //显示程序 {dula=1;P0=table[ge];dula=0;P0=0xff;wela=1;P0=0x5f;wela=0;delayms(5);dula=1;P0=table[shi+10];dula=0;P0=0xff;wela=1;P0=0x6f;wela=0;delayms(5);dula=1;P0=table[bai];dula=0;P0=0xff;wela=1;P0=0x77;wela=0;delayms(5);dula=1;P0=table[qian];dula=0;P0=0xff;wela=1;P0=0x7b;wela=0;delayms(5);}uchar adnumber(void) //ad数据采集{adwr=1;_nop_();adwr=0;_nop_();adwr=1;P0=0xff;adrd=1;_nop_();adrd=0;_nop_();adnum=P1;adrd=1;return adnum;}main(){ uint a,a1,a2,a3,a4;uint temp;wela=1; //AD初始化P0=0x7f;wela=0;while(1){adnumber();temp=adnum*10*44.444444*0.0195+0.5; //数据处理 a1=temp%10;a2=temp%100/10;a3=temp%1000/100;a4=temp/1000;for(a=0;a<10;a++){display(a4,a3,a2,a1); } //数据显示if(temp>800) //报警检测{ beep=0;delayms(50);for(a=0;a<10;a++){display(a4,a3,a2,a1); }beep=1;}}}5.开发板调试按照上述流程图编写程序,下载到开发板上,模拟电压输入值,在数码管上显示温度值,如图(1)(2)所示:当模拟输入1.15V时,输出温度值是51.1℃。
(图1)当模拟输入2.65V时,输出温度值是117.9℃。
(图2)6.参考文献《智能化测量控制仪表原理与设计(第三版)》徐爱钧徐阳编著北京航空航天大学出版社《单片机实用技术与应用》徐成波杨数强李彦林金纯编著清华大学出版社《单片机原理及应用——基于Proteus与Keil C》孟祥莲高洪志编著哈尔滨工业大学出版社《新概念51单片机C语言教程-入门、提高、开发、拓展全攻略》郭天祥编著电子工业出版社7.心得体会本次实习我们使用开发板,keil软件编制了C语言程序,并将程序下载到开发板上进行了调试,验证了我们所设计的程序的可用性。
这次实习还使我理解了编写程序的一些技巧。
单片机应用系统一般包含多个模块的主程序和各种子程序组成。
每个模块都能完成一个明确的任务,实现某个具体的功能,如温度接收、延时、发送、显示等。
采用模块化程序设计的方法,就是讲这些具体的功能程序独立设计和分别调试,最后将这些模板程序连接在一起进行联合调试。
模板化的设计有点:一个模板可以多个程序共享;单个功能设计和调试比较方便,容易完成。