|
用一個按鍵控制四個繼電器循環(huán)導(dǎo)通,程序由51單片機(jī)的程序改到STC15F104W上,第一次按鍵,第一個繼電器吸合,第二次按鍵,第二個繼電器吸合,第一個繼電器釋放,以此類推。最初的想法就是實現(xiàn)電風(fēng)扇,三檔開關(guān),程序里面可以修改端口。
#include<reg52.h>
sbit key = P3^4; //定義按鍵
void delayms(void); //延時
void led_refresh(unsigned char i); //led顯示
unsigned char keyscan(void); //按鍵
void init(void); //初始化
void main(void)
{
unsigned char m;
init();
while(1)
{
m = keyscan();
led_refresh(m);
}
}
void delayms(void) //延時函數(shù)
{
unsigned int i;
i = 10000;
while(i--);
}
void led_refresh(unsigned char j) //led顯示
{
switch(j)
{
case 0 : P3=0xFF; break; // 全部熄滅
case 1 : P3=0xFE; break; // led1 點亮
case 2 : P3=0XFD; break; // led2 點亮
case 3 : P3=0XFB; break; // led3
case 4 : P3=0XF7; break;
}
}
unsigned char keyscan(void) //按鍵掃描
{
static unsigned char count = 0;
unsigned char z = 0;
static bit keyflag = 1;
static bit backup = 1;
keyflag = key;
if(keyflag != backup )
{
delayms();
if(keyflag == key)
{
if(backup == 0)
{
count++;
if(count >= 5)
{
count = 0;
} }
}
}
完整程序請下載文件 |
|