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