跑马灯电路图
本例实验主要用到了延时子程序,clr,lcall,ajmp 指令, 通过轮流点亮p1.0 …..P1.7 实现效果。用户可以通过此程序的学习, 初步掌握单片机的IO端口操作。
参考程序:
;实验1最简单的8路跑马灯。用一条8PIN的数据排线把CPU部份的P1口(JP44)连接到八路指示灯部份的JP32
;可以看到8路灯轮流闪烁
org 0000h ;开始
ajmp loop
org 0030h ;到0030h处避开00-30的敏感地址
loop:
mov p1,#0ffh;关闭所有灯
clr p1.0 ;点亮灯p1.0
lcall delay ;延时一段时间?
clr p1.1 ;点亮灯p1.1
lcall delay
clr p1.2 ;点亮灯p1.2
lcall delay
clr p1.3 ;点亮灯p1.3
lcall delay
clr p1.4 ;点亮灯p1.4
lcall delay
clr p1.5 ;点亮灯p1.5
lcall delay
clr p1.6 ;点亮灯p1.6
lcall delay
clr p1.7 ;点亮灯p1.7
lcall delay
AJMP LOOP;到最开始loop处重新运行
delay: mov r5,#20 ;延时。
d1: mov r6,#40
d2: mov r7,#248
djnz r7,$
djnz r6,d2
djnz r5,d1
ret
end
用的单片机为AT89S51 ,89S51.
希望再接再厉
用了一下代码,这个地方的延时好玩
看我的定时中断编的程序,可以定为1s的亮时间
org 0000h
ljmp main
org 0033h
ljmp intt0
main: mov tmod ,#01h
mov th0,# 3c h
mov tl0,# b0 h
mov r2,#00h
setb ea
setb et0
setb tr0
sjmp$
intt0: mov th0,# 3c h
mov tl0,# b0 h
inc r2
cjne r2,#0ah,tab1
setb p1.7
cpl p1.0
tab1: cjne r2,#14h,tab2
cpl p1.1
cpl p1.0
tab2: cjne r2,#1eh,tab3
cpl p1.2
cpl p1.1
tab3: cjne r2,#28h,tab4
cpl p1.3
cpl p1.2
tab4: cjne r2,#32h,tab5
cpl p1.4
cpl p1.3
tab5: cjne r2,#3ch,tab6
cpl p1.5
cpl p1.4
tab6: cjne r2,#46h,tab7
cpl p1.6
cpl p1.5
tab7: cjne r2, #50h,next
cpl p1.7
cpl p1.6
mov r2,#00h
next :reti
end
很厉害呀,要好好学习