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

單片機倒序點亮

發布時間: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燈。較快速度首先按順序點亮。再逆序熄滅。再由兩端往中間點亮。再逆序熄滅。整體循環

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

閱讀全文

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

熱點內容
加密晶元的計算方法 瀏覽:187
手機存儲為什麼找不到微信文件夾 瀏覽:695
msf埠遷移命令 瀏覽:880
工商app積分怎麼查詢 瀏覽:143
鐵路app怎麼買火車票 瀏覽:309
移魅族除的app怎麼添加 瀏覽:240
兔籠子大號加密 瀏覽:171
單片機程序燒錄操作成功 瀏覽:878
指標高拋低吸點位源碼 瀏覽:205
25匹壓縮機銅管 瀏覽:570
單片機單燈左移05 瀏覽:150
買伺服器練手什麼配置 瀏覽:783
伺服器被毀該怎麼辦 瀏覽:939
python私有庫 瀏覽:514
Python有中文嗎 瀏覽:736
麥塊的伺服器為什麼都進不去 瀏覽:474
新買的伺服器如何打開 瀏覽:35
安卓軟體游戲怎麼開發 瀏覽:319
用撲克擺愛心解壓神器怎麼擺 瀏覽:70
松下製冷壓縮機 瀏覽:275