欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于热敏电阻的数字温度计说课讲解.doc

    • 资源ID:52358339       资源大小:343.50KB        全文页数:24页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于热敏电阻的数字温度计说课讲解.doc

    Good is good, but better carries it.精益求精,善益求善。基于热敏电阻的数字温度计-科信学院单片机应用系统(三级)项目设计说明书(2012/2013学年第二学期)题目:基于热敏电阻的数字温度计_专业班级:电子信息工程1021学生姓名:指导教师:马永强吴开兴刘会军马小进设计周数:两周设计成绩:2013年6月28日-目录1实验设计目的22系统软件设计22.1软件总体流程设计22.2系统设计及主要程序32.2.1系统主函数32.2.2汉显lcd1286442.2.3时钟芯片DS130262.2.4ADC0832112.3上位机设计及主要代码142.3.1SerialPort组件142.3.2串口操作152.3.3数据的接收152.3.4保存数据与清空数据173系统硬件电路设计173.1恒温桥电路173.2信号放大电路183.3A/D转换电路183.4控制电路193.5显示电路204总结与展望20参考文献211实验设计目的随着以知识经济为特征的信息化时代的到来人们对仪器仪表的认识更加深入,温度作为一个重要的物理量,是工业生产过程中最普遍,最重要的工艺参数之一。随着工业的不断发展,对温度的测量的要求也越来越高,而且测量的范围也越来越广,对温度的检测技术的要求也越来越高,因此,温度测量及其测量技术的研究也是一个很重要的课题。 本系统的温度测量采用的就是热阻效应。温度测量模块主要为温度测量电桥,当温度发生变化时,电桥失去平衡,从而在电桥输出端有电压输出,但该电压很小。将输出的微弱电压信号通过OP07放大,将放大后的信号输入AD转换芯片,  进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。单片机显示模块电源模块测温模块信号放大模块AD转换模块图1-1系统框图2系统软件设计2.1软件总体流程设计软件设计采用c语言编程,运用模块化程序设计思想,对不同功能模块的程序进行分别编程,以便移植或调用,这样使软件层次结构清晰,有利于软件的调试修改。数字温度计系统软件部分采用模块化设计思想,将系统分为主程序、初始化处理模块、中断检测模块、延时处理模块、数据处理模块、显示模块,其软件系统的主程序实现流程如下图所示:开始DS1302时钟信息采集数据处理12864显示结束系统初始化PT100温度采集图2-1系统软件流程2.2系统设计及主要程序2.2.1系统主函数程序的入口,分别调用了其他头文件,实现了lcd12864汉显的显示,DS1302时钟芯片时间的运行,ADC0832模数转换。主要代码实现如下:#include"reg52.h"#include"intrins.h"#include"lcd12864.h"#include"DS1302.h"#include"ADC0832.h"#defineucharunsignedchar#defineuintunsignedintvoidmain(void)Com_Init();v_Lcd12864Init_f();v_Lcd12864PutString_f(1,0,"年");v_Lcd12864PutString_f(3,0,"月");v_Lcd12864PutString_f(5,0,"日");v_Lcd12864PutString_f(1,1,"时");v_Lcd12864PutString_f(3,1,"分");v_Lcd12864PutString_f(5,1,"秒");v_Lcd12864PutString_f(5,2,"");while(1)Run_DS1302();displayADC();send();_nop_;2.2.2汉显lcd12864主要实现汉显lcd12864接收时钟芯片DS1302与A/D转换模块传递来的温度与时间,并显示在液晶屏上。主要代码实现如下:#include"lcd12864.h"#include"intrins.h"#defineucharunsignedchar#defineuintunsignedintvoidv_Lcd12864CheckBusy_f(void)/忙检测函数unsignedintnTimeOut=0;SET_INCSET_READCLR_ENSET_ENwhile(io_LCD12864_DATAPORT&0x80)&&(+nTimeOut!=0);CLR_ENSET_INCSET_READvoidv_Lcd12864SendCmd_f(unsignedcharbyCmd)/发送命令v_Lcd12864CheckBusy_f();SET_INCSET_WRITECLR_ENio_LCD12864_DATAPORT=byCmd;_nop_();_nop_();SET_EN_nop_();_nop_();CLR_ENSET_READSET_INCvoidv_Lcd12864SendData_f(unsignedcharbyData)/发送数据v_Lcd12864CheckBusy_f();SET_DATASET_WRITECLR_ENio_LCD12864_DATAPORT=byData;_nop_();_nop_();SET_EN_nop_();_nop_();CLR_ENSET_READSET_INCvoidv_DelayMs_f(unsignedintnDelay)/延时unsignedinti;for(;nDelay>0;nDelay-)for(i=125;i>0;i-);voidv_Lcd12864Init_f(void)/初始化v_Lcd12864SendCmd_f(0x30);/基本指令集v_DelayMs_f(50);v_Lcd12864SendCmd_f(0x01);/清屏v_DelayMs_f(50);v_Lcd12864SendCmd_f(0x06);/光标右移v_DelayMs_f(50);v_Lcd12864SendCmd_f(0x0c);/开显示voidv_Lcd12864SetAddress_f(unsignedcharx,y)/地址转换unsignedcharbyAddress;switch(y)case0:byAddress=0x80+x;break;case1:byAddress=0x90+x;break;case2:byAddress=0x88+x;break;case3:byAddress=0x98+x;break;default:break;v_Lcd12864SendCmd_f(byAddress);voidv_Lcd12864PutString_f(ucharx,uchary,uchar*pData)v_Lcd12864SetAddress_f(x,y);while(*pData!='0')v_Lcd12864SendData_f(*pData+);2.2.3时钟芯片DS1302主要为汉显12864提供时间输出。主要代码实现如下:#include"DS1302.h"#include"intrins.h"#include"lcd12864.h"#defineucharunsignedchar#defineuintunsignedintvoidv_RTInputByte(ucharucDa)/功能:往DS1302写入1Byte数据uchari;ACC=ucDa;T_RST=1;for(i=8;i>0;i-)T_IO=ACC0;T_CLK=1;T_CLK=0;ACC=ACC>>1;ucharuc_RTOutputByte(void)/从DS1302读取1Byte数据uchari;T_RST=1;for(i=8;i>0;i-)ACC=ACC>>1;T_IO=1;ACC7=T_IO;T_CLK=1;T_CLK=0;return(ACC);voidv_W1302(ucharucAddr,ucharucDa)/往DS1302写入数据ucAddr:DS1302地址,ucDa:要写的数据T_RST=0;T_CLK=0;T_RST=1;v_RTInputByte(ucAddr);/写地址_nop_();_nop_();v_RTInputByte(ucDa);/写1Byte数据T_CLK=1;T_RST=0;ucharuc_R1302(ucharucAddr)/读取DS1302某地址的数据ucAddr:DS1302地址ucharucDa;T_RST=0;T_CLK=0;T_RST=1;v_RTInputByte(ucAddr);/写地址,命令_nop_();_nop_();ucDa=uc_RTOutputByte();/读1Byte数据T_CLK=1;T_RST=0;return(ucDa);/ucDa:读取的数据voidv_BurstW1302T(uchar*pSecDa)/往DS1302写入时钟数据uchari;v_W1302(0x8e,0x00);/控制命令,WP=0,写操作T_RST=0;T_CLK=0;T_RST=1;v_RTInputByte(0xbe);/0xbe:时钟多字节写命令for(i=8;i>0;i-)/8Byte=7Byte时钟数据+1Byte控制v_RTInputByte(*pSecDa);/写1Byte数据pSecDa+;T_CLK=1;T_RST=0;voidv_BurstR1302T(uchar*pSecDa)/读取DS1302时钟数据uchari;T_RST=0;T_CLK=0;T_RST=1;v_RTInputByte(0xbf);/0xbf:时钟多字节读命令for(i=8;i>0;i-)*pSecDa=uc_RTOutputByte();/读1Byte数据pSecDa+;T_CLK=1;T_RST=0;voidv_BurstW1302R(uchar*pReDa)/往DS1302寄存器数写入数据pReDa:寄存器数据地址uchari;v_W1302(0x8e,0x00);/控制命令,WP=0,写操作T_RST=0;T_CLK=0;T_RST=1;v_RTInputByte(0xfe);/0xbe:时钟多字节写命令for(i=31;i>0;i-)/31Byte寄存器数据v_RTInputByte(*pReDa);/写1Byte数据pReDa+;T_CLK=1;T_RST=0;voidv_BurstR1302R(uchar*pReDa)/读取DS1302寄存器数据pReDa:寄存器数据地址uchari;T_RST=0;T_CLK=0;T_RST=1;v_RTInputByte(0xff);/0xbf:时钟多字节读命令for(i=31;i>0;i-)/31Byte寄存器数据*pReDa=uc_RTOutputByte();/读1Byte数据pReDa+;T_CLK=1;T_RST=0;/*输入:pSecDa:初始时间地址。初始时间格式为:秒分时日月星期年*7Byte(BCD码)1B1B1B1B1B1B1B*/voidv_Set1302(uchar*pSecDa)/设置初始时间uchari;ucharucAddr=0x80;v_W1302(0x8e,0x00);/控制命令,WP=0,写操作for(i=7;i>0;i-)v_W1302(ucAddr,*pSecDa);/秒分时日月星期年pSecDa+;ucAddr+=2;v_W1302(0x8e,0x80);/控制命令,WP=1,写保护voidv_Get1302(ucharucCurtime)/读取DS1302当前时间ucCurtime:保存当前时间地址。BCD码uchari;ucharucAddr=0x81;for(i=0;i<7;i+)ucCurtimei=uc_R1302(ucAddr);/格式为:秒分时日月星期年ucAddr+=2;uchardectobcd(uchardec)/DEC码转换为BCD码ucharbcd;bcd=0;while(dec>=10)dec-=10;bcd+;bcd<<=4;bcd|=dec;returnbcd;ucharbcdtodec(ucharbcd)/BCD码转换为DEC码uchardata1;data1=bcd&0x0f;/取BCD低4位bcd=bcd&0x70;/剔除BCD的最高位和低4位。data1+=bcd>>1;data1+=bcd>>3;/用位移代替乘法运算returndata1;voidWrite_DS1302Init(void)/写入数据初始化v_W1302(0x8e,0);v_W1302(0x80,0x50);/写入秒v_W1302(0x8e,0);v_W1302(0x82,0x59);/写入分v_W1302(0x8e,0);v_W1302(0x84,0x07);/写入小时v_W1302(0x8e,0);v_W1302(0x86,0x08);/写入日v_W1302(0x8e,0);v_W1302(0x88,0x06);/写入月v_W1302(0x8e,0);v_W1302(0x8a,0x05);/写入星期v_W1302(0x8e,0);v_W1302(0x8c,0x13);/写入年voidRun_DS1302()ucharsec,min,hour,day,month,year,week;v_W1302(0x8f,0);sec=bcdtodec(uc_R1302(0x81);/读出DS1302中的秒v_W1302(0x8f,0);min=bcdtodec(uc_R1302(0x83);/读出DS1302中的分v_W1302(0x8f,0);hour=bcdtodec(uc_R1302(0x85);/读出DS1302中的小时v_W1302(0x8f,0);day=bcdtodec(uc_R1302(0x87);/读出DS1302中的日v_W1302(0x8f,0);month=bcdtodec(uc_R1302(0x89);/读出DS1302中的月v_W1302(0x8f,0);year=bcdtodec(uc_R1302(0x8d);/读出DS1302中的年v_W1302(0x8f,0);week=bcdtodec(uc_R1302(0x8b);/读出星期v_Lcd12864SetAddress_f(0,0);v_Lcd12864SendData_f(year/10%10+48);v_Lcd12864SendData_f(year%10+48);v_Lcd12864SetAddress_f(2,0);v_Lcd12864SendData_f(month/10%10+48);v_Lcd12864SendData_f(month%10+48);v_Lcd12864SetAddress_f(4,0);v_Lcd12864SendData_f(day/10%10+48);v_Lcd12864SendData_f(day%10+48);v_Lcd12864SetAddress_f(6,0);v_Lcd12864SendData_f(week+48);v_Lcd12864SetAddress_f(0,1);v_Lcd12864SendData_f(hour/10%10+48);v_Lcd12864SendData_f(hour%10+48);v_Lcd12864SetAddress_f(2,1);v_Lcd12864SendData_f(min/10%10+48);v_Lcd12864SendData_f(min%10+48);v_Lcd12864SetAddress_f(4,1);v_Lcd12864SendData_f(sec/10%10+48);v_Lcd12864SendData_f(sec%10+48);2.2.4ADC0832本系统最重要的模块,是实现本项目数字温度计系统基本功能的核心模块,在本模块中传递出0255共256个数字,然后通过分段计算得出温度。本模块代码中还加入了串口通信,串口初始化为方式二,9600比特率。主要代码实现如下:#include"ADC0832.h"#include"intrins.h"#include"lcd12864.h"#defineucharunsignedchar#defineuintunsignedintucharl_temp;unsignedcharLcdBuf110=""ucharADC0832_Read(ucharch)uchari;ucharADC_buff=0;ADC0832_CS=1;ADC0832_DIO=1;/启动位ADC0832_CLK=0;ADC0832_CS=0;_nop_();ADC0832_CLK=1;_nop_();ADC0832_CLK=0;ADC0832_DIO=1;/送SGL/DIF位_nop_();ADC0832_CLK=1;_nop_();ADC0832_CLK=0;if(ch=0)ADC0832_DIO=0;/送转换通道值elseADC0832_DIO=1;ADC0832_CLK=1;_nop_();ADC0832_CLK=0;_nop_();ADC0832_DIO=1;/释放DIO端口,转由ADC控制for(i=0;i<8;i+)_nop_();ADC0832_CLK=0;_nop_();ADC0832_CLK=1;_nop_();if(ADC0832_DIO=1)ADC_buff=ADC_buff+1;/读取8位数据ADC_buff=ADC_buff<<1;_nop_();_nop_();ADC0832_CS=1;ADC0832_CLK=1;returnADC_buff;/返回转换值unsignedintADC0832da_to_Volage(unsignedcharda)unsignedintVolage;floattt;tt=da*4.95/255;Volage=tt*100+0.5;returnVolage;voiddisplayADC()chari;intw;inttemp,temp2,l_temp1;unsignedlongres;uintl_v;l_temp=ADC0832_Read(0);l_v=ADC0832da_to_Volage(l_temp);v_Lcd12864SetAddress_f(0,3);l_temp1=l_temp*2;res=(float)(2550000+110000*(512-l_temp1)/30)/(2550-11*(512-l_temp1)/30);temp=(float)(res*10000-10000000)/3851-545;temp2=temp;if(temp>=0)for(i=6;temp>0;i-)LcdBuf1i=temp%10+48;temp/=10;if(temp<0)w=-temp;for(i=6;w>0;i-)LcdBuf1i=w%10+48;w/=10;if(i>=0&&temp<0)if(temp>-10)LcdBuf1i='0'i-;LcdBuf1i='-'i-;for(;i>=0;i-)LcdBuf1i=''for(i=0;i<5;i+)LcdBuf1i=LcdBuf1i+1;if(LcdBuf14='')LcdBuf14='0'LcdBuf15='.'v_Lcd12864PutString_f(0,2,LcdBuf1);voidCom_Init(void)/串口初始化TMOD=0x20;PCON=0x00;SCON=0x50;TH1=0xFd;/波特率9600=11.0592*1000000/12/(0x100-0xfd)/32TL1=0xFd;TR1=1;voidsend_char_com(unsignedcharch)/发送一个字符SBUF=ch;while(TI=0);TI=0;voidsend_string_com(unsignedchar*str,unsignedintstrlen)/向串口发送一个字符串,strlen为该字符串长度unsignedintk=0;dosend_char_com(*(str+k);k+;while(k<strlen);voidsend()send_string_com(LcdBuf1,10);2.3上位机设计及主要代码上位机即简易的串口小助手,主要用于对串口的管理及对下位机数据的接收。本程序有C#编写,方便简洁。2.3.1SerialPort组件在VisualStudio2008开发工具中,可以不再采用第三方控件的方法来设计串口通讯程序。NETFramework2.0类库包含了SerialPort类,方便地实现了所需要串口通讯的多种功能,可以实现MSComm编程方法快速转换到以SerialPort类为核心的串口通讯。本上位机选用固定串口COM1,波特率为9600,器件属性如图2-2所示:图2-2设置串口属性2.3.2串口操作在程序中添加一个打开串口按钮btnOpen,btnOpen.Text初始化为“打开串口”。在btnOpen响应函数中加入以下代码:privatevoidbtnOpen_Click(objectsender,EventArgse)if(btnOpen.Text="打开串口")btnOpen.Text="关闭串口"serialPort1.Open();elsebtnOpen.Text="打开串口"serialPort1.Close();设置窗体响应事件,代码如下:privatevoidForm1_Load(objectsender,EventArgse)btnOpen.Text="打开串口"这时该程序已经具有开关串口的作用,可以用单片机虚拟串口互连方法方法进行串口测试。2.3.3数据的接收数据接收大体有两种方案:1、主动定时读取;2、事件响应驱动。事件响应驱动这种方式是串口通信上位机制作的主要方式,其采用中断思想而成,当串口输入缓冲区中的字节数据大于某个设定的个数时,触发串口输入中断,这时在中断程序中读取串口输入缓冲区中的数据,具有实时性和灵活性,是个常用的较好的方法。本程序也是采用这种方法来进行串口输入缓冲区的实时数据读取。.NET中封装了SerialPort类表示串行端口资源。命名空间:System.IO.Ports程序集:System(在System.dll中)除了前面用到的串口常规属性设置(BuadRate,PortName),这里用到了一个新的串口属性:ReceivedBytesThreshol获取或设置DataReceived事件发生前内部输入缓冲区中的字节数。这个ReceiveBytesThreshold属性即是设置串口输入缓冲区中的数据字节大于ReceiveBytesThreshold时触发DataReceived事件。主要代码如下:stringserialReadString;privatevoidserialPort1_DataReceived(objectsender,SerialDataReceivedEventArgse)serialReadString=serialPort1.ReadExisting();this.rTB_receive.Invoke(newMethodInvoker(delegatethis.rTB_receive.AppendText(serialReadString););此时接收功能已经实现,如图2-3所示:图2-3上位机接收数据2.3.4保存数据与清空数据本模块仅为完善上位机功能,程序简单,主要代码实现如下:privatevoidbtnSave_Click(objectsender,EventArgse)trySystem.IO.FileStreamobjfile;saveFileDialog1.ShowDialog();objfile=System.IO.File.Create(saveFileDialog1.FileName);objfile.Close();objfile.Dispose();System.IO.StreamWriterobjfil=newSystem.IO.StreamWriter(saveFileDialog1.FileName);objfil.Write(rTB_receive.Text);objfil.Close();objfil.Dispose();catchMessageBox.Show("数据未保存!");privatevoidbtnClear_Click(objectsender,EventArgse)rTB_receive.Clear();3系统硬件电路设计系统由五大部分组成:(1)测温电桥温量电路;(2)数据采集,滤波,放大,AD转换电路;(3)单片机AT89C51控制及数据计算电路;(4)电源电路;(5)温度实时显示电路。3.1恒温桥电路本次课程设计的测温电路为测温电桥,测温电桥的主要部分是热敏电阻。本次设计采用的是正温度系数的热电阻PT100,它是最常用的温度传感器之一,它具有较好的长期稳定性,利用适当的数据处理设备就可以传输、显示并记录其温度输出。因为热敏电阻的阻值和温度呈正比关系,我们只需将已知电流流过该电阻就可以得到与温度成正比的输出电压。Pt100是电阻式温度传感器,测温的本质其实是测量传感器的电阻,通常是将电阻的变化转换成电压或电流等模拟信号,然后再将模拟信号转换成数字信号,再由处理器换算出相应温度。测温电路原理图如图3-1所示:图3-1测温电路原理图电桥原理图如图3-2所示:图3-2电桥原理图3.2信号放大电路本次课程设计,放大模块采用的是LM324放大集成电路。LM324是四运放集成电路,它采用14脚双列直插塑料封装,外形如图所示。它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。3.3A/D转换电路此次课程设计的A/D转换电路,负责将放大后的模拟电压信号转化为可供单片机识别的数字信号。此次课程设计选用ADC0832芯片。ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。芯片转换时间仅为32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。电路原理图如图3-3所示:图3-3A/D转换电路由于ADC0832是8位分辨率,返回的数值在0255之间,对应模拟数值为05V,因此每一档对应的电压值约为0.0196V。3.4控制电路AT89C51单片机最小系统由AT89C51单片机及其外围电路组成,是数字温度计系统的核心。AT89C51单片机在高温环境中稳定性好,支持在线编程ISP,无需专用的编程器,方便调试.AT89C51单片机对很多嵌入式控制应用提供了一个高灵活有效的解决方案。它的作用是控制TLC2543进行模数转换、形成必要的时序、进行数据计算以及控制数码管显示。AT89C51单片机各个引脚分布如图3-4所示:图3-4AT89C51单片机引脚图3.5显示电路显示电路采用的是12864液晶显示模块。带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。4总结与展望本人在此次课程设计里主要负责串口通信、上位机设计与温度输出公式。经过一个多星期的制作,我们的作品终于成功出炉。这是继大二相对较简单的课程设计后一次真正的挑战。当我们拿到题目时,便知道这与大二时的有着本质的区别。题目的复杂程度远高于从前,虽然看起来需要实现的功能不多,但是要使温度严格达到要求的精度还是有相当的困难,这与电路图的设计,以及程序的写法上有很大的关系,稍有不慎,就会使最后得到的温度值不准确,并且误差较大。所以我们精心设计了原理图,还研究了多种热敏电阻的原理与适用范围,在多次修正与测试后才得到了现在相对较完美的结果。为了体现我们与别人的不同,我们尽量使作品的功能齐全,并使用多种方式完成设计,并且易于操作与实现。在完成基本功能的前提下,我们完成了上位机的设计,并尝试用查表法实现温度的输出(虽然查表法没有成功),尽管花费了很多时间与精力,但是看到最终所有的功能都实现了,我们都感到十分欣慰与欢喜。特别是串口通信这里,由于是第一次接触,要将一个完全不懂的东西搞懂,实属不易。C语言的学习与使用,使我进步了不少,这对于我来说是很重要的提高。我会吸取这次的经验,希望下次我能做的更好!参考文献1秦志强.C51单片机应用与C语言程序设计M.电子工业出版社,2009-9-1.2谢维成,杨加国,董秀成.单片机原理与应用及C51程序设计M.清华大学出版社,2009-9-1.3MaximIntegratedProducts.PT100温度变送器的正温度系数补偿EB/OL.2010.项目设计评语项目设计成绩指导教师(签字)年月日

    注意事项

    本文(基于热敏电阻的数字温度计说课讲解.doc)为本站会员(1595****071)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开