LanQiao比赛单片机专用板——CT107D把玩笔记(二)

通过对CT107D实验板的基本原理认识,以及掌握好了LED、数码管等小部件的操作,我们就可以自信满满地学习更为复杂的外接元件了。面对板载重要器件,比如:DS18B20、DS1302、AT24C02、PCF8591等。我们要脚踏实地的逐一攻克。

首先,来看一下温度传感器——DS18B20。

上原理图:


DS18B20电路原理图.png

做为日常最常见的数字温度传感器,这无疑显得非常重要,大赛组织方对此也很重视,往届比赛试题多次涉及该传感器的相关内容。

拿过一个新器件,第一步要查看其完整的官方说明文档。看原理图已知,DS18B20有三个管脚,其中两个是电源线,只有一个数据引脚。因此它是典型的单总线传输器件。提到单总线IIC,就会涉及到单总线时序的操作,而该传感器对时序的要求非常苛刻。对,我只能用苛刻这两个字来形容,因为针对不同的硬件平台,时序操作是大不相同的,最初我在此处深陷,困惑了很长一段时间。

说明文档中,最重点是初始化、读和写的操作时序图。

先看初始化操作时序:

初始化时序图.png

初始化时序,也可作复位时序。由图可见,主控器发送复位低脉冲的时间约为480微秒,主控器接收的时间大约为480微秒。编程时要注意高低电平之间的间隔延时,要严格按照时序图操作。

再来看写时序图:

写时序图.png

该图明确说明了主控器在IIC总线中高低电平的间隔时间,不在具体熬述。

最后,读时序图:

读时序图.png

原理如图,主控器要占用总线45微秒来采样,图片说明很详细。

分析完工作原理后,我们就可以敲代码了。

传感器驱动程序如下:

    ds18b20.c
    
    void delay(uint t)
{
uint i;
for(i = 0; i<t; i++)
{
    _nop_();     //1.0us
}
          
  }

    bit init_ds18b20(void)
{
bit initflag = 0;
DQ = 1;
delay(10);
DQ = 0;
delay(500);
DQ = 1;
delay(200);
initflag = DQ;
delay(250);

return initflag;
}

    //通过单总线向器件写一个字节
    void wr_ds18b20(uchar dat)
{
uchar i;
for(i = 0; i<8; i++)
{
    DQ = 0;
    delay(2);
    DQ = dat&0x01;
    delay(60);
    DQ = 1;
    dat >>= 1;

}
delay(5);
}
    //通过单总线从器件读一个字节
    uchar rd_ds18b20(void)
{
uchar i;
uchar ret;
uchar dat = '0';
for(i = 0; i<8; i++)
{   
    dat >>= 1;
    DQ = 0;
    delay(2);
    DQ = 1;
    ret = DQ;
    delay(60);
    DQ = 1;
    if(ret)
        dat |= 0x80;
}
return dat;
    }

    ///温度读取及转换函数
    uchar rd_temperature(void)
  {
uchar low, high;
uint temp;

float temperature;

DQ = 1;
init_ds18b20();
wr_ds18b20(0xcc);//跳过读ROM
wr_ds18b20(0x44);//
delay(200);

init_ds18b20();
wr_ds18b20(0xcc);
wr_ds18b20(0xbe);//读取温度

low = rd_ds18b20();  //先读低字节
high = rd_ds18b20();      //高字节

temp = high&0x0f;
temp <<= 8;
temp |= low;
    
temperature=temp*0.0625;     //分辨率转换
temp=temperature*10+0.5;   //四舍五入,保留小数点一位

return temp;
}

驱动代码参照时序图都可以写出来,这里关键的一点是延时函数。该函数的精确度决定了整个程序的时序精确度,如果延时不准确,那整个程序是失败的,DS18B20不能正常工作。有许多同学说程序写好了,没有错误,用数码管显示温度,温度数值一直没有变过。大多是因为时序的问题。应该仔细更改延时程序,反复进行调试。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容

  • 1、嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本...
    荣卓然阅读 1,814评论 0 5
  • 总线 计算机的各个功能部件通过总线连接在一起构成完整的计算机系统,总线是多个系统功能部件之间进行数据传送的公共通路...
    罗蓁蓁阅读 4,796评论 0 10
  • 什么是嵌入式 IEEE(Institute of Electrical and Electronics Engin...
    Leon_Geo阅读 3,696评论 1 20
  • ​​​本文主要介绍嵌入式系统的一些基础知识,希望对各位有帮助。 嵌入式系统基础 1、嵌入式系统的定义 (1)定义:...
    OpenJetson阅读 3,298评论 0 13
  • 今天学校的国画课练习,小猫钓鱼。 毛毛回家就给我看看她的作品,还说:“我还可以画一系列,小猫不安心钓鱼,小猫最后一...
    诸慧的身心园地阅读 534评论 7 9