導航:首頁 > 操作系統 > 單片機處理啟動按鈕的方法

單片機處理啟動按鈕的方法

發布時間:2023-06-05 14:24:25

㈠ 怎麼用C語言/C51程序實現單片機按鍵長按開機與長按關機

  1. 首先需要硬體支持,也就是單片機某個引腳可以控制斷電和維持上電

  2. 按鍵的的作用也可以給單片機供電,並且還要有個專門的引腳檢測按鍵狀態。

  3. 軟體:首先是長按判斷。這個最好用按鍵掃描。就是檢測按鍵按下時候,定時器計時,如果松開就立即清零。在設置一個功能函數檢測定時值,大於兩秒後,就表示長按。

  4. 按鍵按下單片機供電開始計時,如果達到長按標准,就輸出引腳控制持續供電,這時候按鍵鬆了也不會斷電。

  5. 運行期間,按鍵再次按下並符合長按,那木引腳輸出停止供電,這時候如果按鍵松開,那就徹底沒電關機。

㈡ 高手幫忙.用51單片機控制一個燈.要求按下啟動按鈕後以亮5秒,滅3秒為周期運行.關鍵是要有掉電保持功能!!

關鍵叢巧和的掉電保護可以像1L那樣說用內部EEPROM實滲盯現,或者用24C02(外置寬孫的EEPROM)來做,然後燈亮滅那些就容易搞了。具體思路還是自己動手才懂的

㈢ 單片機按鍵觸發C程序

while(1)
{
if(keyflag==1) //有按下切出死循環
break;
else continue;
}
while(1)
{
..... //用戶自己的程序
}

這種方法是模擬按鍵按下啟動真正的應用程序,觸發的是自己的功能程序短。從效果上來還是可以的

㈣ 單片機的按鍵啟動和復位電路圖

單片機的復位有上電復位和按鈕手動復位兩種。如圖(a)所示為上電復位電路,圖(b)所示為上電按鍵復位電路。

上電復位是利用電容充電來實現的,即上電瞬間RST端的電位與VCC相同,隨著充電電流的減少,RST的電位逐漸下降。圖(a)中的R是施密特觸發器輸入端的一個10KΩ下拉電阻,時間常數為10×10-6×10×103=100ms。只要VCC的上升時間不超過1ms,振盪器建立時間不超過10ms,這個時間常數足以保證完成復位操作。上電復位所需的最短時間是振盪周期建立時間加上2個機器周期時間,在這個時間內RST的電平應維持高於施密特觸發器的下閾值。

上電按鍵復位(b)所示。當按下復位按鍵時,RST端產生高電平,使單片機復位。復位後,其片內各寄存器狀態改變,片內RAM內容不變。

由於單片機內部的各個功能部件均受特殊功能寄存器控制,程序運行直接受程序計數器PC指揮。各寄存器復位時的狀態決定了單片機內有關功能部件的初始狀態。

另外,在復位有效期間(即高電平),80C51單片機的ALE引腳和引腳均為高電平,且內部RAM不受復位的影響。

圖要點一下查看大圖才清楚哦O(∩_∩)O

㈤ 單片機怎麼用一個按鈕控制步進電機啟動和停止

單片機用一個按鈕控制步進電機啟動和停止,這很容易的,識別按鍵按下的程序會寫吧,那定義一個位變數,即標志位,如flag,上電後flag=0,為電機停止狀態。每按一次按鍵,flag=!flag,即取反一次,然後再判斷標志位,flag=1,則啟動電機。flag=0,則停止電機。

㈥ 單片機如何用一個按鍵實現啟停

不知道你想要實現啥樣的啟停,今天上班有點閑,給你寫一個程序做參考,你可以根據你的需要進行更改。//功能是按鍵,按下啟動停止,啟動後LED燈閃爍,
停止LED燈滅。
#include
"REG52.H"
sbit
LED1_01
=
P1^1;
//LED燈
sbit
KEY0_01
=
P1^2;
//按鍵
bit
value_flag
=
0;
//標志位
/*
*
延時1ms延時子函數
**/
void
Delay_1ms(unsigned
int
Time)
{
unsigned
int
x,
y;
for(x
=
Time;
x
>
0;
x--)
for(y
=
120;
y
>
0;
y--);
}
/*
*
按鍵開關【啟動和停止】子函數
**/
void
Scan_keyoutCmd(void)
{
if(KEY0_01
==
0)
//檢測按鍵是否按下
{
Delay_1ms(10);
//延時去抖動
if(KEY0_01
==
0)
//確定按鍵按下
{
value_flag
=
~
value_flag;
//取反標志位
}
while(KEY0_01
==
0);
//檢測鬆手
}
}
/*
*
程序運行【啟動和停止】子函數
**/
void
Disp_layledketCmd(void)
{
if(value_flag
==
1)
//如果標志打開啟動單片機運行程序
{
LED1_01
=
0;
Delay_1ms(500);
//啟動運行程序後LED燈開始閃爍
LED1_01
=
1;
Delay_1ms(500);
}
else
if(value_flag
==
0)
//如果標志關閉停止單片機運行程序
{
LED1_01
=
0;
//停止運行程序後LED滅。
}
}
/*
*
函數主體
**/
int
main(void)
{
value_flag
=
1;
//打開標志位
while(1)
{
Scan_keyoutCmd();//單片機循環檢測是否有按鍵按下【啟動或停止】應運程序
Disp_layledketCmd();
//執行應運程序
}
}

閱讀全文

與單片機處理啟動按鈕的方法相關的資料

熱點內容
不卡影院8區 瀏覽:625
冷血末世 小說 瀏覽:745
江寒為主角的小說 瀏覽:259
6080新視覺觀影理論 瀏覽:184
重生之紅色子弟 瀏覽:371
雲伺服器可以做代掛嗎 瀏覽:110
股票梅花樁主圖k線指標源碼 瀏覽:219
快手購買觀影卡 瀏覽:10
我的世界解壓操作 瀏覽:696
香港三極鬼片推薦 瀏覽:880
好看的韓國推理片w 瀏覽:656
HOLLYWOOD VIXENS 1970 瀏覽:598
秦君召喚蘇妲己是那本小說 瀏覽:508
免費外國小電影 瀏覽:406
擔保物折演算法 瀏覽:997
韓國片姐弟戀電影 瀏覽:644
男主角秦風的重生小說 瀏覽:498
迷人的8051單片機 瀏覽:247
重生之工農紅軍 瀏覽:116