Ⅰ 單片機數碼管1秒顯示一次同時蜂鳴器報警一次,中斷如何實現
中斷的思想是,1、設置一個溢出中斷,時間設置為1秒,開啟中斷使能,
2、時間到後,關閉中斷使能,顯示一個數,蜂鳴器報警,報警一段時間後,(在這之後,是否要關閉顯示和蜂鳴報警,可以根據具體要求。)
3、設置下一個溢出中斷,時間設置為1秒,開啟中斷使能,
4、時間到後,關閉中斷使能,顯示下一個數,蜂鳴器報警,報警一段時間後,
……
Ⅱ 利用單片機設計實現一個60秒倒計時顯示裝置,並且計時到後發出報警聲音。
#include<reg52.h>
sbitbz=P3^1;
unsignedchara[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90};
unsignedcharn,time=60;
main()
{
P1=a[0];
P2=a[6];
TMOD=0X01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;
while(1);
}
timer0()interrupt1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
if(time!=0)
{
n++;
if(n==100)
{
n=0;
time--;
P1=a[time%10];
P2=a[time/10];
}
}
elsebz=~bz;
}
Ⅲ 基於單片機的火災自動報警系統
基於單片機的火災自動報警系統通常由感應器、控制器和報警器等部分組成。感應器可以根據環境中的相關參數,如溫度、煙霧等檢測火災情況。控制器根據感應器檢測到的態閉蠢信息觸發報警器發出聲音或者光線等信號,態輪同時可以控制一些設備執行自動投用滅火劑等規避措施。
火災自動報警系統中自動報警的參數一般是溫度和煙霧。溫度達到一定的數值,比如超過70攝氏度時,可以判斷這個區域內很可能發生了火災;而檢測煙霧則能較早地捕捉到火災,其煙霧濃度較高時則可以判斷火災的程度。這些參數都是經過行業標准和實踐驗證得出的,並按照相關要求進行技術開發的。為了使系統能夠及時、准確地報警,不調高或者調低這些報警參數。
國標中對自帆陪動報警系統有著較為詳細的規定,比如建築物的消防設施設計規范國家標准GB50016-2014中明確規定了各類建築物的火災自動報警系統的性能和技術要求。同時還有煙霧探測器和水噴滅火系統的相關行業標准,如煙霧探測器行業標准GB 4715-2005,和水噴滅火系統行業標准GB 50031-2009等。這些行業標准都詳細規定了火災自動報警系統、探測器、滅火系統的安裝和使用要求。
需要注意的是,因地區和建築形式的差異,這些標准會有一些差異,並且根據具體情況建議在系統設計時,應參照施工和設計方面相應的標准規范。
Ⅳ 單片機設定時間報警怎麼處理
我冬天漏腳
關注
單片機定時報警C語明族言程序,單片機控制的簡易定時報警器電路設計( - 控制/MCU - 電子發燒友網... 轉載
2021-05-17 12:29:32
我冬天漏腳
碼齡5年
關注
單片機控制的簡易定時報警器電路設計(含電路圖和程序)
設計一個單片機控制的簡易定時報警器。要求根據設定的初始值(1-59秒)進行倒計時,當計時到0時數碼管閃爍「00」(以1Hz閃爍),按鍵功能如下:
(1)設定鍵:在倒計時模式時,按下此鍵後停止倒計時,進入設置狀態;如果已經處於設置狀態則此鍵無效。
(2)增一鍵:在設置狀態時,每按一次遞增鍵,初始值的數字增1。
(3)遞一鍵:在設置狀態時,每按一次遞減激殲弊鍵,初始值的數字減1。
(4)確認鍵:在設置狀態時,按下此鍵後,單片機按照新的初始值進行倒計時及顯示倒計時的數改搭字。如果已經處於計時狀態則此鍵無效。
Ⅳ c51單片機: 利用定時器+蜂鳴器實現定時報警功能,30秒內,每一秒響一下,30秒時間到了,蜂鳴器長鳴 求程序
參考程序:
#include <reg52.h>
sbit Beep = P3^0;
unsigned char t1s,t50ms;
unsigned char flag30s = 0,flag1s = 0;
void delayms(unsigned int xms)
{
unsigned int i,j;
for(i=0; i<xms; i++)
for(j=0; j<110; j++);
}
void Alarm(void)
{
Beep = 0;
delayms(200);
Beep = 1;
}
void main()
{
TMOD = 0x01;
TH0 = 0x3C;
TL0 = 0xB0;//50ms中斷一次
EA = 1;
ET0 = 1;
TR0 = 1;
while(1)
{
if(flag30s)Beep = 0;//30s到蜂鳴器一直響
if(flag1s)//1s到,蜂鳴器響一下
{
flag1s = 0;
Alarm();
}
}
}
void TIM0(void) interrupt 1
{
TH0 = 0x3C;
TL0 = 0xB0;
t50ms++;
if(t50ms == 20)//1s
{
t50ms = 0;
t1s++;
flag1s = 1;
if(t1s == 30)//30s
{
TR0 = 0;
flag30s = 1;
}
}
}