『壹』 51單片機按鍵控制按下K1四個led燈循環亮,再按一下全滅,c程序怎麼寫
在四個燈循環點亮的狀態下,每點亮一個燈需要延時,如果調用延時子程序,按鍵就顯示不靈敏了,所以,採用定時器中斷的方式控制延時,就不影響按鍵了。
#include<reg51.h>
#include<intrins.h>
模擬圖效果。
『貳』 請教一下STC單片機1秒鍾內按2下按鈕開關LED燈亮代碼怎樣寫啊
很簡單的。
循環(1){
檢測按鍵,等待按下;
發現按下後,延時消抖,等待釋放,然後執行下面的循環;
循環(1){ //循環檢測1秒鍾
發現按下後,燈亮,等待釋放,然後就跳出循環;
延時10ms;
次數加一;
次數不到100,繼續循環
到了100(即1s了),關燈,然後就跳出循環;
}
}
『叄』 單片機按下按鍵1,燈亮,按下按鍵2,燈滅,按下按鍵3,燈閃爍,求代碼
主要程序如下:
flag是用來記憶按鍵狀態,按下key3,flag置1,程序中檢測到flag是1才閃爍,鬆手後LED仍然閃爍,同時下一輪還可以檢測另外兩個按鍵
while(1)
{
if(key1==0)//判斷按鍵是否按下
{
Delay1ms(10);//延時消抖
if(key1==0)
{
while(key1==0);//等待按鍵抬起
LED=1;
flag=0;
}
}
if(key2==0)//判斷按鍵是否按下
{
Delay1ms(10);//延時消抖
if(key2==0)
{
while(key2==0);//等待按鍵抬起
LED=0;
flag=0;
}
}
if(key3==0)//判斷按鍵是否按下及是否在走時
{
Delay1ms(10);//延時消抖
if(key3==0)
{
while(key3==0);//等待按鍵抬起
flag=1;
}
if(flag==1)
{
LED=!LED;
Delay1ms(200);
}
}
『肆』 單片機開關閉合燈亮,開關斷開燈滅
單片機程序問題,開關問題。
1、單片機程序問題:檢查單片機的程序是否正確,是否存在邏輯錯誤或死循環等問題。
2、開關問題:檢查開關是否正常,是否存在接觸不良或損壞等問題,更換損壞的開關或清潔接觸不良的開關。
『伍』 單片機用c語言,按鈕控制一個LED燈,要求按下松開,LED亮,按下松開,LED暗!循環
1、首先打開桌面上的keil軟體,在進行對51單片機進行編程時最常用的就是keil軟體。
『陸』 單片機按下開關燈就亮,5秒後滅掉
//假設晶振12MHZ,按鍵輸入P1.0,LED控制P2.0,都是低電平有效
#include "reg51.h"
unsigned int YSJS=0;
sbit KEY=P1^0;按鍵
sbit LED=P2^0;燈
void Timer1Init(void) //500微秒@12.000MHz
{
AUXR &= 0xBF; //定時器時鍾12T模式
TMOD &= 0x0F; //設置定時器模式
TMOD |= 0x10; //設置定時器模式
TL1 = 0x0C; //設置定時初值
TH1 = 0xFE; //設置定時初值
TF1 = 0; //清除TF1標志
ET1 = 1; //使能定時器1中斷
EA =1; //開總中斷
}
void main(void)
{
LED=1;
while(1)
{
if(KEY==0)
{
LED=0;
TR1=1; //定時器1開始計時
}
}
}
void TIMER1(void) interrupt 3 //定時器1中斷函數使用默認寄存器組
{
TH1 = 0XFE; //定時器1定時時間=500us
TL1 = 0X0C;
YSJS++;
if(YSJS==10000) //500uS*10000=5000000us=5s
{
LED=1;
TR1=0;
}
}