㈠ 單片機匯編實驗
1將80C51片內RAM的20H~2EH共15個單元置以初值0A0H~0AEH,
mov r0,#20H
mov a,#0a0h
loop:
mov @r0,a
inc r0
inc a
cjne r0,#2fh,loop
然後再將8700H~870EH單元的內容傳送到片內RAM的60H~6EH中。
mov dptr,#8700h
mov r0,#60h
loop2:
movx a,@dptr
mov @r0,a
inc dptr
inc r0
mov a,dpl
cjne a,#0fh,loop2
最後將20H~2EH單元的內容傳送到片外RAM的8700H~870EH
mov dptr,#8700h
mov r0,#20h
loop3:
mov a,@r0
movx @dptr,a
inc dptr
inc r0
cjne r0,#2fh,loop3
end
2用P1口的p1.0-p1.7八個埠做輸出口,接8隻發光二極體(LED),編寫程序使LED循環點亮。
mov a,#1
loop:
rl a
mov p1,a
;delay
mov r1,#0ffh
loop2:mov r2,#0ffh
djnz r2,$
djnz r1,loop2
;delay end
sjmp loop
end
3題目: P1口接8隻發光二極體(L0~L7), T1作定時器,系統晶振6MHz。編寫程序,讓第1秒時L0~L3點亮, L4~L7暗;第2秒時L0~L3暗, L4~L7亮;第3秒時L0~L7全亮;第4秒時L0~L7全暗;第5秒時L0~L3點亮, L4~L7暗;如此循環下去......
;這個有點復雜了……
org 0h
sjmp start
org 0bh
mov th0,#0bh
mov tl0,#0dch
inc r7;R7是計數器,滿8次表示1秒到了
cjne r7,#8,exit
mov r7,#0
inc r6
cjne r6,#4,skip
mov r6,#0
skip:
mov a,r6
movc a,@a+dptr
mov p1,a
exit:reti
start:
mov tmod,#1
setb ea
setb et0
setb tr0
mov dptr,#tab
sjmp $
tab:db 0f0h,0fh,0h,0ffh