久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
幫幫忙大神,寫一個能用的按鍵控制流水燈程序
[打印本頁]
作者:
udhi
時間:
2024-9-19 10:53
標題:
幫幫忙大神,寫一個能用的按鍵控制流水燈程序
寫一個能用的程序
IMG_20240919_091542.jpg
(892.7 KB, 下載次數: 2)
下載附件
2024-9-19 10:52 上傳
作者:
whyukai
時間:
2024-9-19 13:36
這。。。。不是有手就行嗎
作者:
cyi8
時間:
2024-9-19 14:07
proteus的例程很多的,上網搜一下就可以,有可能用的不一樣的輸入輸出口,但一般proteus例程都會帶圖,直接就可以用
作者:
飛云居士
時間:
2024-9-19 14:53
LED連接在P0口,按鍵連接在P3.4到P3.7。以下是一個按鍵控制流水燈的程序示例,
您可以根據實際的IO口配置進行調整。
```c
#include <reg51.h>
#define LED P0 // LED連接在P0口
#define KEY_PORT P3 // 按鍵連接在P3.4到P3.7
unsigned char scan_key() {
unsigned char key_value = 0xFF;
KEY_PORT = 0xF0; // 設置P3.4到P3.7為高電平
_nop_(); // 延時,確保穩定
key_value = KEY_PORT; // 讀取按鍵狀態
KEY_PORT = 0xFF; // 恢復P3.4到P3.7為高電平
return key_value;
}
void delay(unsigned int ms) {
unsigned int i, j;
for (i = ms; i > 0; i--)
for (j = 110; j > 0; j--);
}
void main() {
unsigned char pattern = 0x01; // 初始LED模式
LED = 0xFF; // 初始LED全部關閉
while (1) {
unsigned char key = scan_key();
if (key != 0xFF) { // 如果有按鍵被按下
delay(20); // 消抖
key = scan_key(); // 再次讀取按鍵狀態
if (key != 0xFF) { // 確認按鍵確實被按下
pattern = pattern << 1; // 左移LED模式
if (pattern == 0x00) pattern = 0x01; // 如果所有LED都亮過了,重新開始
LED = ~pattern; // 更新LED狀態
while (key != 0xFF); // 等待按鍵釋放
}
}
}
}
```
### 程序說明:
1. **定義LED和按鍵**:LED連接在P0口,按鍵連接在P3.4到P3.7。
2. **按鍵掃描函數**:`scan_key`函數用于掃描按鍵狀態。
3. **延遲函數**:用于按鍵消抖和LED閃爍的延遲。
4. **主函數**:
- 初始化LED全部關閉。
- 循環檢測按鍵狀態,如果按鍵被按下,則左移LED模式。
- 使用位操作來控制LED的亮滅。
- 等待按鍵釋放,避免重復觸發。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
一二区电影
|
九九热精品视频在线观看
|
久久综合一区
|
中文字幕第十五页
|
亚洲一区在线日韩在线深爱
|
av网站在线免费观看
|
一级片免费视频
|
免费在线成人网
|
亚洲成人一区二区三区
|
国产福利91精品
|
日本a视频
|
在线中文字幕视频
|
天天插天天射天天干
|
亚洲免费视频网站
|
精品久久久久久久久久
|
欧美综合久久久
|
午夜不卡福利视频
|
久草精品在线
|
精品一区二区免费视频
|
亚洲第一av
|
欧美在线观看一区二区
|
久久久久久国产精品
|
久草久草久草
|
精品一区二区视频
|
国产精品免费在线
|
欧美日韩在线一区
|
欧美成人在线免费
|
91亚洲精品久久久电影
|
一级免费毛片
|
亚洲欧洲日本国产
|
天天拍天天射
|
欧美阿v
|
亚洲人成人一区二区在线观看
|
国产在线高清
|
国产精品久久久久久久久久久久
|
国产二区视频
|
热久色
|
国产精品福利在线观看
|
不卡的av在线
|
日本精品一区
|
一区二区三区不卡视频
|