|
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
#include <reg51.h>
sbit key=P3^4;//对P3.4重命名
sbit key1=P3^7;//对P3.7重命名
#define key_on 0//启动开灯指令
#define key1_off 0//启动关灯指令
void delay(int ms)//延时程序
{
while(ms--)
{
unsigned int i=109;//局部变量 i。
while(i--);
}
}
void main()//主函数
{
if(key==key_on)//判断是否按下P3.4
{
delay(20);//防抖
if(key==key_on)//确定按下P3.4
{
while(1)//第一个死循环
{
P1=0xfe;//第1个灯亮
delay(500);//延时0.5秒
if(key1==key1_off)//判断是否按下P3.7
{
break;//如果是,则跳出循环,进入下一个while(1),如果不是,继续执行。
}
P1=0xfb;//第3个灯亮
delay(500);//延时0.5秒
if(key1==key1_off)//判断是否按下P3.7
{
break;//如果是,则跳出循环,进入下一个while(1),如果不是,继续执行。
}
P1=0xef;//第5个灯亮
delay(500);//延时0.5秒
if(key1==key1_off)//判断是否按下P3.7
{
break;//如果是,则跳出循环,进入下一个while(1),如果不是,继续执行。
}
P1=0xbf;//第7个灯亮
delay(500);//延时0.5秒
if(key1==key1_off)//判断是否按下P3.7
{
break;//如果是,则跳出循环,进入下一个while(1),如果不是,继续执行。
}
}
剩下的代码在压缩包里
全部资料51hei下载地址:
按钮控制开关.zip
(57.14 KB, 下载次数: 10)
|
评分
-
查看全部评分
|