温度检测计课程设计---基于单片机的温度检测仪设计内容摘要:

结束 流程图 主程序流程图: 读温度流程图: 读温度子程序: 计算温度子程序: 初始化 调用显示子程序 2S 到。 初次上电 读出温度值温度计算处理显示数据刷新 发温度转换开始命令 N Y N Y Y 发 DS18B20 复位命令 发跳过 ROM 命令 发读取温度命令 读取操作, CRC 校验 9 字节完。 CRC校验正。 确。 移入温度暂存器 结束 N N Y 开始 温度零下 ? 温度值取补码置“ — ”标志 计算小数位温度 BCD值 计算整数位温度 BCD值 结束 置“ +”标志 N Y 四、 温度检测仪程序 include include define disdata P0 define discan P2 define uchar unsigned char define uint unsigned int sbit DQ = P3^7。 //温度输入口 sbit DIN = P0^7。 //led 小数点控制 uchar DQ。 uint h。 uchar code ditab[16]= {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}。 uchar code dis_7[12]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}。 uchar code scan_con[4]={0xf7,0xfB,0xFD,0xFE}。 //列扫描控制字 uchar data temp_data[2]={0x00, 0x00,}。 //读出温度暂存 uchar data display[5]={0x00,0x00,0x00,0x00,0x00}。 //显示单元数据,共 4个数据, 1个运算暂存用 void delay(uint t) { for(。 t0。 t)。 } /******************************显示扫描函数 ******************************/ scan() { char k。 for(k=0。 k4。 k++) //4 位 LED 扫描控制 { disdata=dis_7[display[k]]。 if(k==1){DIN=0。 } //当 K=1 时, P0^7 为低电平显示小数点 discan=scan_con[k]。 //列扫描 delay(30)。 discan=0xFF。 } } /*******************************DS 复位函数 ******************************/ ow_reset(void) { char presence=1。 while(presence) { while(presence) { DQ=1。 _nop_()。 _nop_()。 DQ=0。 delay(50)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。