導航:首頁 > 操作系統 > 51單片機跑馬燈電路圖

51單片機跑馬燈電路圖

發布時間:2022-12-13 09:23:50

『壹』 51單片機設計跑馬燈的程序用(c語言)編寫

|P1口接8個發光二極體共陽

#include <AT89X51.H>

unsigned char i;

unsigned char temp;

unsigned char a,b;

void delay(void)

{

unsigned char m,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

void main(void)

{

while(1)

{

temp=0xfe;

P1=temp;

delay();

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

{

a=temp<<i;

b=temp>>(8-i);

P1=a|b;

delay();

}

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

{

a=temp>>i;

b=temp<<(8-i);

P1=a|b;

delay();

}

}

}

(1)51單片機跑馬燈電路圖擴展閱讀:

Proteus 自從有了單片機也就有了開發系統,隨著單片機的發展開發系統也在不斷發展。 keil是一種先進的單片機集成開發系統。它代表著匯編語言單片機開發系統的最新發展,首創多項便利技術,將開發的編程/模擬/調試/寫入/加密等所有過程一氣呵成,中間不須任何編譯或匯編。

『貳』 單片機89C51用匯編製作跑馬燈P1控制8個LED(D1~D8)燈實現流水燈的效果,高手速度來

很酷的流水燈
#include <reg51.h>
typedef unsigned char uchar;
#define Ton 40
#define LED P0
sbit leds=P1^4;
sbit LED0 = P0^0;
sbit LED1 = P0^1;
sbit LED2 = P0^2;
sbit LED3 = P0^3;
sbit LED4 = P0^4;
sbit LED5 = P0^5;
sbit LED6 = P0^6;
sbit LED7 = P0^7;

unsigned char Maikuan=0;
static unsigned char ledon[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uchar Occupy_led; //占空比越大,燈越亮
bit light;
uchar m;

void Inittime()
{
TMOD = 0x02; //定時器0,工作方式2,自動重裝
TH0 = 256-Ton;
TL0 = 256-Ton;
ET0 = 1;
EA = 1;
TR0 = 1;
}
//定時器0中斷
void time0() interrupt 1 using 0
{
Maikuan++;
}

void main()
{
unsigned char i = 0,j = 0; //初始化i,j
leds=0;
Inittime();
while (1)
{
//第1,3,5,7個燈半亮,其餘的全亮。
for(i=254; i>0; i--)
{
while ( Maikuan!=20)
{
LED = 0x00;
}

while ( Maikuan!=200)
{
LED = 0x55;
}

Maikuan = 0;
}

//最難的:8個燈從第一個開始依次漸亮,直到最後一個。再從最後一個起漸暗,直到第一個。如此循環往復。

for(j = 0;j<=7;j++)
{
i = 0;
while(i!=255) // 由暗變亮
{
if( Maikuan == 0) // 點亮
{
LED = ledon[j];
}
if(Maikuan == i) // 熄滅
{
LED = 0xff;
}
if( Maikuan== 255)
{
i++;
}
}
}

for(j=7;j>=0;j--)
{
i = 0;
while(i!=255) // 由亮變暗
{
if(Maikuan == 0) // 熄滅
{
LED = 0xff;
}
if( Maikuan == i) // 點亮
{
LED = ledon[j];
}
if( Maikuan == 255)
{
i++;
}
}
}

//所有的燈逐漸從暗到全亮,再由全亮到暗。

for (m=254; m>0; m--)
{
while (Maikuan!=Occupy_led)
{
LED = 0x00;
}

while (Maikuan!=127)
{
LED = 0xff;
}

Maikuan = 0;

if (light)
{
Occupy_led++;
}
else
{
Occupy_led--;
}

if (Occupy_led==128)
{
Occupy_led = 127;
light = !light;
}
if (Occupy_led>128)
{
Occupy_led = 0;
light = !light;
}
}
}
}

『叄』 高手們!幫幫忙看看我的單片機跑馬燈程序哪出問題了!!!!

我們要用到2X5的獨立鍵盤控制的,可是我是新手不懂 能給我一個程序不??
呵呵,下面就是程序,你試試看就知道了。
;--------------------------

你的程序,有三種流水燈的模式,就是按鍵功能,檢測不出來。
電路圖,不清楚,看個大概。
現在是:K1、K2分別按下,各顯示一種模式,
兩個鍵盤都不按,顯示第三種模式。
你原來只是在起動的時候,按鍵才管用,要想更換模式,必須重新起動。
現在增加了三行:「LJMP START ;本行可刪除」,就可以在運行期間,更換模式。.

ORG 0000H
START:
MOV P1, #255
CLR P1.6

MOV P2, #0
SETB P2.1
SETB P2.3

JNB P1.0, LOOPB
JNB P1.1, LOOPC

MOV A,#01H
LOOPA:MOV R0,#7
LOOPAL:
MOV P0, A
RL A
LCALL DELAY
DJNZ R0, LOOPAL

MOV R0,#7
LOOPAR:
MOV P0, A
RR A
LCALL DELAY
DJNZ R0, LOOPAR

LJMP START ;本行可刪除.

LJMP LOOPA

LOOPB:MOV A,#03H
LOOPBL:
MOV P0,A
RL A
LCALL DELAY
JNB ACC.7, LOOPBL
LOOPBR:
MOV P0, A
RR A
LCALL DELAY
JNB ACC.0,LOOPBR

LJMP START ;本行可刪除.

LJMP LOOPB

LOOPC:MOV R0,#3
MOV A,#01H
LOOPCL:
MOV P0, A
RL A
RL A
LCALL DELAY
DJNZ R0,LOOPCL

MOV R0, #3
RL A
LOOPCR:
MOV P0, A
RR A
RR A
LCALL DELAY
DJNZ R0, LOOPCR

LJMP START ;本行可刪除.

LJMP LOOPC

DELAY:MOV R4,#2
L3:MOV R2,#250
L1:MOV R3,#250
L2:DJNZ R3,L2
DJNZ R2,L1
DJNZ R4,L3
RET

END
本程序在PROTEUS中模擬調試通過。

『肆』 51單片機匯編語言編寫一個跑馬燈的程序,初學者做實驗用,具體要求如下,好了可以加分

程序1:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV SP,#5FH
LOOP:
MOV A,P2
MOV B,A
MOV P0,A
MOV P1,#0FFH
LOOP1:
LCALL DELAY
MOV C,P1.7
MOV A,P0
RLC A
MOV P0,A
MOV A,P1
RLC A
MOV P1,A
MOV A,P2
CJNE A,B,LOOP
SJMP LOOP1
DELAY:
MOV R2,#60
DELAY1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DELAY1
RET
END
程序2:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV SP,#5FH
JNB P2.0,LOOP1 ;
JNB P2.1,LOOP2 ;
SJMP MAIN
LOOP1:
MOV P0,#0FEH
MOV P1,#0FFH
LOOP11:
MOV C,P1.7
MOV A,P0
RLC A
MOV P0,A
MOV A,P1
RLC A
MOV P1,A
JNB P2.1,LOOP2
SJMP LOOP11
LOOP2:
MOV P0,#0FCH
MOV P1,#0FFH
LOOP21:
MOV C,P1.7
MOV A,P0
RLC A
MOV P0,A
MOV A,P1
RLC A
MOV P1,A
JNB P2.0,LOOP1
SJMP LOOP21
DELAY:
MOV R2,#60
DELAY1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DELAY1
RET
END

『伍』 用51單片機最小系統做一8個燈的跑馬燈,要求從左到右兩個兩個亮,之後從右向左一個一個滅

unsignedchari;

P1=0x00;
delay();

P1=0x03;
delay();
P1=0x0f;
delay();
P1=0x3f;
delay();
P1=0xff;
delay();

for(i=0;i<8;i++)
{
P1=P1/2;
delay();
}

delay函數延時延個0.5s就行

『陸』 51單片機跑馬燈電路圖(左右來回循環),8個led燈分別接在P2口,c程序、模擬圖如下。電路並未出現預期效果

電路:

一般的單片機 和 TTL集成電路晶元,都是灌電流能力強,拉電流能力極弱。
為此,應該用輸出低電平,來帶動負載。
而你的電路,是用高電平帶動LED發光的,模擬,也許還行;實際的電路,LED是不會亮的。

『柒』 51單片機跑馬燈程序

不好意思,延時用了樓上的。keil下編譯OK。假設P1接燈。

ORG00H

SJMPSTART

ORG30H

START:

MOVA,#00

SETBC

MOVR0,#9

;從左到右

LOOP1:

RLCA

MOVP1,A

ACALLDELAY

DJNZR0,LOOP1

;從右到左

MOVR0,#9

LOOP2:

RRCA

MOVP1,A

ACALLDELAY

DJNZR0,LOOP2

SJMPSTART

DELAY:

MOVR6,#20

DELAY_0:MOVR5,#255

DJNZR5,$

DJNZR6,DELAY_0

RET

這個程序比較簡單了。再精簡,只能精簡一句,將MOVP1,A放在DELAY函數里。這樣減少一行。

簡單介紹一下:

首先就是你要輪流點亮,就是將1循環一圈,因為你要全滅一次,所以用到CY。

RG00H

SJMPSTART

ORG30H

START:

MOVA,#00;//清空A寄存器

SETBC;//將CY置1,然後帶進位左移就會進入將A的b0

MAINLOOP:;//大循環起始

MOVR0,#9;設置移位次數,要滅一次,所以設置為9

;從左到右

LOOP1:

RLCA;帶進位左移一次;第一次移位結果為01

MOVP1,A;將A中值放入P1點亮對應LED;該句可放在DELAY里,然後從右到左也去掉該句

ACALLDELAY;延時,保持燈亮一段時間,自己根據實際情況調整一下。

DJNZR0,LOOP1;循環,點亮下一個燈,最後一次,A為0,將全滅一次,CY為1

;從右到左

MOVR0,#9;設置循環次數

LOOP2:;循環起始表示

RRCA;帶進位右移,第一次結果為80H

MOVP1,A;更新P1點亮對應LED

ACALLDELAY;延時,保持燈亮一段時間

DJNZR0,LOOP2;循環,點亮下一個燈

SJMPMAINLOOP;循環,重新開始下一輪

如果你是管腳輸出低LED才亮,只需將MOVA,#00和SETBC改為MOVA,#0FFH和CLRC即可。

方案2:位定址區00做標志,為0從左到右,該標志為1從右到左

ORG00H

SJMPSTART

ORG30H

START:

MOVA,#00

SETBC

MOVR0,#9

CLR00H

LOOP1:

RLLED:

JB00H,RRLED

RLCA

AJMPDISP

RRLED:

RRCA

DISP:

MOVP1,A

ACALLDELAY

DJNZR0,LOOP1

CPL00H

AJMPSTART

DELAY:

MOVR6,#20

DELAY_0:MOVR5,#255

DJNZR5,$

DJNZR6,DELAY_0

RET

下面是方案1的流程圖,這種流程圖不知怎麼寫好,而且寫出來基本是對每行的代碼的解釋。

『捌』 用51單片機(匯編語言寫)寫一個跑馬燈程序知道的幫個忙寫寫。

急用!請教!!!
用匯編語言程序,程序功能:實現方向可控的跑馬燈
編程要求:用八個LED發光二極體實現跑馬燈(即:8個燈依次輪流發光,每次只亮一個燈),系統啟動後,跑馬燈右向流轉,按下K1鍵,則反向流轉,再按則再反向……。接線方法:流水燈接P0口,按鍵K1可自選P1~P3任一引腳。

『玖』 用51單片機設計一個16位的跑馬燈 要求通過一個開關控制3種不同的模式 用匯編語言寫,三種模式隨意

一個開關,比如導通了1秒一個模式,3秒一個模式,5秒一個模式。

要麼在一定時間內,檢測開關導通的次數

我覺得應該弄的直觀點,從51上接4個led做指示用,一個燈表示待運行,還有3個燈,亮一個表示模式1,亮兩個表示模式2,亮3個表示模式3

開機的時候,待運行燈亮,等待設定模式,這時候開始按按鍵設定模式,同時待運行燈滅。模式燈隨按鍵操作變化。

模式設定好了,停止按鍵操作,兩秒後待運行燈亮,表示模式設定完畢。這時候長按按鍵,開始跑馬燈。短按按鍵則返回模式設定。

當開始運行跑馬燈的時候,可以設定運行一遍返回,也可以中斷返回。

個人想法,不知行不行

『拾』 用51單片機設計8個燈的跑馬燈程序拜託各位大神

/**************************************************************** 程序名稱: 八位LED雙燈右移動流水燈顯示 說明:使用本程序你必須把 SE3設置為2-3短接 SE4設置為1-2短接 *****************************************************************/ /*頭文件*/ #include <reg52.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char /*埠定義*/ #define led_port P0 /*定義LED顯示的數據腳*/ /*1MS為單位的延時程序*/ void delay_1ms(uchar x) { uchar j; while(x--){ for(j=0;j<125;j++) {;} } } /*主程序*/ void main() { uchar led_sdata; /*顯示寄存器*/ uchar i; while(1){ led_sdata=0xfe; /*初始化顯示寄存器為1號燈亮*/ led_port = led_sdata; /*將顯示寄存器輸出到LED埠*/ delay_1ms(200); delay_1ms(200); /*延時*/ led_sdata=0xfc; /*顯示寄存器為1.2號燈亮*/ for(i=0;i<8;i++){ led_port = led_sdata; /*將顯示寄存器輸出到LED埠*/ led_sdata = (led_sdata<<1)+1; /*將顯示寄存器數據左移1位,並將第一位置高,即熄滅*/ delay_1ms(200); delay_1ms(200); /*延時*/ } led_sdata=0xff; /*燈全滅*/ led_port = led_sdata; /*將顯示寄存器輸出到LED埠*/ delay_1ms(200); delay_1ms(200); /*延時*/ } }

閱讀全文

與51單片機跑馬燈電路圖相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:755
蘋果郵件無法連接伺服器地址 瀏覽:958
phpffmpeg轉碼 瀏覽:669
長沙好玩的解壓項目 瀏覽:140
專屬學情分析報告是什麼app 瀏覽:562
php工程部署 瀏覽:831
android全屏透明 瀏覽:730
阿里雲伺服器已開通怎麼辦 瀏覽:801
光遇為什麼登錄時伺服器已滿 瀏覽:300
PDF分析 瀏覽:482
h3c光纖全工半全工設置命令 瀏覽:139
公司法pdf下載 瀏覽:379
linuxmarkdown 瀏覽:349
華為手機怎麼多選文件夾 瀏覽:681
如何取消命令方塊指令 瀏覽:347
風翼app為什麼進不去了 瀏覽:776
im4java壓縮圖片 瀏覽:360
數據查詢網站源碼 瀏覽:148
伊克塞爾文檔怎麼進行加密 瀏覽:888
app轉賬是什麼 瀏覽:161