標(biāo)題:
基于單片機(jī)按鍵按下改變流水燈方向源程序
[打印本頁]
作者:
shankmorder
時(shí)間:
2021-5-2 18:46
標(biāo)題:
基于單片機(jī)按鍵按下改變流水燈方向源程序
P2口接8個(gè)LED流水燈,P3.0接一個(gè)按鍵
按鍵按下一次流水燈方向改變一次
單片機(jī)源程序如下:
#include<reg52.h> //51系列單片機(jī)頭文件
#include<intrins.h> //51系列單片機(jī)頭文件
#define uint unsigned int //宏定義
#define uchar unsigned char //宏定義
sbit k1=P3^0;
uchar a,b,c,d,y=0; //定義一個(gè)變量,用來給P2口賦值
void delayms(uint xms) //延時(shí)子函數(shù)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延時(shí)約xms毫秒
for(j=110;j>0;j--);
}
void key()
{
uchar x;
if(k1==0)
{
delayms(10); //延時(shí)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; //狀態(tài)0時(shí) LED閃爍
}
if(y==1)
{
P2=b;
delayms(500);
b=_crol_(b,1); //狀態(tài)1時(shí) LED選擇左移
}
if(y==2)
{
P2=c;
delayms(500);
c=_cror_(c,1); //狀態(tài)2時(shí) LED選擇右移
}
if(y==3)
{
P2=d;
delayms(500);
d=d; //狀態(tài)3時(shí) LED全亮
}
}
void main()
{
a=0xff; //高4位和低4位都置為1
b=0x01; //只有低4位的最低位為1
c=0xfe; //低4位的最低位為0
d=0xff;
while(1)
{
key();
display(); //按鍵顯示
}
}
0.png
(64.49 KB, 下載次數(shù): 64)
下載附件
2021-5-3 00:59 上傳
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1