ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:16.81KB ,
资源ID:17518206      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17518206.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(根据msp430温度数码管显示Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

根据msp430温度数码管显示Word文档下载推荐.docx

1、 /*下面六行程序关闭所有的IO口*/ P5DIR = 0xff; P5OUT = 0xff;P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF; P3DIR = 0XFF;P3OUT = 0XFF; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P6OUT = 0XFF; uchar i; WDTCTL=WDTPW+WDTHOLD; /*-选择系统主时钟为8MHz-*/ BCSCTL1 &= XT2OFF; /打开XT2高频晶体振荡器 do IFG1

2、&= OFIFG; /清除晶振失败标志 for (i = 0xFF; i 0; i-); /等待8MHz晶体起振 while (IFG1 & OFIFG); /晶振失效标志仍然存在? BCSCTL2 |= SELM_2 + SELS; /MCLK和SMCLK选择高频晶振 P6DIR |= BIT6;P6OUT |= BIT6; /关闭电平转换 P5DIR |= BIT5;P5OUT |= BIT5; P6DIR |= BIT7;P6OUT |= BIT7; /关闭蜂鸣器 / 设置看门狗定时器,初始化控制数码管的IO WDTCTL = WDT_ADLY_1_9; IE1 |= WDTIE; /

3、P4DIR = 0xff; / P5DIR = 0xFF; / P5OUT = 0xff; /P4OUT = 0xff; /P6DIR = 0xff; /P6OUT = 0xFF; /计数时钟选择SMLK=8MHz,1/8分频后为1MHz TACTL |= TASSEL_2 + ID_3; /打开全局中断 _EINT(); /循环读数显示 while(1) Disp_Numb(Do1Convert(); /不停地转换显示/*函数名称:watchdog_timer功 能:看门狗定时器中断服务函数,进行数码 管动态扫描参 数:无返回值 :*/#pragma vector = WDT_VECTOR_

4、interrupt void watchdog_timer(void) / P4OUT = 0xFF; / wei_h; / wei_l; P4OUT = scandatadN5-cnt; if(cnt=1) P4OUT |= BIT7; /在第二位显示小数点 duan_h; duan_l; P4OUT = (1cnt); wei_h; wei_l; cnt+; if(cnt = 6) cnt = 0;Disp_Numb将从DS18B20读取的11bit温度数据转换 成数码管显示的温度数字temper-11bit温度数据void Disp_Numb(uint temper) for(i = 0

5、;i = 10) dN2 -= 10;BIT3) dN3 += 5; BIT4) dN4 += 1; BIT5) dN4 += 2; BIT6) dN4 += 4; BIT7) dN4 += 8; if(dN4 dN4 -= 10; dN5 += 1; BIT8) dN4 += 6; BIT9) dN5 += 3; BITA) dN5 += 6; if(dN5 dN5 -= 10;/*18b20.C*/typedef unsigned char uchar;typedef unsigned int uint;#define DQ1 P1OUT |= BIT6#define DQ0 P1OUT

6、&#define DQ_in P1DIR &#define DQ_out P1DIR |= BIT6#define DQ_val (P1IN &DelayNus实现N个微秒的延时n-延时长度说明 :定时器A的计数时钟是1MHz,CPU主频8MHz 所以通过定时器延时能够得到极为精确的 us级延时void DelayNus(uint n) CCR0 = n; TACTL |= MC_1; /增计数到CCR0 while(!(TACTL & BIT0); /等待 TACTL &= MC_1; /停止计数= BIT0; /清除中断标志Init_18B20对DS18B20进行复位操作初始化状态标志:1

7、-失败,0-成功uchar Init_18B20(void) uchar Error; DQ_out; /拉高 _DINT(); /关闭中断 DQ0; /拉低 DelayNus(500); DQ1; DelayNus(55); DQ_in; /方向设置输入 _NOP(); if(DQ_val) /输入值为1 Error = 1; /初始化失败 else /输入值为0 Error = 0; /初始化成功 /设为输出 /中断使能 DelayNus(400); return Error;Write_18B20向DS18B20写入一个字节的数据wdata-写入的数据void Write_18B20(u

8、char wdata) i = 1; DelayNus(50); /延时50us DelayNus(10); /延时10usRead_18B20从DS18B20读取一个字节的数据读出的一个字节数据uchar Read_18B20(void) uchar temp = 0; temp DelayNus(8); /延时9us if(DQ_val) temp |= 0x80; DelayNus(45); /延时45us return temp; /读到的一个字节Skip发送跳过读取产品ID号命令void Skip(void) Write_18B20(0xcc);Convert发送温度转换命令void

9、 Convert(void) Write_18B20(0x44);Read_SP发送读ScratchPad命令void Read_SP(void) Write_18B20(0xbe);ReadTemp从DS18B20的ScratchPad读取温度转换结果读取的温度数值uint ReadTemp(void) uchar temp_low; uint temp; temp_low = Read_18B20(); /读低位 temp = Read_18B20(); /读高位 temp = (tempi-) DelayNus(60000); /延时800ms以上 Read_SP(); /发送读ScratchPad命令 return ReadTemp();/*/*18b20.h*/void DelayNus(unsigned int n);unsigned char Init_18B20(void);void Write_18B20(unsigned char wdata);unsigned char Read_18B20(void);void Skip(void);void Convert(void);void Read_SP(void);unsigned int ReadTemp(void);unsigned int Do1Convert(void);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1