资源简介
使用MSP430单片机通过DS18B20采集温度书记,然后通过液晶LCD1602显示,并且根据设定上下限报警
代码片段和文件信息
#include “msp430x54x.h“
typedef unsigned char uchar;
typedef unsigned int uint;
#define DQ1 P1OUT |= BIT5
#define DQ0 P1OUT &= ~BIT5
#define DQ_in P1DIR &= ~BIT5
#define DQ_out P1DIR |= BIT5
#define DQ_val (P1IN & BIT5)
/*******************************************
函数名称:DelayNus
功 能:实现N个微秒的延时
参 数:n--延时长度
返回值 :无
说明 :定时器A的计数时钟是1MHz,CPU主频8MHz
所以通过定时器延时能够得到极为精确的
us级延时
********************************************/
void DelayNus(uint n)
{
TA1CCR0 = n;
TA1CTL |= MC_1; //增计数到CCR0
while(!(TA1CTL & BIT0)); //等待
TA1CTL &= ~MC_1; //停止计数
TA1CTL &= ~BIT0; //清除中断标志
}
/*******************************************
函数名称:Init_18B20
功 能:对DS18B20进行复位操作
参 数:无
返回值 :初始化状态标志:1--失败,0--成功
********************************************/
uchar Init_18B20(void)
{
uchar Error;
DQ_out;
_DINT();
DQ0;
DelayNus(500);
DelayNus(500);
DQ1;
DelayNus(55);
DelayNus(55);
DQ_in;
_NOP();
if(DQ_val)
{
Error = 1; //初始化失败
}
else
{
Error = 0; //初始化成功
}
DQ_out;
DQ1;
_EINT();
DelayNus(400);
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
DelayNus(6); //延时6us
if(wdata & 0X01) DQ1;
else DQ0;
wdata >>= 1;
DelayNus(50); //延时50us
DelayNus(50); //延时50us
DQ1;
DelayNus(10); //延时10us
DelayNus(10); //延时10us
}
_EINT();
}
/*******************************************
函数名称:Read_18B20
功 能:从DS18B20读取一个字节的数据
参 数:无
返回值 :读出的一个字节数据
********************************************/
uchar Read_18B20(void)
{
uchar i;
uchar temp = 0;
_DINT();
for(i = 0;i < 8;i++)
{
temp >>= 1;
DQ0;
DelayNus(6); //延时6us
DelayNus(6); //延时6us
DQ1;
DelayNus(8); //延时9us
DelayNus(8); //延时9us
DQ_in;
_NOP();
if(DQ_val) temp |= 0x80;
DelayNus(45); //延时45us
DelayNus(45); //延时45us
DQ_out;
DQ1;
DelayNus(10); //延时10us
DelayNus(10); //延时10us
}
_EINT();
return temp;
}
/*******************************************
函数名称:Skip
功 能:发送跳过读取产品ID号命令
参 数:无
返回值 :无
********************************************/
void Skip(void)
{
Write_18B20(0xcc);
}
/*******************************************
函数名称:Conv
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 33264 2015-05-29 14:22 DS18B20测温、显示、报警\Debug\Exe\DS18B20.d43
文件 153 2015-05-29 14:22 DS18B20测温、显示、报警\Debug\Obj\DS18B20.pbd
文件 31258 2015-05-17 08:40 DS18B20测温、显示、报警\Debug\Obj\DS18B20.r43
文件 896 2011-03-08 09:48 DS18B20测温、显示、报警\Debug\Obj\EW100.r43
文件 896 2011-03-08 09:49 DS18B20测温、显示、报警\Debug\Obj\EW103.r43
文件 896 2011-03-08 09:50 DS18B20测温、显示、报警\Debug\Obj\EW106.r43
文件 896 2011-03-08 09:51 DS18B20测温、显示、报警\Debug\Obj\EW109.r43
文件 896 2011-03-08 09:53 DS18B20测温、显示、报警\Debug\Obj\EW10C.r43
文件 896 2011-03-08 09:54 DS18B20测温、显示、报警\Debug\Obj\EW10F.r43
文件 896 2011-03-08 09:54 DS18B20测温、显示、报警\Debug\Obj\EW111.r43
文件 896 2011-03-08 09:55 DS18B20测温、显示、报警\Debug\Obj\EW114.r43
文件 896 2011-03-08 09:55 DS18B20测温、显示、报警\Debug\Obj\EW117.r43
文件 893 2015-05-19 12:55 DS18B20测温、显示、报警\Debug\Obj\EW119A.r43
文件 896 2011-03-08 09:55 DS18B20测温、显示、报警\Debug\Obj\EW11A.r43
文件 882 2015-05-17 20:28 DS18B20测温、显示、报警\Debug\Obj\EW11C.r43
文件 896 2011-03-08 09:57 DS18B20测温、显示、报警\Debug\Obj\EW11F.r43
文件 896 2011-03-08 10:01 DS18B20测温、显示、报警\Debug\Obj\EW122.r43
文件 896 2011-03-08 10:01 DS18B20测温、显示、报警\Debug\Obj\EW124.r43
文件 896 2011-03-08 10:02 DS18B20测温、显示、报警\Debug\Obj\EW126.r43
文件 896 2011-03-08 10:02 DS18B20测温、显示、报警\Debug\Obj\EW128.r43
文件 896 2011-03-08 10:02 DS18B20测温、显示、报警\Debug\Obj\EW12A.r43
文件 896 2011-03-08 10:02 DS18B20测温、显示、报警\Debug\Obj\EW12C.r43
文件 876 2015-05-15 17:13 DS18B20测温、显示、报警\Debug\Obj\EW12D5.r43
文件 884 2015-05-17 10:57 DS18B20测温、显示、报警\Debug\Obj\EW133B.r43
文件 884 2015-05-17 10:07 DS18B20测温、显示、报警\Debug\Obj\EW13A5.r43
文件 884 2015-05-17 20:16 DS18B20测温、显示、报警\Debug\Obj\EW15A5.r43
文件 884 2015-05-18 14:59 DS18B20测温、显示、报警\Debug\Obj\EW1664.r43
文件 884 2015-05-18 14:39 DS18B20测温、显示、报警\Debug\Obj\EW1666.r43
文件 884 2015-05-17 10:43 DS18B20测温、显示、报警\Debug\Obj\EW1834.r43
文件 884 2015-05-17 09:10 DS18B20测温、显示、报警\Debug\Obj\EW18A7.r43
............此处省略368个文件信息
相关资源
- 基于MSP430单片机温湿度控制器
- 利用MSP430处理器实现音频频谱分析仪
- 027 简易电子秤 LCD1602显示 超重报警
- MSP430音乐播放器
- 基于51单片机的水箱水位检测系统.r
- PID算法之msp430单片机实现
- MSP430G2553的时钟系统初始化及PWM的呼吸
- OLED(SSD1306)驱动
- msp430中ADC模块设计的程序及原理图
- ADS1118的MSP430F5529驱动程序
- MSP430与L298控制直流电机
- MSP430 AD库
- MSP430单片机通过proteus仿真DS18B20程序
- MSP430g2553单片机实现的输出三路PWM,
- MSP430F147中文手册
- ADS1115驱动程序
- 51单片机mpu6050读取六轴原始数据并L
- 应用MSP430单片机的pwm直流电动机调速
- ssd1306驱动12864OLED显示屏msp430g2553函数
- 使用MSP430产生PWM波对直流电动机进行
- 基于单片机MSP430的数字钟代码
- MSP430F5529LP延时函数.rar
- 基于MSP430F5529单片机的蓝牙遥控小车
- MSP430F149与ESP8266串口通信
- MSP430系列汇编指令集.pdf
- 基于MSP430的LCD12864描点程序
- MSP430 Application UART(串口驱动)
- MSP430F169实现指纹识别源代码
- 2016电赛简易电子秤源码msp430
- LQFP(PN)80_(MSP430FG437封装)
评论
共有 条评论