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

📄 jrmaincpu.asm

📁 用增强型单片机51RD2做的控制器
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;************** Timer ***********************************************
MinTimerB       EQU     77H     ;
MinTimerA       EQU     76H     ;
SecTimerB       EQU     75H     ;
SecTimerA       EQU     74H     ;
StopTimer       EQU     73H     ; 关闭定时器
RunTimer        EQU     72H     ; 开启定时器
Timer3          EQU     71H     ;
Timer2          EQU     70H     ;
Timer1          EQU     6FH     ;
;************** Counter *********************************************
Counter2        EQU     6EH     ; 通用计数器2
Counter1        EQU     6DH     ; 通用计数器1
KeyCount        EQU     6CH     ; 键盘计数器
TimeBitCnt      EQU     6BH     ; 数据位记数器
TimeByteCnt     EQU     6AH     ; 数据字节记数器
TimeCommand     EQU     69H     ; 命令字节地址
;************** Variable ********************************************
Variable8       EQU     68H
Variable7       EQU     67H
Variable6       EQU     66H
Variable5       EQU     65H
Variable4       EQU     64H
Variable3       EQU     63H
Variable2       EQU     62H
Variable1       EQU     61H


;

;
;*************  Other   One  ****************************************
;
count1  equ  5DH
count   equ  5CH
AdCounter       EQU     5BH
RecordNumH      EQU     5AH     ; 试验报告记录号高位
RecordNumL      EQU     59H     ; 试验报告记录号低位
InterFace       EQU     58H     ; 界面记录
AutoTimer       EQU     57H     ; 自动运行等待时间
RunMode         EQU     56H     ; RunMode=1正与负,RunMode=2正与地,RunMode=3负与地
Badr            EQU     55H     ; 数据块首地址
Bnum            EQU     54H     ; 数据个数
HjjAddr         EQU     53H     ; 呼叫机的地址
FarModuleAdr    EQU     52H     ; 远程模块地址

DataH           equ     51H     ; 地址指针寄存器高位
DataL           equ     50H     ; 地址指针寄存器低位
SeleTab         EQU     4FH     ; 选择汉字库字模表
KeyNumber       EQU     4EH
CallAddr        EQU     4DH     ; 被呼的主机地址
RelayStatus3    EQU     4CH     ; 继电器状态字
RelayStatus2    EQU     4BH     ; 继电器状态字
RelayStatus1    EQU     4AH     ; 继电器状态字
;
;**************工艺参数变量******************************************
;

;
;**************物理量检测控制****************************************
;

JcSjH           EQU     0FCH     ; 检测时间高8位
JcSjL           EQU     0FCH     ; 检测时间低8位

JyDzH           EQU     47H     ; 绝缘电阻高8位
JyDzL           EQU     46H     ; 绝缘电阻低8位



flag            equ      48h
type_test       equ      47H    ;测试类型:1正端接地2负端接地3电感接地4交流1接地5交流2接地测试
VoltCs          EQU      46H    ; 自动测试时要比较的电压参数
VoltCs1         EQU      45H    ; 自动测试时要比较的电压参数


JyXlH           EQU     45H     ; 绝缘泄流高8位
JyXlL           EQU     44H     ; 绝缘泄流低8位

SjDyH           EQU     43H     ; 施加电压高8位
SjDyL           EQU     42H     ; 施加电压低8位

ScXlH           EQU     41H     ; 输出泄流高8位
ScXlL           EQU     40H     ; 输出泄流低8位

ScDlH           EQU     3FH     ; 输出电流高8位
ScDlL           EQU     3EH     ; 输出电流低8位

ScDyH           EQU     3DH     ; 输出电压高8位
ScDyL           EQU     3CH     ; 输出电压低8位

;
;***************COM1,COM2,COM3***************************************
;
SendDatH        EQU     3BH     ; 发送数据地址高位
SendDatL        EQU     3AH     ; 发送数据地址低位
FuncCode        EQU     39H     ; 发送/接收功能码
TxdBuf          EQU     38H     ; 发送数据

BitCntB         EQU     37H     ; 接收/发送计数器B
RxdBufB         EQU     36H     ; 接收数据B

BitCntA         EQU     35H     ; 接收/发送计数器A
RxdBufA         EQU     34H     ; 接收数据A
;
;**************I/O Port State****************************************
;
KglStatus       EQU     33H     ; 开关量状态寄存器
LedStatus       EQU     32H     ; LED 状态寄存器
;
;*******************LCD**********************************************
;
LcdShowC        EQU     31H
LcdShowY        EQU     30H
LcdShowX        EQU     2FH
EditShowY       EQU     2EH
EditShowX       EQU     2DH
LcdCount2       EQU     2CH
LcdCount1       EQU     2BH
CCCODE          EQU     2AH
OY              EQU     29H
OXH             EQU     28H
OXL             EQU     27H
;********************************************************************
;
AP              EQU     30H
;
;******************FLAGS*********************************************
;
Cold2           EQU     26H
Cold1           EQU     25H
Flags5          EQU     24H
Flags4          EQU     23H
Flags3          EQU     22H
Flags2          EQU     21H     ;
Flags1          EQU     20H     ;
;
;*******************BIT**********************************************
;
SaveFlag        BIT     Flags4.4        ; 存储标志,在TestFinish:中置位,为1存,为0不存
MinSaveF        BIT     Flags4.3        ; 分存储标志,保持原存储地址不变
XlDlDwF         BIT     Flags4.2        ; 泄漏电流单位: XlDlDwF = 0 电流为 mA , XlDlDwF = 1 电流为 uA
JyDzDwF         BIT     Flags4.1        ; 绝缘电阻单位: JyDzDwF = 0 电阻为 K  , JyDzDwF = 1 电阻为 M
TestDataF       BIT     Flags4.0        ; 检测数据允许标志

AutoRunF        BIT     Flags3.7        ; 自动运行方式
SsTsXsF         BIT     Flags3.6        ; 闪烁提示显示
SecTimerF       BIT     Flags3.5
FarKeyF         BIT     Flags3.4        ; 远程键标志
WorkPassF       BIT     Flags3.3        ; LCD 显示刷新标志
UserPassF       BIT     Flags3.2        ;
DisplayF        BIT     Flags3.1        ; LCD 显示刷新标志
GlintF          BIT     Flags3.0        ; 闪烁标志

GdXtKjGjSjF     BIT     Flags2.7        ; 开机时间检测允许标志
ClockEditF      BIT     Flags2.6        ;
ShowDtSjF       BIT     Flags2.5        ; 显示动态数据标志
ShowF           BIT     Flags2.4        ;
BreakF          BIT     Flags2.3        ;
CommandBF       BIT     Flags2.2        ; 远程模块命令有效标志
CommandAF       BIT     Flags2.1        ; 远程模块命令有效标志
KeyF            BIT     Flags2.0        ;
;
ReciveF         BIT     Flags1.7        ;
LedDirF         BIT     Flags1.6        ;
RxdErrB         BIT     Flags1.5        ; 接收贞错误标志
RxdFlagB        BIT     Flags1.4        ; 正在处理发送标志
TxdFlagB        BIT     Flags1.3        ; 正在处理接收标志
RxdErrA         BIT     Flags1.2        ; 接收贞错误标志
RxdFlagA        BIT     Flags1.1        ; 正在处理发送标志
TxdFlagA        BIT     Flags1.0        ; 正在处理接收标志

;********************************************************************

XlDlAdrPoint    EQU    4F30H            ; 泄漏电流数据区地址指针
YxBgAdrPoint    EQU    7E00H            ; 运行报告数据区地址指针
UserPassAdr     EQU    4F10H            ; 用户密码首地址
SysPassAdr      EQU    4F00H            ; 系统密码首地址

XtCsDatArea     EQU    4F00H            ; 系统参数数据区

XlDlDatArea     EQU    4000H            ; 泄漏电流数据区

ReportDatArea   EQU    0000H            ; 记录报告数据区

StartDatArea    EQU    0000H            ; 存储数据开始区

;
;
;************** Expand Memory(use 'movx' and 'dtpr' to seek address) *****************************************
Int0Buf         EQU     0200H   ; 通信接收缓冲区(16Byte)
ExtTempBuf      EQU     0100H;  ; 高端内存,临时缓冲区

CxCzRyH         EQU     0FfH    ; 操作人员高8位

CxBcCcL         EQU     0FBH    ; 本次车次低8位
CxBcCcH         EQU     0FAH    ; 本次车次高8位

CxFdDzL         EQU     0F9H    ; 负地电阻低8位
CxFdDzH         EQU     0F8H    ; 负地电阻高8位

CxZdDzL         EQU     0F7H    ; 正地电阻低8位
CxZdDzH         EQU     0F6H    ; 正地电阻高8位

CxXjDzL         EQU     0F5H    ; 线间电阻低8位
CxXjDzH         EQU     0F4H    ; 线间电阻高8位

CxZgDlL         EQU     0F3H    ; 最高电流低8位
CxZgDlH         EQU     0F2H    ; 最高电流高8位

CxZgDyL         EQU     0F1H    ; 最高电压低8位
CxZgDyH         EQU     0F0H    ; 最高电压高8位

CxZgXlL         EQU     0EFH    ; 最高泄流低8位
CxZgXlH         EQU     0EEH    ; 最高泄流高8位

CxScDlL         EQU     0EDH    ; 输出电流低8位
CxScDlH         EQU     0ECH    ; 输出电流高8位

CxScDyL         EQU     0EBH    ; 输出电压低8位
CxScDyH         EQU     0EAH    ; 输出电压高8位

CxGjFz          EQU     0E9H    ; 关机时间:分
CxGjXs          EQU     0E8H    ; 关机时间:时
CxGjRq          EQU     0E7H    ; 关机时间:日
CxGjYf          EQU     0E6H    ; 关机时间:月
CxGjNf          EQU     0E5H    ; 关机时间:年

CxKjFz          EQU     0E4H    ; 开机时间:分
CxKjXs          EQU     0E3H    ; 开机时间:时
CxKjRq          EQU     0E2H    ; 开机时间:日
CxKjYf          EQU     0E1H    ; 开机时间:月
CxKjNf          EQU     0E0H    ; 开机时间:年

; 系统监控报告数据格式:
; 记录号(2)+开机时间(5)+关机时间(5)+输出电压(2)+输出电流(2)+泄漏电流(2)+最高电压(2)+最高电流(2)+最低电压(2)
;+最低电流(2)+线间电阻(2)+正地电阻(2)+负地电阻(2)
; Record++Year+Month+KDay+KHour+kMin+GDay+GHour+GMin+ScDy+ScDl+ScXl+ZgDy+ZgDl+XjDz+ZdDz+FdDz

ReportBuf       EQU     0E0H    ; 运行报告缓冲区(32Byte)

NoUse4          EQU     0D0H
NoUse3          EQU     0C0H
;NoUse2          EQU     0B0H
;NoUse1          EQU     0A0H
VoltBuf         equ     0C0H    ;接地检测时正对地和负对地电压的缓冲区,两个字节表示一个电压
                                ;共12字节
ActiveFlag      equ     0B0H    ;被测装置动作标志              ;HHHHHHHHHHHHHHHHHHHHHHHHHHHHH
LinkGR_H        equ     0B1H    ;接地电阻高位,用来存放接地电阻千欧值           ;HHHHHHHHHHHHHHHHHHHHHH
LinkGR_L        equ     0B2H    ;接地电阻低位,用来存放接地电阻欧姆值
LinkG_R_buf     equ     0A0H    ;接地电阻缓冲区,共10个字节
ActiveFlagBuf   equ     0AAH    ;被测装置动作标志缓冲区,5个字节

AdHexBuf        EQU     090H    ; A/D 数据缓冲区(16Byte) 以HEX码形式存放
AdBcdBuf        EQU     080H    ; A/D 数据缓冲区(16Byte) 以CBD码形式存放
ShowBuf         EQU     040H    ; 汉字显示缓冲区(64Byte)
SendBuf         EQU     020H    ; 通信发送缓冲区(32Byte)
RecvBuf         EQU     000H    ; 通信接收缓冲区(32Byte)
;
;
;
;************  程序源代码区  ****************************************
;
                ORG     0000H

                SJMP    Start
                ORG     0003H           ;
                LJMP    Int0RecvCom     ; 中断接收数据串行口一
; 资源使用:PAGE=2 R0 , R2 , R6 , R7 , ACC , B
                ORG     000BH           ;
                LJMP    Clk             ; 系统时钟中断
; 资源使用:PAGE=3  R0 , ACC , B , DPTR
                ORG     0013H           ;
                LJMP    Int1RecvCom     ; 中断接收数据串行口二
; 资源使用:PAGE=2 R1 , R3 , R4 , R5 , ACC , B
                ORG     0023H
                LJMP    RecvFarCpuDat
; 资源使用:PAGE=3  R1 , R6 , R7 , ACC , B
                ORG     002BH
                RETI
;
;       ******  Program Start  *******
;
Start:          MOV     SP,#SpStart
                MOV     A,COLD1
                CJNE    A,#5AH,COLD
                MOV     A,COLD2
                CJNE    A,#5AH,COLD
                LCALL   SystemInit
                SJMP    Main
COLD:           NOP
                LCALL   SystemInit
               ; LCALL   SaveDateTime

;       ******  Main Program *******
;
MAIN:           CLR     PSW.3                   ; RX : PAGE 0
                CLR     PSW.4
                MOV     Cold1,#5AH
                MOV     Cold2,#5AH
                MOV     LedStatus,#00000001B

                LCALL   WorkStateInit           ; 工作状态初始化
main0:          LCALL   Watchdog
                LCALL   Closelight              ; 十五分钟无键按下自动关闭LCD背光
                LCALL   MainInterFace
                LCALL   ShowDateTime

            ;    LCALL   SaveDateTime


                LCALL   ScanKey
                JNB     KeyF,Main               ; scan key
                CLR     KeyF
                MOV     A,KeyNumber             ;
                CJNE    A,#0BH,Main1
                LCALL   face_test_sele          ; 进入测试选择界面
                SJMP    Main
Main1:          CJNE    A,#0CH,Main2
                SJMP    Main
Main2:          CJNE    A,#0EH,Main3
                SJMP    Main
Main3:          CJNE    A,#0FH,Main4
                SJMP    Main
Main4:          CJNE    A,#0DH,Main5
                SJMP    Main
Main5:          CJNE    A,#10H,Main6
                SJMP    Main
Main6:          CJNE    A,#11H,Main7
                NOP
                LJMP    Main
Main7:          CJNE    A,#12H,Main8
                LCALL   TestResult             ; 运行报告查询、打印、上传
                LJMP    Main
Main8:          CJNE    A,#13H,Main9
                LCALL   ClockSetup              ; 时钟日期设置

⌨️ 快捷键说明

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