⑴ 單片機點亮一盞led燈代碼
用MCS51單片機匯編語言編寫的點亮一隻LED燈源程序LED1.ASM,代碼如下:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:MOV A,#FEH
MOV P1,A
AJMP $
END
⑵ 51單片機用匯編語言如何設計8個輪流呼吸的呼吸燈
因為我不知道你這個板子的硬體,我就假設一下吧,你自己對照著看看,關鍵是流程
假設如下這八個燈依次接在P0口的八個口上,高電平為燈亮,低電平為燈滅,程序如下
ORG 0000H
AJMP START
START:MOV P0,#01H;()只有第一個燈亮
ACALL DELAY;延遲,不加延遲的話 你根本看不起清到底那個燈亮的
MOV P0,#02H;()只有第二個燈亮
ACALL DELAY
MOV P0,#04H;()只有第三個燈亮
ACALL DELAY
MOV P0,#08H;()只有第四個燈亮
ACALL DELAY
MOV P0,#10H;()只有第五個燈亮
ACALL DELAY
MOV P0,#20H;()只有第六個燈亮
ACALL DELAY
MOV P0,#40H;()只有第七個燈亮
ACALL DELAY
MOV P0,#80H;()只有第八個燈亮
ACALL DELAY
AJMP START;周而復始
DELAY: MOV R6,#40;延遲程序,晶振為3.57MHZ時大概是0.1S
0.1SL1: MOV R5,#246
0.1SL2: NOP
DJNZ R5,0.1SL2
DJNZ R6,0.1SL1
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
⑷ 各位單片機達人幫個忙 用匯編語言做一個 發光二極體循環點亮的程序 要求 使八隻發光二極體做循環點亮一次
發光二極體循環點亮
八隻發光二極體左循環點亮一次、然後右循環點亮一次。
循環。
模擬試驗成功。
⑸ 單片機led左移然後右移循環亮滅的匯編語言
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH
MOV R2,#8
LOOP1:
MOV P0,A
LCALL DELAY
RL A
DJNZ R2,LOOP1
MOV R2,#8
LOOP2:
MOV P0,A
LCALL DELAY
RR A
DJNZ R2,LOOP2
SJMP MAIN
DELAY:
MOV R2,#200
DLY:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DLY
RET
END
⑹ 51單片機中如何用匯編語言編寫流水燈
流水燈就是51單片機控制led燈依次點亮的控制方式。具體程序如下:
ORG 0000H;復位啟動
AJMP START;
ORG 001BH;T1中斷
AJMP T1INT;
;定義變數========================
YSJSEQU 30H;延時計數器
LEDEQU 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;匯編程序結束
(6)單片機亮燈匯編擴展閱讀:
實現流水燈的三個方法:
第一種,匯流排方法實現流水燈。這是一種比較笨但又最易理解的方法,採用順序程序結構,用位指令控制P1口的每一個位輸出高低電平,加上延時函數,即可控制每個LED燈的亮滅。
第二種,移位方法實現流水燈採用循環程序結構編程。首先在程序開始給P1.0口送一個低電平,其它位為高。然後延時一段時間再讓低電平往高位移動,這樣就實現「流水」的效果了。
第三種,庫函數實現流水燈。利用左移函數進行。
⑺ 用匯編語言讓51單片機八個燈從左到右依次點亮且都不滅,每個燈亮的時
用匯編語言讓51單片機八個燈從左到右依次點亮且都不滅,每個燈亮的時間間隔0.5秒,然後全滅,再循環之前的步驟。
參考如下:
電路
LED_COUNT DATA 30H
T0_COUNT DATA 31H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_INT
ORG 0030H
MAIN:
ANL TMOD,#0F0H
ORL TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
ORL IE,#82H
SETB TR0
CLR F0
MOV LED_COUNT,#00H
MOV T0_COUNT,#00H
MOV DPTR,#TAB
M1:
JNB F0,M2
CLR F0
MOV A,LED_COUNT
MOVC A,@A+DPTR
MOV P2,A
INC LED_COUNT
MOV A,#9
CJNE A,LED_COUNT,M2
MOV LED_COUNT,#00H
M2:
SJMP M1
T0_INT:
MOV TH0,#3CH
MOV TL0,#0B0H
INC T0_COUNT
MOV A,#10
CJNE A,T0_COUNT,T
MOV T0_COUNT,#00H
SETB F0
T:
RETI
TAB:
DB0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH
END
希望能達到你的要求!!!!!