?? he-nongduojiance.asm
字號:
WREN_INST EQU 06H;對應的是WREN指令,設置寫使能鎖存器(使能寫操作)
WRDI_INST EQU 04H;對應的是WRDI指令,復位寫使能鎖存器(禁止寫操作)
WRSR_INST EQU 01H;對應的是WRSR指令,寫狀態寄存器(看門狗和塊鎖)
RDSR_INST EQU 05H;對應的是RSDR指令,讀狀態寄存器
WRITE_INST EQU 02H;對應的是WRITE指令,從選下的地址開始寫入數據至存儲器陣列(1-16字節)
READ_INST EQU 03H;對應的是READ指令,從存儲器讀數據
STATUS_REG EQU 10H;看門狗定時600ms,數據塊不保護
MAX_POLL EQU 99H;等待存儲器寫操作周期數
X_SO EQU P1.3;在讀數據時,數據在SCK脈沖的下降沿由這個引腳送出
X_SCK EQU P1.4;串行時鐘,串行時鐘的上升沿通過SI引腳進行數據的輸入,下降沿通過SO引腳進行數據的輸出
X_CS EQU P1.2;上電之后任何操作之前,CS必須有一個高到低的過程,同時高到低過程能復位看門狗
X_SI EQU P1.5;串行輸入,SI是串行數據輸入端 指令碼 地址 數據都通過這個引腳進行輸入 在SCK的上升沿進行數據的輸入 并且高位MS在前
DISM0 EQU 30H
DISM1 EQU 38H
ORG 0000H
LJMP 0030H
ORG 0023H
INC 46H
MOV A,46H
CJNE A,#07H,DO
MOV 46H,#00H
DO: LJMP SERIS
ORG 0030H
MOV 40H,#00H
MOV 0B8H,#10H
MOV SP,#30H
MOV IP,#10H
MOV TMOD,#0D1H ;定時/記數器1用做門控方式記數,0用做非門控方式定時
MOV TH0,#0A0H
MOV TL0,#00H
MOV TH1,#00H
MOV TL1,#00H
MOV TCON,#45H ;啟動記數器1工作,外部中斷0/1用做邊沿除法中斷
MOV SCON,#50h ;允許接收
MOV 0c8h,#34H
MOV 0cbh,#0ffH
MOV 0cah,#0dcH
CLR 20H
MOV 34H,#00H
MOV 3FH,#00H
MOV 40H,#00H
CLR 2CH
CLR 2EH
CLR 2FH
MOV R2,#0F0H
MOV R1,#0FFH
CLR A
MOV @R1,A
DEC R1
DJNZ R2,$-2 ;將20H后所有內容清0
MOV 48H,#0FH
CLR P2.7
SETB P2.6
CLR EX1
SETB ES
CLR P2.0
CLR P1.2
NOP
SETB P1.2
MOV R0,#50H
MOV @R0,#02H
MOV R4,#50H
MOV R7,#01H
LCALL XF64W
SETB EA
MOV A,#0FEH
SETB P2.2
LCALL SMOVE
NOP
SSEND1: CLR EA
CLR P1.2
NOP
SETB P1.2
SETB P3.0
MOV 76H,#40H
MOV 77H,#30H
MOV 78H,#44H
MOV 79H,#0DH
MOV R6,#04H
LCALL SED2
CLR EX1
SETB ES
SETB EA
CLR P1.2
NOP
SETB P1.2
SETB P2.5
CLR P1.2
NOP
SETB P1.2
CLR ET0
SETB TR0
WAIT: JB TF0,TINT
JNB 2EH,WAIT
CLR 2EH
CLR ES
NOP
CLR P1.2
NOP
SETB P1.2
WAIT1: JB P3.3,WAIT1
CLR P1.2
NOP
SETB P1.2
JB 2FH,SEX1
SETB 2FH
MOV TH1,#00H
MOV TL1,#00H
JNB P3.3,$
CLR P1.2
NOP
SETB P1.2
SJMP WAIT1
TINT: LJMP TIME0
SEX1: CLR IE1
LJMP ADINT1
SEX2: MOV R2,#0FFH
DJNZ R2,$
NOP
WAITES: CLR IE1
CLR P1.2
NOP
SETB P1.2
KEY: JNB P2.2,KEYD
LJMP LOP
KEYD: MOV R2,#0FFH
DJNZ R2,$
CLR P1.2
NOP
SETB P1.2
JNB P2.2,KEYD
MOV R0,#04H
CA1: MOV R1,#0FFH
CLR P1.2
NOP
SETB P1.2
MOV R2,#0FFH
DJNZ R2,$
DJNZ R1,$-4
DJNZ R0,CA1
MOV A,#0FDH
LCALL SMOVE
JNB P2.2,DO3
LJMP DO1
DO3: CLR P1.2
NOP
SETB P1.2
JNB P2.2,DO3
MOV R3,#8
MOV A,#0FBH
LCALL SMOVE
MOV R0,#0B1H
MOV A,@R0
MOV B,#10
DIV AB
CJNE A,#10,XG0
MOV 55H,#0
MOV 56H,#0
MOV 47H,#1
SJMP XG1
XG0: MOV 47H,#0
MOV 55H,A
MOV 56H,B
XG1: CLR P1.2
NOP
SETB P1.2
JNB P2.2,XG1
DO2: CLR P1.2
NOP
SETB P1.2
MOV 6FH,#29
MOV 70H,#10
MOV 71H,47H
MOV 72H,55H
MOV 73H,56H
LCALL DISP
JNB P2.2,XG2
MOV A,#0FDH
LCALL SMOVE
NOP
JNB P2.2,ADD1
MOV A,#0F7H
LCALL SMOVE
NOP
JNB P2.2,DEC1
LCALL TIMER
MOV 6FH,#29
MOV 70H,#10
MOV 71H,#10
MOV 72H,55H
MOV 73H,56H
MOV A,#0FEH
LCALL SMOVE
JNB P2.2,ENT
LCALL DISP
GOON4: MOV A,#0FBH
LCALL SMOVE
LCALL TIMER
DJNZ R3,DO2
MOV A,#0FEH
LCALL SMOVE
sav: mov r1,#0ffh
djnz r1,sav
LJMP WAITES
ENT: LJMP SAVEDA
ADD1: MOV R3,#8
ADD11: CLR P1.2
NOP
SETB P1.2
JNB P2.2,ADD11
INC 47H
MOV A,47H
CJNE A,#10,GOON4
MOV 47H,#00H
SJMP GOON4
DEC1: MOV R3,#8
DEC11: CLR P1.2
NOP
SETB P1.2
JNB P2.2,DEC11
DEC 47H
MOV A,47H
CJNE A,#0FFH,GOON4
MOV 47H,#09H
SJMP GOON4
XG2: CLR P1.2
NOP
SETB P1.2
JNB P2.2,XG2
XG21: MOV R3,#8
MOV A,#0FBH
LCALL SMOVE
DO4: CLR P1.2
NOP
SETB P1.2
MOV 6FH,#29
MOV 70H,#10
MOV 71H,47H
MOV 72H,55H
MOV 73H,56H
LCALL DISP
JNB P2.2,XG3
MOV A,#0FDH
NOP
LCALL SMOVE
JNB P2.2,ADD2
MOV A,#0F7H
LCALL SMOVE
NOP
JNB P2.2,DEC2
LCALL TIMER
MOV 6FH,#29
MOV 70H,#10
MOV 71H,47H
MOV 72H,#10
MOV 73H,56H
MOV A,#0FEH
LCALL SMOVE
JNB P2.2,ENT1
LCALL DISP
GOON5: MOV A,#0FBH
LCALL SMOVE
LCALL TIMER
DJNZ R3,DO4
MOV A,#0FEH
LCALL SMOVE
sav1: mov r1,#0ffh
djnz r1,sav1
LJMP WAITES
ENT1: LJMP SAVEDA
ADD2: MOV R3,#8
ADD21: CLR P1.2
NOP
SETB P1.2
JNB P2.2,ADD21
INC 55H
MOV A,55H
CJNE A,#10,GOON5
MOV 55H,#00H
SJMP GOON5
DEC2: MOV R3,#8
DEC21: CLR P1.2
NOP
SETB P1.2
JNB P2.2,DEC21
DEC 55H
MOV A,55H
CJNE A,#0FFH,GOON5
MOV 55H,#09H
SJMP GOON5
XG3: CLR P1.2
NOP
SETB P1.2
JNB P2.2,XG3
XG31: MOV R3,#8
MOV A,#0FBH
LCALL SMOVE
DO5: CLR P1.2
NOP
SETB P1.2
MOV 6FH,#29
MOV 70H,#10
MOV 71H,47H
MOV 72H,55H
MOV 73H,56H
LCALL DISP
JNB P2.2,XG11
MOV A,#0FDH
LCALL SMOVE
NOP
JNB P2.2,ADD3
MOV A,#0F7H
LCALL SMOVE
NOP
JNB P2.2,DEC3
LCALL TIMER
MOV 6FH,#29
MOV 70H,#10
MOV 71H,47H
MOV 72H,55H
MOV 73H,#10
LCALL DISP
MOV A,#0FEH
LCALL SMOVE
JNB P2.2,ENT3
GOON6: MOV A,#0FBH
LCALL SMOVE
LCALL TIMER
DJNZ R3,DO5
MOV A,#0FEH
LCALL SMOVE
sav2: mov r1,#0ffh
djnz r1,sav2
LJMP WAITES
ENT3: LJMP SAVEDA
XG11: CLR P1.2
NOP
SETB P1.2
JNB P2.2,XG11
LJMP DO2
ADD3: MOV R3,#8
ADD31: CLR P1.2
NOP
SETB P1.2
JNB P2.2,ADD31
INC 56H
MOV A,56H
CJNE A,#10,GOON6
MOV 56H,#00H
SJMP GOON6
DEC3: MOV R3,#8
CLR P1.2
NOP
SETB P1.2
JNB P2.2,DEC3
DEC 56H
MOV A,56H
CJNE A,#0FFH,GOON6
MOV 56H,#09H
SJMP GOON6
SAVEDA: CLR P1.2
NOP
SETB P1.2
MOV A,47H
JZ SADA1
CJNE A,#1,SKIP
MOV A,55H
JNZ SKIP
MOV A,56H
JNZ SKIP
MOV R0,#0A0H
MOV @R0,#7
INC R0
MOV @R0,#0C8H
INC R0
MOV @R0,#00H
SJMP SADA3
SKIP: MOV 6FH,#29
MOV 70H,#21
MOV 71H,#26
MOV 72H,#25
MOV 73H,#21
LCALL DISP
MOV R0,#0AH
SKIP1: MOV R1,#0FFH
MOV R2,#0FFH
DJNZ R2,$
DJNZ R1,$-4
CLR P1.2
NOP
CLR P1.2
DJNZ R0,SKIP1
LJMP WAITES
SADA1: MOV A,55H
MOV B,#10
MUL AB
ADD A,56H
MOV R0,#0A0H
JZ SADA2
MOV @R0,#8
INC R0
MOV @R0,A
INC R0
MOV @R0,#00H
SJMP SADA3
SADA2: MOV @R0,#41H
INC R0
MOV @R0,#00H
INC R0
MOV @R0,#00H
SADA3: MOV R0,#0A0H
MOV R4,#18H ;he濃度設定值存0A0H 0A1H 0A2H 轉存外存18H 19H 1AH
MOV R7,#3
LCALL XF64WM
MOV R0,#02H
WAIT3: MOV R1,#0FFH
MOV R2,#0FFH
DJNZ R2,$
DJNZ R1,$-4
CLR P1.2
NOP
SETB P1.2
DJNZ R0,WAIT3
MOV A,#0FEH
LCALL SMOVE
LJMP WAITES
DO1: MOV A,#0FEH
LCALL SMOVE
MOV R3,#10H
KEY1: MOV R1,#0FFH
MOV R2,#0FFH
DJNZ R2,$
DJNZ R1,$-4
CLR P1.2
NOP
SETB P1.2
JB P2.2,LOP1
MOV R0,#84H ;第二次電壓
MOV R1,#70H
LCALL SBTD
MOV A,70H
CJNE A,#1,ERROR
MOV 6FH,#28
MOV 70H,#10
MOV A,72H
ADD A,#11
MOV 72H,A
LCALL DISP
NEXT: MOV R1,#10H
CA2: MOV R2,#0FFH
CLR P1.2
NOP
SETB P1.2
MOV R3,#0FFH
DJNZ R3,$
DJNZ R2,$-4
DJNZ R1,CA2
CLR P1.2
NOP
SETB P1.2
LJMP LOP
ERROR: MOV 6FH,#27
MOV 70H,#25
MOV 71H,#25
MOV 72H,#25
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -