資源簡介
采用DS18B20溫度傳感器的單總線傳輸機制,通過單片機MCU的I/O實現溫度采集,并將數據顯示在數碼管上。開啟溫度報警功能,設置一個閾值,利用手指觸碰傳感器導致溫度超過閾值時,開啟嗡鳴器報警
代碼片段和文件信息
#include?“reg51.h“
#include?“intrins.h“
#define?uchar?unsigned?char
#define?uint?unsigned?int
uchar?code?discode[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
//數碼管顯示0~9的段碼表
sbit?DQ=P3^7;
sbit?speaker=?P1^5; //P1^5控制蜂鳴器
void?delay5(uchar);
void?init_ds18b20(void);
uchar?readbyte(void);
void?writebyte(uchar);
uchar?retemp(void);
void?main(void) //主函數
{
uchar?itempsound;
delay5(1000);
while(1)
{
temp=retemp();
for(i=0;i<10;i++) //連續掃描數碼管10次
{
P2=04; //LED由P2的234位控制
//因此令P2=00000100控制LED2顯示十位
P0=discode[temp/10];//輸出十位段碼
delay5(1100); //延時5.5ms
P2=00; //令P2=00000000控制LED1顯示個位
P0=discode[temp%10];//輸出個位段碼
delay5(1100); //延時5.5ms
if(temp>30) //溫度超過30則令蜂鳴器報警
for(sound=114514;sound>0;sound--)
{
speaker=~speaker;
}
}
}
}
void?delay5(uchar?n) //延時
- 上一篇:pcap包安裝
- 下一篇:B to B電子商務流程圖
評論
共有 條評論