打印

Uart转1-Wire硬件控制器程序源码例程

[复制链接]
3070|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2008-3-2 19:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//UART->DS18B20
//Uart转1-Wire硬件控制器程序源码例程
//HotPower@126.com 2008.3.2 于雁塔菜地
LPC_INT8U OneWire_Start (void);
LPC_INT8U OneWire_ReadWriteByte (LPC_INT8U data);
LPC_INT8U OneWire_ReadId (LPC_INT8U *pData);

LPC_INT8U OneWire_Start (void)
{
LPC_INT8U ch;
  Uart1Config.BaudRate = BD9600;
  Uart1Config.WordLenth = WordLength8;
  Uart1Config.TwoStopBitsSelect = false;//stop=1
  UART_Init(UART1);
  UART_PutCharByPolling(UART1, 0xf0);
//ch=0xf0 无应答  ch=0xe0 有应答 ds18b20在线
  ch = UART_GetCharByPolling(UART1);
  Uart1Config.BaudRate = BD115200;
  Uart1Config.WordLenth = WordLength6;
  Uart1Config.TwoStopBitsSelect = false;//stop=1
  UART_Init(UART1);
  return ch;
}

LPC_INT8U OneWire_ReadId (LPC_INT8U *pData)
{
LPC_INT8U i, ch;
//ch=0xf0 无应答  ch=0xe0 有应答 ds18b20在线
  ch = OneWire_Start();//960us
  OneWire_ReadWriteByte(0x33);
  for (i = 0; i < 8; i ++)
  {
    pData = OneWire_ReadWriteByte(0xff);//读一个字节
  }
  return ch;//返回结果
}


LPC_INT8U OneWire_ReadWriteByte (LPC_INT8U data)
{
LPC_INT8U i, ch;
LPC_INT8U value = 0;
  for (i = 0; i < 8; i ++)
  {
    if (data & 1)
    {
      UART_PutCharByPolling(UART1, 0x3f);//1
    }
    else
    {
      UART_PutCharByPolling(UART1, 0x00);//0
    }
    ch = UART_GetCharByPolling(UART1);
    data >>= 1;
    value >>= 1;
    if (ch & 0x07)//收到1T+3T个'0'为0
    {
      value |= 0x80;
    }
  }
  return value;
}

void main (void)
{
char RecData, TranBuff[30];
  if(SysInit() == 0)
  {
    // Start user program
    __enable_interrupt();
    UserStart();
  }
  
  __disable_interrupt();
  OneWire_ReadId(TranBuff);//读18b20的器件ID=28 2D 95 1D 00 00 00 22
  while(1);
}

1.读DS18B20系列码程序硬件仿真帖图



2.HotCRC计数器计算CRC8过程校验帖图


3.硬件接口电路

相关帖子

沙发
xxqarm| | 2008-3-2 19:52 | 只看该作者

好!

顶.
占个沙发学习.

使用特权

评论回复
板凳
hotpower|  楼主 | 2008-3-2 23:57 | 只看该作者

哈哈~~~今天艳照不研究~~~改天写篇菜农为什么要折腾UART->1-Wir

使用特权

评论回复
地板
fsaok| | 2008-3-3 08:48 | 只看该作者

听课

使用特权

评论回复
5
gyt| | 2008-3-3 14:30 | 只看该作者

好东东啊

使用特权

评论回复
6
wkman| | 2008-3-3 17:12 | 只看该作者

占位,^_^!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1460

主题

21619

帖子

506

粉丝