资源简介
基于msp430f149的ds18b20显示程序,在1602液晶上显示5位温度值,已经通过测试,之前试过的一些没有用,后来在一本参考书上找到类似的修改测试成功。
代码片段和文件信息
/*****************************************************************************/
/*基于MSP430F149的DS18B20温度传感器测温程序 */
/* 修改人:One6 */
/* 修改时间:2013年8月10日15:28:03 */
/*****************************************************************************/
#include “DS18B20.h“ // 调用DS18B20的头文件
uchar dN[6]; //要显示的6位温度数字
//============================时钟初始化=====================================//
void Clock_Init()
{
uchar i;
/*------选择系统主时钟为8MHz-------*/
BCSCTL1 &= ~XT2OFF; //打开XT2高频晶体振荡器
do
{
IFG1 &= ~OFIFG; //清除晶振失败标志
for (i = 0xFF; i > 0; i--); //等待8MHz晶体起振
}
while ((IFG1 & OFIFG)); //晶振失效标志仍然存在?
BCSCTL2 |= SELM_2 + SELS; //MCLK和SMCLK选择高频晶振
//计数时钟选择SMLK=8MHz,1/8分频后为1MHz
TACTL |= TASSEL_2 + ID_3;
}
//============================看门狗初始化===================================//
void WDT_Init()
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
}
//=============================IO口初始化====================================//
void Port_Init()
{
/*下面六行程序关闭所有的IO口*/
P1DIR = 0XFF;P1OUT = 0XFF;
P2DIR = 0XFF;P2OUT = 0XFF;
P3DIR = 0XFF;P3OUT = 0XFF;
P4DIR = 0XFF;P4OUT = 0XFF;
P5DIR = 0XFF;P5OUT = 0XFF;
P6DIR = 0XFF;P6OUT = 0XFF;
}
//===========================================================================//
// 子函数部分 //
//===========================================================================//
/*******************************************
函数名称:DelayNus
功 能:实现N个微秒的延时
参 数:n--延时长度
返回值 :无
说明 :定时器A的计数时钟是1MHz,CPU主频8MHz
所以通过定时器延时能够得到极为精确的
us级延时
********************************************/
void DelayNus(uint n)
{
CCR0 = n;
TACTL |= MC_1; //增计数到CCR0
while(!(TACTL & BIT0)); //等待
TACTL &= ~MC_1; //停止计数
TACTL &= ~BIT0; //清除中断标志
}
/*******************************************
函数名称:Init_18B20
功 能:对DS18B20进行复位操作
参 数:无
返回值 :初始化状态标志:1--失败,0--成功
********************************************/
uchar Init_18B20(void)
{
uchar Error;
DQ_out;
_DINT();
DQ0;
DelayNus(500);
DQ1;
DelayNus(55);
DQ_in;
_NOP();
if(DQ_val)
{
Error = 1; //初始化失败
}
else
{
Error = 0; //初始化成功
}
DQ_out;
DQ1;
_EINT();
DelayNus(400);
return Error;
}
/*******************************************
函数名称:Write_18B20
功 能:向DS18B20写入一个字节的数据
参 数:wdata--写入的数据
返回值 :无
********************************************/
void Write_18B20(uchar wdata)
{
uchar i;
_DINT();
for(i = 0; i < 8;i++)
{
DQ0;
DelayNus(6); //延时6us
if(wdata & 0X01) DQ1;
else DQ0;
wdata >>= 1;
DelayNu
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-08-10 16:16 ds18b20AND12864LCD Display\
文件 5114 2013-08-10 16:16 ds18b20AND12864LCD Display\18b20.dep
文件 20421 2013-08-10 10:49 ds18b20AND12864LCD Display\18b20.ewd
文件 52434 2013-08-10 16:16 ds18b20AND12864LCD Display\18b20.ewp
文件 159 2013-08-10 10:49 ds18b20AND12864LCD Display\18b20.eww
文件 25 2013-08-10 16:16 ds18b20AND12864LCD Display\18b20CustomSfr.sfr
文件 7039 2013-08-10 15:12 ds18b20AND12864LCD Display\DFSR1602.h
文件 1748 2013-08-10 15:41 ds18b20AND12864LCD Display\DS18B20.h
目录 0 2013-08-10 10:49 ds18b20AND12864LCD Display\Debug\
目录 0 2013-08-10 11:12 ds18b20AND12864LCD Display\Debug\Exe\
文件 25690 2013-08-10 16:16 ds18b20AND12864LCD Display\Debug\Exe\18b20.d43
文件 3475 2013-08-10 16:05 ds18b20AND12864LCD Display\Debug\Exe\18b20.txt
目录 0 2013-08-10 16:17 ds18b20AND12864LCD Display\Debug\List\
目录 0 2013-08-10 16:16 ds18b20AND12864LCD Display\Debug\Obj\
文件 9664 2013-08-10 16:06 ds18b20AND12864LCD Display\Debug\Obj\12864.pbi.cout
文件 13353 2013-08-10 16:05 ds18b20AND12864LCD Display\Debug\Obj\12864.r43
文件 452685 2013-08-10 16:16 ds18b20AND12864LCD Display\Debug\Obj\18b20.pbd
文件 452685 2013-08-10 16:16 ds18b20AND12864LCD Display\Debug\Obj\18b20.pbd.browse
文件 9665 2013-08-10 15:12 ds18b20AND12864LCD Display\Debug\Obj\18b20a.pbi.cout
文件 42329 2013-08-10 15:12 ds18b20AND12864LCD Display\Debug\Obj\18b20a.r43
文件 9666 2013-08-10 16:06 ds18b20AND12864LCD Display\Debug\Obj\DS18B20.pbi.cout
文件 9666 2013-08-10 11:20 ds18b20AND12864LCD Display\Debug\Obj\cry1602.pbi.cout
文件 14694 2013-08-10 11:20 ds18b20AND12864LCD Display\Debug\Obj\cry1602.r43
文件 349930 2013-08-10 16:06 ds18b20AND12864LCD Display\Debug\Obj\ds18b20.pbi
文件 28196 2013-08-10 15:41 ds18b20AND12864LCD Display\Debug\Obj\ds18b20.r43
文件 340768 2013-08-10 16:16 ds18b20AND12864LCD Display\Debug\Obj\main.pbi
文件 9663 2013-08-10 16:16 ds18b20AND12864LCD Display\Debug\Obj\main.pbi.cout
文件 20215 2013-08-10 16:16 ds18b20AND12864LCD Display\Debug\Obj\main.r43
文件 7482 2013-08-10 15:41 ds18b20AND12864LCD Display\ds18b20.c
文件 1460 2013-08-10 16:16 ds18b20AND12864LCD Display\main.c
文件 0 2013-08-10 16:06 ds18b20AND12864LCD Display\path.txt
............此处省略5个文件信息
- 上一篇:vfp图书信息管理系统
- 下一篇:ISA88 与 ISA95的整合
相关资源
- MSP430F149驱动OV7670摄像头
- MSP430F149 read SD card
- 利用msp430f5529使led灯闪烁
- 峰峰值捕捉程序
- MSP430F5529超频函数 2 加强版.zip
- MSP430F5529_ADC12模块程序
- MSP430F6638编程实现5按键密码锁
- 简易数字电压表
- MSPF5529程序
- MSP430F5529 I2C样例程序
- TI的msp430f5529读取HX711称重传感器,并
- TI的msp430f5529在12864液晶上通过四个按
- AVR-mega128单片机实现温度DS18B20,prot
- msp430模拟水位控制
- MSP430例程
- cc1101 wor 无线唤醒 430程序
- 1602 基于89C51单片机的DS18B20恒温控制系
- DS18B20数码管显示温度
- DS18B20 STC1T系列单片机驱动程序
- msp430G2553直流电机控制PWM调速和正反转
- MSP430F149读写SD卡程序
- MSP430G2*单片机利用HC-SR04测距
- 单片机程序DS18B20-液晶1602显示温度和
- 51单片机DS18B20程序及proteus仿真
- 基于VHDL控制的DS18B20温度测量程序
- MSP430F6638时钟配置,注释清晰,可移植
- msp430f149单路AD采样电压值并在lcd1602上
- msp430编程器上位机软件
- 基于MSP430单片机实现的正弦波PWM输出
- 2线DS18B20程序 二线DS18B20程序 18B20寄生
评论
共有 条评论