熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
szkalwa 發(fā)表于 2021-11-18 17:02 電路時(shí)可行的,但是要寫程序,還占用兩個(gè)IO口,電路還復(fù)雜,實(shí)用角度而言,其實(shí),不如直接一個(gè)自鎖開關(guān)實(shí)在。 |
樓主搞定了問題沒,也在關(guān)注這個(gè)電路實(shí)用性能![]() |
51單片機(jī)不是STM32,要想檢測(cè)電平要先拉高,也就是KEY1 =1 ;然后才能if(KEY1 ==0)判斷,你程序上就有漏洞 |
我感覺不如裝一個(gè)555或者4013簡(jiǎn)單。 |
開機(jī)靠電路,關(guān)機(jī)靠程序。你要檢測(cè)GPIO-IN 得到低電平后,等GPIO-IN 恢復(fù)高電平之后,GPIO-OUT 給低電平。不然會(huì)在釋放按鍵的時(shí)候因?yàn)榘存I的抖動(dòng),變成重啟。 |
void main( ) { while(1) { if(KEY1==0) { LED1 = ~ LED1 ; } } } |
http://www.zg4o1577.cn/bbs/dpj-203511-1.html 給你參考一下現(xiàn)成的代碼 ![]() |
你這代碼邏輯就只有開機(jī)啊 |
Powered by 單片機(jī)教程網(wǎng)