欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于MSP430上温度传感器的设计.ppt

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

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

    基于MSP430上温度传感器的设计.ppt

    1、基于基于MSP430上温度传上温度传感器的设计感器的设计第五组第五组第五组成员组长:申琪组长:申琪组员:李明扬组员:李明扬 付涛涛付涛涛 郑珍迪郑珍迪 熊宇龙熊宇龙温度传感器介绍 图2 DS18B20的引脚 1.GND:地 2.DQ:数字输入输出 3.VDD:可选的+5V电源DSl8B20 数字温度计提供9位(二进制)温度读数指示器件的温度信息经过单线接口送 入 DSl8B20 或从 DSl8B20 送出因此从主机 CPU 到 DSl8B20 仅需一条线(和地线)DSl8B20 的电源可以由数据线本身提供而不需要外部电源因为每一个 DSl8B20 在出厂时已经给定了唯一的序号因此任意多个 DS

    2、l8B20 可以存放在同一条单线总线上这允许在许多不同的地方放置温度敏感器件 DSl8B20的测量范围从-55到+125增量值为 0.5可在 l s(典型值)内把温度变换成数字。每个DSl8B20包括一个唯一的64位长的序号,该序号值存放在 DSl8B20 内部的 ROM(只读存贮器)中开始8 位是产品类型编码(DSl8B20 编码均为 10H)接着的 48位是每个器件唯一的序号最后8位是前面56位的CRC(循环冗余校验)码DSl8B20中还有用于贮存测得的温度值的两个8位存贮器 RAM 编号为0号和号1号存贮器存放温度值的符号如果温度为负()则1号存贮器8位全为1否则全为0。0号存贮器用于存

    3、放温度值的补码LSB(最低位)的1表示0.5将存贮器中的二进制数求补再转换成十进制数并除以2就得到被测温度(-550125)DSl820 的引脚如图 2所示。每只 D518B20 都可以设置成两种供电方式,即数据总线供电方式和外部供电方式 采取数据总线供电方式可以节省一根导线。但完成温度测量的时间较长采取外部供电方式则多用一根导线但测量速度较快。温度传感器与单片机的连接 温度传感器的单总线(1-Wire)与单片机的P20连接,P20是单片机的高位地址线A8。P2端口是一个带内部上拉电阻的8位双向IO,其输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对该端口写“1”,可通过内部上拉电阻

    4、将其端口拉至高电平,此时可作为输入口使用,这是因为内部存在上拉电阻,某一引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时。如执行MOVX DPTR指令,则表示P2端口送出高8位的地址数据。在访问8位地址的外部数据存储器时,可执行MOVX RI指令,P2端口内容即为特殊功能寄存器(SFR)区中R2寄存器内容,整个访问期间不改变。在Flash编程和程序校验时,P2端口也接收高位地址和其他控制信号。仿真与实物图程序代码DS18B20 温度测量实验/功能:在数码管上显示当前DS18B20 测到的温度/小数部分为4 位,温度为负时,最高位显示-/测量范围:-55 +

    5、125#include msp430 x14x.h#define uint unsigned int#define uchar unsigned char#define DQ_OUT P1DIR|=BIT0#define DQ_IN P1DIR&=BIT0#define DQ_LOW P1OUT&=BIT0#define DQ_HIGH P1OUT|=BIT0#define DQ_DATA P1IN&BIT0/共阳数码管编码表uint Code18=0 x3f,0 x06,0 x5b,0 xB4f,/0,1,2,30 x66,0 x6d,0 x7d,0 x07,/4,5,6,70 x7f,0

    6、x6f,0 x77,0 x7c,/8,9,A,b0 x39,0 x5e,0 x79,0 x71,/C,d,E,F0 x40,0 x00;/-,全灭uchar Bit4=0,0,0,17;/数码管各位显示的数字uchar BitCode=0 x0e,0 x0d,0 x0b,0 x07;/数码管位码初值/uchar wei=0 x01,0 x02,0 x04,0 x08;uint j=0;uint l=0;uchar MSB;/温度高字节uchar LSB;/温度低字节int t1=0;/温度整数部分数值float t2=0;/温度小数部分数值uchar flag;/负温度标志/时钟初始化函数vo

    7、id InitClock(void)BCSCTL1=RSEL2+RSEL1+RSEL0;/XT2 开启 LFXT1 工作在低频模式 ACLK/不分频 最高的标称频率DCOCTL=DCO2+DCO1+DCO0;/DCO 为最高频率doIFG1&=OFIFG;/清除振荡器失效标志for(uint i=255;i0;i-);while(IFG1&OFIFG);/判断XT2 是否起振BCSCTL2=SELM1+SELS;/MCLK SMCLK 时钟源为TX2CLK 不分频/端口初始化函数void InitPort(void)P2SEL=0 x00;/P2 口所有引脚设置为一般的IO 口P4SEL=0

    8、x00;/P4 口所有引脚设置为一般的IO 口P2DIR=0 xFF;/P2 口所有引脚设置为输出方向P4DIR=0 xFF;/P4 口所有引脚设置为输出方向P2OUT=0 x00;/P2 口先输出低电平P4OUT=0 x0E;/P4 口先输出低电平/P5SEL&=BIT7;/P5.设7置为一般的IO 口/P5DIR|=BIT7;/P5.7 设置为输出方向/P5OUT&=BIT7;/P5.7 输出低电平来使能74HC573 来驱动数码管/ms 级延时子程序void DelayMs(uint ms)while(ms-)for(uint i=0;i800;i+);/数码管扫描显示程序void Di

    9、splay(void)for(uchar i=0;i=1;/位码右移一位/if(BitCode=0 x00)BitCode=0 x0e;DelayMs(3);/延时1msP2OUT=0 x00;/10us 级延时子程序void Delayus(uint us)while(us-)_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP()

    10、;_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP(

    11、);_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP

    12、();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();/初始化DS18B20void DS18B20Init(void)DQ_OUT;/设置为输出方向DQ_LOW;/拉低总线Delayus(50);DQ_HIGH;/释放总线Delayus(6);DQ_IN;/设置为输入方向elseDQ_LOW;Delayus(5);DQ_HIGH;/温度计算程序void GetT()if(MSB&0 xF0)0)/判断是否为负温度flag=1;elseflag=0;if(flag)/如果为负温度取反加1M

    13、SB=MSB;LSB=LSB+1;t1=MSB4);t2=(LSB&0 x0F)*0.0625*10000;/得到温度小数部分并扩大10000 倍/计算各位数码管要显示的数值if(flag)Bit1=16;/如果为负温度则显示-elseBit1=t1/100;Bit2=t1%100/10;Bit3=t1%10;/Bit4=t2/1000;/Bit5=t2%1000/100;/Bit6=t2%100/10;/Bit7=t2%10;while(DQ_DATA);/等待应答信号while(DQ_DATA);/等待释放总线/读一个字节uchar ReadByte(void)uchar i;uchar

    14、ReadData=0;for(i=0;i=1;DQ_HIGH;Delayus(1);DQ_IN;if(DQ_DATA)ReadData|=0 x80;Delayus(6);return ReadData;/写一个字节void WriteByte(uchar WriteData)uchar i;uchar tmpData;for(i=0;i=1;DQ_OUT;DQ_LOW;if(tmpData)DQ_HIGH;void main()WDTCTL=WDTPW+WDTHOLD;/关闭看门狗InitClock();InitPort();_DINT();/关闭中断/j=0;l=0;while(1)DS1

    15、8B20Init();WriteByte(0 xCC);/跳过ROM 配置WriteByte(0 x44);/启动温度转换DS18B20Init();WriteByte(0 xCC);WriteByte(0 xBE);/读温度寄存器LSB=ReadByte();/读温度数据低字节MSB=ReadByte();/读温度数据高字节GetT();/计算温度Display();实验总结 要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。在这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读的过程中才能提高,这就是这次课程设计的最大收获。谢谢观赏


    注意事项

    本文(基于MSP430上温度传感器的设计.ppt)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922