历史上的今天
返回首页

历史上的今天

今天是:2025年12月26日(星期五)

正在发生

2022年12月26日 | ZQ9712单片机汇编控制源程序

2022-12-26 来源:zhihu

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

xor a,@2

jbs status,z

jmp jx2

jmp mode1_2

jx2 djz modeum

jmp mode1_2

;***************模式2:七色单填充********************

;********每点32MS速度

;*******时间:32MSX255点X7=57120MS=57.12S

mode2:

mov a,@1 ;piansu为100米

mov modeum,a

mode2_2 clr colorcs

; inc colorcs

mode2_1:

inc colorcs

mov a,@1 ;长度为10米2x250=250

mov count1a,a

loop1_a mov a,@255 ;灯亮个数=255

mov count1,a

loop1:

mov a,colorcs ;指定显示什么颜色查颜色表

call colorgb ;调用颜色表

call send3 ;调用发射3位数据

call zli ;显示3位数据

call delay1

mov a,swk ;swk=3

xor a,@3

jbs status,z ;结果为0,z=1

jmp jxmode2_1

inc swk ;swk=4

jmp xfmode2_a

jxmode2_1 djz count1

jmp loop1

djz count1a

jmp loop1_a

clr count1a

clr count1

mov a,@7 ;查表第几行

xor a,colorcs

jbs status,z

jmp mode2_1

xfmode2_a mov a,swk ;swk=4

xor a,@4

jbs status,z

jmp jxm2

jmp mode2_2

jxm2 djz modeum

jmp mode2_2

;****************模式3:七色整体变化*********************

;********每点**MS速度

;*******时间:**25S*****

mode3:

mov a,@4 ;piansu

mov modeum,a

mode3_3 clr colorcs

mode3_2 inc colorcs

mov a,@1 ;长度为10米1x250=250点

mov count1a,a

mode3_1 mov a,@250 ;灯亮个数

mov count1,a

; inc colorcs

loop3 mov a,colorcs ;指定显示什么颜色查颜色表

call colorgb ;调用颜色表

call send3 ;调用发射3位数据

NOP

mov a,swk ;swk=5

xor a,@5

jbs status,z ;结果为0,z=1

jmp jxmode3

inc swk ;swk=6

jmp xfmode3

jxmode3 djz count1

jmp loop3

djz count1a

jmp mode3_1

nop

call zli ;显示3位数据

nop

mov a,@30

mov cs,a

too1 call delay1

djz cs

jmp too1

mov a,@7 ;查表第几行

xor a,colorcs

jbs status,z

jmp mode3_2

xfmode3 mov a,swk ;swk=6

xor a,@6

jbs status,z

jmp jxm3

jmp mode3_3

jxm3 djz modeum

jmp mode3_3

;****************模式4:七色段慢追*******************

;********每点16MS速度

;*******时间:16MSX2100点=33600MS=33.6S

mode4:

mov a,@50 ;追的速度

mov time1,a

mov a,@10 ;piansu=10X7X30=2100点

mov modeum,a

mode4_1 clr colorcs

mode4_2 mov a,@10 ;灯亮个数

mov count1,a

inc colorcs

loop4 mov a,colorcs ;指定显示什么颜色查颜色表

call colorgb_1 ;调用颜色表

call send3 ;调用发射3位数据

call delay1

mov a,swk ;swk=7

xor a,@7

jbs status,z ;结果为0,z=1

jmp jxmode4

inc swk ;swk=8

jmp xfmode4

jxmode4 call delay1

call zli ;显示3位数据

djz count1

jmp loop4

mov a,@5 ;灯灭个数5

mov count1,a

inc colorcs

loop5 mov a,colorcs ;指定显示什么颜色查颜色表

call colorgb_1 ;调用颜色表

call send3 ;调用发射3位数据

call delay1

mov a,swk ;swk=7

xor a,@7

jbs status,z ;结果为0,z=1

jmp jxmode4_1

inc swk ;swk=8

jmp xfmode4

jxmode4_1 call delay1

call zli ;显示3位数据

djz count1

jmp loop5

clr count1

mov a,@14 ;查表第几行

xor a,colorcs

jbs status,z

jmp mode4_2

xfmode4 mov a,swk ;swk=8

xor a,@8

jbs status,z

jmp jxm4

jmp mode4_1

jxm4 djz modeum ;piansu=6

jmp mode4_1

;****************模式5七色段快追******************

;********每点3.2MS速度

;*******时间:3.2MSX8750点=28000MS=28S

mode5:

mov a,@10

mov time1,a

mov a,@5 ;piansu=6:5X250X7=8750点

mov modeum,a

mode5_1 clr colorcs

mode5_2 mov a,@10 ;灯亮个数

mov count1,a

inc colorcs

md51 mov a,colorcs ;指定显示什么颜色查颜色表

call colorgb_1 ;调用颜色表

call send3 ;调用发射3位数据

call delay1

mov a,swk ;swk=9

xor a,@8

jbs status,z ;结果为0,z=1

jmp jxmode5

inc swk ;swk=10

jmp xfmode5

jxmode5 call zli ;显示3位数据

djz count1 ;=10

jmp md51

mov a,@240 ;灯灭个数240

mov count1,a

inc colorcs

md52 mov a,colorcs ;指定显示什么颜色查颜色表

call colorgb_1 ;调用颜色表

call send3 ;调用发射3位数据

call delay1

mov a,swk ;swk=9

xor a,@9

jbs status,z ;结果为0,z=1

jmp jxmode5_1

inc swk ;swk=10

jmp xfmode5

jxmode5_1 call zli ;显示3位数据

djz count1 ;=240

jmp md52

clr count1

mov a,@14 ;查表第几行

xor a,colorcs

jbs status,z

jmp mode5_2

xfmode5 mov a,swk ;swk=10

xor a,@10

jbs status,z

jmp jxm5

jmp mode5_1

jxm5 djz modeum ;piansu=6

jmp mode5_1

;****************模式6七色流水********************

;********每点**MS速度

;*******时间:***30S****

mode6:

mov a,@20

mov time1,a

mov a,@45 ;piansu=10

mov modeum,a

lyxf2 clr lycolorcs

lyxf1 inc lycolorcs

mov a,@5

mov ly5cs,a ;灯亮个数

lyxf mov a,lycolorcs

call lycolorb

call send3

call delay1

call zli

mov a,swk ;swk=11

xor a,@11

jbs status,z

jmp jxm6

inc swk ;swk=12

jmp lyxf2

jxm6 djz ly5cs

jmp lyxf

mov a,@7 ;查表第几行

xor a,lycolorcs

jbs status,z

jmp lyxf1

mov a,swk ;swk=12

xor a,@12

jbs status,z

jmp jxm6_1

; jmp lyxf2

jxm6_1 djz modeum

jmp lyxf2

; jmp mode1

;**************模式7:七色浪涌***************

mode7:

mov a,@15

mov time1,a ;浪涌时间

mov a,@12 ;遍数=10

mov modeum,a

md7_5 clr temp0

clr temp1

clr temp_js

clr temp_js1

clr colorcs

mov a,@6

mov temp_js1,a

md7_4 inc colorcs

mov a,@6

mov temp_js,a

md7_3 mov a,temp_js

mov temp0,a

sub a,@7

mov temp1,a

md7_1 mov a,colorcs

call wbcolorb

call send3

call zli

call delay1

mov a,swk ;swk=13

xor a,@11

jbs status,z

jmp jxm7_1

inc swk ;=14

jmp md7_5


jxm7_1 djz temp0

jmp md7_1

md7_2 mov a,colorcs

add a,@1

call wbcolorb

call send3

call zli

call delay1

mov a,swk ;swk=13

xor a,@11

jbs status,z

jmp jxm7_2

inc swk ;=14

jmp md7_5

jxm7_2 djz temp1 ;

jmp md7_2

djz temp_js ;=6

jmp md7_3

djz temp_js1 ;=6

jmp md7_4

mov a,swk ;swk=14

xor a,@12

jbs status,z

jmp jxm7_8

; jmp md7_5

jxm7_8 djz modeum

jmp md7_5

mov a,swk ;swk=14

xor a,@12

jbs status,z

jmp qingpin

jmp mode6

; jmp qingpin

;******************延时程序***********************

delay1:

clr x1

clr y1

mov a,time1 ;T1 时间

mov x1,a

l44 wdtc

mov a,@100

mov y1,a

;

jbs p6,0

jmp sw1

jmp l33

;

sw1 jbc p6,0

jmp sw1

nop

nop

nop

nop

jbc p6,0

jmp sw1

inc swk

sw2 jbs p6,0

jmp sw2

mov a,swk

xor a,@1

jbs status,z ;结果为0,Z=1

jmp swp1

jmp mode1

swp1 mov a,swk

xor a,@3

jbs status,z ;结果为0,Z=1

jmp swp2

jmp mode2

swp2 mov a,swk

xor a,@5

jbs status,z ;结果为0,Z=1

jmp swp3

jmp mode3

swp3 mov a,swk

xor a,@7

jbs status,z ;结果为0,Z=1

jmp swp4

jmp mode4

swp4 mov a,swk

xor a,@9

jbs status,z ;结果为0,Z=1

jmp swp5 ;jmp l33

jmp mode5

swp5 mov a,swk

xor a,@11

jbs status,z ;结果为0,Z=1

jmp swp6

jmp mode6

swp6 mov a,swk

xor a,@13

jbs status,z ;结果为0,Z=1

jmp l33 ;swp7

clr swk

jmp mode1 ;mode7

; swp7 mov a,swk

; xor a,@15

; jbs status,z ;结果为0,Z=1

; jmp l33

; clr swk

; jmp mode1

l33 djz y1

jmp l33

djz x1

jmp l44

ret

delay2:

clr x1

clr y1

mov a,@45 ;30 ;T2 时间=50

mov x1,a

zl44 wdtc

mov a,@50

mov y1,a

zl33 djz y1

jmp zl33

djz x1

jmp zl44

ret

end


推荐阅读

史海拾趣

Excelight Communications Inc公司的发展小趣事

作为一家有社会责任感的企业,Excelight始终关注社会公益事业。公司积极参与各类慈善活动和社会捐赠项目,为贫困地区的教育、医疗等事业做出了贡献。

此外,Excelight还注重环保和可持续发展。公司在生产过程中严格遵守环保法规和标准,积极采用环保材料和工艺。同时,Excelight还加强了节能减排和废弃物处理工作,努力实现绿色生产和可持续发展。

绿索超容(GreenSource)公司的发展小趣事

作为一家有社会责任感的企业,Excelight始终关注社会公益事业。公司积极参与各类慈善活动和社会捐赠项目,为贫困地区的教育、医疗等事业做出了贡献。

此外,Excelight还注重环保和可持续发展。公司在生产过程中严格遵守环保法规和标准,积极采用环保材料和工艺。同时,Excelight还加强了节能减排和废弃物处理工作,努力实现绿色生产和可持续发展。

ESS [ESS Technology,Inc]公司的发展小趣事

ESS不仅在个人电脑音频领域取得了显著成就,还在HIFI领域实现了突破。ESS的HIFI传承可以追溯到其创始人对音频技术的深刻理解和对市场需求的敏锐把握。通过多年的技术积累和不断创新,ESS成功推出了多款高性能的HIFI音频芯片,如ES9018,这些产品凭借其卓越的性能和音质赢得了广泛好评。

EBG RESISTORS LLC公司的发展小趣事

为了进一步扩大市场份额,EBG RESISTORS LLC公司开始实施国际化战略。他们积极参加国际电子展会,与全球各地的客户建立联系。同时,公司还积极寻求与国际知名企业的合作,共同开发新产品。在XXXX年,公司成功打入欧洲市场,并在随后几年内陆续进入亚洲和北美市场。

Bel Power Solutions公司的发展小趣事

在国内市场取得一定成绩后,Bel Power Solutions开始积极拓展国际市场。公司通过与全球知名企业的合作,成功将产品打入国际市场,并赢得了良好的声誉。同时,公司还积极寻求与系统集成商、分销商等建立长期稳定的合作关系,共同开拓市场。这些合作伙伴关系的建立,不仅为公司带来了更多的商业机会,还提升了公司的品牌影响力和市场份额。

Aydin Corp公司的发展小趣事

在国内市场取得一定成绩后,Aydin Corp开始积极拓展国际市场。通过与全球知名企业的合作,公司成功将产品打入多个国家和地区的市场。同时,Aydin Corp还积极参加国际电子展会和交流活动,与业界同行建立了广泛的合作关系。这些举措不仅提升了公司的国际知名度,也为公司的持续发展注入了新的动力。

问答坊 | AI 解惑

携无线产品中的小天线设计

通常在进入设计周期末尾之前,天线设计不会引起太大注意。原因或许就是因为它们是无源器件,在RF信号通路中所起的作用看来不大。也可能是是因为设计师希望他们一直有能力在剩余空间内配置天线设计和进行元件选择。还有可能是因为天线不是摩尔定律的 ...…

查看全部问答>

申请LPC1343开发板

不涉及公司机密的分享…

查看全部问答>

求助:PLC与DSP无法通讯

我用得CJ1M,设计本身是用422口与DSP通讯,通讯9次,每包250个字节,每次是PCL申请数据,dsp在发送一包,现象是发送完第一包,dsp正确接收到后,就不发送第二包的神情数据了,采用软件监视模式发现程序停留在PMCR那一行,而不是捕捉PMCR完成标志下 ...…

查看全部问答>

求助无线发送接收

我毕业设计做一个无线接收检测温度和压力信号,可不知道无线模块怎么做,有大侠帮忙吗?…

查看全部问答>

诚恳请教各位前辈:mm我作嵌入式软件还是IC前端设计?

算下来小硕毕业后正好工作有三年了,可对于以后的发展方向却始终迷茫。 开始的一年半,主要做产品方案级的软件,感觉自己还比较喜欢也比较有自信。后来去了另外的部门,做音频格式的软件解码,大约一年的时间,做了两个格式的解码和一个格式的编 ...…

查看全部问答>

菜鸟求助:关于pci中断的使用

本人菜鸟,刚接触pci,用的是pci9054做一个运动控制卡 在中断部分遇到很多疑惑,求高人指点 1. pci本地中断,我在datasheet上看到的只有一个pin154为LINT#,可是在很多资料上看到写LINT#[2:1],我现在本地端有两个外部中断源,该怎么处理? 2.在 ...…

查看全部问答>

atmel网站上的资料使用问题

各位大侠,我是新手,问大家一个比较低级的问题, 我们公司准备做AT91sam9261ek板上的开发,我从atmel官方网上下载了一个资料包,at91lib_softpack_1.5,,这些资料可以用来做什么呢?readme内容如下: //-------------------------------------- ...…

查看全部问答>

vxworks串口问题

串口程序能接收,但是发送的话只能发送一次.第二次就发不了,必须重启之后才能发送. write函数返回的值一直都是正常的. 但是串口监控软件就是接收不到数据,只能接收第一次的数据. 是因为我的驱动有问题吗? 驱动是用的vxworks自带的,我没动过.…

查看全部问答>

请教genprint.dll安装问题

请问安装genprint.dll,还需要其它文件吗,应该怎么安装啊…

查看全部问答>