芯片复制STC15F104W单片机四路按键循环
芯片复制用一个按键控制四个继电器循环导通,程序由51单片机的程序改到STC15F104W上,第一次按键,第一个继电器吸合,第二次按键,第二个继电器吸合,第一个继电器释放,以此类推。芯片复制最初的想法就是实现电风扇,三档开关,程序里面可以修改端口。
#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) //延时函数
{
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;
} }
}
}

芯片解密