十天学会单片机实例100(14)
时间:2025-01-10
时间:2025-01-10
十天学会单片机实例100
{
unsigned char i;
i=0; //将i初始化为0
while(1)
{
if(S1==0) //如果S1键按下
{
delay(); //延时一段时间
if(S1==0) //如果再次检测到S1键按下
i++; //i自增1
if(i==9) //如果i=9,重新将其置为1
i=1;
}
switch(i) //使用多分支选择语句
{
case 1: P0=0xfe; //第一个LED亮
break;
case 2: P0=0xfd; //第二个LED亮
break;
case 3:P0=0xfb; //第三个LED亮
break;
case 4:P0=0xf7; //第四个LED亮
break;
case 5:P0=0xef; //第五个LED亮
break;
case 6:P0=0xdf; //第六个LED亮
break;
case 7:P0=0xbf; //第七个LED亮
break;
case 8:P0=0x7f; //第八个LED亮
break;
default: //缺省值,关闭所有LED
P0=0xff;
}
}
}
//实例21:用for语句控制蜂鸣器鸣笛次数
#include<reg51.h> //包含单片机寄存器的头文件
sbit sound=P3^7; //将sound位定义为P3.7