;************IC:ZQ9712**************
;编缉: 版本:1.0 时间:2005.9.30
;功能: 七种模式 1.七色段填充
; 2.七色单填充
; 3.七色整体变化
;****10米**** 4.七色段慢追
; 5.七色段快追
; 6.七色流水
; 7.七色浪涌
;*********一般寄存器*************
p5==0x05
p6==0x06
iocb==0x0c
iocd==0x0d
pc==0x02
status==0x03
;*********位定义**********
c==0
z==2
data==0
LI==2
clk==1
;*********自定义*********
x1==13h
x1a==27h
y1==14h
xy==15h
temp==16h
temp0==1bh
temp1==1ch
temp_js==1dh
temp_js1==1eh
colorcs==17h
colorcs3==18h
swk==19h
count1==20h
count1a==26h
time2==21h
cs==22h
csa==28h
sw_cs1==23h
time1==24h ;速度的快慢
sumled==25 ;灯亮的个数
; piansu==3 ;可计算长度
modeum==1ah
lycolorcs==10h
ly5cs==11h
;***********主程序**************
ORG 00H
jmp main
org 0x11
main:
MOV A,@00H
IOW P5
mov a,@0xf0 ;port5下拉
iow iocb
mov a,@0x00
iow iocd ;p6口上拉使能
clr p5
clr colorcs
clr time2
clr sw_cs1
clr swk
clr x1
clr x1a
;*************清屏******************
qingpin:
mov a,@2 ; 2x250=500 定义20米
mov x1a,a
qpa2 mov a,@250 ;清250个点
mov x1,a
qp1 mov a,@0b00000000 ;给颜色表COLORGB=1
; call colorgb
call send3
djz x1
jmp qp1
djz x1a
jmp qpa2
call zli
; jmp mode6 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; jmp mode7
jmp mode1
colorgb:
add pc,a
nop
; retl @0b00000000 ;无色-1
retl @0b00000001 ;红---2
retl @0b00000010 ;绿----3
retl @0b00000100 ;蓝----4
retl @0b00000011 ;红绿--5
retl @0b00000110 ;绿蓝--6
retl @0b00000101 ;红蓝 --7
retl @0b00000111 ;红绿蓝---8
; retl @0b00000000 ;无色---9
colorgb_1:
add pc,a
nop
retl @0b00000001 ;红---2
retl @0b00000000
retl @0b00000010 ;绿----3
retl @0b00000000
retl @0b00000100 ;蓝----4
retl @0b00000000
retl @0b00000011 ;红绿--5
retl @0b00000000
retl @0b00000110 ;绿蓝--6
retl @0b00000000
retl @0b00000101 ;红蓝 --7
retl @0b00000000
retl @0b00000111 ;红绿蓝---8
retl @0b00000000 ;无色---9
colorgb_2:
add pc,a
nop
retl @0b00000011 ;无色-1
retl @0b00000101 ;红---2
retl @0b00000111 ;绿----3
retl @0b00000111 ;蓝----4
retl @0b00000111 ;红绿--5
retl @0b00000101 ;绿蓝--6
retl @0b00000111 ;红蓝 --7
retl @0b00000101 ;红绿蓝---8
retl @0b00000011 ;无色---9
lycolorb:
add pc,a
nop
retl @0b00000001 ;红---2
retl @0b00000011 ;红绿--5
retl @0b00000010 ;绿----3
retl @0b00000110 ;绿蓝--6
retl @0b00000100 ;蓝----4
retl @0b00000101 ;红蓝 --7
retl @0b00000111 ;红绿蓝---8
wbcolorb:
add pc,a
nop
retl @0b00000001 ;红
retl @0b00000011 ;红绿
retl @0b00000010 ;绿
retl @0b00000110 ;绿蓝
retl @0b00000100 ;蓝
retl @0b00000101 ;蓝红
retl @0b00000001 ;红
ZLI:
NOP
Bs P5,LI
mov a,@25
mov csa,a
zli1 djz csa
jmp zli1
clr csa
nop
Bc P5,LI
nop
mov a,@15
mov csa,a
zli2 djz csa
jmp zli2
clr csa
nop
RET
ZCLK:
NOP
mov a,@15
mov csa,a
zclk1 djz csa
jmp zclk1
clr csa
NOP
Bc P5,CLK
nop
mov a,@15
mov csa,a
zclk2 djz csa
jmp zclk2
clr csa
NOP
Bs P5,CLK
NOP
mov a,@25
mov csa,a
zclk3 djz csa
jmp zclk3
clr csa
NOP
RET
send3:
MOV TEMP,A
MOV A,@3
MOV CS,A
LOOPR4 BS P5,DATA ;p50
RRC TEMP
;
mov a,@10
mov csa,a
lcsa djz csa ;短暂延时
jmp lcsa
clr csa
JBC STATUS,C
BC P5,DATA
BS P5,CLK
;
mov a,@15
mov csa,a
lcsa1 djz csa ;短暂延时
jmp lcsa1
clr csa
nop
BC P5,CLK ;p51
nop
DJZ CS
JMP LOOPR4
ret
;**************模式1:七色段填充***************
;********每点32MS速度
;*******时间:32MSX42米X25点=33600MS=33.6S
mode1:
mov a,@100 ;模式1时间速度=150
mov time1,a
mov a,@6 ;遍7X6=42米
mov modeum,a
mode1_2 clr colorcs
colorchang mov a,@sumled ;=25点为1米一段
mov count1,a
inc colorcs
loop mov a,colorcs ;指定显示什么颜色查颜色表
call colorgb ;调用颜色表
call send3 ;调用发射3位数据
call zli ;显示3位数据
call delay1
mov a,swk ;swk=1
xor a,@1
jbs status,z ;结果为0,z=1
jmp jxmode1_1
clr colorcs
inc swk ;swk=2
jmp xfmode1_a
jxmode1_1 djz count1
jmp loop
clr count1
mov a,@7 ;查表第几行
xor a,colorcs
jbs status,z
jmp colorchang
clr colorcs
xfmode1_a mov a,swk
相关文章