LED游泳池灯源程序

发布时间:2022-12-21  

indr == 0x00

tcc == 0x01

pc == 0x02

status == 0x03

r3 == 0x03

c == 0

dc == 1

z == 2

p == 3

t == 4

ps0 == 5

ps1 == 6

rst == 7

;;

rsr == 0x04

port5 == 0x05

b1_pin == 0

b_pin == 1

g_pin == 2

r_pin == 3

;

port6 == 0x06

g1_pin == 7

sda == 2

sck == 1

;;

;;INTERRUPT STATUS REGISTER

rf == 0x0f;;INTERRUPT STATUS REGISTER

tcif == 0;;TCC TIMER OVERFLOW INTERRUPT FLAG,0->DISABLE

;;SET WHEN TCC TIMER OVERFLOW,RESET IN SOFTWARE

icif == 1;;PORT INPUT CHANGE INTERRUPT FLAG,0->DISABLE

;;SET WHEN PORT6 INPUT CHANGES,RESET IN SOFTWARE

exif == 2;;EXTERNAL INTERRUPT FLAG,0->DISABLE

;;SET BY FALLING EDGE ON /INT,RESET IN SOFTWARE

;;BIT3-BIT7 NOT USE

;;

;;CONT ==@0B--------;;CONTROL REGISTER

;;BIT0-BIT2 TCC/WDT PRESCALER BITS

;;PSR2 PSR1 PSR0 TCC RATE WDT RATE

;; 0 0 0 1 : 2 1 : 1

;; 0 0 1 1 : 4 1 : 2

;; 0 1 0 1 : 8 1 : 4

;; . . . . .

;; . . . . .

;; 1 1 1 1 :256 1 :128

pab == 3;;PRESCALE ASSIGNMENT BIT

;;0->TCC

;;1->WDT

te == 4;;TCC SIGNAL EDGE

;;0->LOW TO HIGH ADD TCC

;;1->HIGH TO LOW ADD TCC

ts == 5;;TCC SIGNAL SOURCE

;;0->INTERNAL INSTRUCTION CYCLE CLOCK

;;1->TRANSITION ON TCC PIN

;;/INT == 6;;INTERRUPT ENABLE FLAG

;;0->MASKED BY DISI OR HARDWARE INTERRUPT

;;1->ENABLE BY ENI/RETI INSTRUCTION

;;BIT7 NOT USE

;;I/O PORT CONTROL REGISTER

ioc5 == 0x05;;I/O PORT CONTROL REGISTER

;;0->OUTPUT PORT,1->INPUT PORT

ioc6 == 0x06;;I/O PORT CONTROL REGISTER

;;0->OUTPUT PORT,1->INPUT PORT

;;PULL DOWN CONTROL REGISTER

iocb == 0x0b;;0->ENABLE 1->DISABLE

;;7 6 5 4 3 2 1 0

;; P62 P61 P60 P52 P51 P50

;;OPEN DRAIN CONTROL REGISTER

iocc == 0x0c;;0->DISABLE 1->ENABLE

;;7 6 5 4 3 2 1 0

;;P67 P66 P65 P64 P62 P61 P60

;;PULL HIGH CONTROL REGISTER

iocd == 0x0d;;0->ENABLE 1->DISABLE

;;7 6 5 4 3 2 1 0

;;P67 P66 P65 P64 P62 P61 P60

;;WDT CONTROL REGISTER

ioce == 0x0e;;WDT CONTROL REGISTER

;;BIT7-->ENABLE WATCHDOG TIME

;;0->DISABLE,1->ENABLE

;;BIT6->DEFINE THE FUNCTION OF P60(INT)PIN

;;0->I/O PIN,1->INT PIN

;;BIT0-BIT5 NOT USE

;;INTERRUPT MASK REGISTER

iocf == 0x0f;;INTERRUPT MASK REGISTER

tcie == 0;;TCIF INTERRUPT ENABLE BIT

;;0->DISABLE

;;1->ENABLE

icie == 1;;ICIF INTERRUPT ENABLE BIT

;;0->DISABLE

;;1->ENABLE

exie == 2;;EXIF INTERRUPT ENABLE BIT

;;0->DISABLE

;;1->ENABLE

;;BIT3-BIT7 NOT USED

;============================================================

;===RAM AND FLAG DEFINE======================================

icflag == 0x10

do == 0


;

txbuf == 0x11

rxbuf == 0x12

cnt == 0x13

num == 0x14 ;

addr == 0x15

;

a_buf == 0x16

r3_buf == 0x17

;

flag == 0x18

time_bit0 == 0

time_bit1 == 1

time_bit2 == 2

time_bit3 == 3

time_bit4 == 4

time_bit5 == 5

time_bit6 == 6

time_bit7 == 7

;

iccounter == 0x19

;

color_loop == 0x1b

key_loop == 0x1c

;

loop_counter == 0x1e;

loop_counter1 == 0x1f

;

sfr_addr == 0x20

sfw_addr == 0x21

;

loop_counter3 == 0x22

loop_counter4 == 0x23

;

color_loop1 == 0x24

color_loop2 == 0x25

loop_counter7 == 0x26

;===========================================================

;===CONST DEFINE============================================

data_tcc == 0d235

;============================================================

;==============主程序清单=====================================

;============================================================

;============================================================

org 0x00

jmp start

;

org 0x08

jmp time

;

org 0x30


;======================================================

;============启动信号========================================

tx_start: mov a,@0b01111001

iow ioc6

nop

bs port6,sda

bs port6,sck

call icdelay

bc port6,sda

call icdelay

bc port6,sck

ret

;

;======================================================

;======================================================

;===============停止信号===============================

tx_stop: mov a,@0b01111001

iow ioc6

nop

bc port6,sda

bs port6,sck

call icdelay

bs port6,sda

call icdelay

bc port6,sda

bc port6,sck

ret

;

;======================================================

;======================================================

;===========发应答信号======================================

mack: mov a,@0b01111001

iow ioc6

nop

bc port6,sda

bs port6,sck

call icdelay

bc port6,sck

bs port6,sda

ret

;

;==========================================================

;==========发非应答信号=====================================

mnack: mov a,@0b01111001

iow ioc6

nop

bs port6,sda

bs port6,sck

call icdelay

bc port6,sda

bc port6,sck

ret

;


;==========================================================

;======================================================

;===向I2C写N字节,I2C首地址存于ADDR中,源数据的起始地址===

;===指针在ACC中========================================

;======================================================

wrnbyte: clr icflag

mov rsr,a ;源数据地址送R4中

mov a,@0xa0

mov txbuf,a

call tx_start

call tx

mov a,addr

mov txbuf,a

call tx

;

wrloop: mov a,indr

mov txbuf,a

call tx

inc rsr

djz num

jmp wrloop

call tx_stop

ret

;

;============================================================

;===从I2C读N字节,待读出的起始地址ADDR中,读出的数据存在以ACC===

;===为起始地址指针的寄存器中===================================

;=============================================================

rdnbyte: clr icflag

mov rsr,a ;目标地址送R4中

mov a,@0xa0

mov txbuf,a

call tx_start

call tx

mov a,addr

mov txbuf,a

call tx

call tx_start

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

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

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>