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

📄 he-nongduojiance.asm

📁 氦浓度检测仪汇编程序
💻 ASM
📖 第 1 页 / 共 4 页
字号:
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 + -