org 00h mov scon,#00000000b ;设定UART方式MODE0 start:mov dptr,#table ;数据指针指到TABLE loop:clr a
;清除ACC movc a,@a+dptr
;到TABLE取数据 cjne a,#03,a1
;到结束码03了么?不是到A1 jmp start
;是则重新开始 a1: cpl a
;取到的数据反向 mov 30h,a
;A存入30H mov sbuf,30h
;30H的值存入SBUF loop1:jbc ti,loop2 ;监测TI=1?是则跳到LOOP2 jmp loop1
;否则继续监测 loop2: call delay
;延时 inc dptr
;数据指针加1 jmp loop DELAY: ; 延时程序 | MOV R5,#255 D3:MOV R2,#255 D4: DJNZ R2,D4 DJNZ R5,D3 RET table : db 01h,02h,04h,08h ;左移 db 10h, 20h,40h,80h db 01h,02h,04h,08h db 10h, 20h,40h,80h db 80h,40h,20h,10h
;右移 db 08h, 04h,02h,01h db 80h,40h,20h,10h db 08h, 04h,02h,01h db 00h,0ffh,00h,0ffh ;闪烁 db 03h END |