Ⅰ 51單片機匯編語言編寫一個跑馬燈的程序,初學者做實驗用,具體要求如下,好了可以加分
樓主先自己編一編,有錯,大家幫你找。
Ⅱ 跑馬燈單片機程序!!!急求!!!
用 C還是 匯灶旦編? 用匯編,稍等片刻!
C(1)
ORG 0000H
MAIN:MOV A,#0FEH
MOV R3,#8
LP: MOV P1,A
RL A
LCALL DELAY
DJNZ R3,LP
MOV R3,#8
SJMP MAIN
DELAY: ;軟體延時
MOV R7,#0DH
DL1:
MOV R6,#0F7H
DL0:
MOV R5,#8EH
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
NOP
RET
END
(2)ORG 0000H
MAIN:MOV A,#0FEH
MOV R3,#8
LP: MOV P1,A
RL A
LCALL DELAY
DJNZ R3,LP
MOV P1,#0FFH
LCALL DELAY
MOV R3,#8
MOV A,#07FH
LP2: MOV P1,A
RR A
LCALL DELAY
DJNZ R3,LP2
MOV P1,#0FFH
LCALL T1DELAY
SJMP MAIN
T1DELAY:MOV R5,#20 ; 延時寬辯弊1ms ;硬體延時慎族
MOV TMOD,#10H
MOV TH1,#3CH
MOV TL1,#0B0H
SETB TR1
LP3: JBC TF1,LP4
SJMP LP3
LP4: MOV TH1,#3CH
MOV TL1,#0B0H
DJNZ R5,LP3
RET
Ⅲ 單片機跑馬燈匯編程序詳細解釋
ORG
0000H
SJMP
START
ORG
0030H
START:
MOV
A,
#0FEH
;
先讓第一個發光二極體點亮
LOOP:
MOV
P1,
A
;
從P1口輸出到發光二極體
MOV
R1,
#100
;
延時0.5秒版
DEL1:
MOV
R2,
#200
DEL2:
MOV
R3,
#7
DEL3:
DJNZ
R3,
DEL3
DJNZ
R2,
DEL2
DJNZ
R1,
DEL1
RL
A
;
左移一位,點亮下一個發光二極體
LJMP
LOOP
END
這個是我寫權的跑馬燈程序,沒有左右振盪,自己參考參考加上去吧
Ⅳ 跑馬燈基本程序求翻譯 詳細的~
#包鍵扒括<< reg52。」
#定義unsigned char函數
# unsigned int定義單元
延時(單位毫秒)
{
int t;
而(MS——)
{
為(T = 200;陸亮塵T>0;T——);
}
}
無效main()
{
P1 = 0xff;
延遲(250);
P1 = 0;
而(1)
{
如果(P3 = = 0xfb)
{
小一= 0x01;
延遲(100);
P1 = 0x02;
延遲(100);
P1 = 0x04;
延遲(早禪100);
P1 = 0x08;
延遲(100);
p1= 0x10;
延遲(100);
P1 = 0x20;
延遲(100);//由上往下
Ⅳ 用51單片機(匯編語言寫)寫一個跑馬燈程序知道的幫個忙寫寫。
急用!請教!!!
用匯編語言程序,程序功能:實現方向可控的跑馬燈
編程要求:用八個LED發光二極體實現跑馬燈(即:8個燈依次輪流發光,每次只亮一個燈),系統啟動後,跑馬燈右向流轉,按下K1鍵,則反向流轉,再按則再反向……。接線方法:流水燈接P0口,按鍵K1可自選P1~P3任一引腳。
Ⅵ MagicARM2410,用QT控制跑馬燈閃動(QT界面用designer做好了,驅動程序也有,其它的就不知道怎麼做了)
就象大家更熟悉的const一樣,volatile是一個類型修飾符(type specifier)。它是被設計用來修飾被不同線程訪問和修瞎旁段改的變數。如果沒有volatile,基本上會導致這樣的結果:要麼無法編寫多線程程序,要麼編譯器失去大量優化的機會。
總之呢,就是能夠優化
關鍵在於兩個地方:
1. 編譯器的優化 (請高手幫我看看下面的理解)
在本次線程內, 當讀取一個變數時,為提高存取速度,編譯器優化時有時會先把變數讀取到一個寄存器中;以後,再取變數值時,就直接從寄存器中取值;
當變數值在本線程里改變時,會同時把變數的新值到該寄存器中,以便保持一致
當變數在因別的線程等而改變了值,該寄存器的值不會相應改變,從而造成應用程序讀取的值和實際的變數值不一致
當該寄存器在因別的線程等而改變了值,原變數的值不會改變,從而造成應用程序讀取的值和實際的變數值不一致
舉一個不太准確的例子:
發薪資時,會計每次都把員工叫來登記他們的銀行卡號;一次會計為了省事,沒有即時登記,用了啟陸以前登記的銀行卡號;剛好一個員工的銀行卡丟了,已掛失該銀行卡號;從而造成該員工領不到工資
員工 -- 原始變數地址
銀行卡號 -- 原始變數在寄存器的備份
2. 在什麼情況下會出現(如1樓所說)
1). 並行設備的硬體寄存器(如:狀態寄存器)
2). 一個中斷服務子程序中會訪問到的磨譽非自動變數(Non-automatic variables)
3). 多線程應用中被幾個任務共享的變數
Ⅶ 用匯編語言編寫跑馬燈程序
跑馬燈程序用匯編是很好實現的,只要用好循環移位指令就可以,以下是程序。
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH
LOOP:
MOV P1,A ;將控制字送埠
RL A ;控制字循環左移
LCALL DELAY ;延時
SJMP LOOP
DELAY: ;延時大概1秒
MOV R2,#10
DLY1:
MOV R3,#200
DLY2:
MOV R4,#250
DJNZ R4,$
DJNZ R3,DLY2
DJNZ R2,DLY1
RET
END
Ⅷ 單片機跑馬燈程序
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
Ⅸ 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();
}
}
}
(9)arm跑馬燈程序擴展閱讀:
Proteus 自從有了單片機也就有了開發系專統,隨著單片機的發展屬開發系統也在不斷發展。 keil是一種先進的單片機集成開發系統。它代表著匯編語言單片機開發系統的最新發展,首創多項便利技術,將開發的編程/模擬/調試/寫入/加密等所有過程一氣呵成,中間不須任何編譯或匯編。
Ⅹ 自己寫了個跑馬燈程序,怎麼在Linux下燒寫到arm板子上
用dnw燒寫