⑴ 51單片機按鍵控制點燈
按鍵 PIN1接電阻 電阻上拉到VCC ,PIN2接地,PIN1接到51的IO口1
燈接在51的IO 口2,假設能夠驅動
1:設置IO口1為輸入
2:設置IO口2為輸出
3:循環檢測IO口1是否為低電平0
4:如果是0,則寫IO口2為1,設置為高電平點燈
5:while循環空指令,根據指令周期,計算500ms要多少個指令
6:5的while循環結束後,寫IO口2為0,滅燈
7:重復到步驟3
⑵ 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;
}
}
}
}
⑶ 51單片機鍵控信號發生器
發現我去年做了一個這樣的,不過我只弄了3種波形,頻率方波的2K這樣,正弦波就比較小了,250HZ以內。按鍵控制波形切換、頻率增減,幅度增減
⑷ 單片機怎麼用簡單按鍵控制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++);
}
程序是在這里編寫的,不是用編譯器,可能存在語法錯誤
⑸ 單片機中怎樣定義一個按鍵控制轉換三個模式
參考如下: 假設按鍵按下為低電平; if(key1==0) { while(key1==0);//彈起後執行 { 按鍵1需要執行的功能; } } if(key2==0) { while(key2==0);//彈起後執行 { 按鍵2需要執行的功能; } }
⑹ 單片機一個按鍵控制一個程序
你把幾種方式寫成幾個子程序,然後主程序調用按鍵檢測,根據檢測到的鍵值調用對應的子函數即可
⑺ 求單片機按鍵控制數碼管程序
實現方法有挺多種的,下面介紹一種:
1、按鍵子程序:
實現按第一個鍵使鍵值keyvalue=1,第二個鍵使鍵值keyvalue=2,第三個鍵使鍵值keyvalue=3
2、顯示子程序
定義3個位元組的顯示緩存,如dispbuf1,dispbuf2,dispbuf3
使dispbuf1的數字顯示在第一個數碼管上,dispbuf2的數字顯示在第2個數碼管上,dispbuf3的數字顯示在第3個數碼管上
3、主程序:
初始化按鍵次數keycount為0
檢測按鍵,任意一個鍵(比如說是第2個鍵)被按後,keycount 加1,並將keyvalue值(2)送給dispbuf1(則第一個數碼管將會顯示2),再有任意一個按鍵按下後,keycount 加1,並將keyvalue值送給dispbuf2,再有任意一個按鍵按下後,keycount 加1,並將keyvalue值送給dispbuf3
⑻ 單片機按鍵控制LED匯編程序
30s 之內,又有按鍵按下,LED 應該怎麼變化?
參考一下:
http://hi..com/do_sermon/item/21321b80887395d25e0ec1f8
⑼ 單片機怎麼用簡單按鍵控制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單片機 怎麼用按鍵控制循環語句
while(1)語句只能用在主程序,而且只要用一次。如果子程序也用,必須有條件判斷語句,跟一個return語句返回。
再說你的三個子程序,既然用for控制了循環次數了,為什麼要用while(1)呢?而且明明知道是死循環還用?三個子程序都把那個while(1)刪掉就行了!