Ⅰ 單片機循環程序不知道如何停止
main()
{
chari;
for(i=0;i<5;i++)
{
P1=0x0f;
delay(200);
P1=0xf0;
delay(200);
}
P1=0x00;
while(1);
}
Ⅱ 單片機如何讓程序暫停運行,
如果是打算在程序運行的某一時刻,暫停運行,那要用一個按鍵,第一次按下,進入一個循環中,在循環中只檢測這個按鍵,不再執行其它程序。當第二次按鍵,跳出這個循環,返回主循環程,繼續運行。
Ⅲ 單片機C語言延時程序怎麼停止
在循環里判斷是否滿足跳出的條件,滿足則跳出循環,不滿足就繼續延時直到延時結束。
具體的條件要有程序的要求來,比如說某個IO口的電平的狀態。
sbit
state=P1^7;
delay(uint)
{
uint
x,y;
for(x=1000;x>0;x--)
for(y=1200;y>0;y--)
{
if(state==1)
return
;//當p1.7口為高時跳出循環
}
}
//由於加入了一條語句,延時要重新計算
Ⅳ 怎麼讓正在運行的單片機程序暫停,其實就是要加個按鍵,當有鍵按下就暫停或運行。
開一個外部中斷,接按鍵
按鍵觸發後進入中斷,循環判斷按鍵,程序暫停,釋放按鍵中斷返回,程序繼續運行
如果是按一下暫停,再按一下運行的話:
開一個外部中斷,接按鍵
按鍵觸發後進入中斷,循環判斷按鍵,釋放按鍵後,等待按鍵再次觸發,程序暫停,再次觸發並釋放後中斷返回,程序繼續運行
Ⅳ 單片機如何實現暫停
修改的建議是:設置一個標志位flag,,剛開始flag=1;
當flag=1的時候時鍾走。。當按鍵按下後,把flag取反,變為0,這樣時鍾就不走。。
if(flag)
{
//時鍾走
}
else
{
時候不走
}
if(按鍵按下){flag=~flag;}
Ⅵ 如何讓51單片機正在執行的程序暫停
定義一個變數buttondown標記按鍵狀態,沒按一次取反一次,在程序中加入:
while(buttondown);
Ⅶ 單片機如何終止正在運行的程序,去運行別的程序我不是問中斷,是終止一個程序,運行別有程序,請教謝謝。
單片機只能運行一個程序。程序的入口就是0x00。如果想運行其它的程序,可以在一個程序里設置分支。通常的手段無非是中斷或查詢IO口狀態。
Ⅷ 單片機如何讓程序關閉
加一個按鍵,按一次按鍵,單片機程序進入死循環,再按一次,單片機退出死循環;
Ⅸ 怎麼讓單片機c程序只執行一次,就停止
寫主程序時,在主程序的下面寫一遍,即
void main()
{
//在這下面寫
while(1);
}
這樣就行了,執行一遍後就停止了。
Ⅹ 單片機c語言編了個流水燈,用按鍵怎麼實現它暫停。
實現流水燈的方式有很多種(中斷,定時器,延時等等),看用哪種方式,最簡單的是延時做流水燈,那麼在死循環裡面增加按鍵檢測,判斷出有按鍵按下來時,再進入死循環,程序不往下走就可以暫停,再按跌出死循環。
#include //51系列單片機定義文件
#define uchar unsigned char //定義無符號字元
#define uint unsigned int //定義無符號整數
void delay(uint); //聲明延時函數
void main(void)
{
uint i;
uchar temp;
uint Flag1=0; 按鍵標志位
uint Flag2=0;
while(1)
{
Flag1 = keyscan();
if(Flag1==1)(Flag2=~Flag2); //如果一旦檢測到一次按鍵掃描就把標志位2 打開;再次就關閉;
if(Flag2==1)// 如果標志位打開就開始流水燈
{
temp=0x01;
for(i=0;i<8;i++) //8個流水燈逐個閃動
{
P1=~temp;
delay(100); //調用延時函數
temp<<=1;
}
}
(10)單片機如何讓程序停止擴展閱讀:
單片機編程就是硬體是單片機,基於單片機進行的程序開發,在有周圍外設支持的情況下,用軟體來控制的部分通過單片機編程來實現。單片機能識別的語言是硬體語言即匯編,因此編程就是圍繞匯編來實現,有直接用匯編程序來編寫的,但是較難調試的編寫,特別是一上規模就更不易實現,因此常用高級語言來寫然後通過編譯器轉化成匯編。