⑴ 單片機怎麼用簡單按鍵控制LED
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
sbit led =P1^0;//假設燈在P1.0
sbit key1=P2^0;//假設按鍵在P2.0和P2.1
sbit key2=P2^1;//
void delay_1s(uint x)//延時
{
uint y;
uint z; //如果延時不夠長可以把z的值加大
while(x--)
{
for(y=0;y<50000;y++)
{
z=200;;
while(z--);
}
}
}
void main(void)
{
led=1; //不亮
while(1)
{
if(key1==0 && key2==1)//按鍵1按下,按鍵2沒按
{
led=0; //亮
}
else if(key1==1 ) //按鍵1釋放或未按時,燈滅
{
led=1; //滅
}
if(key2==0 && key1==1) //按鍵2按下,按鍵1沒按
{
led=0; //先亮
delay_1s(30); //等30秒
led =1 ; //30秒後滅
}
}
}
⑵ 51單片機按鍵控制
#include<reg52.h>
sbit key=你接按鈕的埠;
sbit led=你接LED的埠;
void delay(unsigned int ms)
{
unsigned int x,y;
for(x=ms;x>0:x--)
for(y=100;y>0;y--);
}
void main()
{
while(1)
{
if(key==0)//判斷鍵是否按下
{
delay(10);//10ms延遲
if(key==0)//消抖
{
led=1;//如果共陽極led=0;
delay(500);
led=0;
}
}
}
}
⑶ 單片機用一個按鍵隨意切換控制三種模式
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar time,sec,keyval;
sbit D1=P3^3;
sbit D2=P3^4;
sbit KEY=P3^5;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;
if(time>=20)sec++;
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
keyval=0;
while(1)
{
switch(keyval)
{
case 0: TR0=1;sec=0;
if(sec<30){D1=0;D2=1;}
else {D1=1;D2=1;}
break;
case 1: TR0=1;sec=0;
if(sec<30){D1=1;D2=0;}
else {D1=1;D2=1;}
break;
case 2: TR0=1;sec=0;
if(sec<30){D1=0;D2=1;}
if(sec>=30 && sec<60){D1=1;D2=0;}
else {D1=1;D2=1;}
break;
default:break;
}
}
}
⑷ 單片機怎麼用簡單按鍵控制LED
給你個C語言的
#include<stc.h> //頭文件
sbit jian=P1^0;
sbit LED=P1^1;
void ys(unsigned int ); //聲明延時函數
void main()
{
while(1)
{
LED=1; //讓LED點亮,其實這條語句可以不寫,因為單片機的IO口默認就是高電平
if(jian==0) //判斷按鍵是否按下
{
ys(1000); //延時消抖
if(jian==0) //再次判斷按鍵是否按下,這條語句很有必要。
{
LED==0; //LED 熄滅
}
}
}
}
/*延時函數*/
void ys(unsigned int i)
{
unsigned x;
for(x=0;x<5000;x++)
for(x=0;x<a;x++);
}
程序是在這里編寫的,不是用編譯器,可能存在語法錯誤
⑸ 單片機按鍵功能
按鍵按照結構原理可分為兩類,一類是觸點式開關按鍵,如機械式開關、導電橡膠式開關等;另一類是無觸點式開關按鍵,如電氣式按鍵,磁感應按鍵等。前者造價低,後者壽命長。目前,微機系統中最常見的是觸點式開關按鍵。
2.輸入原理
在單片機應用系統中,除了復位按鍵有專門的復位電路及專一的復位功能外,其它按鍵都是以開關狀態來設置控制功能或輸入數據的。當所設置的功能鍵或數字鍵按下時,計算機應用系統應完成該按鍵所設定的功能,鍵信息輸入是與軟體結構密切相關的過程。
對於一組鍵或一個鍵盤,總有一個介面電路與CPU相連。CPU可以採用查詢或中斷方式了解有無將鍵輸入,並檢查是哪一個鍵按下,將該鍵號送入累加器ACC,然後通過跳轉指令轉入執行該鍵的功能程序,執行完後再返回主程序
⑹ 51單片機如何用一個按鍵控制一段程序的運行與停止
1、創建項目文件。
6、當按下一個按鍵時,關閉燈,整個程序運行,再按一次,程序停止。
⑺ 單片機如何實現多按鍵同時控制
單片機內核決定了只能是單任務,如果使用實時系統的話,通過時間片可以實現虛擬多任務,不過效率不高。象你這種情況其實,循環掃描按鍵就可以了
⑻ 單片機一個按鍵控制一個程序
你把幾種方式寫成幾個子程序,然後主程序調用按鍵檢測,根據檢測到的鍵值調用對應的子函數即可
⑼ 單片機按鍵控制小燈程序
用c給你編一下
#include<reg52.h>//89s52單片機頭文件
#define
K1
=
P0^0
;
//用宏定義定義按鍵1
#define
K2
=
P0^1
;
//用宏定義定義按鍵2
#define
LED
=
P3^7
;
//用宏定義定義小燈
void
LED_shuanshuo
(char
a
);
void
main
(void)
{
char
a
;
while(1)
{
if(k1)
a
=
5;
//此處的值可以從0
-
255
次之間閃爍
if(k2)
a
=
10
;//此處的值可以從0
-
255
次之間閃爍
LED_shuanshuo
(a
);
}
}
void
LED_shuanshuo
(char
a
)
{
char
b;
for(b
=
0
;
b
<
a
*
2
;
b
++)
{
LED
^=
1
;
}
LED
=
1
;
//1
代表燈亮
0
代表燈滅
}
⑽ 單片機按鍵控制led燈
假設led連在P0口,高電平點亮,按鍵在P3.0口,低電平有效,則
MAIN:
MOV P0,#00
MOV R0,#00
LOOP:
MOV A,R0
MOV P0,A
JB P3.0,LOOP ;按鍵
LKEY1:
JB P3.0,L2;;等待彈起
MOV A,R0
MOV P0,A
AJMP LKEY1
L2:
MOV A,R0
CJNE A,#0FFH,L3
MOV A,#0
AJMP L4
L3:
MOV A,R0
SETB C
RLC A ;循環左移1位,逐位點亮
L4:
MOV R0,A
MOV P0,A
AJMP LOOP