導航:首頁 > 操作系統 > 單片機亮燈

單片機亮燈

發布時間:2022-02-04 04:33:06

單片機三種亮燈方式,時間間隔1秒,用到中斷

非精確延時控制
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit led P1^0;
void delay(uint x)
{
for(i=0;i<x;i++)

for(j=0;j<120;j++);
}
void main()
{
P1=0xff;

while(1)

{
led=0;

delay(1000);

led=1;

delay(1000);

}
}
定時器控制
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
uint num;
sbit led=P1^0;
void main()
{
uchar counter;
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(1)
{
if(TF0==1)
{
TR0=0;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
counter++;
}
if(counter==20)
{
counter=0;
led=~led;
}
中斷控制,來一個中斷就跳轉到中斷里的程序
#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint x)
{
uint i,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
void init()
{
IT0=1;
EX0=1;
EA=1;
}
void main()
{
uchar i,temp;
temp=0xfe;
init();
while(1)
{
for(i=0;i<8;i++)
{
P1=temp;
delay(500);
temp=_crol_(temp,1);
}
}
}
void timer1() interrupt 0
{
uchar i;
for(i=0;i<6;i++)
{
P1=0x00;
delay(1000);
P1=0xff;
delay(1000);
}
}
沒有用keil運行了,純手打,看了看,應該是沒有問題的

❷ 51單片機亮燈問題

#include<reg51.h>

#include<stdio.h>

#include<intrins.h>

void delay(void)

{

unsigned char a,b,c;

for(c=50;c>0;c--)

for(b=140;b>0;b--)

for(a=16;a>0;a--);

_nop_();

}

void main(void)

{

int i,j;

P1=0x00;

for(i=0;i<10;i++)//奇偶閃爍,間隔1s

{

P1=0xAA;

delay();

P1=0x55;

delay();

}

P1=0x00;

P1=0x01;

for(j=0;j<10;j++)//10次從左到右流水燈

for(i=0;i<8;i++)

{

delay();

P1=_crol_(P1,1);

}

P1=0XFF;

while(1);

}

❸ 關於51單片機的一個亮燈程序

不知道你說的是啥板子,但是就現象而言,如果P0=0xff全滅而P0=0x01時只有數碼管亮,那麼很可能你送P0=0xfe就只有燈亮了,因當P0=0x01=0000 0001時恰好是前7位得電點亮一個8字。

❹ 單片機c語言按鍵亮燈

這個應該不用加按鍵消抖吧,而且你的意思是按下P5^0後變為P5=0x4f嗎?是的話,改成這樣:
void main ()
{
Init_Device();
do
{
P5=0x3f;
while (P5^0==0)
P5=0x4f;
} while(1);
不過這加入死循環了,不過應該可以實現上述功能。

❺ 單片機c語言LED燈奇數亮燈。

//LED低電平點亮
//LED1-LED8分別接P2.0-P2.7
#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int
void delay(unsigned char a) //延時
{
unsigned char i;
while(a--)
for(i=100;i>0;i--);

}
void main(void)
{
uchar i;
P2=0XFF;
while(1)
{
for(i=0;i<8;i=i+2)
{
P2=~(1<<i);
}
}
}

❻ 單片機亮燈系統

這里給你給個單片機控制P1口的8個LED分別亮的程序。如果你需要點亮的不是LED,那就加一個ULN2003A,然後加一個繼電器,然後驅動220V的電燈工作。

#include<reg52.h>

unsignedchardis_num[4]={0x05,0x0a,0x50,0xa0};

unsignedcharled_flag=0,led_on;

unsignedchartime_1s=0;

voidmain()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

ET0=1;

EA=1;

TR0=1;

P1=0x00;

while(1)

{

if(led_flag==1)

{

led_flag=0;

P1=dis_num[led_on];

}

}

}

voidtimer0_isr(void)interrupt1using1

{

time_1s++;

if(time_1s==20)

{

time_1s=0;

led_flag=1;

led_on++;

if(led_on==4)led_on=0;

}

}

///圖片是這個程序中proteus下模擬運行的截圖,希望對你有用

❼ 單片機工作狀態LED指示燈

我最近做了個測溫電路,通過串口傳到上位機
led不亮表示溫度過低,
長滅短亮表示偏低
常亮表示正常
長亮短滅表示偏高
用定時器計數實現閃爍。一般不用延時,盡量用定時中斷。

❽ 怎麼用一個LED指示燈用來顯示單片機是否正常工作

仿照看門狗的處理方法,零點幾秒,能夠喂狗一次,這就說明單片機在正常工作。
喂狗的操作,如果沒有出來,就說明單片機沒有正常工作。

那麼,喂狗同時,令 LED 取反,於是,就可以顯示出,喂狗在正常進行。
LED 閃動,也就可以說明單片機在正常工作。

LED 靜止發光,說明不了單片機正常工作。
只能說明電源,沒有掉而已。

❾ 單片機亮燈程序怎麼讓8盞燈亮10次然後不亮

用51單片機來簡單說明一下:

用8隻LED代表8盞燈(D1~D8),限流電阻用一個9腳排阻RP1,原理圖如下:


以上僅供參考。

閱讀全文

與單片機亮燈相關的資料

熱點內容
程序員那麼可愛姜逸城初戀 瀏覽:495
modbustcp編程 瀏覽:490
實況為什麼安卓看不了 瀏覽:129
Java多線程Queue 瀏覽:94
雲伺服器499元三年 瀏覽:980
nbd源碼 瀏覽:846
x86在arm上編譯 瀏覽:7
linux怎麼配置網路 瀏覽:307
程序員想要的小禮物 瀏覽:186
java獲取網頁url 瀏覽:624
怎麼做解壓神器泡泡版 瀏覽:966
自己動手做一個c編譯器 瀏覽:929
手機如何鏈接谷歌伺服器地址 瀏覽:137
廢掉一個程序員的武功 瀏覽:249
java樹形演算法 瀏覽:641
通達信加鎖指標源碼怎麼看 瀏覽:754
將同名文件移動到部分同名文件夾 瀏覽:403
擺盪指標加壓力線源碼 瀏覽:915
新一代單片機特徵 瀏覽:770
王者的伺服器什麼時候才修好 瀏覽:281