Ⅰ 單片機用c語言設計一個閃燈和報警程序,但是卻在閃燈時,不能報警
flashing ()//閃燈子程序
{
while(1)---------------------------------這個地方死循環了,也就是為什麼閃燈時不能報警的緣故。
{
led=0;
delay(50);
led=1;
delay(50);
if(sw==0)break;
}
}
我列個框架給你
//聲明函數
main()
//初始化
while(1)
if(key1==按下)
//報警
else
//無動作(或者關報警)
if(key2==第一次按下)
//亮燈
else if(key2==第二次按下)
//閃燈
else
//滅燈
//亮燈子程序
//閃燈子程序
//報警子程序
Ⅱ C語言中(void)signal(SIGALRM, alarmhandle);是什麼意思
signal(SIGALRM, alarmhandle); 表示給當前進程注冊SIGALRM信號處理代碼,如果收到SIGALRM信號,就會去執行alarmhandle函數
$mansignal
...
SYNOPSIS
#include<signal.h>
typedefvoid(*sighandler_t)(int);
sighandler_tsignal(intsignum,sighandler_thandler);
DESCRIPTION
Thesignal().,oreitherSIG_IGNorSIG_DFL.
signal()函數是個系統調用,該函數按signum設定一個新的信號處理句柄(函數).新設定的處理函數可以是用戶自定義的函數,也可以是系統指定的SIG_IGN或SIG_DFL.
參考代碼:
#include<signal.h>
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
voidalarmhandle(intsig)
{
printf("recvsig:%d ",sig);
printf("exit! ");
exit(0);
}
intmain()
{
signal(SIGALRM,alarmhandle);
printf("begin... ");
alarm(5);//定時器,用於在5秒後產生SIGALRM信號
while(1);
return0;
}
運行結果:
begin...
recv sig:14
exit!
Ⅲ 西門子冰箱alarm什麼意思
警報的意思。
alarm英[əˈlɑːm]美[əˈlɑːrm]
n.警報;警報器;驚恐;驚慌;恐慌;
v.使驚恐;使害怕;使擔心;給(門等)安裝警報器;
[例句]Analarmsounds when the temperature reaches a predeterminedlevel.
溫度一達到預設的度數,警報就會響起來。
[其他]第三人稱單數:alarms復數:alarms現在分詞:alarming過去式:alarmed過去分詞:alarmed
(3)alarmc語言用法擴展閱讀
take alarm指「受驚,感到驚恐」,take the alarm常指「警告」或「接到警報(而有所行動)」,偶指「吃驚」。 Coming upon a snake, she took alarm.句中不用the,因這里表示吃驚。 Hearing an air-raid alert, she took the alarm.句中用the,這里表示報警。
alarm和alarum起初在用法上完全一樣,沒有區別,後來慢慢的,alarum被停止使用,現比較少見。
n.(名詞)
alarm用作名詞的基本意思是「警鍾,報警器,鬧鍾」,也可作「警報」解,是可數名詞; 引申可表示「驚恐,恐慌」,是不可數名詞。
v.(動詞)
alarm的意思是「驚動」「使…驚恐」,指在危險時以吶喊、鳴笛等手段提醒警惕或催促其行動,暗含焦慮或憂慮的意味。
alarm只用作及物動詞,其主語可為人、物或事物,其賓語一般為人。
alarm的過去分詞alarmed在現代英語中已成為形容詞,常用作表語,接介詞about, at, for或over,表示「因…而恐慌」。alarm前可加表示程度的詞修飾。
Ⅳ C語言中,alarm函數的用法
在你的alarm()的後面加一個pause()這個函數吧,應該可以的
希望回答能給你帶來幫助
如果滿意,請採納,如有疑問,可繼續追問。
Ⅳ C語言如何定時觸發函數要求精確的時刻,比如說12點
可能不是你最想要的,但是可以大致滿足你的要求。
另外還可以藉助DOS的at命令進行計劃任務。
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <dos.h>
main()
{
int HourWant=22;
int MinWant=31;
/*22點31分輸出信息*/
struct time t;
while(1)
{
gettime(&t);
if (t.ti_hour==HourWant && t.ti_min==MinWant)
{
printf("time is up.");
break;
}
sleep(1); /*Delay for 1 second*/
}
getch();
}
Ⅵ C語言中,alarm函數的用法
你好!
在你的alarm()的後面加一個pause()這個函數吧,應該可以的
希望回答能給你帶來幫助
如果滿意,請採納,如有疑問,可繼續追問。
記得給問豆啊!
Ⅶ linux下c語言的setjmp()與alarm()
沒懂。
不過樓主注意:程序崩潰不是setsigjmp返回時崩潰,
而是在while(1)之前(通過printf測試)
Ⅷ 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; //不響則關閃爍
}
}
}
}