久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
如何改才能將下面的單片機代碼改成按下k1后從左向右流水按下k2從右向左流水
[打印本頁]
作者:
張維超0240921
時間:
2024-9-22 15:03
標題:
如何改才能將下面的單片機代碼改成按下k1后從左向右流水按下k2從右向左流水
#include <REGX52.H>
#include <INTRINS.H>
void Delay(unsigned int xms)
{
unsigned char i,j;
while(xms)
{
i=2;
j=239;
do
{
while(--j);
}
while(--i);
xms--;
}
}
void main()
{
unsigned char LEDNum=0;
while(1)
{
if(P3_1==0)
{
P2=~0x01;
while(1)
{
Delay(20);
while(P3_1==0);
Delay(20);
LEDNum++;
if(LEDNum>=8)
LEDNum=0;
P2=~(0X01<<LEDNum);//0x01左移lednum 0X01<<0 = 0000 0001
}
}
if(P3_0==0)
{
P2=~0x01;
while(1)
{
Delay(20);
while(P3_0==0);
Delay(20);
if(LEDNum==0)
LEDNum=7;
else
LEDNum--;
P2=~(0X01<<LEDNum);
}
}
}
}
現在的狀態是只能進行向左或著向右需要按下開關后才能重新開始
作者:
lkc8210
時間:
2024-9-22 17:36
#include <REGX52.H>
#include <INTRINS.H>
void main()
{
unsigned char LEDNum=0;
unsigned char Dir = 0;
unsigned char Dir_Old = 0;
unsigned int DelayCnt = 0;
while(1)
{
if(P3_1==0)
{
Dir = 1;
}
if(P3_0==0)
{
Dir = 2;
}
if(Dir_Old != Dir)
{
DelayCnt = 0;
P2=~0x01;
LEDNum = 0;
}
Dir_Old = Dir;
if(++DelayCnt>=1000)
{
DelayCnt=0;
if(Dir==1)
{
LEDNum++;
if(LEDNum>=8)
LEDNum=0;
}
if(Dir==2)
{
if(LEDNum==0)
LEDNum=7;
else
LEDNum--;
}
P2=~(0X01<<LEDNum);//0x01左移lednum 0X01<<0 = 0000 0001
}
}
}
復制代碼
作者:
csmyldl
時間:
2024-9-22 21:15
#include <REGX52.H>
#include <INTRINS.H>
void Delay(unsigned int xms)
{
unsigned char i,j;
while(xms)
{
i=2;
j=239;
do
{
while(--j);
}
while(--i);
xms--;
}
}
void main()
{
unsigned char LEDNum=0;
while(1)
{
if(P3_1==0) flag=1; {Delay();i=0;}
if(P3_0==0) flag=0; {Delay();i=0;}
if (flag)
{
P2=~(1<<i);
Delay(); i++;
if (i==8) i=0;
}
else
{
P2=~(1<<(8-i));
Delay(); i++;
if (i==8) i=0;
}
}
}
作者:
xianfajushi
時間:
2024-9-22 21:19
亂用無限循環
作者:
csmyldl
時間:
2024-9-22 22:53
csmyldl 發表于 2024-9-22 21:15
#include
#include
void Delay(unsigned int xms)
還需在主程序中定義兩個變量:
bit flag;
unsigned char i;
作者:
hdo11103
時間:
2024-9-27 07:12
#include <REGX52.H>
#include <INTRINS.H>
#define LED_COUNT 8
#define BUTTON_DEBOUNCE_DELAY 20
#define BUTTON_LONG_PRESS_DELAY 500 // 長按延遲
// 延時函數
void Delay(unsigned int xms) {
unsigned char i, j;
while (xms) {
i = 2;
j = 239;
do {
while (--j);
} while (--i);
xms--;
}
}
// 檢測按鈕按下并進行防抖
bit IsButtonPressed(unsigned char buttonPin) {
if (buttonPin == 0) { // 按鈕被按下
Delay(BUTTON_DEBOUNCE_DELAY); // 消抖延遲
if (buttonPin == 0) { // 再次確認按下
return 1; // 按鍵有效
}
}
return 0; // 按鍵無效
}
void main() {
unsigned char LEDNum = 0;
bit isRunning = 0; // 狀態標志,表示是否正在流水
while (1) {
// 檢測按鈕 K1 (P3_1)
if (IsButtonPressed(P3_1) && !isRunning) {
isRunning = 1; // 設置狀態為正在流水
// 從左向右流水
for (LEDNum = 0; LEDNum < LED_COUNT; LEDNum++) {
P2 = ~(0x01 << LEDNum); // 點亮對應的LED
Delay(200); // 控制流水速度
}
isRunning = 0; // 流水結束,重置狀態
}
// 檢測按鈕 K2 (P3_0)
if (IsButtonPressed(P3_0) && !isRunning) {
isRunning = 1; // 設置狀態為正在流水
// 從右向左流水
for (LEDNum = LED_COUNT - 1; LEDNum < LED_COUNT; LEDNum--) {
P2 = ~(0x01 << LEDNum); // 點亮對應的LED
Delay(200); // 控制流水速度
if (LEDNum == 0) break; // 防止越界
}
isRunning = 0; // 流水結束,重置狀態
}
}
}
復制代碼
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产黄色一区二区
|
人人艹人人
|
久久久中文
|
国产欧美日韩在线观看
|
欧美久久久久久久
|
亚洲三级网
|
欧美精品乱码99久久蜜桃
|
国产一级免费观看
|
色av网
|
天天操天天碰
|
激情综合婷婷
|
成人福利视频在线观看
|
久草网在线
|
精品久久久一区二区
|
黄色片一级
|
谁有毛片网址
|
精品国产99
|
国产午夜精品福利
|
亚洲一区二区三区中文字幕
|
国产成人福利
|
欧美又大又硬又粗bbbbb
|
国产天堂在线
|
99精品色
|
午夜免费福利视频
|
国产午夜激情
|
国产精品成人国产乱一区
|
成人羞羞国产免费游戏
|
成年人在线观看
|
婷婷久久五月
|
青草导航
|
天堂av影院
|
成年人小视频
|
亚洲www
|
国产在线视频一区
|
av不卡一区
|
亚洲综合伊人
|
中文字幕视频
|
九九热精品
|
亚洲精品在线视频
|
日日夜夜精品免费
|
国产一级片在线播放
|