⑴ 單片機用c語言,按鈕控制一個LED燈,要求按下松開,LED亮,按下松開,LED暗!循環
1、首先打開桌面上的keil軟體,在進行對51單片機進行編程時最常用的就是keil軟體。
⑵ 用52單片機的4x4矩陣鍵盤的前八個鍵分別控制8個LED燈
#include "reg51.h"
#define uchar unsigned charconst tab[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d};
const uchar led[]={0x01,0x01,0x04,0x08,0x10,0x20,0x40,0x80};
void delay()
{
uchar i;
for(i=0;i<10;i++){;}
}
void keyscan()
{
uchar a,b,c,i;
P3=0x0f;
a=P3;
delay();
P3=0xf0;
b=P3;
delay();
c=a+b; for(i=0;i<8;i++)
if(c==tab[i]) P2=led[i];
if(c==0xeb) P2=0xff;
}
void main()
{ P2=0x00; while(1)
{
keyscan();
}
}
⑶ 單片機c52怎麼用4個鍵控制四種方式的流水燈,還能暫停,求解決!!!
這個程序可以試一下
#include "reg52.h"
typedef unsigned int WORD;
sbit key = P3^4;
void Delay_ms(WORD n)//軟體延時
{
WORD x;
while (n--)
{
x = 100;
while (x--);
}
}
void main()
{
bit Y=0;
P1=0X01;
P3=0XFF;
while(1)
{
if(key==0)
{
Delay_ms(10);
if(!key)
{
Y=~Y;
while(!key);
}
}
if(Y==1)
{
if(P1==0X00)P1=0X01;
Delay_ms(100);
P1=P1<<1;
}
}
}
⑷ 單片機C語言按鍵控制LED燈
其實是一樣的,也沒什麼哪個規范這一說,這個看個人習慣了
首先if(SW13==0)是判斷此引腳是否為0 (按鍵按下)
然後一個delay用於按鍵防抖動
沒被注釋的那部分是靠if在次判斷是否為0按下按下後執行LED_ON函數使LED亮
然後通過while判斷按鍵是否松開,如果松開的話就繼續執行LED_OFF將LED關閉
而注釋掉的那段是依靠while函數直接判斷按鍵是否處於按下狀態
是的話就循環執行LED_ON函數直至判斷按鍵松開(SW13=1)後在繼續執行到LED_OFF函數使LED 關閉
不過這兩種寫法的有個共同缺點就是按鍵判斷是while死循環,如果你這個按鍵按下後,單片機就只是在判斷這個條件成立與否,期間不在進行其他工作
⑸ 單片機STC89C52,P0.1口作為按鈕,P1.0連接燈,要求按鈕控制燈的亮滅。請設計硬體連接方式和C程序
單片機是不認識平p1.0 , P1.3 等,你把P1.0改為P1^0 , P1.3改為p^3.
⑹ 使用52單片機,用8個開關,分別控制8個LED燈
52單片機,有P4口?開玩笑吧
⑺ 單片機 用C語言怎麼編寫用一個按鈕,控制一盞燈的亮與滅的程序
讀取連接按鍵的IO口,判斷是否為低電平,如果是,延時(十毫秒左右可以),再次讀取IO口,判斷是否為低電平,如果是則表示有有效的按鍵按下,接著用while判斷等待按鍵釋放,然後讓連接led的IO口電平取反以控制其亮滅(是強電的燈可以通過此處控制繼電器的合、閉來控制燈的亮滅)。參考程序:if(key==0){delayms(10);if(key==10){while(key==0);//等待按鍵釋放,IO口恢復高電平led=!led;//按鍵控製程序}}
⑻ 單片機按鍵控制小燈程序
用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
代表燈滅
}