资源简介
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
相关资源
- ds18b20温度传感器编程指令功能
- 温度传感器DS18B20序列号批量搜索算法
- FreeRTOS采样ADC+KEY事件信号+DMA串口收发
- IAR for MSP430 v7.10.1 注册机
- 基于MSP430G2553的蓝牙控制小车
- 利用DS1302和msp430进行闹钟和万年历的
- 单片机与温度传感器DS18B20的程序设计
- 毕业论文之温度传感器DS18B20(源码
- msp430F149操作红外接收模块源码
- stm32 ds18b20 温度传感器 测试通过
- [免费]msp430f149控制PS2键盘并用1602显示
- 51单片机读取温度数据存储到SD卡中并
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- DS18B20分布式多点测温的Proteus仿真
- MSP430f149读sd FAT txt
- 单片机 DS18B20 温度控制系统
- 课程设计蔬菜大棚自动控制系统,包
- 用8位spi实现16位spi
- 基于MSP430单片机的实时多任务操作系
- ds18b20温度传感是什么传感器
- MSP430系列单片机例程(msp430f235)
- MSP430控制AD9850产生频率可调的方波及
- msp430f449程序
- 基于MSP430的数控直流电压源
- MSP430F5438A Timer_B 操作实验
- MSP430F5438 UCS 时钟操作实验
- MSP430F5438A Timer_A 操作实验
- MSP430F5438 看门狗实验
- IAR EW430连接仿真器在线仿真
- 初识畅学系列MSP430F149单片机开发板
评论
共有 条评论