国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標題:
基于51單片機按鍵按下改變流水燈方向源程序
[打印本頁]
作者:
coolfire
時間:
2021-5-5 23:43
標題:
基于51單片機按鍵按下改變流水燈方向源程序
2口接8個LED流水燈,P3.0接一個按鍵
按鍵按下一次流水燈方向改變一次
1.png
(50.46 KB)
下載附件
2021-5-5 23:43 上傳
單片機源程序如下:
#include<reg52.h> //51系列單片機頭文件
#include<intrins.h> //51系列單片機頭文件
#define uint unsigned int //宏定義
#define uchar unsigned char //宏定義
sbit k1=P3^0;
uchar a,b,c,d,y=0; //定義一個變量,用來給P2口賦值
void delayms(uint xms) //延時子函數
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延時約xms毫秒
for(j=110;j>0;j--);
}
void key()
{
uchar x;
if(k1==0)
{
delayms(10); //延時10ms 去抖
if(k1==0) //再判斷k1按鍵是否按下
{
while(!k1);
x++;
if(x==4)
x=1;
if(y==4)
x=0;
switch(x) //條件選擇
{
case 1: y=1; break;
case 2: y=2; break;
case 3: y=3; break;
default: break;
}
}
}
}
void display()
{
if(y==0)
{
P2=a;
delayms(500);
a=~a; //狀態0時 LED閃爍
}
if(y==1)
{
P2=b;
delayms(500);
b=_crol_(b,1); //狀態1時 LED選擇左移
}
if(y==2)
{
P2=c;
delayms(500);
c=_cror_(c,1); //狀態2時 LED選擇右移
}
if(y==3)
{
P2=d;
delayms(500);
d=d; //狀態3時 LED全亮
}
}
void main()
{
a=0xff; //高4位和低4位都置為1
b=0x01; //只有低4位的最低位為1
c=0xfe; //低4位的最低位為0
d=0xff;
while(1)
{
key();
display(); //按鍵顯示
}
}
復制代碼
歡迎光臨 ELEOK (http://m.afoofa.cn/)
Powered by Discuz! X5.0