|
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.png (114.31 KB, 下載次數(shù): 57)
下載附件
模擬圖
2020-4-3 12:21 上傳
單片機(jī)源程序如下:
#include <reg51.h>
sbit key=P3^4;//對(duì)P3.4重命名
sbit key1=P3^7;//對(duì)P3.7重命名
#define key_on 0//啟動(dòng)開燈指令
#define key1_off 0//啟動(dòng)關(guān)燈指令
void delay(int ms)//延時(shí)程序
{
while(ms--)
{
unsigned int i=109;//局部變量 i。
while(i--);
}
}
void main()//主函數(shù)
{
if(key==key_on)//判斷是否按下P3.4
{
delay(20);//防抖
if(key==key_on)//確定按下P3.4
{
while(1)//第一個(gè)死循環(huán)
{
P1=0xfe;//第1個(gè)燈亮
delay(500);//延時(shí)0.5秒
if(key1==key1_off)//判斷是否按下P3.7
{
break;//如果是,則跳出循環(huán),進(jìn)入下一個(gè)while(1),如果不是,繼續(xù)執(zhí)行。
}
P1=0xfb;//第3個(gè)燈亮
delay(500);//延時(shí)0.5秒
if(key1==key1_off)//判斷是否按下P3.7
{
break;//如果是,則跳出循環(huán),進(jìn)入下一個(gè)while(1),如果不是,繼續(xù)執(zhí)行。
}
P1=0xef;//第5個(gè)燈亮
delay(500);//延時(shí)0.5秒
if(key1==key1_off)//判斷是否按下P3.7
{
break;//如果是,則跳出循環(huán),進(jìn)入下一個(gè)while(1),如果不是,繼續(xù)執(zhí)行。
}
P1=0xbf;//第7個(gè)燈亮
delay(500);//延時(shí)0.5秒
if(key1==key1_off)//判斷是否按下P3.7
{
break;//如果是,則跳出循環(huán),進(jìn)入下一個(gè)while(1),如果不是,繼續(xù)執(zhí)行。
}
}
剩下的代碼在壓縮包里
51hei.png (9.53 KB, 下載次數(shù): 62)
下載附件
2020-4-3 14:53 上傳
全部資料51hei下載地址:
按鈕控制開關(guān).zip
(57.14 KB, 下載次數(shù): 10)
2020-4-3 12:28 上傳
點(diǎn)擊文件名下載附件
文件齊全 下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|