📄 led_jianming.dt
字号:
;===============================================
; 晶振4MHz,周期为4个时钟,指令周期为1us
;===============================================
;---------------定义变量-------------------------
r3 == 0x03
port5 == 0x05
temp == 0x10
flag1 == 0x15
;---------------程序入口地址--------------------------
org 0x00 ;复位入口地址
jmp main
;---------------初始化程序------------------------------
org 0x10 ;程序入口地址
main:
mov a,@0x00
iow port5 ;p5口作为输出
clra
iow 0x0e
clr temp ;计数器清零
clr flag1 ;标志位清零
;----------------主程序------------------------------
loop:
call light_adj ;调节LED亮度值
call light_disp ;LED显示
jmp loop
;----------------LED显示-----------------------------
light_disp:
mov a,@0x00 ;LED输出低电平
mov port5,a
mov a,temp ;LED100等份的变量值
mov 0x13,a
d1:
mov a,@25 ; 延时25*4us=0.1ms
mov 0x14,a
d2:
nop
djz 0x14
jmp d2 ;4个指令周期*4个时钟/4MHZ=4us
djz 0x13
jmp d1
com port5
mov a,@0x64
sub a,temp
mov 0x13,a
d3:
mov a,@25
mov 0x14,a
d4:
nop
djz 0x14
jmp d4
djz 0x13
jmp d3
ret
light_adj:
jbc flag1,0
jmp light_dec
inc temp
mov a,@0x64
sub a,temp
jbs r3,2
jmp light_over
bs flag1,0
bc r3,2
jmp light_over
light_dec:
dec temp
mov a,@0x01
sub a,temp
jbs r3,2
jmp light_over
clr temp
bc flag1,0
bc r3,2
light_over:
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -