CC2430驱动DS18B20的问题

本文介绍了如何在CC2430微控制器上成功驱动DS18B20温度传感器,通过设置P0DIR寄存器实现IO口的输入输出切换,并提供了一个包含延时函数的程序示例。程序借鉴了其他开发者的工作,并计划进行整理分享。文章还包含了DS18B20的读写操作函数及初始化过程。
摘要由CSDN通过智能技术生成

一点小成就,呵呵,前 天在宇东电子论坛qq群中问一个在用2430驱动其他设备时输入输出口转换的问题,即2430的IO口不是像51那样直接做输入输出用,而是用PXDIR 随时作输出/输 入的转换吗? 本来是说昨天在这里报告的,结果有些事情耽误了,今天在这里报告一下,驱动成功了,用了

#define P00_OUT       P0DIR|=0x01//设置为输出口
#define    P00_IN        P0DIR&=0xfe//设置为输入口

在每次要用输入或者输出前加上,因为晶振很快(CC2430不做设定,默认为16Mhz)所以对时序影响还是蛮小的。

另外本人的程序是借鉴了如下两位的程序,在此贴出来网址,希望能对大家有用,由于刚出来,所以我的程序还没有整理,不过整理后会发上来。

第一篇

来自http://blog.163.com/mchen_6431/blog/static/32286312200932411724509/

 注:版权归原作者

网上有很多关于ds18b20的程序,但是就是没有找到在cc2430上的,今天奉上吧。

其中的delay函数参考了ti zstack中的MicroWait函数.最后数据显示在128*64的液晶上。

void Delay_nus(uint16 s) {
  while (s--)
  {
    asm("NOP");
    asm("NOP");
    asm("NOP");
  }
}

/********************************************************************* 
*文件名:18B20.c
*功能:DS18B20温度采集
* @data:2009.4.24
* by mchen
*********************************************************************/ 
#include "18b20.h"
#include "LCD128_64.h"

unsigned char id[8];
unsigned char sensor_data_value[2];
unsigned char flag;

void Delay_nus(uint16 s) {
  while (s--)<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值