標題:
求思路 系統(tǒng)有三個非自鎖按鍵,分別為K1、K2和K3,控制顯示器
[打印本頁]
作者:
wyj133
時間:
2025-4-10 23:41
標題:
求思路 系統(tǒng)有三個非自鎖按鍵,分別為K1、K2和K3,控制顯示器
2.系統(tǒng)有三個非自鎖按鍵,分別為K1、K2和K3,控制顯示器(七段數(shù)碼管或LCD1602)顯示信息,要求:
(1)按下K1后,顯示器按如下規(guī)律開始顯示
顯示0,保持0.5秒;
顯示1,保持0.5秒;
顯示2,保持0.5秒;
……
顯示11,保持0.5秒;
顯示12,保持0.5秒;
顯示0,保持0.5秒;
顯示1,保持0.5秒;
顯示2,保持0.5秒;
……
按如上無限循環(huán)。
(2)按下K2后, 顯示器顯示的數(shù)字保持不變化,即暫停。
(3)按下K3后, 顯示器顯示清零,即顯示0。
注意:
①繪制詳細的電路原理及編寫相應(yīng)的完整控制程序
②注意程序的縮進與對齊
作者:
powerdruy
時間:
2025-4-16 17:40
這是學校設(shè)計吧,其實很簡單,按K1之后,啟動定時器0.5秒增加一下數(shù)值顯示出來,增加到12就后下次就清0,重復(fù)0.5秒顯示一次;按K2就停掉定時器;按K3就手動把數(shù)值清零
作者:
powerdruy
時間:
2025-4-16 17:41
想要白嫖原理圖和代碼可不成
作者:
歐陽云天
時間:
2025-4-16 22:52
要是連這幼兒園級別的代碼都不想自己去弄,那還是趁早放棄得好
作者:
zhuls
時間:
2025-4-17 07:13
對對對,網(wǎng)絡(luò)上可沒有奶媽。。
好歹畫個圖、說說你做到了那一步,又卡在了那一步。
一上來就開題目,伸手要可不是好習慣。。
難不成小海豚DeepSeek都斷網(wǎng)了?
作者:
li64331218
時間:
2025-4-17 09:52
這個要求很簡單啊,而且你也是分步描述了,就按著這個思路分塊去做就行了。無論對錯好壞,做一個出來你再來請教,別人會給你建議或者意見,這樣才能提高?蓜e把作業(yè)直接發(fā)上來讓別人搞。
作者:
xiaobendan001
時間:
2025-4-17 10:35
聽說豆包也很好用呢
作者:
188610329
時間:
2025-4-17 17:48
貼到 作業(yè)幫 里面試試。
作者:
622323wjl
時間:
2025-4-17 21:04
#include <LiquidCrystal.h> // 定義LCD引腳 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // 定義按鍵引腳 const int K1 = 6; const int K2 = 7; const int K3 = 8; // 定義狀態(tài)變量 bool isRunning = false; bool isPaused = false; int currentNumber = 0; // 定義時間間隔 const unsigned long interval = 500; unsigned long previousMillis = 0; void setup() { // 初始化LCD lcd.begin(16, 2); lcd.print("Press K1 to start"); // 初始化按鍵引腳為輸入模式 pinMode(K1, INPUT_PULLUP); pinMode(K2, INPUT_PULLUP); pinMode(K3, INPUT_PULLUP); } void loop() { // 檢測按鍵狀態(tài) checkButtons(); if (isRunning && !isPaused) { unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; // 更新顯示數(shù)字 updateDisplay(); } } } void checkButtons() { if (digitalRead(K1) == LOW) { delay(20); // 消抖 if (digitalRead(K1) == LOW) { isRunning = true; isPaused = false; while (digitalRead(K1) == LOW); // 等待按鍵釋放 } } if (digitalRead(K2) == LOW) { delay(20); // 消抖 if (digitalRead(K2) == LOW) { isPaused = !isPaused; while (digitalRead(K2) == LOW); // 等待按鍵釋放 } } if (digitalRead(K3) == LOW) { delay(20); // 消抖 if (digitalRead(K3) == LOW) { isRunning = false; isPaused = false; currentNumber = 0; updateDisplay(); while (digitalRead(K3) == LOW); // 等待按鍵釋放 } } } void updateDisplay() { lcd.clear(); lcd.print(currentNumber); currentNumber = (currentNumber + 1) % 13; }
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1