DA18B20 MSP430单片机程序
#define DS18B20_DIR P6DIR
#define DS18B20_IN P6IN
#define DS18B20_OUT P6OUT
#define DS18B20_DQ BIT0 //定义DS18B20的接口
#define DS18B20_HI { DS18B20_DIR |= DS18B20_DQ; DS18B20_OUT |= DS18B20_DQ; }
#define DS18B20_LO { DS18B20_DIR |= DS18B20_DQ; DS18B20_OUT &= ~DS18B20_DQ;}
#define DS18B20_RLS { DS18B20_DIR &=~DS18B20_DQ; }
/*DS18B20初始化_双保险//Intialization the 1-wire devices;*/
unsigned char DS18B20_Init(void)//关了1ms中断
{
_DINT();//关闭中断
unsigned char result;
DS18B20_LO;
delay_us(500);
DS18B20_OUT |= DS18B20_DQ;
delay_us(75);
DS18B20_DIR &= ~DS18B20_DQ;
result = DS18B20_IN & DS18B20_DQ;
while(result) ;//初始化不成功
_EINT();
delay_us(480);
result = DS18B20_IN & DS18B20_DQ;
while(!result) ;
return 0;
}
/*写入一字节*/
void DS18B20_Write(unsigned char Data)//480ms
{
unsigned char i=0;
for(i=0;i<8;i++)
{
DS18B20_LO;
delay_us(2);
DS18B20_OUT=Data&0x01;
delay_us(60);
DS18B20_HI;
Data>>=1;
}
}
unsigned char DS18B20_Read() //关了456us中断
{
_DINT();
unsigned char i,Temp=0x00;
for(i=0;i<8;i++)
{
Temp>>=1; //数据右移
DS18B20_LO;
delay_us(2);
DS18B20_HI;
DS18B20_RLS;
delay_us(10);
if(DS18B20_IN&DS18B20_DQ) Temp|=0x80;
delay_us(45);
DS18B20_HI;//释放总线准备读取下一位
}
return Temp;
}
/*读取温度*/
int Read_Temperature(void)
{
unsigned int Temp1=0,Temp2=0,Minus_Flag=0;
int Tempera;
delay_ms(800);//牺牲转换时间求精度哈
DS18B20_Init(); //DS复位
DS18B20_Write(0xCC); //跳过ROM
DS18B20_Write(0xBE); //读取RAM
Temp1=DS18B20_Read(); //读低八位,LS Byte, RAM0
Temp2=DS18B20_Read(); //读高八位,MS Byte, RAM1
_EINT();
if(Temp2&0xFC)//如果是负数
{
Minus_Flag=1;
Tempera=~(Temp2<<8|Temp1)+1;//整合,取反,补一
}
else{
Minus_Flag=0;
Tempera=(Temp2<<8|Temp1);
}
return (Tempera*0.0625); //0.0625=xx, 0.625=xx.x, 6.25=xx.xx
}
DA18B20 MSP430单片机程序相关推荐
- AGS01DA VOC传感器 MSP430 单片机 程序 AGS01DB
- msp430单片机c语言应用程序,MSP430单片机C语言应用程序设计实例精讲
本书首先介绍了C语言的基本知识,使读者能使用C语言进行程序设计:然后介绍了30个开发例子.全书主要通过实例的形式来介绍MSP430单片机在不同领域中的应用,从而使读者掌握MSP430单片机开发的流程. ...
- MSP430单片机串口控制5路PWM频率变化程序
MSP430单片机串口控制5路PWM频率变化程序 下面介绍一段MSP430单片机通过232串口发送0x00,0x01,0x02,0x03,0x04控制IO端口P1,P2,P4,P5,P6输出6路PWM ...
- fir滤波 c语言,分享MSP430单片机实现的FIR滤波器C语言程序
分享MSP430单片机实现的FIR滤波器C语言程序 [复制链接] #include #define FRAME 180 short int h[19] = { 399,-296,-945 ...
- MSP430单片机输入与输出
MSP430单片机的输入输出线绝大多数是服用的,除了个别的端口外,基本上是8为为一组,不同的型号的MSP430的端口有所不同,就msp430F5438而言,一共有11个I/O端口,其中除了第十一P11 ...
- msp430单片机 温度计编程_MSP430系列与89C5l系列的比较
1.89C51单片机是8位单片机.其指令是采用的被称为"CISC"的复杂指令集,共具有111条指令.而MSP430单片机是16位的单片机,采用了精简指令集(RISC)结构,只有简洁 ...
- 嵌入式--深入理解单片机(一)单片机程序是如何运行起来的以及单片机的ROM和RAM
目录 一.两种处理器的结构体系 1.哈佛结构体系(Harvard architecture) 2.冯·诺依曼结构体系 3.两种结构的总结 哈佛结构的优势 冯·诺依曼结构的优势 当前很多芯片都是混合结构 ...
- MSP430单片机中断学习笔记(一)
目录 一.中断的基本概念 1.1中断的定义 1.2中断源 1.3中断向量表 1.4中断优先级 1.5断电 1.6中断现场 二.中断源 2.1系统复位中断源 2.1.1断电复位信号(BOR) 2.2.2 ...
- 从零开始的MSP430单片机学习(一)
从零开始的MSP430单片机学习(一) 图片有些缺失,原链接:从零开始的MSP430单片机学习(一) 写在前面 单片机学习本身是一个了解学习一个技术的过程,学习的过程中不应该拘泥于某一款,而是要了解学 ...
最新文章
- Atitit.jpg png格式差别以及解决jpg图片不显示的问题
- Android开发之自定义Dialog二次打开报错问题解决
- 大学计算机基础实验指导试题,(大学计算机基础实验指导)模拟试题(二)参考答案...
- CentOS下的rm命令改造成移动文件至回收站
- 找不到托盘菜单配置文件_Windows 10最新更新导致用户文件丢失和加载错误配置文件...
- Visual Studio Code设置断点时出现Unverified breakpoint该咋办
- dirsearch工具(Web目录爆破)
- jstack 脚本 自动日志_在 Linux 中使用 Bash 脚本删除早于 “X” 天的文件/文件夹...
- 关于Location of the Android SDK has not been setup in the preferences的解决方法
- 三十岁左右的你,现在收入多少?
- 四月,诗月,你是最美人间四月天。
- 淘宝女装店铺如何提升转化?
- 什么是CVE?常见漏洞和暴露列表概述
- matlab设置图片背景透明_Matlab ---- 有透明度的png图像的显示与图层叠加方法
- 计算机桌面黑屏有鼠标,电脑屏幕黑屏但有鼠标指针是怎么回事?
- ElasticSearch(项目中常用的ES)
- 怎样防止羊毛党刷补贴?防护软件大火
- 【NOIP2014提高组】飞扬的小鸟
- 【UE4源代码观察】手动建立一个使用UBT进行编译的空白工程
- Exchange2016 Skype for business 集成之一配置合作伙伴应用程序
热门文章
- Python育儿系列-python生成竖式运算
- 莫烦pytorch学习之问题记录与总结
- CNN识别手写数字-莫烦python
- Vivado Turtorial 01 —— 使用vivado中debug功能(类似ISE中ChipScope)
- [可解释机器学习]Task03:[算法]CAM
- 汇编语言——学习资料(更新........)
- Wonderware-InTouch与PLC的冗余配置
- java试题库管理系统源代码_Java试题库管理源代码
- 【Web-南邮CTF】Web-CTF入门第1天
- 端午节祝福的html,端午节祝福语