㈠ 單片機按鍵控制小燈程序
用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
代表燈滅
}
㈡ 控制小燈亮滅的單片機程序
#include<reg51.h>
sbits1=P1^0;
sbits2=P1^1;
sbitd1=P1^3;
sbitd2=P1^4;
main()
{
d1=1;
d2=1;
while(1)
{
if(s1==0)
{
while(s1==1);
d1=~d1;
}
if(s2==0)
{
while(s2==1);
d2=~d2;
}
}
}
㈢ 用C語言編寫一個單片機控制LED燈閃爍變化的編程 急用!!!!!!!!!
C語言實現LED燈閃爍控制配套51單片機開發板。
#include //包含單片機寄存器的頭文件
/****************************************
函數功能:延時一段時間
*****************************************/
void delay(void) //兩個void意思分別為無需返回值,沒有參數傳遞。
{
unsigned int i; //定義無符號整數,最大取值范圍65535。
for(i=0;i<20000;i++) //做20000次空循環。
; //什麼也不做,等待一個機器周期。
}
/*******************************************************
函數功能:主函數 (C語言規定必須有也只能有1個主函數)。
********************************************************/
void main(void)
{
while(1) //無限循環。
{
P0=0xfe; //P1=1111 1110B, P0.0輸出低電平。
delay(); //延時一段時間。
P0=0xff; //P1=1111 1111B, P0.0輸出高電平。
delay(); //延時一段時間。
}
}
單片機驅動LED燈的源程序:
#include<reg52.h> //頭文件。
#define uint unsigned int
#define uchar unsigned char
sbit LED1=P1^7; //位定義。
void delay_ms(uint);//mS級帶參數延時函數。
void main()
{
while(1)
{
LED1=0;
delay_ms(1000);
LED1=1;
delay_ms(1000);
}
}
void delay_ms(uint z) //延時子程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
(3)單片機控制燈程序擴展閱讀:
單片機應用分類:
通用型:
這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
匯流排型:
這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。
另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。
控制型:
這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型。
通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。
參考資料來源:網路-單片機
㈣ 單片機通過按鈕控制一個LED小燈的亮滅,請問這個程序怎麼寫
led應該是一個變數,是代表led燈 亮或者滅的一個變數。 當你按下開關後,s1==0,就執行 led=!led 這條語句。 led=!led
的意思就是取反的意思,即原來led燈亮的話 執行該條語句後就變成滅;原來滅的話 執行該條語句後
就變成亮。按鍵按下就打控制燈的io取反就可以了。如:if(key1==1){while(key1==1); //
等待按鍵放開led1=~led1;}
㈤ 單片機用c語言,按鈕控制一個LED燈,要求按下松開,LED亮,按下松開,LED暗!循環
1、首先打開桌面上的keil軟體,在進行對51單片機進行編程時最常用的就是keil軟體。
㈥ 用C語言編寫一個單片機控制LED燈閃爍三次的程序,急求!
# P1上接LED等。
#include "reg51.h"
void delayms(unsigned int x)
{
int i,j;
for(i=x;i>0;i--)
for(j=0;j<120;j++);
}
void main(void)
{
char i;
for(i=0;i<6;i++)
{
P1 = ~P1;
delayms(1000);
}
while(1);
}
㈦ 單片機控制燈泡亮滅,請高手幫忙
#include
unsigned
int
void
main()
P1DIR&=~BIT0;//設置P1.0為輸入,用來檢測觸發信號
P1DIR|=BIT2;//p1.1控制LED二極體
{
while(P1IN&BIT0)//高電平觸發
for(i=0;i<15;i++)
{
for(j=0;j<65532;j++)
{
P1OUT=0X02;}
}
}
㈧ 51單片機控制一個燈閃爍的程序怎麼做
控制閃爍大概有兩種方式
一是延時
先控制燈亮
然後延時一段時間
然後控制燈滅,再延時,循環;二是利用中斷
隔一段時間進入中斷給IO口取反就行
㈨ 單片機控制電燈程序
給你發個P1口左右移流水燈的程序,是否實用???
#include<reg52.h>//主文件定義
#include<intrins.h>//位移主文件定義
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int/*
sbit led=P0^0;//位定義
sbit led1=P0^1;*/
uchar temp,num,num1,num2;
void delay(uint x)//延時程序
{
uint y;
for(;x>0;x--)
for(y=100;y>0;y--);
}
void main()//主函數
{
temp=0xfe;//起始位定義:11111110
/*以下5月31日改快速左右移動*/
while(1)
{
for(num=0;num<1;num++)//左移次數
{
for(num=0;num<8;num++)//左移位數
{
P1=temp;
delay(100);//延時程序此處必須加延時程序
temp=_crol_(temp,1);//循環左移起始位位移.1.位
delay(100);//延時程序
}
}
for(num1=0;num1<1;num1++)//右移次數
{
for(num1=0;num1<8;num1++)//右移位數
{
P1=temp;
delay(100);//延時程序此處必須加延時程序
temp=_cror_(temp,1);//循環右移起始位位移.1.位
delay(100);//延時程序
}
}
}
}
㈩ 單片機 用C語言怎麼編寫用一個按鈕,控制一盞燈的亮與滅的程序
讀取連接按鍵的IO口,判斷是否為低電平,如果是,延時(十毫秒左右可以),再次讀取IO口,判斷是否為低電平,如果是則表示有有效的按鍵按下,接著用while判斷等待按鍵釋放,然後讓連接led的IO口電平取反以控制其亮滅(是強電的燈可以通過此處控制繼電器的合、閉來控制燈的亮滅)。參考程序:if(key==0){delayms(10);if(key==10){while(key==0);//等待按鍵釋放,IO口恢復高電平led=!led;//按鍵控製程序}}