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

📄 read_7135.asm

📁 利用AT89C51 ,可以读取基于IC7135的电压表头的信号.
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;*****************************************
;* CPU: 89C51                            *
;* DATE:10:41 2005-5-2                   *
;*EDITOR:    LEO                         *
;*****************************************
EM1             EQU     P0.0
EM2             EQU     P0.1
EM3             EQU     P0.2
EM4             EQU     P0.3
EM5             EQU     P0.4
EM6             EQU     P0.5
EM7             EQU     P0.6
EM8             EQU     P0.7

POWER           EQU     P2.0
EM9             EQU     P2.1
EM10            EQU     P2.2
PASS_LED        EQU     P2.3
FAIL_LED        EQU     P2.4
DISP_RES        EQU     P2.5
DISP_CLK        EQU     P2.6
BUZZER          EQU     P2.7

ENABLE          EQU     P1.3

START           EQU     P1.0
PERIOD          EQU     P1.1	

BCD_1           EQU     P1.4
BCD_2           EQU     P1.5
BCD_4           EQU     P1.6
BCD_8           EQU     P1.7
;------------------------------------------------------------------------------------------
B1	             EQU  	P3.0		;DB9 PIN 6
B2		          EQU	   P3.1     ;DB9 PIN 7
B4	             EQU	   P3.2		;DB9 PIN 8
B8		          EQU	   P3.3		;DB9 PIN 9
;------------------------------------------------------------------------------------------
;THE CPU GND CONNECTION TO THE DB9 PIN 5 WITH DIGITAL METER.
;------------------------------------------------------------------------------------------
D1		          EQU	   P3.4		;DB9 PIN 1
D2		          EQU	   P3.5		;DB9 PIN 2
D3		          EQU	   P3.6		;DB9 PIN 3
D4		          EQU	   P3.7		;DB9 PIN 4
;------------------------------------------------------------------------------------------
TIME            EQU     20H
T_RAM_L         EQU     21H
T_RAM_H         EQU     22H
T1_RAM_L        EQU     23H
T1_RAM_H        EQU     24H
ADD_0           EQU     25H
ADD_1           EQU     26H
T_OLD_L         EQU     27H
T_OLD_H         EQU     28H
T_OLD_L1        EQU     29H
T_OLD_H1        EQU     2AH
SING_RAM        EQU     2BH 
BCD_RAM         EQU     2CH
OK_FLG          EQU     2DH 
H_L_FLG         EQU     2EH
COUNTER         EQU     2FH
COUNTER1        EQU     30H      ; READ T1 OR T2<1.000MS COUNTER
COUNTER2        EQU     31H      ; FIRST READ MOTOR'S TIME COUNTER
COUNTER3        EQU     32H      ; MOTOR STOP COUNTER
COMP_FLG        EQU     33H
T_FLG           EQU     34H
STOP_FLG        EQU     35H
ACOUNT          EQU     36H
LOOP_COUNT      EQU     37H
CHECK           EQU     40H
TMP_3           EQU     41H
TMP_2           EQU     42H
TMP_1           EQU     43H
TMP_0           EQU     44H
OP_3            EQU     45H
OP_2            EQU     46H
OP_1            EQU     47H
OP_0            EQU     48H
DIV_16_1        EQU     49H
DIV_16_0        EQU     4AH
MUL_16_1        EQU     4BH
MUL_16_0        EQU     4CH
DEC_FLG         EQU     4DH
LAST            EQU     4EH
SINGLE_FLG      EQU     4FH
d5_ram1         equ     50h
d4_ram1         equ     51h
d3_ram1         equ     52h
d2_ram1         equ     53h
v1_bcd1         equ     54h
v1_bcd0         equ     55h
v1_hex1         equ     56h
v1_hex0         equ     57h
LIGHT_FLG       EQU     58H
DATAL_L         EQU     59H
DATAL_H         EQU     5AH
DATAH_L         EQU     5BH
DATAH_H         EQU     5CH
DATAM_L         EQU     5DH
DATAM_H         EQU     5EH
VOL1_OK         EQU     5FH
;********************************************
;* Promarm start				   *
;********************************************
                
                 ORG      0H                     ;RESET
                 AJMP     INTI
                 ORG      100H
INTI:
;;CLEAR
                MOV    R0,     #7FH
CLEAR_RAM_LP:
                MOV    @R0,     #0
                DEC     R0
                CJNE    R0,     #1FH,CLEAR_RAM_LP
                MOV     SP,     #60H             ;PUT STACK POINTER
                MOV     TMOD,   #11H             ;PUT TIMER 0 TIMEER1
                MOV     P0,#00H
                MOV     P1,#0FFH
                MOV     P2,#00H
                MOV     P3,#0FFH
                CALL    TD_100MS
                MOV     SINGLE_FLG,#00H
                CALL    DISP_ZERO
                JB      START,MAIN1
                CALL    TD_200MS
                JB      START,MAIN1
                MOV     SINGLE_FLG,#0FFH
                CLR     ENABLE
                CALL    TD_100MS
                SETB    FAIL_LED
                SETB    PASS_LED
MAIN1:
                CALL    BUTTON
                CLR     ENABLE
                CALL    DISP_ZERO
                MOV     A,SINGLE_FLG
                CJNE    A,#0FFH,GO_NEXT
                SETB    FAIL_LED
                SETB    PASS_LED
                CALL    TD_100MS
                JMP     GO_NEXT1
GO_NEXT:        CLR     FAIL_LED
                CLR     PASS_LED                
GO_NEXT1:       CALL    READ_BCD
                MOV     A,BCD_RAM
                CJNE    A,#01H,N01
                JMP     PRO_MODEL1
N01:
                CJNE    A,#02H,N02
                JMP     PRO_MODEL2
N02:
                CJNE    A,#03H,N03
                JMP     PRO_MODEL3
N03:     
                CJNE    A,#04H,N04
                JMP     PRO_MODEL4    
N04:     
                SETB    FAIL_LED
                CALL    TD_300MS
                CLR     FAIL_LED
                CALL    TD_300MS
                JMP     MAIN1 
;####################################################
PRO_MODEL1:	         
		          SETB	   EM9
                CALL    TD_300MS
		          SETB	   POWER
                CALL    TD_300MS                
		          MOV	   H_L_FLG,#00H
                CALL    EM1_ON
                CALL    TD_300MS

BEGIN_1:
                CALL    EM2_ON
                CALL    TD_100MS

HI_LOOP1:  
                MOV     A,H_L_FLG
                CJNE    A,#00H,GO_HIGH_1
                CALL    DISP_STEP_1
                MOV     DATAL_L,#85H
                MOV     DATAL_H,#02H
                MOV     DATAH_L,#0E4H
                MOV     DATAH_H,#02H
                JMP     GO_CHECK_1
GO_HIGH_1:      CALL    DISP_STEP_6                
                MOV     DATAL_L,#20H
                MOV     DATAL_H,#03H
                MOV     DATAH_L,#0b6H
                MOV     DATAH_H,#03H

GO_CHECK_1:
                SETB    EM4                      ;;;;1           ;;;6
                CALL    TD_400MS
                CALL    JS
                CALL    LIGHT_STATE
                MOV     A,LIGHT_FLG
                CJNE    A,#00H,FAIL_JMP

                CLR     EM4
                CALL    TD_500MS
                
                CALL    JS                  
                CALL    RUN
                CALL    JS
                CALL    COMPARE_p
                mov     a,  vol1_ok
                cjne    a,  #0ffh,  FAIL_JMP
                MOV     A,H_L_FLG
                CJNE    A,#00H,GO_HIGH_2
                CALL    DISP_STEP_2
                JMP     GO_CHECK_2                  ;;;;2           ;;;7
GO_HIGH_2:      CALL    DISP_STEP_7                
GO_CHECK_2:
                SETB    EM5
                CALL    TD_300MS
                CALL    JS
                CALL    LIGHT_STATE
                MOV     A,LIGHT_FLG
                CJNE    A,#00H,FAIL_JMP
                JMP     GO_ON

FAIL_JMP:       JMP     FAIL

GO_ON:          CLR     EM5
                CALL    TD_300MS
                CALL    JS                      
                CALL    RUN
                CALL    COMPARE_p_1
                mov     a,  vol1_ok
                cjne    a,  #0ffh,  FAIL_JMP
                CALL    JS
                MOV     A,H_L_FLG
                CJNE    A,#00H,GO_HIGH_3
                CALL    DISP_STEP_3
                JMP     GO_CHECK_3
GO_HIGH_3:      CALL    DISP_STEP_8               ;;;;3           ;;;8   
GO_CHECK_3:
                SETB    EM6
                CALL    TD_300MS
                
                CALL    JS
                CALL    LIGHT_STATE
                MOV     A,LIGHT_FLG
                CJNE    A,#00H,FAIL_JMP

                CLR     EM6
                CALL    TD_300MS

		          CALL    JS                    
                CALL    RUN
                CALL    JS
                CALL    COMPARE_p_1
                mov     a,  vol1_ok
                cjne    a,  #0ffh,  FAIL_JMP
                MOV     A,H_L_FLG
                CJNE    A,#00H,GO_HIGH_4
                CALL    DISP_STEP_4
                JMP     GO_CHECK_4
GO_HIGH_4:      CALL    DISP_STEP_9              ;;;4             ;;;9     
GO_CHECK_4:
                SETB    EM7
                CALL    TD_300MS
          
                CALL    JS
                CALL    LIGHT_STATE
                MOV     A,LIGHT_FLG
                CJNE    A,#00H,FAIL_JMP

                CLR     EM7
                CALL    TD_300MS

                CALL    JS                     
                CALL    RUN
                CALL    COMPARE_p_1
                mov     a,  vol1_ok
                cjne    a,  #0ffh,  FAIL_JMP
                CALL    JS
                MOV     A,H_L_FLG
                CJNE    A,#00H,GO_HIGH_5
                CALL    DISP_STEP_5
                MOV     DATAL_L,#0d4H
                MOV     DATAL_H,#03H
                MOV     DATAH_L,#88H
                MOV     DATAH_H,#04H
                JMP     GO_CHECK_5
GO_HIGH_5:      CALL    DISP_STEP_10                 ;;;;5              ;;10
                MOV     DATAL_L,#92H
                MOV     DATAL_H,#04H
                MOV     DATAH_L,#0baH
                MOV     DATAH_H,#04H
GO_CHECK_5:
		          SETB 	EM8
                CALL    TD_500MS
                CALL    TD_400MS

                CALL    JS
                CALL    LIGHT_STATE
                MOV     A,LIGHT_FLG
                CJNE    A,#00H,FAIL_JMP1

                CALL    JS                     
                CALL    RUN
                CALL    COMPARE_p
                mov     a,  vol1_ok
                cjne    a,  #0ffh,  FAIL_JMP1

           		 CLR  	EM8
                CALL    TD_300MS
            	 CALL    JS
                CALL    STOP_STATE
                MOV     A,STOP_FLG
                CJNE    A,#0FFH,FAIL_JMP1

            	 CALL    EM1_ON
                CALL    TD_100MS

                CALL    JS
                CALL    STOP_STATE
                MOV     A,STOP_FLG
                CJNE    A,#0FFH,FAIL_JMP1

                MOV     A,H_L_FLG
                CJNE    A,#00H,HI_END_1
                CALL    EM3_ON
                CALL    TD_100MS
                MOV     H_L_FLG,#0FFH
                JMP     HI_LOOP1         

FAIL_JMP1:      JMP     FAIL

HI_END_1:
		          CALL 	PASS
                JMP     MAIN1 
;#####################################################
PRO_MODEL2:	         
		          CLR     EM10
		          SETB	   EM9
                CALL    TD_300MS
		          SETB	   POWER
                CALL    TD_300MS                
		          MOV	   H_L_FLG,#00H
                CALL    EM1_ON
                CALL    TD_200MS
	           	 CALL	   STOP_STATE
		          MOV  	A,STOP_FLG
		          CJNE  	A,#0FFH,FAIL_JMP2_2
HI_LOOP2:  
                MOV     A,H_L_FLG
                CJNE    A,#00H,GO_HIGH_1_2
                CALL    DISP_STEP_1
                MOV     DATAL_L,#85H
                MOV     DATAL_H,#02H
                MOV     DATAH_L,#0E4H
                MOV     DATAH_H,#02H
                JMP     GO_CHECK_1_2
GO_HIGH_1_2:    CALL    DISP_STEP_7                
                MOV     DATAL_L,#20H
                MOV     DATAL_H,#03H
                MOV     DATAH_L,#0b6H
                MOV     DATAH_H,#03H

GO_CHECK_1_2:
                SETB    EM3                      ;;;;1           ;;;7
                CALL    TD_400MS
                CALL    JS
                CALL    LIGHT_STATE
                MOV     A,LIGHT_FLG
                CJNE    A,#00H,FAIL_JMP2_2

                CLR     EM3
                CALL    TD_500MS
                
                CALL    JS                     
                CALL    RUN
                CALL    JS
                CALL    COMPARE_p
                mov     a,  vol1_ok
                cjne    a,  #0ffh,  FAIL_JMP2_2
                MOV     A,H_L_FLG
                CJNE    A,#00H,GO_HIGH_2_2        ;;;;2         ;;;;8
                CALL    DISP_STEP_2
                JMP     GO_CHECK_2_2
GO_HIGH_2_2:    CALL    DISP_STEP_8                
GO_CHECK_2_2:
                SETB    EM4
                CALL    TD_300MS
                CALL    JS
                CALL    LIGHT_STATE
                MOV     A,LIGHT_FLG
                CJNE    A,#00H,FAIL_JMP2_2
                JMP     GO_ON_2

FAIL_JMP2_2:    JMP     FAIL

GO_ON_2:        CLR     EM4
                CALL    TD_300MS
                CALL    JS                      
                CALL    RUN
                CALL    COMPARE_p_1
                mov     a,  vol1_ok
                cjne    a,  #0ffh,  FAIL_JMP2_2
                CALL    JS
                MOV     A,H_L_FLG
                CJNE    A,#00H,GO_HIGH_3_2
                CALL    DISP_STEP_3
                JMP     GO_CHECK_3_2
GO_HIGH_3_2:    CALL    DISP_STEP_9               ;;;;3           ;;;9   
GO_CHECK_3_2:
                SETB    EM5
                CALL    TD_300MS
                
                CALL    JS
                CALL    LIGHT_STATE
                MOV     A,LIGHT_FLG
                CJNE    A,#00H,FAIL_JMP2_2

                CLR     EM5
                CALL    TD_300MS

		          CALL    JS                      
                CALL    RUN
                CALL    JS
                CALL    COMPARE_p_1
                mov     a,  vol1_ok
                cjne    a,  #0ffh,  FAIL_JMP2_2
                MOV     A,H_L_FLG
                CJNE    A,#00H,GO_HIGH_4_2
                CALL    DISP_STEP_4
                JMP     GO_CHECK_4_2
GO_HIGH_4_2:    CALL    DISP_STEP_10            ;;;4             ;;;10    
GO_CHECK_4_2:
                SETB    EM6

⌨️ 快捷键说明

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