资源简介
msp430单片机通过Proteus仿真DS18B20程序,刚刚调试通过,只要读写的时序按照文件里面的处理就行,显示部分就自己做吧
代码片段和文件信息
#include “msp430f2491.h“
#include “DS18B20.h“
#include “define.h“
unsigned char GetScratchpad[9];
//unsigned char GetScratchpad[9];
unsigned char ResultTemperatureH; //温度的整数部分
unsigned char ResultTemperatureLH; //温度的小数部分(高位)
unsigned char ResultTemperatureLL; //温度的小数部分(低位)
unsigned char decimalH[16]={00061218253137435056626875818793};
unsigned char decimalL[16]={00255075002550750025507500255075};
unsigned char dispcode[]={0x3f0x060x5b0x4f
0x660x6d0x7d0x07
0x7f0x6f0x770x7c
0x390x5e0x790x710x000x40}; //0x40 负
unsigned char dispbitcode[]={0xfe0xfd0xfb0xf7
0xef0xdf0xbf0x7f}; // 数码管为共阳极数码管,此数组存储的是阴极的管脚数据,依次可以点亮一个数码管对应P2口
unsigned char dispbuf[8]={00000000};
unsigned char DS18B20_Init_old(void){
INT8U result;
DS18B20_DIR |= DS18B20_DQ; // ow output
DS18B20_OUT |=DS18B20_DQ;
_NOP();
DS18B20_OUT &= ~DS18B20_DQ; // DS18B20_DQ=0;
Delay(90);
// Bus master pulling low 480us minimum;
DS18B20_OUT |= DS18B20_DQ; // DS18B20_DQ=1;
DS18B20_DIR &= ~DS18B20_DQ;
//Delay(8); // Resister pull up 15-60us;
// ow input
result = DS18B20_IN & DS18B20_DQ;
while(DS18B20_IN & DS18B20_DQ)
{
_NOP();
}
DS18B20_DIR |= DS18B20_DQ; // ow output
Delay(19); // End of timeslot total 480us;
DS18B20_OUT |=DS18B20_DQ;
return(result); // any 1 wire device ?result:=1 no devide; ?result:=0 have device;
}
unsigned char DS18B20_ReadByte(void){
INT8U i;
INT8U result=0;
DS18B20_DIR |= DS18B20_DQ;
for(i = 8; i >0; i--)
{
DS18B20_OUT |= DS18B20_DQ;
_NOP();
// result>>1;
DS18B20_OUT &= ~DS18B20_DQ;
_NOP();
DS18B20_OUT |= DS18B20_DQ;
_NOP();
_NOP();
_NOP();
_NOP();
DS18B20_DIR &=~DS18B20_DQ;
if(P4IN&BIT3)
result |=(1< else
result &=~(1< Delay(3);
DS18B20_DIR |= DS18B20_DQ;
}
return(result); // return the result of the 1-wire device;
}//Read a byte from the 1-wire bus;
void DS18B20_WriteByte(INT8U oww_dat)
{
INT8U i;
DS18B20_DIR |= DS18B20_DQ;
for(i = 0; i < 8; i++)
{
if(oww_dat & 0X01)
{
DS18B20_OUT |= DS18B20_DQ;
_NOP();
DS18B20_OUT &=~DS18B20_DQ;
_NOP();
DS18B20_OUT |=DS18B20_DQ;
Delay(8);
}
else
{
DS18B20_OUT |= DS18B20_DQ;
_NOP();
DS18B20_OUT &=~DS18B20_DQ;
Delay(8);
_NOP();
_NOP();
}
// Delay(8);
DS18B20_OUT |=DS18B20_DQ;
_NOP();
oww_dat>>=1;
}
}//Write a byte to the 1-wire bus;
unsigned char DS18B20_ReadTemp(void)
{ INT8U tempHtempL;
INT8U X=0;
DS18B20_Init_old();
DS18B20_WriteByte(SkipRom);
_NOP();
//_NOP();
//_NOP();
//There is
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5722 2011-04-26 22:34 DS18B20.c
文件 988 2011-04-26 22:35 DS18B20.h
----------- --------- ---------- ----- ----
6710 2
相关资源
- MSP430g2553单片机实现的输出三路PWM,
- MSP430F147中文手册
- ADS1115驱动程序
- DS18B20温度传感器的proteus仿真.rar
- 应用MSP430单片机的pwm直流电动机调速
- STM32-DS18B20.zip
- ssd1306驱动12864OLED显示屏msp430g2553函数
- 使用MSP430产生PWM波对直流电动机进行
- 基于单片机MSP430的数字钟代码
- MSP430F5529LP延时函数.rar
- 基于MSP430F5529单片机的蓝牙遥控小车
- MSP430F149与ESP8266串口通信
- MSP430系列汇编指令集.pdf
- 基于MSP430的LCD12864描点程序
- MSP430 Application UART(串口驱动)
- MSP430F169实现指纹识别源代码
- 2016电赛简易电子秤源码msp430
- DS18B20 51单片机,包括电路
- LQFP(PN)80_(MSP430FG437封装)
- MSP430F2XX中文手册_10.通用串口
- MSP430—DS18B20程序
- 用MSP430设计极低功耗数字温度计
- 单总线两个DS18B20温度传感器程序及其
- DS18B20+UCOSIII-技术资料+源码
- msp430代码模拟spi
- 单总线控制多个DS18B20
- MSP430采集BMP180程序
- 60S2单片机驱动DS18B20温度传感器C程序
- msp430G2553的4*4矩阵键盘程序文本
- MSP430g2231+nrf24l01+DHT11实现温湿度远程监
评论
共有 条评论