#include<stc89xx.h>
#define uchar unsigned char
sbit fmq=P4^4;
sbit key=P1^7;
bit flag;
uchar times;
uchar cnt;
void t0isr() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
if(flag)
{
fmq=~fmp;
num++;
if(num>=10)
{
flag=~flag;
num=0;
}
}
else
{
cnt++;
cnt%=2;
if(cnt==0)
{
fmq=~fmq;
num++;
if(num>=10)
{
num=0;
flag=~flag;
}
}
}
}
main()
{
TMOE=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
ET0=1;
EA=1;
while(1)
{
if(key==0)
{
TR0=1;
}
else TR0=0;
}
}
❷ 開關控制報警器如何用單片機實現
開關控制報警器如何用單片機實現
單片機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);
}
}
}
❸ 用單片機做電壓報警器
這個只能告訴你大體的思路,至於詳細的程序,要看硬體怎麼設計的了,首先要測電壓最簡單的辦法就是分壓後ad,(單片機內部自帶的ad或者外接的ad晶元),至於指示燈的跳動可以用定時器的中斷來做,也是很簡單的
❹ 單片機報警器程序
請問你需要對什麼報警呢?溫度,濕度?
還是只是單純的給個時間讓蜂鳴器響?我有寫好的程序,
❺ 怎麼用單片機最小系統做報警器,什麼報警器都行,簡單的 at89c51
電路很簡單的,單片機的最小系統+蜂鳴器電路就可以了,程序自己寫吧,貼上蜂鳴器的圖:那個P34可以是單片機的任意IO口,供參考。
❻ 基於單片機的聲音報警器設計
使用定時器,500HZ是周期是2ms,可將定時器0設置為200us中斷,每次中斷,進去計數計數到5(1ms),就翻轉P1.0口電平,連續翻轉0.2s後,暫停翻轉,輸出高電平或者低電平輸出,並持續0.2s,然後循環。這段定時中斷程序應該不難,給你思路,你就該會寫了。
❼ 利用單片機實現數字顯示優先報警器。
51單片機本身有兩個帶有一個可編程的定時器/計數器T1,T2,有四個方面的工作,只要初始值寫入控制字,設置計數,你可以輸出不同頻率的脈沖為600萬HZ 0.51微控制器值可以計算,存款0F0H,選擇的方式,控制字
MOV TMOD,#01H;可選的方式
MOV TL0,#0F0H;載入初始值
SETB TR0;開始BR />或者,當目的地是SETB ET0允許中斷
或SETB,如果目標是EA的CUP開中斷
❽ 想用單片機開發一個溫度濕度警報器,當溫度濕度過高時,觸發警報。需要哪些東西
單片機最小系統就不用說了吧 就是能讓單片機工作起來 然後是濕度的感測器 和報警器 這些分別與單片機的某些引腳連接 接著就是單片機的編程 這個東西不大 用54應該能實現了 編程也就是說 當開啟電源後 感測器開始檢測 寫一個報警的值 當達到這個值時 單片機發送個電平給報警器讓起工作 報警.
❾ AT89C51單片機報警器設計
16個開關可以使用矩陣按鍵使用單片機的8IO引腳,單片機寫程序利用延時函數通過P1.0引腳發出方波驅動蜂鳴器。可以換成有源蜂鳴器直接給高低電平信號就能驅動蜂鳴器工作。兩位數碼管一般需要10個單片機的IO引腳連接。
❿ 單片機at89c51用C語言編寫報警器
#include<reg51.h>
#defineucharunsignedchar
uchartime;
sbitspk=P1^0;
voidt0isr()interrupt1
{
TH0=t_h;
TL0=t_l;
spk=~spk;
}
voidt1isr()interrupt3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
time++;
time%=6;
if(time==0)
{
t_h=(65536-500)/256;
t_l=(65536-500)%256;
}
if(time==2)
{
t_h=(65536-1000)/256;
t_l=(65536-1000)%256;
}
}
main()
{
TMOD=0x11;
t_h=(65536-500)/256;
t_l=(65536-500)%256;
TH0=t_h;
TL0=t_l;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR0=1;
TR1=1;
ET0=1;
ET1=1;
EA=1;
while(1);
}