📄 dx61030j.asm
字号:
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 + -