導航:首頁 > 操作系統 > 單片機開門報警器電路圖極其程序

單片機開門報警器電路圖極其程序

發布時間:2023-03-18 12:34:55

1. 51單片機用三個按鍵控制報警,任意按兩個按鍵蜂鳴器就報警的程序

設按鍵為k1,k2,k3
void main()
{
char beepflag=0;

while(1)
{
if((k1==0)

beepflag|=0x01;

else

beepflag&=0xFE;

if(k2==0) //按鍵按下腔喚差
beepflag|=0x02;
else

beepflag&=0xFD;

if(k3==0) /鏈基/按鍵按下

beepflag|=0x04;
else

beepflag&=0xFB;

//------------這里判斷字元低三位,如果有其中兩位置一,則開啟蜂鳴器
}

}
思路大概就是這樣,如對您有幫助,請採納,謝謝伍皮!

2. 單片機設定時間報警怎麼處理

我冬天漏腳
關注
單片機定時報警C語明族言程序,單片機控制的簡易定時報警器電路設計( - 控制/MCU - 電子發燒友網... 轉載
2021-05-17 12:29:32

我冬天漏腳

碼齡5年

關注
單片機控制的簡易定時報警器電路設計(含電路圖和程序)

設計一個單片機控制的簡易定時報警器。要求根據設定的初始值(1-59秒)進行倒計時,當計時到0時數碼管閃爍「00」(以1Hz閃爍),按鍵功能如下:

(1)設定鍵:在倒計時模式時,按下此鍵後停止倒計時,進入設置狀態;如果已經處於設置狀態則此鍵無效。

(2)增一鍵:在設置狀態時,每按一次遞增鍵,初始值的數字增1。

(3)遞一鍵:在設置狀態時,每按一次遞減激殲弊鍵,初始值的數字減1。

(4)確認鍵:在設置狀態時,按下此鍵後,單片機按照新的初始值進行倒計時及顯示倒計時的數改搭字。如果已經處於計時狀態則此鍵無效。

3. 急求門電路設計一個開關控制大的報警電路

我把做作業的時間拿來想,終於想起了....不知合你意不?

哎..我的作業啊...

圖:黑色線條為電阻,不要太大,長方形的那個是個也是導體,圓為那辯清絕報警器。連接攜姿cd,當它上方的電阻通電後正基,因為通電導體帶磁性,就會吸引下方長方形的導體,使得連接在一起,這樣不會使電流通過報警器。

4. 單片機報警器程序

請問你需要對什麼報警呢?溫度,濕度?
還是只是單純的給個時間讓蜂鳴器響?我有寫好的程序,

5. 開關控制報警器如何用單片機實現

開關控制報警器如何用單片機實現

單片機C語言程序設計:開關控制報警器

/*名稱:開關控制報警器

說明:用K1開關控制報警器,程序控制P1.0輸出兩種不同頻率的聲音,模擬很逼真的報警效果

*/

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitSPK=P1^0;

sbitK1=P1^7;

//發聲函數

voidAlarm(uchart)

{

uchari,j;

for(i=0;i<200;i++)

{

SPK=~SPK;

for(j=0;j//由參數t行成不同的頻率

}

voidmain()

{

SPK=0;

while(1)

{

if(K1==1)

{

Alarm(90);

Alarm(120);

}

}

}

6. 哪位大哥大姐能幫忙做下單片機課程設計啊 就是滴滴報警器

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit fangbo=P1^0;
void delay(uint z)
{uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);

}
void main()
{
while(1)
{ fangbo=1;
delay(200);
fangbo=0;
delay(200);
}

}

7. 單片機聲光報警原理圖LED燈怎麼鏈接

使用keil4軟體連接。
連接方法如下:器件是AT89C51晶元1個;LED燈1個;蜂鳴器BUZZER1個;PNP型三極體1個;電阻1個;電源VCC;地線GROUND。
選好元器件後先使用Proteus繪制聲光報警電路原理圖。
使用keil4軟體進行聲光報警系統的實驗程序設計。使用Proteus進行模擬。雙擊單片機晶元,並選擇「聲光報警hex文件」。LED燈亮滅的同時,蜂鳴器發出聲音報警。

8. 用單片機實現119報警器的程序(最好用匯編語言或C語言)

不知道你發現沒有,普通有限電話都有兩種撥號模式,即音頻撥號和脈沖撥號。一般來講脈沖撥號較敏判容易,容差性好一些。你上網查一下就可以。程帶拿褲序很簡單。語音部分可以用現成的語音模塊。當然整個電路還得自製一些模擬電路。
硬體都沒有編什麼程蠢簡序,就像是沒有鍋你靠什麼來煮飯的一樣。
要先確認用什麼硬體構架,單片機的程序是要靠硬體執行終端來反映效果的!

等一下,莫非是大家把問題想復雜了?樓主要的是119消防車上報警器的聲音或者那個閃爍燈的控製程序~~

9. 51單片機溫度報警器原理圖和程序有嗎

這個是自動控制溫度的一個例子,溫度降低到一定程度就啟動加熱。

//溫度感測器:DS18B20
//顯示方式:LED
#include <reg51.h>
#define uchar unsigned char
sbit keyup=P1^0;
sbit keydn=P1^1;
sbit keymd=P1^2;
sbit out=P3^7;//接控制繼電器
sbit DQ = P3^4;//接溫度感測器18B20
uchar t[2],number=0,*pt;//溫度值
uchar TempBuffer1[4]={0,0,0,0};
uchar Tmax=18,Tmin=8;
uchar distab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xfe,0xf7};
uchar dismod=0,xiaodou1=0,xiaodou2=0,currtemp;
bit flag;
void t0isr() interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
switch(number)
{
case 0:
P2=0x08;
P0=distab[TempBuffer1[0]];
break;
case 1:
P2=0x04;
P0=distab[TempBuffer1[1]];
break;
case 2:
P2=0x02;
P0=distab[TempBuffer1[2]]&0x7f;
break;
case 3:
P2=0x01;
P0=distab[TempBuffer1[3]];
break;
default:
break;
}
number++;
if(number>3)number=0;
}

void delay_18B20(unsigned int i)
{
while(i--);
}

/**********ds18b20初始化函數**********************/

void Init_DS18B20(void)
{
bit x=0;
do{
DQ=1;
delay_18B20(8);
DQ = 0; //單片機將DQ拉低
delay_18B20(90); //精確延時 大於 480us
DQ = 1; //拉高匯流排
delay_18B20(14);
x=DQ; //稍做延時後 如果x=0則初始化成功 x=1則初始化失敗,繼續初始化
}while(x);
delay_18B20(20);
}

/***********ds18b20讀一個位元組**************/

unsigned char ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 給脈沖信號
dat>>=1;
DQ = 1; // 給脈沖信號
if(DQ)
dat|=0x80;
delay_18B20(4);
}
return(dat);
}

/*************ds18b20寫一個位元組****************/

void WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
delay_18B20(5);
DQ = 1;
dat>>=1;
}
}

/**************讀取ds18b20當前溫度************/

unsigned char *ReadTemperature(unsigned char rs)
{
unsigned char tt[2];
delay_18B20(80);
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0x44); //啟動溫度轉換
delay_18B20(80);
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器)前兩個就是溫度
tt[0]=ReadOneChar(); //讀取溫度值低位
tt[1]=ReadOneChar(); //讀取溫度值高位
return(tt);
}

void covert1(void)//將溫度轉換為LED顯示的數據
{
uchar x=0x00,y=0x00;
t[0]=*pt;
pt++;
t[1]=*pt;
if(t[1]&0x080) //判斷正負溫度
{
TempBuffer1[0]=0x0c; //c代表負
t[1]=~t[1]; /*下面幾句把負數的補碼*/
t[0]=~t[0]; /*換算成絕對值*********/
x=t[0]+1;
t[0]=x;
if(x==0x00)t[1]++;
}
else TempBuffer1[0]=0x0a;//A代表正
t[1]<<=4;//將高位元組左移4位
t[1]=t[1]&0xf0;
x=t[0];//將t[0]暫存到X,因為取小數部分還要用到它
x>>=4;//右移4位
x=x&0x0f;//和前面兩句就是取出t[0]的高四位
y=t[1]|x;//將高低位元組的有效值的整數部分拼成一個位元組
TempBuffer1[1]=(y%100)/10;
TempBuffer1[2]=(y%100)%10;
t[0]=t[0]&0x0f;//小數部分
TempBuffer1[3]=t[0]*10/16;
//以下程序段消去隨機誤檢查造成的誤判,只有連續12次檢測到溫度超出限制才切換加熱裝置
if(currtemp>Tmin)xiaodou1=0;
if(y<Tmin)
{
xiaodou1++;
currtemp=y;
xiaodou2=0;
}
if(xiaodou1>12)
{
out=0;
flag=1;
xiaodou1=0;
}
if(currtemp<Tmax)xiaodou2=0;
if(y>Tmax)
{
xiaodou2++;
currtemp=y;
xiaodou1=0;
}
if(xiaodou2>12)
{
out=1;
flag=0;
xiaodou2=0;
}
out=flag;
}
void convert(char tmp)
{
uchar a;
if(tmp<0)
{
TempBuffer1[0]=0x0c;
a=~tmp+1;
}
else
{
TempBuffer1[0]=0x0a;
a=tmp;
}
TempBuffer1[1]=(a%100)/10;
TempBuffer1[2]=(a%100)%10;
}
void keyscan( )
{
uchar keyin;
keyin=P1&0x07;
if(keyin==0x07)return;
else if(keymd==0)
{
dismod++;
dismod%=3;
while(keymd==0);
switch(dismod)
{
case 1:
convert(Tmax);
TempBuffer1[3]=0x11;
break;
case 2:
convert(Tmin);
TempBuffer1[3]=0x12;
break;
default:
break;
}
}
else if((keyup==0)&&(dismod==1))
{
Tmax++;
convert(Tmax);
while(keyup==0);
}
else if((keydn==0)&&(dismod==1))
{
Tmax--;
convert(Tmax);
while(keydn==0);
}
else if((keyup==0)&&(dismod==2))
{
Tmin++;
convert(Tmin);
while(keyup==0);
}
else if((keydn==0)&&(dismod==2))
{
Tmin--;
convert(Tmin);
while(keydn==0);
}
xiaodou1=0;
xiaodou2=0;
}
main()
{
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR0=1;
ET0=1;
EA=1;
out=1;
flag=0;
ReadTemperature(0x3f);
delay_18B20(50000);//延時等待18B20數據穩定
while(1)
{
pt=ReadTemperature(0x7f); //讀取溫度,溫度值存放在一個兩個位元組的數組中
if(dismod==0)covert1();
keyscan();
delay_18B20(30000);
}
}

10. 單片機8051報警器程序設計

唉,現在啊都是一群來混積分的傢伙,可你知道你們那樣是賺不到分的嗎?像上面叫老水說的"比較簡單的問題.可是程序寫好了之後給你,你不會用怎麼辦?"說這什麼話啊,既然你都說了是簡單的問題,那你干嗎不直接給人家程序啊,你以為你為了不起嗎?你以為你那樣能賺到分嗎?看我的,這一百分我拿定了,只要提問人是有情有義的人.
start:MOV A,#FE (74)(FE)
loop:MOV P1,A (F5)(90)
MOV R1,#10 ;延時
DEL1:MOV R2,#00 (7A)(C8)
DEL2:MOV R3,#126 (7B)(7E)
DEL3:DJNZ R3,DEL3 (DB)(FE)
DJNZ R2,DEL2 (DA)(FA)
DJNZ R1,DEL1 (D9)(F6)
RL A (23)
LJMP LOOP (02)(40)(40)
END

閱讀全文

與單片機開門報警器電路圖極其程序相關的資料

熱點內容
python輸出數字序列中的空格 瀏覽:78
怎麼將pdf文件大小 瀏覽:734
氧原子相對分子量演算法 瀏覽:988
加密機為什麼是安全的 瀏覽:451
單片機拼音輸入法 瀏覽:789
蘋果筆記本t2加密晶元怎麼打開 瀏覽:796
安卓如何把手機投屏至電視 瀏覽:739
方舟編譯器現在可提速哪些軟體 瀏覽:60
微信加密為什麼是黑屏 瀏覽:473
android去電狀態 瀏覽:604
蘋果13如何加密視頻 瀏覽:815
linuxweblogic緩存 瀏覽:69
雲伺服器不同地域 瀏覽:946
python鬧鍾怎麼打 瀏覽:686
虛擬主機伺服器有什麼區別 瀏覽:833
演算法與程序的奧秘章節檢測 瀏覽:377
找pdf 瀏覽:530
與伺服器連接斷開如何處理 瀏覽:833
伺服器維修預計十分鍾什麼意思 瀏覽:171
黑馬程序員主打教學是什麼 瀏覽:41