導航:首頁 > 操作系統 > 單片機倒序點亮

單片機倒序點亮

發布時間:2023-01-12 14:40:38

⑴ 51單片機從中間到兩邊逐個點亮再從兩邊到中間逐個點亮程序

這個流水燈程序最好用數組定義8個狀態的燈,這樣用for循環就可以實現了。簡潔明了,易讀性強,也容易理解。
#include<reg51.h>
#define uchar unsigned char
code uchar ledtab[10]=
{
0xff,0xe7,0xc3,0x81,0x00, //中間開始逐漸點亮
0xff,0x7e,0x3c,0x18,0x00 //兩邊開始逐漸點亮
}
void delay(int ms)
{
uchar i;
while(ms--)for(i=0;i<120;i++);
}
main()
{
uchar i;
while(1)
{
for(i=0;i<10;i++)P1=ledtab[i];
delay(1000);
}
}

⑵ 51單片機從左至右依次點亮

從左到右依次,可參考下列程序:

ORG 0000H

LOOP:
MOV R2, #255
MOV R3, #128
MOV P1, R2 ;全滅
MOV R4, #10
LP1:
CALL DL
DJNZ R4, LP1
;----------------------
MOV R5, #8 ;移位閃亮8次
LP2:
MOV A, R2
CLR C
RLC A
MOV R2, A
MOV A, R3
RL A
MOV R3, A
MOV P1, R2
MOV R4, #10
LP3:
CALL DL
XRL P1, A
DJNZ R4, LP3
DJNZ R5, LP2
;----------------------
MOV P1, #0 ;全亮
MOV R4, #10
LP4:
CALL DL
DJNZ R4, LP4
;----------------------
JMP LOOP
;----------------------
DL: ;精確延時應該使用定時器
DJNZ R7, $
DJNZ R7, $
NOP
DJNZ R6, DL
RET
END
;----------------------

看了這個,反向移位閃爍的程序,就可自己編寫了。

⑶ 單片機如下電路,讓顯示燈從上往下依次點亮,不斷循環。

/* 實驗目的:初步了解單片機I/O口的工作原理,進一步掌握51單片機的匯編指令。 * 實驗內容:用匯編指令對單片機I/O口進行編程,控制8個發光二極體的流水亮滅。 */ /* 程序詳細功能介紹: *做單一燈的左移右移,八個發光二極體L0-L7分別接在單片機的P0.0-P0.7介面上, *輸出「0」時,發光二極體亮,開始時P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→┅→P0.0亮,重復循環。 */ ORG 0000H LJMP START ORG 0030H START: MOV R2,#8 ;左移次數 MOV A,#0FEH ;A的初始值,即 P0.0的L0 點亮 SETB C LOOP: MOV P0,A LCALL DELAY RLC A ;左移流水燈(帶進位的左移),即亮點向P0口的高位移動 DJNZ R2,LOOP MOV R2,#8 ;右移次數 LOOP1: RRC A ;右移流水燈 MOV P0,A LCALL DELAY DJNZ R2,LOOP1 LJMP START DELAY: MOV R5,#10 ;延時子程序,改變R5,R6,R7 的值,可以改變延時的時間,從而改變流水燈移動速度 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END

⑷ 求一單片機程序 從兩邊倒中間依次點亮

是uart串口通訊的代碼哦看看main函數吧initiate_RS232();//串口初始化操作
EA = 1;//打開所有中斷
Uart_SendString("HELLO BKS !\r\n");//通過串口發送字元串
Uart_SendString("INPUT A CMD !\r\n");
Uart_SendString("Hello World");
while(1)//進入超循環
{
Dispose();
}
*讀數據*/
void Read(void) interrupt 4 //將Read函數連接到中斷4,也就是說一旦中斷4發生
//,就會執行Read函數。中斷4具體是什麼功能要看電路的設計
//從函數功能上看應該是串口讀中斷,當數據到達串口時產生中斷4
{
if (RI != 0)
{
RI = 0;
Uart_buf[DateNum] = SBUF;
Send_Byte(Uart_buf[DateNum]);
DateNum++;
if (DateNum>51) {
OVERFLOW();//溢出標志
}
}
}/*排序*/
void sort(void) //插入排序演算法,這個是數據結構課里講到的,作用是把一個數組
//中的數按順序排列
{
//插入排序演算法
unsigned char i,j;
for(i=2;i<=DateNum-2;i++)
if (Uart_buf[i]<Uart_buf[i-1]){
Uart_buf[0]=Uart_buf[i];
Uart_buf[i]=Uart_buf[i-1];
for(j=i-2;Uart_buf[0]<Uart_buf[j];--j)
Uart_buf[j+1]=Uart_buf[j];
Uart_buf[j+1]=Uart_buf[0];
}
Uart_buf[0]=0xaa;}/*檢測和處理*/
void Dispose()
{
unsigned char i=0;
if (Uart_buf[DateNum-1]==0xbb && DateNum!=1)
{
//測試標志
int time=3000;
BUZ=0;while(time--);BUZ=1;

sort();
for (i=0;i<DateNum;i++) Send_Byte(Uart_buf[i]); //向串口發送數據
DateNum=0;end=0;
}else if (Uart_buf[DateNum-1]==0xbb && DateNum==1) DateNum=0;

}

⑸ 51單片機數碼管如何依次點亮

51單片機數碼管依次點亮:選擇數碼管操作稱為位選,根據自己的開發板原理圖找到位選對應的管腳,以共陰極為例。要在編程時執行選中操作,只要給對應管腳低電平即可。段選同樣。如果每個單獨連接佔用管腳太多,很浪費硬體資源,所以採用多位串聯控制。

數碼管通常有兩種不同的接法,共陰極和共陽極,共陰極顧名思義就是講八個二極體的陰極連接在一起,這樣根據二極體導通原理,通過控制不同二極體陽極電平就可以控制數碼管顯示不同的數字。單個數碼管是由八個發光二極體連接而成,通過控制不同led點亮,可以使之顯示不同的數字。

注意區分兩個概念即段選和位選;位選指數碼管對應的位,例如圖共有八個數碼管,位選就是選中哪一個數碼管操作,段選則是控制數碼管顯示什麼數字。靜態顯示為了縮短代碼長度,一般都是採用匯流排式編程,顯示數字共陰共陽互為反。

⑹ 單片機流水燈C語言程序(8個燈,依次點亮每個燈,延時500MS)

單片機流水燈C語言程序的源代碼如下:

#include //51系列單片機定義文件

#define uchar unsigned char //定義無符號字元

#define uint unsigned int //定義無符號整數

void delay(uint); //聲明延時函數

void main(void)

{

uint i;

uchar temp;

while(1)

{

temp=0x01;

for(i=0;i<8;i++) //8個流水燈逐個閃動

{

P1=~temp;

delay(100); //調用延時函數

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++) //8個流水燈反向逐個閃動

{

P1=~temp;

delay(100); //調用延時函數

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++) //8個流水燈依次全部點亮

{

P1=temp;

delay(100); //調用延時函數

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++) //8個流水燈依次反向全部點亮

{

P1=temp;

delay(100); //調用延時函數

temp>>=1;

}

void delay(uint t) //定義延時函數

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

(6)單片機倒序點亮擴展閱讀

51單片機流水燈的源代碼如下

#include<reg51.h>

#include<intrins.h>

voiddelay(inta)

{

inti;

while(a--)for(i=0;i<110;i++);

}

main()

{

inti;

while(1)

{

P0=0xfe;

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

{

P0=_crol_(P0,1);

delay(500);

}

}

}

⑺ 單片機八個led 從左到右依次單個點亮,從右到左再依次點亮;然後從左到右每次增加一個led 點亮

#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
voiddelay(uchara)
{
uchari;
while(a--)for(i=0;i<120;i++);
}
main()
{
uchari,led;
while(1)
{
led=0xfe;
for(i=0;i<8;i++)
{
P1=led;
delay(200);
led=_crol_(led,1);
}
led=0x7f;
for(i=0;i<8;i++)
{
P1=led;
delay(200);
led=_cror_(led,1);
}
led=0xfe;
for(i=0;i<8;i++)
{
P1=led;
led=led<<1;
delay(200);
}
led=0x00;
for(i=0;i<8;i++)
{
P1=led;
led=(led>>1)|0x80;
delay(200);
}
P1=0x7e;delay(200);
P1=0x3c;delay(200);
P1=0x18;delay(200);
P1=0x00;delay(200);
P1=0x18;delay(200);
P1=0x3c;delay(200);
P1=0x7e;delay(200);
P1=0xff;delay(200);
}
}

⑻ 51單片機C程序怎樣把LED燈從左到右點亮然後又從右到左點亮然後循環

#include<reg51.h>

unsigned char ledtab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}
void delay(unsigned char a)
{
unsigned char i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{
unsigned char i;
while(1)
{
for(i=0;i<8;i++){P0=ledtab[i];delay(100);}
for(i=0;i<8;i++){P0=ledtab[7-i];delay(100);}
}
}

⑼ 單片機流水燈C語言程序(8個燈,依次點亮每個燈,延時500MS)

單片機流水燈C語言程序的源代碼如下:

#include //51系列單片機定義文件

#define uchar unsigned char //定義無符號字元

#define uint unsigned int //定義無符號整數

void delay(uint); //聲明延時函數

void main(void)

{

uint i;

uchar temp;

while(1)

{

temp=0x01;

for(i=0;i<8;i++) //8個流水燈逐個閃動

{

P1=~temp;

delay(100); //調用延時函數

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++) //8個流水燈反向逐個閃動

{

P1=~temp;

delay(100); //調用延時函數

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++) //8個流水燈依次全部點亮

{

P1=temp;

delay(100); //調用延時函數

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++) //8個流水燈依次反向全部點亮

{

P1=temp;

delay(100); //調用延時函數

temp>>=1;

}

void delay(uint t) //定義延時函數

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

(9)單片機倒序點亮擴展閱讀

51單片機流水燈的源代碼如下

#include<reg51.h>

#include<intrins.h>

voiddelay(inta)

{

inti;

while(a--)for(i=0;i<110;i++);

}

main()

{

inti;

while(1)

{

P0=0xfe;

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

{

P0=_crol_(P0,1);

delay(500);

}

}

}

⑽ 51單片機點亮LED燈。較快速度首先按順序點亮。再逆序熄滅。再由兩端往中間點亮。再逆序熄滅。整體循環

弄個位元組變數一次遞增,然後把這個變數放到你要點亮的埠就可以了,然後延時,接著繼續增加變數值,然後再放到埠

閱讀全文

與單片機倒序點亮相關的資料

熱點內容
解壓後的文件怎麼解開 瀏覽:175
四川補貼認證下載什麼app 瀏覽:858
android設計風格 瀏覽:426
視頻不支持我的加密 瀏覽:342
布包pdf 瀏覽:267
程序員錄制課程表 瀏覽:626
eclipsephp斷點調試 瀏覽:895
虛擬成交量指標源碼 瀏覽:838
什麼APP有背單詞小組 瀏覽:43
蘋果2g視頻怎麼加密 瀏覽:204
人工智慧程序員和古典錄音師相遇 瀏覽:415
國產伺服器是怎麼來的 瀏覽:116
蓄勢待發源碼 瀏覽:458
伺服器如何清理log文件 瀏覽:835
javaawtfont 瀏覽:627
php企業站後台 瀏覽:417
日企程序員招聘 瀏覽:113
伺服器中毒網頁投放廣告怎麼辦 瀏覽:709
安卓快閃記憶體掉速是什麼原因 瀏覽:409
fcfs調度演算法代碼 瀏覽:686