⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dx61030j.asm

📁 电动广告灯箱控制器程序
💻 ASM
📖 第 1 页 / 共 4 页
字号:
	da	a
	mov	4ah, a
	cjne	a, #60h, bjd0
	mov	4ah, #00h	                            ;
	mov	a, 4bh	                                    ;
	add	a, #01h
	da	a
	mov	4bh, a	                                    ;
	cjne	a, #24h, bjd0
	mov	4bh, #00h
            ;**
bjd0:	mov	a, 4ah
	xrl	a, 25h
	jnz	bjd1	                                    ;不相等跳转
	mov	a, 4bh
	xrl	a, 26h
	jnz	bjd1	                                    ;不相等跳转
	setb	0ch	                                    ;;deng1时间段判断有效
	sjmp	exdeng1bj	                            ;
bjd1:	nop
	mov	a, 4ah
	xrl	a, 29h
	jnz	bjd2	                                    ;不相等跳转
	mov	a, 4bh
	xrl	a, 2ah
	jnz	bjd2	                                    ;不相等跳转
	clr	0ch	                                    ;;deng1时间段判断无效 
	sjmp	exdeng1bj
bjd2:	nop
	sjmp	bjdloop1
            ;;;
exdeng1bj:	nop
            ;$$$$$$$$$$$$$$0000000000000000
            ;27h  ;2bh  ;30h  ;34h
            ;28h  ;2ch  ;31h  ;35h
            ;29h  ;2dh  ;32h  ;36h
            ;2ah  ;2eh  ;33h  ;37h
            ;deng1/ji1/ deng2/ ji2   
            ;0ch  /0dh/  0eh / 0fh 
            ;ji1时间段判断
	mov	a, 2bh
	mov	4ah, a
	mov	a, 2ch
	mov	4bh, a	                                    ;转移数据
	sjmp	bjd01	                                    ;启动提前一分/05/05/07
            ;
bjdloop2:	nop
	mov	a, 4ah
	add	a, #01h
	da	a
	mov	4ah, a
	cjne	a, #60h, bjd01
	mov	4ah, #00h	                            ;
	mov	a, 4bh	                                    ;
	add	a, #01h
	da	a
	mov	4bh, a	                                    ;
	cjne	a, #24h, bjd01
	mov	4bh, #00h
            ;**
bjd01:	mov	a, 4ah
	xrl	a, 25h
	jnz	bjd11	                                    ;不相等跳转
	mov	a, 4bh
	xrl	a, 26h
	jnz	bjd11	                                    ;不相等跳转
	setb	0dh	                                    ;;deng1时间段判断有效
	sjmp	exdeng2bj	                            ;
bjd11:	nop
	mov	a, 4ah
	xrl	a, 2dh
	jnz	bjd21	                                    ;不相等跳转
	mov	a, 4bh
	xrl	a, 2eh
	jnz	bjd21	                                    ;不相等跳转
	clr	0dh	                                    ;;ji1时间段判断无效 
	sjmp	exdeng2bj
bjd21:	nop
	sjmp	bjdloop2
            ;;;
exdeng2bj:	nop
            ;$$$$$$$$$$$$$$11111111111111111111
            ;27h  ;2bh  ;30h  ;34h
            ;28h  ;2ch  ;31h  ;35h
            ;29h  ;2dh  ;32h  ;36h
            ;2ah  ;2eh  ;33h  ;37h
            ;deng1/ji1/ deng2/ ji2   
            ;0ch  /0dh/  0eh / 0fh             
            ;deng2时间段判断
	mov	a, 30h
	mov	4ah, a
	mov	a, 31h
	mov	4bh, a	                                    ;转移数据
	sjmp	bjd02	                                    ;启动提前一分/05/05/07
            ;
bjdloop3:	nop
	mov	a, 4ah
	add	a, #01h
	da	a
	mov	4ah, a
	cjne	a, #60h, bjd02
	mov	4ah, #00h	                            ;
	mov	a, 4bh	                                    ;
	add	a, #01h
	da	a
	mov	4bh, a	                                    ;
	cjne	a, #24h, bjd02
	mov	4bh, #00h
            ;**
bjd02:	mov	a, 4ah
	xrl	a, 25h
	jnz	bjd12	                                    ;不相等跳转
	mov	a, 4bh
	xrl	a, 26h
	jnz	bjd12	                                    ;不相等跳转
	setb	0eh	                                    ;;deng1时间段判断有效
	sjmp	exdeng3bj	                            ;
bjd12:	nop
	mov	a, 4ah
	xrl	a, 32h
	jnz	bjd22	                                    ;不相等跳转
	mov	a, 4bh
	xrl	a, 33h
	jnz	bjd22	                                    ;不相等跳转
	clr	0eh	                                    ;;deng2时间段判断无效 
	sjmp	exdeng3bj
bjd22:	nop
	sjmp	bjdloop3
            ;;;
exdeng3bj:	nop
            ;$$$$$$$$$$$$$$22222222222222222222222222
            ;27h  ;2bh  ;30h  ;34h
            ;28h  ;2ch  ;31h  ;35h
            ;29h  ;2dh  ;32h  ;36h
            ;2ah  ;2eh  ;33h  ;37h
            ;deng1/ji1/ deng2/ ji2   
            ;0ch  /0dh/  0eh / 0fh 
            ;ji2时间段判断
	mov	a, 34h
	mov	4ah, a
	mov	a, 35h
	mov	4bh, a	                                    ;转移数据
	sjmp	bjd03	                                    ;启动提前一分/05/05/07
            ;
bjdloop4:	nop
	mov	a, 4ah
	add	a, #01h
	da	a
	mov	4ah, a
	cjne	a, #60h, bjd03
	mov	4ah, #00h	                            ;
	mov	a, 4bh	                                    ;
	add	a, #01h
	da	a
	mov	4bh, a	                                    ;
	cjne	a, #24h, bjd03
	mov	4bh, #00h
            ;**
bjd03:	mov	a, 4ah
	xrl	a, 25h
	jnz	bjd13	                                    ;不相等跳转
	mov	a, 4bh
	xrl	a, 26h
	jnz	bjd13	                                    ;不相等跳转
	setb	0fh	                                    ;;deng1时间段判断有效
	sjmp	exdeng4bj	                            ;
bjd13:	nop
	mov	a, 4ah
	xrl	a, 36h
	jnz	bjd23	                                    ;不相等跳转
	mov	a, 4bh
	xrl	a, 37h
	jnz	bjd23	                                    ;不相等跳转
	clr	0fh	                                    ;;ji2时间段判断无效 
	sjmp	exdeng4bj
bjd23:	nop
	sjmp	bjdloop4
            ;;;
exdeng4bj:	nop
            ;$$$$$$$$$$$$$$
	ret
;**********************************************************
;页写EEPROM
;写入字节数据不要大于EEPROM的页字节数,否则会造成写入地址的'翻卷'
;W24WCXXP:  nop
           ;在这之前要把数据准备好
           ;MOV   SLA,#CSI24WCXX
           ;MOV   SUBA,#00H
           ;MOV   NUMBYTE,#08
           ;LCALL  IWRNBYTE             ;写入一页数据
           ;NOP              ;注意,10ms后比EEPROM写周期才结束     
                        ;在此设置断点,观察ACK位,ACK为1时操作正确
           ;ret  
           
;读 EEPROM          
;R24WCXXP:  nop                      
           ;MOV   SLA,#CSI24WCXX
           ;MOV   SUBA,#00H
           ;MOV   NUMBYTE,#08
           ;LCALL  IRDNBYTE
           ;数据独出心
           ;NOP           ;在此设置断点,观察MRD区及ACK位,ACK为1时操作正确
           ;RET              ;操作结束
             

;页写 ds1307   
;写入字节数据不要大于1307的页字节数,否则会造成写入地址的'翻卷'
Wds1307:	nop
          ; WR24WCXXS:  
	MOV	SLA, #0d0h
	MOV	SUBA, #01H	                            ;指定存储地址10H
	MOV	NUMBYTE, #1	                            ;写入一字节数据
	mov	a, 25h
	MOV	MTD, a	                                    ;写入的数据装入MTD缓冲区
	LCALL	IWRNBYTE
	NOP
	lcall	DELEY20MS
	lcall	DELEY20MS
          ;
	MOV	SLA, #0d0h
	MOV	SUBA, #02H	                            ;指定存储地址10H
	MOV	NUMBYTE, #1	                            ;写入一字节数据
	mov	a, 26h
	MOV	MTD, a	                                    ;写入的数据装入MTD缓冲区
	LCALL	IWRNBYTE
	NOP
	lcall	DELEY20MS
	lcall	DELEY20MS
	mov	mtd, #01h
	mov	mtd+1, #59h
	mov	mtd+2, #14h
	mov	mtd+3, #07h
	mov	mtd+4, #09h
	mov	mtd+5, #07h
	mov	mtd+6, #06h
	mov	mtd+7, #90h	                            ;90--1hz /91--4096hz
           ;在这之前要把数据准备好
	MOV	SLA, #0d0h
	MOV	SUBA, #00H
	MOV	NUMBYTE, #08
                                   ;注意,10ms后EEPROM写周期才结束
	LCALL	IWRNBYTE
	lcall	DELEY20MS
	lcall	DELEY20MS
	NOP
	ret
           ;******************************************************
baocunsj:	nop
	mov	a, 27h
	mov	mtd, a
	mov	a, 28h
	mov	mtd+1, a
	mov	a, 29h
	mov	mtd+2, a
	mov	a, 2ah
	mov	mtd+3, a
	mov	a, 2bh
	mov	mtd+4, a
	mov	a, 2ch
	mov	mtd+5, a
	mov	a, 2dh
	mov	mtd+6, a
	mov	a, 2eh
	mov	mtd+7, a
	MOV	SLA, #0d0h
	MOV	SUBA, #08H
	MOV	NUMBYTE, #08
           ;注意,10ms后EEPROM写周期才结束
	LCALL	IWRNBYTE
	lcall	DELEY20MS
	lcall	DELEY20MS
           ;LCALL  IRDNBYTE 
	nop
	mov	a, 30h
	mov	mtd, a
	mov	a, 31h
	mov	mtd+1, a
	mov	a, 32h
	mov	mtd+2, a
	mov	a, 33h
	mov	mtd+3, a
	mov	a, 34h
	mov	mtd+4, a
	mov	a, 35h
	mov	mtd+5, a
	mov	a, 36h
	mov	mtd+6, a
	mov	a, 37h
	mov	mtd+7, a
	MOV	SLA, #0d0h
	MOV	SUBA, #10H
	MOV	NUMBYTE, #08
           ;注意,10ms后EEPROM写周期才结束
	LCALL	IWRNBYTE
	lcall	DELEY20MS
	lcall	DELEY20MS
           ;LCALL  IRDNBYTE 
	nop
	mov	a, 38h
	mov	mtd, a
	mov	a, 39h
	mov	mtd+1, a
	mov	a, 00h
	mov	mtd+2, a
	mov	a, 00h
	mov	mtd+3, a
	mov	a, 00h
	mov	mtd+4, a
	mov	a, 00h
	mov	mtd+5, a
	mov	a, 00h
	mov	mtd+6, a
	mov	a, 00h
	mov	mtd+7, a
	MOV	SLA, #0d0h
	MOV	SUBA, #18H
	MOV	NUMBYTE, #08
           ;注意,10ms后EEPROM写周期才结束
	LCALL	IWRNBYTE
	lcall	DELEY20MS
	lcall	DELEY20MS
           ;LCALL  IRDNBYTE 
	MOV	SLA, #0d0h
	MOV	SUBA, #20H	                            ;指定存储地址26H电机正反标志
	MOV	NUMBYTE, #1	                            ;写入一字节数据
	mov	a, 48h
	MOV	MTD, a	                                    ;写入的数据装入MTD缓冲区
	LCALL	IWRNBYTE	                            ;保存调头状态-->DS1307
	lcall	DELEY20MS
	lcall	DELEY20MS
	ret
;*********************************************************************
	;读 ds1307           
rds1307:	nop
	MOV	SLA, #0d0h
	MOV	SUBA, #00H
	MOV	NUMBYTE, #08
	LCALL	IRDNBYTE
	nop	                                            ;在此设置断点,观察MRD区及ACK位,ACK为1时操作正确
	ret	                                            ;操作结束           
;***********************************************************************
;显示数据准备程序
sjzb:	nop
	mov	a, 40h
	cjne	a, #00h, sjzb0
	mov	23h, #00h	                            ;状态显示--八指示灯
	mov	a, 25h	                                    ;接受数据显示--查询
	mov	42h, a
	mov	a, 24h
	mov	43h, a
	mov	a, 3bh
	mov	44h, a
	mov	a, 3ah
	mov	45h, a
	ljmp	exjsxs                                      ;退出显示数据准备
	;*******************
	;*******************
sjzb0:	mov	a, 40h	                                    ;显示内容指针
	cjne	a, #01h, sjzb1	                            ;功能指针
	mov	23h, #01h	                            ;状态显示--八指示灯

page1: nop	
	mov	a, 25h	                                    ;修改数据显示
	mov	42h, a
	mov	a, 24h
	mov	43h, a
	mov	a, 27h
	mov	44h, a
	mov	a, 26h
	mov	45h, a
	ljmp	exjsxs	                                    ;退出显示数据准备程序
        ;******
sjzb1:	nop
	mov	a, 40h
	cjne	a, #02h, sjzb2	                            ;第二组数据
	sjmp	page1
        ;*****     page1   *****
        ;***********************
sjzb2:	mov	a, 40h	                                    ;显示内容指针
	cjne	a, #03h, sjzb3	                            ;功能指针
	mov	23h, #02h	                            ;状态显示--八指示灯
page2:	nop
	mov	a, 2bh	                                    ;修改数据显示
	mov	42h, a
	mov	a, 2ah
	mov	43h, a
	mov	a, 2dh
	mov	44h, a
	mov	a, 2ch
	mov	45h, a
	ljmp	exjsxs	                                    ;退出显示数据准备程序
        ;******
sjzb3:	nop
	mov	a, 40h
	cjne	a, #04h, sjzb4	                            ;第二组数据
	sjmp	page2
        ;******   page2   ******
        ;***********************
sjzb4:	mov	a, 40h	                                    ;显示内容指针
	cjne	a, #05h, sjzb5	                            ;功能指针
	mov	23h, #04h	                            ;状态显示--八指示灯
page3:	nop
	mov	a, 2fh	                                    ;修改数据显示
	mov	42h, a
	mov	a, 2eh
	mov	43h, a
	mov	a, 31h
	mov	44h, a
	mov	a, 30h
	mov	45h, a
	ljmp	exjsxs	                                    ;退出显示数据准备程序
        ;******
sjzb5:	nop
	mov	a, 40h
	cjne	a, #06h, sjzb6	                            ;第二组数据
	;clr	led1
	;setb    led3
	sjmp	page3
        ;******   page3   ********
        ;*************************
sjzb6:	mov	a, 40h	                                    ;显示内容指针
	cjne	a, #07h, sjzb7	                            ;功能指针
	mov	23h, #08h	                            ;状态显示--八指示灯
	;clr	led3
	;setb    led1                                        ;上下显示指示
page4:	nop
	mov	a, 33h	                                    ;修改数据显示
	mov	42h, a
	mov	a, 32h
	mov	43h, a
	mov	a, 35h
	mov	44h, a
	mov	a, 34h
	mov	45h, a
	ljmp	exjsxs	                                    ;退出显示数据准备程序
        ;******
sjzb7:	nop
	mov	a, 40h
	cjne	a, #08h, sjzb8	                            ;第二组数据
	;clr	led1
	;setb    led3
	sjmp	page4
        ;******    page4   ******
        ;************************
sjzb8:	mov	a, 40h	                                    ;显示内容指针
	cjne	a, #09h, sjzb9	                            ;功能指针
	mov	23h, #10h	                            ;状态显示--八指示灯
	;clr	led3
	;setb    led1;上下显示指示
page5:	nop
	mov	a, 37h	                                    ;修改数据显示
	mov	42h, a
	mov	a, 36h
	mov	43h, a
	mov	a, 39h
	mov	44h, a
	mov	a, 38h
	mov	45h, a
	ljmp	exjsxs	                                    ;退出显示数据准备程序
        ;******
sjzb9:	nop
	mov	a, 40h
	cjne	a, #0ah, sjzb10	                            ;第二组数据
	;clr	led1
	;setb    led3
	sjmp	page5
        ;******       page5
sjzb10:	mov	a, 40h	                                    ;显示内容指针
	cjne	a, #0bh, sjzb11	                            ;功能指针
	mov	23h, #20h	                            ;状态显示--八指示灯
	;clr	led3
	;setb    led1
page6:	nop
	mov	a, 3bh	                                    ;修改数据显示
	mov	42h, a
	mov	a, 3ah
	mov	43h, a
	mov	a, 3dh
	mov	44h, a
	mov	a, 3ch
	mov	45h, a
	sjmp	exjsxs	                                    ;退出显示数据准备程序
        ;******
sjzb11:	nop
	mov	a, 40h
	cjne	a, #0ch, sjzb12	                            ;第二组数据
	;clr	led1
	;setb    led3
	sjmp	page6
        ;******  page6   *********
        ;*************************
sjzb12:	mov	a, 40h	                                    ;显示内容指针
	cjne	a, #0dh, sjzb13	                            ;功能指针
	mov	23h, #40h	                            ;状态显示--八指示灯
	;clr	led3
	;setb    led1                ;上下显示指示

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -