?? jrmaincpu.asm
字號:
;************** 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 + -