该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/***************************************************************************
标题: 流水灯摇奖器
效果: 流水灯+3号灯中奖
作者: 不加冰的可乐
******************************************************************************/ //头文件:
#include "reg51.h" //IO引脚定义:
sbit key1 = P3^2;
sbit key2 = P3^3; sbit led1 = P2^0; //管脚定义 类似于起名字
sbit led2 = P2^1;
sbit led3 = P2^2;
sbit led4 = P2^3;
sbit led5 = P2^4;
sbit led6 = P2^5;
sbit led7 = P2^6;
sbit led8 = P2^7; sbit SPK = P1^5;
sbit JDQ = P1^4; int a; //定义形式参数a
//函数声明:
void delay(unsigned int time); //延时子函数,
//参数 time 控制延时的时间
//作用,灯亮和熄灭必须持续一定时间,人眼才能看到
void wtl();
void fla();
//主函数:
void main(void)
{
while(1) //主程序循环
{
if(key1==0) //当P3^2按下
while(1)
{
void wtl(); //执行流水灯子程序
}
}
}
//延时子函数,参数范围 0-65536,int为两个字节
void delay(unsigned int time) //参数 time 大小决定延时时间长短
{
while(time--); //减1循环,减到0退出
} //流水灯子函数
void wtl()
{
if(key2==1)
//按下P3^3时连续跳出此循环,下同
led1 = 0;
delay(2000);
if(key2==1)
led2=0;
delay(2000);
if(key2==1)
led3=0;
delay(2000);
switch(a==key2)
{
a=1,led4=0;
delay(2000);
default:while(1) //跳出流水灯后继续执行程序
{
SPK=0;
JDQ=0;
fla(); //闪烁子程序
}
}
if(key2==1)
led5=0;
delay(2000);
if(key2==1)
led6=0;
delay(2000);
if(key2==1)
led7=0;
delay(2000);
if(key2==1)
led8=0;
delay(2000);
} //闪烁子函数
void fla()
{
while(1)
{
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 0;
led5 = 0;
led6 = 0;
led7 = 0;
led8 = 0;
delay(20000);
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;
led5 = 1;
led6 = 1;
led7 = 1;
led8 = 1;
delay(20000);
}
}