📄 (模拟串口)lhm.asm
字号:
org 0000h
ljmp begin
org 0100h
begin:
;mov scon,#00h ;串口控制字
;mov sp ,#20h
mov 30h,#8
mov 31h,#9
mov 32h,#0
mov 33h,#0
;mov 34h,#0
;mov 35h,#1
lcall led_out1
ljmp begin
mov a,#20h
lcall ys0
mov 30h,#2
mov 31h,#0
mov 32h,#0
mov 33h,#3
; mov 34h,#5
; mov 35h,#1
mov r0,#33h
mov r2,#4
lcall led_out1
mov a,#20h
lcall ys0
mov 35h,#0
mov r5,#10
led_1:
lcall led_out1
inc 35h
mov a,#20h
lcall ys0
djnz r5, led_1
ljmp begin ;主程序
;***********************************************
led_out:
mov dptr,#tab ;地址指针
mov a,@r0
dec r0
movc a,@a+dptr ;取段码
mov sbuf,a ;输出
jnb ti,$
clr ti
djnz r2,led_out
setb p3.4 ;产生锁存脉冲
nop
clr p3.4
ret
;*********************************************************
led_out1: ;第二种方法
mov r0,#30h
mov r2,#4
mov dptr,#tab ;地址指针
out_12:
mov a,@r0
inc r0
movc a,@a+dptr ;取段码
mov r3,#8
out_11:
rrc a
mov p1.0,c
setb p1.1
nop
clr p1.1
djnz r3,out_11
djnz r2,out_12
setb p1.4 ;产生锁存脉冲
nop
clr p1.4
ret
;********************************************************
ys0:
mov r2,a
ys3: mov r3,#200
ys2: mov r4,#123
nop
ys1: djnz r4,ys1
djnz r3,ys2
djnz r2,ys3
ret
tab:
;led段码 abcdefg.
db 00000011b ;=0
db 10011111b ;=1
db 00100101b ;=2
db 00001101b ;=3
db 10011001b ;=4
db 01001001b ;=5
db 01000001b ;=6
db 00011111b ;=7
db 00000001b ;=8
db 00001001b ;=9
db 11111111b ;=空
db 01100011b ;=c
db 11111101b ;=-
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -