A. 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)跑馬燈單片機擴展閱讀:
Proteus 自從有了單片機也就有了開發系統,隨著單片機的發展開發系統也在不斷發展。 keil是一種先進的單片機集成開發系統。它代表著匯編語言單片機開發系統的最新發展,首創多項便利技術,將開發的編程/模擬/調試/寫入/加密等所有過程一氣呵成,中間不須任何編譯或匯編。
B. 單片機中的流水燈,花樣燈,跑馬燈
等 到 你單片機學到一定程度就理解了,這些燈只是按照自己的意思來亮,至於名稱都無所謂
C. 單片機實現跑馬燈
硬體做好了嗎
我做單片機設計的
D. 單片機,跑馬燈
void delay(unsigned char i)
{
unsigned char m;
for(i;i>0;i--)
{
for(m=120;m>0;m--);
}
}
和
void delay()
{
unsigned int i,m;
for(i=110;i>0;i--)
{
for(m=120;m>0;m--);
}
}
延時時間長短不一樣
E. 單片機跑馬燈
看看我寫的,P0到P7接8個LED.
org ooooh
ajmp main
main:mov r7,#8
main:mov r0,#8 ;一個循環需要移動8位
mov p1,#01111111b ;初始為P0.7燈點亮
loop: clr p2.3
acall ds1ms ;延時,以便人眼可以觀察到
setb p2.3
acall ds1ms
mov a,p1 ;讀P0口當前顯示的數據送到A
rr a ;將A中的數據循環右移1位
mov p1,a ;再將A中右移過的數據送到P0
djnz r0,loop
djnz r7,main ;移動不夠8位,跳到LOOP處循環,
ljmp rel ;流動1遍跳轉到MAIN處循環流。
;---顯示延時----------
ds1ms: mov r1,#1
ds1lo: mov r2,#200
ds2lo: mov r3,#200
djnz r3,$
djnz r2,ds2lo
djnz r1,ds1lo
ret ;延時返回
rel:end
C語言的:
//8個發光二極體循環點亮
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit beep=P2^3;
uchar i,j,m,n,k;
void delay(uchar k)
{for(m=k;m>0;m--)
for(n=125;n>0;n--);
}
void main(void)
{i=0xfe;
while(1)
{//beep=0;
delay(100);
//beep=1;
delay(100);
j=_crol_(i,1);
i=j;
P1=j;
}
}
F. 單片機跑馬燈程序
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
G. 簡單單片機跑馬燈
unsigned char i;
void main(void)
{
P1 = 0x01;//先讓第一個燈亮
Delay(500);
for(i=0;i<8;i++)
{
P1 = P1 << 1;//數據左移1位 P1口數據以此為: 0x01 0x02 0x04 0x08 0x10 0x20 0x40 x080
Delay(500);
P1 = 0;//全部都熄滅
Delay(500);
P1 = 0xff;//全部都亮
Delay(500);
P1 = 0;//全部都熄滅
Delay(500);
P1 = 0xff;//全部都亮
Delay(500);
}
}
void Delay(void)
{
unsigned char j;
for(j=0;j<255;j++)//裡面的255 自己調整就行了
{
}
}
H. 51單片機跑馬燈
定義一個8比特常量數組,每一比特對應一個燈,每個數組成員對應於一次輸出,數組成員就調整到對應的輸出方式,想要怎麼玩就怎麼定義,隔一段時間取一個常量輸出到對應的8個燈
I. 單片機跑馬燈!
這只是個宏定義,
#define DataPort P0
#define LedPort P3 //自己定義,根據你連的引腳
注意上邊兩句,現在#define LedPort P3 //自己定義,根據你連的引腳
是P3,就是LedPort相當於P3,當改成#define LedPort P1時,LedPort相當於 P1,
請參考C語言宏定義部分知識