ZQ9712单片机汇编控制源程序

发布时间:
来源: 电子工程世界

;************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

文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。