org 0000h
ajmp main
org 0030h
main:
mov dptr,#tab ;將表頭地址送入DPTR
mov 30h,#00h ;將30H清零
mov a,30h ;把30H中的數送入ACC中
loop:
movc a,@a+dptr ;查ROM中的表格并將所得結果送入ACC中
mov p0,a ;將查表所得結果送入P0口
inc 30h ;將30H單元加一
mov a,30h ;將30H單元的的值送入ACC中
movc a,@a+dptr ;查表并將所得的結果送入ACC中
mov p2,a ;將ACC中的值送入P2口
mov r4,#10 ;給軟件計時器賦值
tt3: ;以下是延時程序延時時間為:10ms*100=1S
lcall delay10ms ;調用10MS延時程序
djnz r4,tt3 ;R4不等于零返回到TT3處循環(huán)
inc 30h ;將30H向上加一
mov a,30h ;將30H中的值送入ACC
cjne a,#32,loop ;ACC中的數若與32不相等則返回LOOP處循環(huán)
ajmp main ;相等則返回到主程序處繼續(xù)循環(huán)
delay10ms: ; 10ms 延時程序
mov r6,#100
tt2:
mov r5,#50
djnz r5,$
djnz r6,tt2
ret
tab: dw 0ffffh,0000h,0ffffh,0000h
dw 5555h,0aaaah,05555h,0aaaah
dw 00ffh,0ff00h,00ffh,0ff00h
dw 0cccch,3333h,0cccch,3333h
end