① 如何用單片機實現防空警報音
需要找到防空警報的頻率變化范圍,就可以實現。
下面給一個蜂鳴器模擬消防車報警聲;
*****************************************************************************/
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar Count;
sbit Key1 = P3^2 ;
sbit Key3 = P3^3 ;
sbit BEEP = P3^1 ; //蜂鳴器
sbit p34 = P3^4 ;
/********************************************************
延時函數
*********************************************************/
void delay(void)
{
uint k;
for(k=1700;k>0;k--);
}
/********************************************************
鍵控制函數
*********************************************************/
void key_control()
{
if(Key1==0)
{
while(Key1==0);
TR0=1;
}
if(Key3==0)
{
while(Key3==0);
TR0=0;
}
}
/********************************************************
主函數
*********************************************************/
main()
{
p34=0;
P0=0x0;
P1=0xff;
P2=0xff;
Count=0x00;
BEEP=1;
TMOD=0x01;
TH0=0x00;
TL0=0xff;
EA=1; ET0=1;
while(1)
{
do
{
Count++;
key_control();
delay();
}while(Count!=0xff);
do
{
Count--;
key_control();
delay();
}while(Count!=0x00);
}
}
/*********************************************************
Time0中斷函數
**********************************************************/
void Time0(void) interrupt 1 using 0
{
TH0=0xfe;
TL0=Count;
BEEP=~BEEP;
}
/*********************************************************/
② 51單片機,怎麼用匯編語言編程一個程序。實現4個按鍵控制4種報警聲音(110、119、120、防空警報聲)。
沒有四種聲音的頻率庫,其他的給你做個示範吧:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV SP,#5FH
MOV TMOD,#11H
SETB EA
SETB ET0
SETB ET1
LOOP:
LCALL KEYSCAN
MOV A,R2
JNZ LP1
MOV DPTR,#TAB110
SJMP LPRUN
LP1:
DEC A
JNZ LP2
MOV DPTR,#TAB119
SJMP LPRUN
LP2:
DEC A
JNZ LP3
MOV DPTR,#TAB120
SJMP LPRUN
LP3:
DEC A
JNZ LP4
MOV DPTR,#TABBOMB
SJMP LPRUN
LP4:
LJMP LOOP
LPRUN:
MOVX A,@DPTR
MOV TL0,A
INC DPTR
MOVX A,@DPTR
MOV TH0,A
............;時長控制也可以做到表裡,計算後賦值給T1
LJMP LOOP
END
③ 開關控制報警器如何用單片機實現
開關控制報警器如何用單片機實現
單片機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);
}
}
}
④ C51單片機有警報聲又可以閃燈的程序怎麼寫
給你做個示範吧:
#include<reg51.h>
sbit ALARMSND=P1^0;
sbit ALARMLED=P1^1;
sbit KEY=P1^2;
void t0_isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ALARMLED=!ALARMLED;
}
main()
{
TMOD=0x01;
ET0=1;
EA=1;
while(1)
{
if(KEY==0)
{
delay(10);
if(KEY==0)
{
ALARMSND=!ALARMSND; //按鍵切換報警
if(ALARMSND==1)TR0=1; //如果報警聲響,則啟動定時器,開始閃爍
else TR0=0; //不響則關閃爍
}
}
}
}