51微控制器:每次按S1鍵,流水燈移位演示
阿新 • • 發佈:2018-12-24
原理圖
//原始碼
#include <reg52.h>
#include <intrins.h> //包含移位函式
#define uint unsigned int //巨集定義
#define uchar unsigned char
sbit S1=P3^7; //定義S1變數
void delay(uint);
uchar temp;
void main()
{
temp=0xfe; //初始化
P2=temp;
while(1)
{
if(S1==0 ) //判斷是否按下
{
delay(10);
if(S1==0) //再次判斷是否按下
{
temp=_crol_(temp,1);//右移
delay(100); //延時
P2=temp; //重新賦值
while(!S1); //消抖
delay(5);
while(!S1);
}
}
}
}
void delay(uint z) //延時程式
{
uint x,y;
for(x=200;x>0;x--)
{
for(y=z;y>0;y--);
}
}