導航:首頁 > 操作系統 > 51單片機24個左右流水燈

51單片機24個左右流水燈

發布時間:2022-09-27 02:46:29

A. 很簡的51單片機C語言流水燈程序

1、51單片機C語言實現循環8個流水燈左移三次,後右移三次。
常式:
#include<reg51.h> //51單片機頭文件
#include <intrins.h> //包含有左右循環移位子函數的庫
#define uint unsigned int //宏定義
#define uchar unsigned char //宏定義
sbit beep=P2^3;
void delay(uint z) //延時函數,z的取值為這個函數的延時ms數,如delay(200);大約延時200ms.
{ //delay(500);大約延時500ms.
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main() //主函數
{
uchar a,i,j;
while(1) //大循環
{
a=0xfe; //賦初值
for(j=0;j<3;j++) for(i=0;i<8;i++) //左移三次
{
P1=a; //點亮小燈
beep=0; //開啟蜂鳴器
delay(50); //延時50毫秒
beep=1; //關閉蜂鳴器
delay(50); //再延時50毫秒
a=_crol_(a,1); //將a變數循環左移一位
}
a=0x7f;
for(j=0;j<3;j++) for(i=0;i<8;i++) //右移三次
{
P1=a; //點亮小燈
beep=0; //開啟蜂鳴器
delay(50); //延時50毫秒
beep=1; //關閉蜂鳴器
delay(50); //再延時50毫秒
a=_cror_(a,1); //將a變數循環右移一位
}
}
}
2、51單片機是對所有兼容Intel
8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8031單片機,後來隨著Flash
rom技術的發展,8031單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。

B. 51單片機流水燈原理

單片機流水燈控制原理就是將多個LED燈珠連接到不同的單片機輸出端上,編程使單片機的這些輸出端逐個的輸出信號點亮LED,在設置好各個LED的通電時間和通電間隔時間後,就可以看到這些LED燈珠此起彼伏的亮起,如同流水一樣.

C. 51單片機設計流水燈

;電路圖在附件內,經模擬通過,不知能不能達到你的要求。
;想要您的分真難啊
;呵呵!
org 0000h
ajmp start
org 0030h
start:
mov a,#0ffh ;
clr c ;
mov r2,#08h ;循環八次。
loop: rlc a ;帶進位左移。
mov p1,a ;輸出到P1口。
call delay ;延時一段時間
djnz r2,loop ;反復循環
mov r2,#07h ;再往回循環。
loop1: rrc a ;帶進位右移
mov p1,a ;輸出到P1口。
call delay ;延時一段時間
djnz r2,loop1 ;反復循環
jmp start ;重新開始

delay: mov r3,#20 ;延時子程序
d1: mov r4,#20
d2: mov r5,#248
djnz r5,$
djnz r4,d2
djnz r3,d1
ret
end

D. 51單片機左右循環移動的流水燈功能,求解答每一句具體含義!

#include<reg52.h>//頭文件包含,包括51硬體寄存器的宏定義,延時函數等
#define uchar unsigned char//宏定義,uchar被定義成unsigned char的簡寫
#define uint unsigned int//同上,uint被定義成unsigned int 的簡寫

#define DataPort P0//dataport(數據埠)被定為成P0口
sbit P21=P2^0;sbit是設置埠的某一位為一個變數,這樣就可以直接對變數進行操作(等價於對埠該位的操作),如sbit led1=P1^1;如果P1^1接的是led的話,led1=1;就可以使led燈點亮了!
uchar code ScanCode[ ]=
{0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
code表示讓單片機把這個定義的ScanCode的值存在ROM(程序存儲區)
定義一個無符號的字元型變數數組ScanCode,其值存放在程序存儲區,寫入之後不可更改
void DelayMs(uint n)//毫秒延時函數,通過設置循環次數,來設定時間
{
uchar j;
while(n--)//直到n減為0退出循環
{
for(j=0;j<113;j++);空循環114次,即延時114個指令周期
}
}
void main(void)主函數
{
uchar i;
P21=1;p2口第1位引腳置高電平
while(1)無限循環
{
for(i=0;i<8;i++)以下大括弧中兩句代碼循環8次,即將ScanCode數組中8位元組數據依次送到p0口
{
DataPort=ScanCode[i];向數據口(即p0口)送數據,數據為ScanCode數組中第i個元素
DelayMs(500);延時500毫秒
}
for(i=0;i<8;i++)同上,將scancode數字的8位元組數據按相反順序再送一次
{
DataPort=ScanCode[7-i];
DelayMs(500);
}
}
}

E. 51單片機流水燈程序

程序如下:

#include <reg52.h>

sbit led1 = P2^0;

sbit led2 = P2^1;

sbit led3 = P2^2;

sbit led4 = P2^3;

sbit led5 = P2^4;

sbit led6 = P2^5;

sbit led7 = P2^6;

sbit led8 = P2^7;


void main()

{

int i,j;

//點亮第一個燈

led1 = 1;

led2 = 0;

led3 = 0;

led4 = 0;

led5 = 0;

led6 = 0;

led7 = 0;

led8 = 0;

//延時1秒

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

{

for(j = 0; j < 1000; ++j)

{

;//什麼也不做

}

}

//點亮第二個燈

led1 = 0;

led2 = 1;

led3 = 0;

led4 = 0;

led5 = 0;

led6 = 0;

led7 = 0;

led8 = 0;

//點亮剩餘的燈

//省略……

while(1);

}

(5)51單片機24個左右流水燈擴展閱讀:

流水燈幾點說明:

void:因為該延時函數不需要返回值,所以寫為void

delay1s:該函數的函數名,命名需要符合C語言的標識符命名規則。

(): 不需要傳入參數,所以括弧中為空

至此我們可以把流水燈程序寫為以下形式:

F. 用51單片機做多隻流水燈(跑馬燈)

元件表:
12M晶振 1個
30P瓷片電容 2個
10U電解電容 1個
4.7K電阻 1個
51單片機 1個
1K電阻 N個(你要顯示的字需要多少個LED就用多少個電阻)
LED發光二極體 N個(同上)
電路板、焊錫、導線什麼的我就不說了。

硬體電路製作:
去搜索圖片「單片機最小系統」或「跑馬燈」就能找到很多電路圖,依圖做。

程序設計:
#include <reg52.h>
void delay()
{
int a,b;
for(a=245;a>0;a--)
for(b=100;b>0;b--);
}
void main()
{
int temp=0x01;
while(1)
{
P0=temp;
delay();
temp<<=1;
}
}
P0口的八隻管腳分別流水過去,但要接排阻或上拉電阻。
還有什麼不懂的,盡管追問。

G. 51單片機組成的心形流水燈C語言 要求燈24個

24個燈很正常,模擬也可以給你做。

H. 51單片機中如何用匯編語言編寫流水燈

流水燈就是51單片機控制led燈依次點亮的控制方式。具體程序如下:

ORG 0000H ;復位啟動
AJMP START ;
ORG 001BH ;T1中斷
AJMP T1INT ;

;定義變數========================
YSJS EQU 30H;延時計數器
LED EQU 31H;LED控制緩沖器

;主程序==========================
START: MOV LED,#0FEH ;初始化數據
MOV YSJS,#0 ;
MOV TMOD,#10H ;定時器1工作於方式1,16位定時器
MOV TL1,#0B0H ;設置定時初值
MOV TH1,#3CH ;定時時間=50mS
SETB ET1 ;使能定時器1中斷
SETB TR1 ;啟動定時器1
SETB EA ;開總中斷

MOV P1,LED ;初始化流水燈
LOOP: JMP LOOP ;循環等待中斷
T1INT: PUSH PSW ;定時器1中斷程序
PUSH ACC ;保護現場
MOV TH1,#3CH ;定時時間=50mS
MOV TL1,#0B0H ;
INC YSJS ;

PUSH ACC ;保護ACC
MOV A,YSJI ;
CJNE A,#2,QT1 ;50mS*2=100mS
MOV P1,LED ;
MOV A,LED ;
RL A ;累加器A的值循環左移1位
MOV LED,A ;
MOV YSJS,#0 ;
QT1: POP ACC ;恢復現場
POP PSW ;
RETI ;返回主程序
END ;匯編程序結束

(8)51單片機24個左右流水燈擴展閱讀:

實現流水燈的三個方法:

第一種,匯流排方法實現流水燈。這是一種比較笨但又最易理解的方法,採用順序程序結構,用位指令控制P1口的每一個位輸出高低電平,加上延時函數,即可控制每個LED燈的亮滅。

第二種,移位方法實現流水燈採用循環程序結構編程。首先在程序開始給P1.0口送一個低電平,其它位為高。然後延時一段時間再讓低電平往高位移動,這樣就實現「流水」的效果了。

第三種,庫函數實現流水燈。利用左移函數進行。

閱讀全文

與51單片機24個左右流水燈相關的資料

熱點內容
如何更新搶修app 瀏覽:710
aqdya愛情網 瀏覽:743
韓國倫理電影正宇 瀏覽:887
男主角在劇里叫諾亞的電影 瀏覽:794
集結號的男主 瀏覽:415
魔獸世界懷舊服會長移交命令 瀏覽:100
中文字幕在線觀看的網站 瀏覽:473
主角上自己女兒的小說 瀏覽:112
javaextjs文件上傳 瀏覽:28
有哪些佛教電影 瀏覽:149
成人劇情小說 瀏覽:113
國外免費小電影網站 瀏覽:909
怎麼把文件夾百度網盤 瀏覽:788
韓國頂級愛情電影 瀏覽:489
美國電影紅 瀏覽:946
框架梁與次梁哪條梁需要加密 瀏覽:6
俄羅斯版越戰英豪電影 瀏覽:970
寶塔上的網站源碼怎麼打包 瀏覽:282
采補爐鼎小說 瀏覽:892
窗口輪廓菜單命令的快捷鍵 瀏覽:300