|
;51單片機(jī)入門程序5
;工程名稱:讓單片機(jī)P1端口的LED實現(xiàn)跑馬燈效果,循環(huán)移位點亮一盞LED
;編寫日期:2009.7.4 ;編寫者:藍(lán)柳柳 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ORG org 0000H
MAIN: MOV P1,#11111110B;點亮P1.0所接的燈
ACALL YS ;調(diào)用延時子程序,讓P1.0所接的燈亮一小段時間
MOV P1,#11111101B;點亮P1.1所接的燈
ACALL YS ;調(diào)用延時子程序,讓P1.1所接的燈亮一小段時間
MOV P1,#11111011B;點亮P1.2所接的燈
ACALL YS ;調(diào)用延時子程序,讓P1.2所接的燈亮一小段時間
MOV P1,#11110111B;點亮P1.3所接的燈
ACALL YS ;調(diào)用延時子程序,讓P1.3所接的燈亮一小段時間
MOV P1,#11101111B;點亮P1.4所接的燈
ACALL YS ;調(diào)用延時子程序,讓P1.4所接的燈亮一小段時間
MOV P1,#11011111B;點亮P1.5所接的燈
ACALL YS ;調(diào)用延時子程序,讓P1.5所接的燈亮一小段時間
MOV P1,#10111111B;點亮P1.6所接的燈
ACALL YS ;調(diào)用延時子程序,讓P1.6所接的燈亮一小段時間
MOV P1,#01111111B;點亮P1.7所接的燈 ACALL YS ;調(diào)用延時子程序,讓P1.7所接的燈亮一小段時間
LJMP MAIN ;循環(huán).這回用長調(diào)用指令LJMP,當(dāng)程序比較長的時候就用
LJMP YS: ;延時子程序YS,功能是能讓LED亮起來或者滅掉一小段時間
MOV R1,#200 ;讓燈亮滅時間的長短也就是延時的長短跟#號后面的數(shù)據(jù)有關(guān)
D: MOV R2,#200 ;延時長點#號后面的數(shù)據(jù)就大點,延時短點#號后面的數(shù)據(jù)
T: MOV R3,#200 ;就小點,但#號后面最大的數(shù)據(jù)是255
DJNZ R3,$
DJNZ R2,T
DJNZ R1,D
RET ;子程序返回指令,子程序的設(shè)計一般都是因為主程序要調(diào)用它, ;調(diào)用完是要返回到主程序繼續(xù)運行下一個語句的
END
|
|