MOV code,a
bc stflag,7 ;让查表标志清0
MOV a,tick ;在中断子程序中也有这一句
MOV tcount1,a
mode10:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jbs stflag,7 ;判断是否要进行查表
jmp mode10 ;tcountl若为0则进入下一拍
djz chtb
jmp mode12
djz count2
jmp mode13
;;;;;;;;;;;;;;;;;;;;;;;;;;
;跑马2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mode2:
clr ifdrim
MOV a,@4
MOV count2,a ;决定这一模式总循环次数
MOV a,spcode ;根据开关代码查到它对应的值
call spmode1
MOV tick,a ;这里可以省去tick2了,40/80/120/160
mode23:
bc stflag,0 ;表示不梦幻
MOV a,@32
MOV chtb,a
mode22:
MOV a,chtb
call tbmode2
MOV code,a
bc stflag,7 ;让查表标志清0
MOV a,tick ;在中断子程序中也有这一句
MOV tcount1,a
mode20:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jbs stflag,7 ;判断是否要进行查表
jmp mode20 ;tcountl若为0则进入下一拍
djz chtb
jmp mode22
djz count2
jmp mode23
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;以下为梦幻模式,只计总时间
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mode3:
clr ifdrim
com ifdrim ;这是梦幻的标志,它是不变的
MOV a,@5 ;进行的时间
MOV count2,a ;count2决定了该模式的工作时间
MOV a,spcode
call spmode4
MOV tick,a
MOV a,tick ;这个值由开机时决定,为4
MOV tcount2,a ;决定同一亮度级别存在时间,为10ms的倍数
mode33:
MOV a,@8
MOV chtb,a
mode32:
MOV a,chtb
call tbmode3 ;查表tbmode4
MOV code,a ;进入代
bc stflag,7 ;让查表标志清0
MOV a,@160
MOV tcount1,a
mode31:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jbs stflag,7
jmp mode31
djz chtb
jmp mode32
djz count2
jmp mode33
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;以下为梦幻模式,只计总时间
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mode4:
clr ifdrim
com ifdrim ;这是梦幻的标志,它是不变的
MOV a,@4 ;进行的时间
MOV count2,a ;count2决定了该模式的工作时间
; MOV a,spcode
;call spmode4
; MOV tick,a
MOV a,@1 ;这个值由开机时决定,为4
MOV tcount2,a ;决定同一亮度级别存在时间,为10ms的倍数
mode43:
MOV a,@5
MOV chtb,a
mode42:
MOV a,chtb
call tbmode4 ;查表tbmode4
MOV code,a ;进入代
bc stflag,7 ;让查表标志清0
MOV a,@160
MOV tcount1,a
mode41:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jbs stflag,7
jmp mode41
djz chtb
jmp mode42
djz count2
jmp mode43
;;;;;;;;;;;;;;;;;;;;;;;;;;
;跑马5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mode5:
clr ifdrim
MOV a,@15
MOV count2,a ;决定这一模式总循环次数
MOV a,spcode ;根据开关代码查到它对应的值
call spmode1
MOV tick,a ;这里可以省去tick2了,40/80/120/160
mode53:
bc stflag,0 ;表示不梦幻
MOV a,@12
MOV chtb,a
mode52:
MOV a,chtb
call tbmode5
MOV code,a
bc stflag,7 ;让查表标志清0
MOV a,tick ;在中断子程序中也有这一句
MOV tcount1,a
mode50:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jbs stflag,7 ;判断是否要进行查表
jmp mode50 ;tcountl若为0则进入下一拍
djz chtb
jmp mode52
djz count2
jmp mode53
jmp mode1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;延时子程序
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
delay100u:
MOV a,@10
MOV temp2,a
nop
nop
nop
nop
nop
nop
delay100:
nop
nop
nop
nop
nop
nop
djz temp2
jmp delay100 ;循环体内定时4US,当F=4MHz,D=2
ret
上一页 [1] [2] [3]
本文关键字:程序 义隆单片机,单片机-工控设备 - 义隆单片机