第一范文网 - 专业文章范例文档资料分享平台

【精品】基于msp430单片机和DS18B20使用数码管显示的温度测量_毕业论文设计40论文41

来源:用户分享 时间:2026/8/20 11:06:53 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

图7 DS18B20的16位二进制形式

例 如+125℃的数字输出为07D0H (正温度 直接吧16进制数转成10进制即得到温度值 )

-55℃的数字输出为 FC90H。 (负温度 把得到的16进制数 取反后 加1 再转成10进制数) 程序C代码如下: 温度计算程序 void GetT(){

if((MSB&0xF0)>0){ 判断是否为负温度 flag=1; }else{ flag=0;

17

}

if(flag){ 如果为负温度取反加1 MSB=~MSB; LSB=~LSB+1; }

t1=MSB<<4; 得到温度整数部分 t1|=(LSB>>4);

计算各位数码管要显示的数值 if(flag){

Bit[1]=16; 如果为负温度则显示\}else{ Bit[1]=t1100; }

Bit[2]=t1010; Bit[3]=t1; }

18

图 8 温度转换的例图 4、处理数码管显示的子程序

本设计使用的是四位十二段共阴极数码管,其中有四个位选引脚,控制数码管的各个位,八个段选引脚,控制每一个数码管的八个段位a、b、c、d、e、f、g、dp,详细如上图3的引脚图,共阴极数码管各引脚对高电平有效,实现其对温度的显示的C程序如下: 数码管扫描显示程序 void Display(void){ for(uchar i=0;i<4;i++){ P3OUT=BitCode; 输出位码

19

if(i==3){ 输出段码,如果第三位显示小数点 P2OUT=Code[Bit[i]]&0x7F; }else{

P2OUT=Code[Bit[i]]; }

BitCode<<=1;位码右移一位 if(BitCode==0x10) BitCode=0x01; DelayMs(2); 延时1ms P2OUT=0XFF; } }

四、系统调试 1、硬件检测和调试

硬件调试比较简单,在系统设计的过程中,由于主控制器(MSP430F149单片机)部分是集成在单片机MSP430仿真器FET上的。因此主要是对DS18B20测温模块以及LED数码管数字显示模块进行硬件检测和调试。因此我们用软件proteus 7 对硬件电路进行仿真,其仿真截图如下:

20

【精品】基于msp430单片机和DS18B20使用数码管显示的温度测量_毕业论文设计40论文41.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c100q16h4in75cln2z0an3ef8l940oa007vp_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top