資源簡介
51單片機通過DS18B20溫度傳感器對溫度進行采集,通過單總線將溫度信號傳給單片機,在由數碼管進行溫度采集顯示(藍橋杯)

代碼片段和文件信息
?#include?“reg52.h“??//定義51單片機特殊功能寄存器
#include?“onewire.h“??//單總線函數庫
#define?THCO?0xf8
#define?TLCO?0x30
unsigned?char?dspbuf[2]?=?{00};//顯示緩沖區(qū)
unsigned?char?i?=?0;
unsigned?char?intr;
bit?temper_flag?=?0;//溫度讀取標志
code?unsigned?char?duan[]?=?{0xc00xf90xa40xb00x990x920x820xf80x800x90
????????????????????????????0xff};
unsigned?char?wei[]={0x800x40};
void?display(void);
void?main(void)
{?
????unsigned?char?temperature;???
????TMOD?|=?0x01;??//配置定時器工作模式
????TH0?=THCO;
????TL0?=TLCO;??
????EA?=?1;
????ET0?=?1;??//打開定時器中斷
????TR0?=?1;??//啟動定時器
????while(1)
????{
????????if(temper_flag)
{
temper_flag?=?0;
temperature?=?rd_temperature();??//讀溫度?????????
????????}
//顯示數據更新????
dspbuf[1]?=?temperature/10;???????
dspbuf[0]?=?temperature%10;?
????}
}
//定時器中斷服務函數
void?isr_timer_0(void)??interrupt?1??//默認中斷優(yōu)先級?1
{
????TH0?=?THCO;
????TL0?=?TLCO;??//定時器重載??
????display();
if(++intr?==?100)??//2ms執(zhí)行一次
{
????????intr?=?0;
temper_flag?=?1;??//200ms溫度讀取標志位置1
????}
}
//顯示函數
void?display(void)
{???
P2&=0x1f;
P0=0xff; ???//消隱
P2|=0xe0;
P2&=0x1f;
???//送位碼
P0=wei[i];
P2|=0xc0;
P2&=0x1f;
//送斷碼
P0=duan[dspbuf[i]];
P2|=0xe0;
P2&=0x1f;
i++;
if(i==2)
i=0;?
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-11?14:45??18B20\
?????文件????????8156??2017-03-13?15:29??18B20\18b20
?????文件????????1380??2017-03-07?13:10??18B20\18b20.c
?????文件????????3053??2017-03-13?15:29??18B20\18b20.hex
?????文件??????????58??2017-03-13?15:29??18B20\18b20.lnp
?????文件????????3490??2017-03-13?15:29??18B20\18b20.LST
?????文件???????12594??2017-03-13?15:29??18B20\18b20.M51
?????文件????????3935??2017-03-13?15:29??18B20\18b20.OBJ
?????文件?????????184??2017-04-05?14:23??18B20\18b20.plg
?????文件???????71522??2018-04-11?14:45??18B20\18b20.uvgui.Administrator
?????文件????????5378??2018-04-11?14:45??18B20\18b20.uvopt
?????文件???????14012??2018-04-11?14:45??18B20\18b20.uvproj
?????文件???????56659??2017-04-02?22:22??18B20\18b20_uvopt.bak
?????文件???????????0??2017-03-03?20:09??18B20\18b20_uvproj.bak
?????文件????????1370??2017-03-13?15:29??18B20\onewire.c
?????文件?????????112??2017-03-07?13:17??18B20\onewire.h
?????文件????????3859??2017-03-13?15:29??18B20\onewire.LST
?????文件????????4723??2017-03-13?15:29??18B20\onewire.OBJ
- 上一篇:code.zip
- 下一篇:N皇后的回溯解法綜述2000字論文
評論
共有 條評論