📄 dx61030j.asm
字号:
;使用前定义常量
diao equ p1.2
zang equ p1.1
deng equ p1.0
;低电平开继电器!!
;************* 电机控制**********************
zong equ p0.0
;低电平有效!!
;p0为LED显示位
;*************led****************************
shan equ p3.2
xia equ p3.3
tin equ p3.5
;************传感器位************************
dat equ p1.3
clk2 equ p1.4
set2 equ p1.5
;************数码显示************************
rs485 equ p3.6
wdt equ p3.7 ;whach dog
;**************看门狗*************************
ACK BIT 10H ;应答标志位变量
SLA DATA 44H ;器件从地址变量
SUBA DATA 45H ;器件子地址变量
NUMBYTE DATA 46H ;读/写的字节数变量
;****************IIC软件包********************
;使用前定义常量
SDA EQU P1.7 ; real time I2C总线定义
SCL EQU P1.6
;MTD EQU 30H ;发送数据缓冲区首址 (缓冲区30H-3FH)
;MRD EQU 40H ;接收数据缓冲区首址 (缓冲区40H-4FH),
;***************real time**************************
;定义器件地址(real time)
;CSI24WCXXr EQU 0A0H
;**************************************************
;使用前定义常量
;SDA EQU P2.6 ;24c02 I2C总线定义
;SCL EQU P2.7
MTD EQU 58H ;发送数据缓冲区首址 ;发送数据缓冲区1首址 (缓冲区50H) 8
MRD EQU 50H ;接收数据缓冲区首址 ;接收数据缓冲区1首址 (缓冲区57H) 8
;******************24c02******************************
;定义器件地址
;CSI24WCXX EQU 0A0H
;******************24c02器件地址***** *****************
ORG 0000H
lJMP MAIN
MAIN: nop
nop
nop
cpl wdt ;为喂狗
MOV R4, #0F0H ;/////延时,等待其它芯片复位好
DJNZ R4, $
mov 20h, #00h ;00h-功能标志/01h-加键标志
;/02h-减键标志/03h-确认标志/04h-设置运行标志
;/05h-调头光标/06h-暂停光标/07h-软超光标
mov 21h, #00h ;08h-时钟修改/09h-硬超光标/0ah-电机正反
;/0bh-电机启动延迟标记/0ch-照明1比较/0dh-电机1比较
;/0eh-照明2比较/0fh-电机2比较
mov 22h, #00h ;10h-应答标志位变量/11h-电机启动延迟标志
;/12h-读数据出错标志/13h-读运行出错标志/14h运行出错执行标志
;/15h-首次启动AD标志/16h电机启动计时,30秒停电机___
;并设置标志16h_不执行小时间比较
; /17h
mov 23h, #00h ;状态显示
;/
mov 24h, #00h ;秒寄存器
mov 25h, #20h ;分
mov 26h, #14h ;时
;shijian
mov 27h, #00h ;照明1开分
mov 28h, #18h ;照明1开时
mov 29h, #00h ;照明1关分
mov 2ah, #22h ;照明1关时
;deng1
mov 2bh, #00h ;电机1开分
mov 2ch, #08h ;电机1开时
mov 2dh, #00h ;电机1关分
mov 2eh, #18h ;电机1关时
;ji1
mov 2fh, #00h ;秒换存储器
;biaozhi ***
mov 30h, #00h ;照明2开分
mov 31h, #00h ;照明2开时
mov 32h, #00h ;照明2关分
mov 33h, #00h ;照明2关时
;deng2
mov 34h, #00h ;电机2开分
mov 35h, #00h ;电机2开时
mov 36h, #00h ;电机2关分
mov 37h, #00h ;电机2关时
;ji2
mov 38h, #10h ;展示分======
mov 39h, #00h ;展示时
;zhangshi
mov 3ah, #00h ;展示计数分
mov 3bh, #00h ;展示计数时
;3ch:硬超AD/ 3dh:软超AD/ 3eh:暂停AD/ 3fh:调头AD/
mov 40h, #00h ;功能记数
mov 41h, #00h ;健值保存
mov 42h, #0ffh ;
mov 43h, #00h ;主程序延迟读时钟
;44h:从地址 /45h:子地址 /46h:字节数 /
mov 47h, #00h ;
mov 48h, #0fh ;上下标志寄存器
;0ah电机上下标志
mov 49h, #00h ;红外识别允许延迟寄存器
;0bh红外识别允许标志
mov 4ah, #00h ;大时间比较暂存分
mov 4bh, #00h ;大时间比较暂存时
;4ch:显示缓冲1/4dh:显示缓冲2/4eh:XX显示缓冲3/4fh:XX
;58H ;发送数据缓冲区1首址 (缓冲区50H) 8
;50H ;接收数据缓冲区1首址 (缓冲区57H) 8
mov 60h, #00h ;4dh;单画面超时计时
mov 61h, #00h ;4eh;严重超时 计时
mov sp, #62h ;设置堆栈
;*****功能测试区,最后将删除****************************
;setb diao
;clr diao
;setb zang
;clr zang
;setb deng
;clr deng
;lcall Wds1307 ;测试时钟芯片用初始化程序,
;*******************************************************
;lcall baocunsj ;保存数据,正式运行时不需要
LCALL shujuhuifu ;数据从时钟芯片恢复
;**********确定上下方向*******
mov a, 48h ;上下标志寄存器
cjne a, #0fh, djshan
setb diao
sjmp extsx
djshan: clr diao
extsx: nop
lcall DELALL ;调用长延迟程序
lcall DELALL ;调用长延迟程序
lcall DELALL ;调用长延迟程序
clr zang ;启动电机
;clr deng
;*****************************
nop ;
;**************************************
main1: nop ;主程序
inc 43h ;低速读取时钟
mov a, 43h
cjne a, #50h, kuaipr
mov 43h, #00h
lcall rds1307 ;读时钟芯片
lcall sjtq ;提取时间
lcall miaojs ;秒记数,展示时间计时/调大时间比较
lcall zonden ;总开,灯开控制
lcall bijiaox ;小时间比较
kuaipr: nop
lcall hmydpd ;画布移动判断
lcall gbzhix ;光标_执行,电机驱动
;**********
lcall jianpan ;键盘程序
lcall jianzhi ;键值处理程序
lcall shujujk ;数据监控
LCALL sjzb ;显示数据准备
LCALL show ;显示程序
;**********
cpl wdt ;为喂狗
;nop
;lcall DELALL
;lcall DELALL
;lcall DELALL
;lcall DELALL
SJMP main1
;****************************************
;p2口键盘程序-存放41H
jianpan: nop
exjp: nop
RET
;****************************************
;键值处理程序
jianzhi: nop
jz8: nop ;退出键值处理
ret
;**************************************************
;时加键处理
shijia: nop
MOV A, 40H
CJNE A, #00H, sjia_10
;手动上处理程序
;******
sjia_10:
;JNB 01H, sjia_22 ;是否为设置状态
mov a, 40h
cjne a, #01h, sjia_11
MOV A, 25H ;时间
ADD A, #01H
DA A
MOV 25H, A
;sjia_22:
ajmp sjia_21
sjia_11: MOV A, 40h
CJNE A, #02H, sjia_12
MOV A, 27H ;时间
NOP
ADD A, #01H
DA A
MOV 27H, A
ajmp sjia_21
sjia_12: MOV A, 40h
CJNE A, #03H, sjia_13
MOV A, 2bH ;时间
NOP
ADD A, #01H
DA A
MOV 2bH, A
ajmp sjia_21
sjia_13: MOV A, 40h
CJNE A, #04H, sjia_14
MOV A, 2dH ;时间
NOP
ADD A, #01H
DA A
MOV 2dH, A
ajmp sjia_21
sjia_14: MOV A, 40h
CJNE A, #05H, sjia_15
MOV A, 2fH ;时间
NOP
ADD A, #01H
DA A
MOV 2fH, A
ajmp sjia_21
sjia_15: MOV A, 40h
CJNE A, #06H, sjia_16
MOV A, 31H ;时间
NOP
ADD A, #01H
DA A
MOV 31H, A
ajmp sjia_21
sjia_16: MOV A, 40h
CJNE A, #07H, sjia_17
MOV A, 33H ;时间
NOP
ADD A, #01H
DA A
MOV 33H, A
ajmp sjia_21
sjia_17: MOV A, 40h
CJNE A, #08H, sjia_18
MOV A, 35H ;时间
NOP
ADD A, #01H
DA A
MOV 35H, A
ajmp sjia_21
sjia_18: MOV A, 40h
CJNE A, #09H, sjia_19
MOV A, 37H ;时间
NOP
ADD A, #01H
DA A
MOV 37H, A
ajmp sjia_21
sjia_19: MOV A, 40h
CJNE A, #0aH, sjia_20
MOV A, 39H ;时间
NOP
ADD A, #01H
DA A
MOV 39H, A
ajmp sjia_21
sjia_20: MOV A, 40h
CJNE A, #0bH, sjia_20_1
MOV A, 3bH ;时间
NOP
ADD A, #01H
DA A
MOV 3bH, A
ajmp sjia_21
sjia_20_1:MOV A, 40h
CJNE A, #0cH, sjia_21
MOV A, 3dH ;时间
NOP
ADD A, #01H
DA A
MOV 3dH, A
;ajmp sjia_21
sjia_21:
nop
ret
;**************************************************
;时减键处理
shijian: nop
MOV A, 40H
CJNE A, #00H, JIANX0
;手动下处理
;******
JIANX0:
;JNB 01H, JIANX12 ;是否为设置状态
MOV A, 40H
CJNE A, #01H, JIANX1
MOV R7, 25H
LCALL JIANY
MOV 25H, R7
;JIANX12:
AJMP JIANX11 ;推出
JIANX1: MOV A, 40H
CJNE A, #02H, JIANX2
MOV R7, 27H
LCALL JIANY
MOV 27H, R7
AJMP JIANX11
JIANX2: MOV A, 40H
CJNE A, #03H, JIANX3
MOV R7, 2bH
LCALL JIANY
MOV 2bH, R7
AJMP JIANX11
JIANX3: MOV A, 40H
CJNE A, #04H, JIANX4
MOV R7, 2dH
LCALL JIANY
MOV 2dH, R7
AJMP JIANX11
JIANX4: MOV A, 40H
CJNE A, #05H, JIANX5
MOV R7, 2fH
LCALL JIANY
MOV 2fH, R7
AJMP JIANX11
JIANX5: MOV A, 40H
CJNE A, #06H, JIANX6
MOV R7, 31H
LCALL JIANY
MOV 31H, R7
AJMP JIANX11
JIANX6: MOV A, 40H
CJNE A, #07H, JIANX7
MOV R7, 33H
LCALL JIANY
MOV 33H, R7
AJMP JIANX11
JIANX7: MOV A, 40H
CJNE A, #08H, JIANX8
MOV R7, 35H
LCALL JIANY
MOV 35H, R7
AJMP JIANX11
JIANX8: MOV A, 40H
CJNE A, #09H, JIANX9
MOV R7, 37H
LCALL JIANY
MOV 37H, R7
AJMP JIANX11
JIANX9: MOV A, 40H
CJNE A, #0aH, JIANX10
MOV R7, 39H
LCALL JIANY
MOV 39H, R7
AJMP JIANX11
JIANX10: MOV A, 40H
CJNE A, #0bH, JIANX10_1
MOV R7, 3bH
LCALL JIANY
MOV 3bH, R7
AJMP JIANX11
JIANX10_1: MOV A, 40H
CJNE A, #0cH, JIANX11
MOV R7, 3dH
LCALL JIANY
MOV 3dH, R7
;AJMP JIANX11
JIANX11: nop
ret
;**********减一子程序
JIANY: MOV A, R7
jz js1_1 ;为○跳转
DEC A
;********
ANL A, #0FH
CJNE A, #0FH, TT1_1 ;&&
MOV A, R7
DEC A ;2002.10.10
ANL A, #0F0H
ADD A, #09H
SJMP T1_1
TT1_1: MOV A, R7
DEC A
;********
T1_1: NOP
ADD A, #00H
DA A
js1_1: MOV R7, A
RET
;**************************************************
;分加键处理
fenjia: nop
MOV A, 40H
CJNE A, #00H, fjia_10
;手动下处理程序
;******
fjia_10: ;jnb 01h, fjia_22
mov a, 40h
cjne a, #01h, fjia_11
MOV A, 24H ;时间
ADD A, #01H
DA A
MOV 24H, A
;fjia_22:
AJMP fjia_21 ;
fjia_11: MOV A, 40h
CJNE A, #02H, fjia_12
MOV A, 26H ;时间
NOP
ADD A, #01H
DA A
MOV 26H, A
AJMP fjia_21
fjia_12: MOV A, 40h
CJNE A, #03H, fjia_13
MOV A, 2aH ;时间
NOP
ADD A, #01H
DA A
MOV 2aH, A
AJMP fjia_21
fjia_13: MOV A, 40h
CJNE A, #04H, fjia_14
MOV A, 2cH ;时间
NOP
ADD A, #01H
DA A
MOV 2cH, A
AJMP fjia_21
fjia_14: MOV A, 40h
CJNE A, #05H, fjia_15
MOV A, 2eH ;时间
NOP
ADD A, #01H
DA A
MOV 2eH, A
AJMP fjia_21
fjia_15: MOV A, 40h
CJNE A, #06H, fjia_16
MOV A, 30H ;时间
NOP
ADD A, #01H
DA A
MOV 30H, A
AJMP fjia_21
fjia_16: MOV A, 40h
CJNE A, #07H, fjia_17
MOV A, 32H ;时间
NOP
ADD A, #01H
DA A
MOV 32H, A
AJMP fjia_21
fjia_17: MOV A, 40h
CJNE A, #08H, fjia_18
MOV A, 34H ;时间
NOP
ADD A, #01H
DA A
MOV 34H, A
AJMP fjia_21
fjia_18: MOV A, 40h
CJNE A, #09H, fjia_19
MOV A, 36H ;时间
NOP
ADD A, #01H
DA A
MOV 36H, A
AJMP fjia_21
fjia_19: MOV A, 40h
CJNE A, #0aH, fjia_20
MOV A, 38H ;时间
NOP
ADD A, #01H
DA A
MOV 38H, A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -