资源描述:
《单片机温度测量系统设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、桂林电子科技大学微机单片机接口设计报指导老师:吴兆华学生:杨运泽学号:092011113桂林电子科技大学机电工程学院《微机综合设计》设计报告一、设计题目1二、设计内容与要求1三、设计目的意义1四、系统硬件电路图1五、程序流程图与源程序25.1程序流程图25.2源程序3六、系统功能分析与说明36.1总体功能实现说明36.2元器件的选择及功能介绍36.2.1元器件的选择36.2.2元器件的功能介绍4七、设计体会8八、参考文献9《温度测量系统》设计报告一、设计题目温度测量系统设计二、设计内容与要求用AT89S51单片机控制DS18B20温度传感器测量温度变化,
2、并用LED数码管显示测得的温度值。三、设计目的意义1、熟悉和掌握单片机控制DS18B20温度传感器采集温度信号的方法;2、熟悉和掌握单片机的结构及工作原理,掌握单片机内部功能模块的应用,加深对单片机理论知识的理解;3、掌握单片机的接口及相关外围芯片的特性、使用与控制方法;4、掌握单片机的编程方法,调试方法;5、掌握单片机应用系统的构建和使用,为以后设计和实现单片机应用系统打下良好的基础。U9、系统硬件电路图(1)温度测量系统仿真原理图如下:图1:电路原理图(2)PCB图如下:五、程序流程图与源程序5.1程序流程图5.2源程序#includettinclu
3、dettinclude#includc图3:程序流程图//引用标准库的头文件#defineucharunsignedchar#defineuintunsignedintuchartplsb,tpmsb;sbitDQ二P3"5;//温度值低位、高位字节//数据通信线DQunsignedunsignedunsignedunsignedunsignedunsignedunsignedcharTZ=O;charTX=O;intwd;charcharcharcharshi;ge;shifen;
4、baifen;//转换后的温度值整数部分//传换后的温度值小数部分//转换后的温度值BCD码形式//整数十位//整数个位//十分位//百分位ucharcodetablc[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,Ox79,0x71};ucharcodetabled□二{Oxbf,0x86,Oxdb,Oxcf,0xe6,Oxed,Oxfd,0x87,Oxff,Oxef,0xf7,Oxfc,0xb9,Oxde,0xf9,Oxfl};ucharcodetab
5、lewe[]={Oxfe,Oxfd,Oxfb,0xf7};voiddelay(uintt){uinti;while(t--){for(i=0;i<125;i++)}}/*产生复位脉冲初始化DS18B20*/voidTxReset(void){uinti;DQ二0;/*拉低约900us*/i=100;while(i>0)i--;DQ=1;i=4;while(i>0)}//产生上升沿i一一;/*等待应答脉冲*/voidRxWait(void){uinti;whi1e(DQ);while(~DQ);i=4;wMle(i>0)i--;}//检测到应答脉冲/*读取
6、数据的一位,满足读时隙要求*/bitRdBit(void){uinti;//i应该有初值bitb;DQ=0;i++;//延吋15us以上,读吋隙下降沿后15us,DS18B20输出数据才有效DQ二1;i++;i++;b=DQ;i=8;while(i>0)i--;return(b);/*读取数据的一个字节*/ucharRdByte(void){uchari,j,b;b=0;for(i=l;i<=8;i++){j二RdBitO;b二(j«7)
7、(b»l);}return(b);}/*写数据的一个字节,满足写1和写0的吋隙要求*/voidWrBytc(ucha
8、rb){uinti;ucharj;bitbtmp;for(j=l;j<=8;j++){btmp=b&OxOl;b二b>>l;//取下一位(由低位向高位)if(btmp){/*写1*/DQ=0;i++;i++;//延吋,使得15us以内拉高DQ二1;i=8;while(i>0)i--;//整个写1时隙不低于60uselse/*写0*/DQ=0;i二8;while(i>0)i—;//保持低在60us至lj120us之间DQ=1;i++;i++;}/*启动温度转换*/voidconvert(void){TxReset();RxWait();delay(1);W
9、rByte(Oxcc);WrByte(0x44);}//产生复位脉冲,初始化DS