日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

蓝桥杯单片机DS18B20代码注释及部分时序图

發(fā)布時(shí)間:2025/3/12 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯单片机DS18B20代码注释及部分时序图 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

藍(lán)橋杯單片機(jī)藍(lán)橋杯單片機(jī)DS18B20代碼注釋及部分時(shí)序圖

#include<STC15F2K60S2.H> #include<intrins.h>#define uchar unsigned char #define uint unsigned int sbit DQ=P1^4;uchar code tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF}; uchar yi,er,san,si,wu ,liu,qi,ba;void delayms(int ms); void Delay500us(); void Delay100us(); void allinit(); void keyscan(); void dsinit(); uchar read(); uchar temget(); void write(uchar dat); void rel(uchar dong); void display1(uchar yi,uchar er); void display2(uchar san,uchar si); void display3(uchar wu,uchar liu); void display4(uchar qi,uchar ba);void main() {uchar wendu;allinit();yi=11;er=11;san=11;si=11;wu=11;liu=0;qi=0;ba=0;while(1){wendu=temget();liu=wendu/100;qi=wendu%100/10;ba=wendu%10;display1(yi,er);display2(san,si);display3(wu,liu);display4(qi,ba);} }uchar temget() {uchar temp;uchar low,high;dsinit();//單總線上的所有處理均從初始化開(kāi)始write(0xcc);//Skip ROM(跳過(guò) ROM] [CCH]write(0x44);//Convert Temperature(溫度變換) [44H]Delay500us(); Delay500us(); //轉(zhuǎn)換需要一段時(shí)間,1000us足夠了dsinit();//單總線上的所有處理均從初始化開(kāi)始write(0xcc);//Skip ROM(跳過(guò) ROM] [CCH]write(0xbe);//Read Scratchpad(讀暫存存儲(chǔ)器) [BEH]low=read();high=read();temp=high<<4;//0000 0101 =0101 0000temp |= (low>>4); // 1010 0110 0000 0110 | 0101 0000=0101 0110return temp; }uchar read() {uchar i;uchar dat;for(i=0;i<8;i++){DQ=0;_nop_();//12M這個(gè)是1us,All read time slots must be a minimum of 60 μs in duration with a minimum of a 1 μs recovery timebetween slotsdat>>=1;DQ=1;if(DQ==1){dat |= 0x80;}Delay100us();//60 < tLOW0 < 120 }return dat; }void write(uchar dat) {uchar i;for(i=0;i<8;i++){DQ=0;DQ=dat&0x01;//0100 0100 & 0000 0001 // 0000 0001Delay100us();DQ=1;dat>>=1;//dat=dat>>1;//1001 0000//0010 0001} }void dsinit() {DQ=0;Delay500us();DQ=1;Delay500us(); }void Delay100us() //@11.0592MHz {unsigned char i, j;_nop_();_nop_();i = 2;j = 15;do{while (--j);} while (--i); }void Delay500us() //@11.0592MHz {unsigned char i, j;_nop_();_nop_();i = 6;j = 93;do{while (--j);} while (--i); }void delayms(int ms) {int i,j;for(i=ms;i>0;i--)for(j=845;j>0;j--); }void allinit() {P2=0XA0;P0=0X00;//關(guān)閉蜂鳴器,繼電器P2=0X80;P0=0XFF;//關(guān)閉LED燈P2=0XC0;P0=0XFF;//選擇所有數(shù)碼管P2=0XFF;P0=0XFF;//關(guān)閉所有數(shù)碼管 }void display1(uchar yi,uchar er) {P2=0XC0;//打開(kāi)位選573 U8P0=0X01;//選擇第一個(gè)數(shù)碼管P2=0XFF;//打開(kāi)段選573 U7P0=tab[yi];delayms(1);P2=0XC0;//打開(kāi)位選573 U8P0=0X02;//選擇第二個(gè)數(shù)碼管P2=0XFF;//打開(kāi)段選573 U7P0=tab[er];delayms(1); } void display2(uchar san,uchar si) {P2=0XC0;//打開(kāi)位選573 U8P0=0X04;//選擇第三個(gè)數(shù)碼管P2=0XFF;//打開(kāi)段選573 U7P0=tab[san];delayms(1);P2=0XC0;//打開(kāi)位選573 U8P0=0X08;//選擇第四個(gè)數(shù)碼管P2=0XFF;//打開(kāi)段選573 U7P0=tab[si];delayms(1); }void display3(uchar wu,uchar liu) {P2=0XC0;//打開(kāi)位選573 U8P0=0X10;//選擇第一個(gè)數(shù)碼管P2=0XFF;//打開(kāi)段選573 U7P0=tab[wu];delayms(1);P2=0XC0;//打開(kāi)位選573 U8P0=0X20;//選擇第一個(gè)數(shù)碼管P2=0XFF;//打開(kāi)段選573 U7P0=tab[liu];delayms(1); }void display4(uchar qi,uchar ba) {P2=0XC0;//打開(kāi)位選573 U8P0=0X40;//選擇第一個(gè)數(shù)碼管P2=0XFF;//打開(kāi)段選573 U7P0=tab[qi];delayms(1);P2=0XC0;//打開(kāi)位選573 U8P0=0X80;//選擇第一個(gè)數(shù)碼管P2=0XFF;//打開(kāi)段選573 U7P0=tab[ba];delayms(1); }

?

?

執(zhí)行序列(通過(guò)單線總線端口訪問(wèn) DS18B20?)

?

步驟1. 初始化

步驟2. ROM 操作指令

步驟3. DS18B20 功能指令

?

每一次 DS18B20 的操作都必須滿足以上步驟,若是缺少步驟或是順序混亂,器件將不會(huì)返回值。

例如這樣的順序:發(fā)起 ROM 搜索指令[F0h]和報(bào)警搜索指令[ECh]之后,總線控制器必須返回步驟 1。

?

初始化

通過(guò)單總線的所有執(zhí)行操作處理都從一個(gè)初始化序列開(kāi)始。

初始化序列包括一個(gè)由總線控制器發(fā)出的復(fù)位脈沖和其后由從機(jī)發(fā)出的存在脈沖。

存在脈沖讓總線控制器知道 DS18B20 在總線上且已準(zhǔn)備好操作

?

兩個(gè)讀周期間至少 1us 的恢復(fù)時(shí)間。

?

詳細(xì)英文說(shuō)明書(shū)上傳至我的資源

總結(jié)

以上是生活随笔為你收集整理的蓝桥杯单片机DS18B20代码注释及部分时序图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。