|
發(fā)布時間: 2021-3-12 01:17
正文摘要:睡不著。。。做點事情。。。 用得上的拿走,不謝 先上圖: 接下來是代碼: int main(void) { board_init(); // 基本io初始化 delay_init(); // 延時是必 ... |
|
這段代碼如果再關機后再按開機呢?這個只是單次開關機,通常需要重復操作開關機才行。 |
| 關閉下面的管子后 ,,Q5 浮空沒問題么? |
| 你好! 請問一下所用的MCU型號,還有頭文件之類 |
| 這個思路確實挺新穎的。 |
1313133 發(fā)表于 2021-11-12 09:35 51單片機不用像32一樣配置端口 |
qwettyuio 發(fā)表于 2021-11-5 14:36 端口沒有配置,輸入、輸出之類的 |
| 短按開,長按關,怎么編程? |
| 開關可以放在LDO前面,這樣關機后靜態(tài)電流幾乎可以為零 |
名字不是重點 發(fā)表于 2021-11-5 11:11 不太行 代碼: #include <REGX51.H> #define uchar unsigned char sbit POW_ON =P3^1; sbit KEY_POW=P3^0; void delay_ms(unsigned int t) //延時函數(shù) { while(t--); } int main(void) { if(KEY_POW==0)//電源鍵有觸發(fā) { delay_ms(1000);//延時,看情況,定義長短 if(KEY_POW==0)// 真的是電源鍵按下了 POW_ON=1; // 上電,鎖定電源輸出 while(KEY_POW==0) //等待按鍵松開 { ; } } while(1) //大循環(huán) { delay_ms(500);// 工作狀態(tài)演示 if(KEY_POW==0)//電源鍵又按下了 { delay_ms(2000);//延時,老規(guī)矩,長按關機 if(KEY_POW==0) // 真的是電源鍵按下了 { while(KEY_POW==0) //等松開 POW_ON=0;// 最后取消電源鎖定,關閉電源 } } } } |
| 這個不錯,都注釋了。 |
qwettyuio 發(fā)表于 2021-11-5 09:53 我就是用51的 |
| U1詳細型號是什么?支持低壓差? |
| 51單片機能用這個控制電路嗎 |
bg4rfb 發(fā)表于 2021-3-12 13:17 代碼實測可用。 單片機由3U供電。電池接VBAT,沒有按鍵時,3U是無電的。 這段代碼只是提供一個方法,很多地方都可以優(yōu)化的。比如第一個 if(KEY_POW==0)是可以去掉的。 而且如果按住按鍵不放,會一直在開機、關機間循環(huán)。都是要優(yōu)化的。 |
| 這樣是不是單片機提前已經(jīng)通電了呢,一直在檢測KEY_POW==0 ? |
| 謝謝分享,有實踐過可行么? |
Powered by 單片機教程網(wǎng)