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

📄 tr_testj56.asm

📁 5看前做的
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;好多年做的,有些资料都不记得放那里了。传这些让大家看下。
;THE MAIN PROGRAM
;CPU   AT89C52
;----------------------------------------------------------
;CPU脚位说明
;----------------------------------------------------------
;PIN1          IN            KEY0
;PIN2          IN            KEY1
;PIN3          IN            KEY2
;PIN4          IN            KEY3
;PIN5          IN            KEY4
;PIN6          IN            EYE
;PIN7          OUT           74LS373 SW2
;PIN8          OUT           74LS373 SW1
;PIN9          RESET
;PIN10         OUT           RELAY_DATA0
;PIN11         OUT           RELAY_DATA1
;PIN12         OUT           RELAY_DATA2
;PIN13         OUT           RELAY_DATA3
;PIN14         OUT           RELAY_DATA4
;PIN15         OUT           RELAY_DATA5
;PIN16         OUT           RELAY_DATA6
;PIN17         OUT           RELAY_DATA7
;PIN18         XATL1
;PIN19         XATL2
;PIN20         GND
;PIN21         OUT           LCD_E
;PIN22         OUT           LCD_RW
;PIN23         OUT           LCD_RS
;PIN24         OUT           MONITOR
;PIN25         OUT           AD_CS
;PIN26         OUT           AD_DATA_OUT
;PIN27         IN            AD_DATA_IN
;PIN28         OUT           AD_CLK
;PIN29         NC
;PIN30         NC
;PIN31         VCC
;PIN32         IO            D7
;PIN33         IO            D6
;PIN34         IO            D5
;PIN35         IO            D4
;PIN36         IO            D3
;PIN37         IO            D2
;PIN38         IO            D1
;PIN39         IO            D0
;PIN40=VCC
;---------------------------------------------------------------
;CPU脚位定义
;---------------------------------------------------------------
D0                           BIT               P0.0
D1                           BIT               P0.1
D2                           BIT               P0.2
D3                           BIT               P0.3
D4                           BIT               P0.4
D5                           BIT               P0.5
D6                           BIT               P0.6
D7                           BIT               P0.7
LCDDATA                      BIT               P0
;----------------------------------------------------------------
K0_BIT                       BIT               P1.0
K1_BIT                       BIT               P1.1
K2_BIT                       BIT               P1.2
K3_BIT                       BIT               P1.3
K4_BIT                       BIT               P1.4
EYE_BIT                      BIT               P1.5
LS373_SW2                    BIT               P1.6
LS373_SW1                    BIT               P1.7
;----------------------------------------------------------------
LCD_CE                       BIT               P2.2
LCD_RW                       BIT               P2.1
LCD_RS                       BIT               P2.0
MONITOR                      BIT               P2.3
AD_CS                        BIT               P2.4
AD_DOUT                      BIT               P2.5
AD_DIN                       BIT               P2.6
AD_CLK                       BIT               P2.7
;----------------------------------------------------------------
RL0                          BIT               P3.0
RL1                          BIT               P3.1
RLL2                          BIT               P3.2
RL3                          BIT               P3.3
RL4                          BIT               P3.4
RL5                          BIT               P3.5
RL6                          BIT               P3.6
RL7                          BIT               P3.7
RELAY                        DATA              P3
;------------------------------------------------------------------
;片内RAM区定义
;-----------------------------------------------------------------
EYE_DATA                     DATA              30H
KEY_RAM                      DATA              31H
FUN_RAM                      DATA              32H
AUTO_RAM                     DATA              33H
CACU_RAM0                    DATA              34H
CACU_RAM1                    DATA              35H
CACU_RAM2                    DATA              36H
CACU_RAM3                    DATA              37H
HAND_RAM                     DATA              38H
CHANEL                       DATA              39H

WAIT1                      EQU             3BH
WAIT2                      EQU             3CH
WAIT3                      EQU             3DH
CACU_RUN_RAM0                DATA              3EH
CACU_RUN_RAM1                DATA              3FH
;---------------------------------------------------
;THE  BIT DEFINE
;---------------------------------------------------
TEST_FLG                     BIT               20H.0
TEST_ERR_FLG                 BIT               20H.1
;----------------------------------------------------
ERR_FLG0                   BIT                 21H.0
ERR_FLG1                   BIT                 21H.1
ERR_FLG2                   BIT                 21H.2
ERR_FLG3                   BIT                 21H.3
ERR_FLG4                   BIT                 21H.4
ERR_FLG5                   BIT                 21H.5
ERR_FLG6                   BIT                 21H.6
ERR_FLG7                   BIT                 21H.7
ERR_FLG8                   BIT                 22H.0
ERR_FLG9                   BIT                 22H.1
ERR_FLG10                   BIT                 22H.2
ERR_FLG11                   BIT                 22H.3
ERR_FLG12                   BIT                 22H.4
ERR_FLG13                   BIT                 22H.5
ERR_FLG14                   BIT                 22H.6
ERR_FLG15                   BIT                 22H.7
ERR_FLG_DAL               DATA                 21H
ERR_FLG_DAH               DATA                 22H
;---------------------------------------------------
;              DELAY C  DATA
;---------------------------------------------------
REL_WAIT              EQU                  60
LCD_REL               EQU                  1
;--------------------------------------
;            THE STR
;--------------------------------------
CMOD            EQU           0D9H
AUXR            EQU           8EH
;---------------------------------------------------
;               THE PROGRAM START
;---------------------------------------------------
                      ORG 0000H
                      LJMP  START
                      ORG 0003H
                      RETI
                      ;LJMP INT0
                      ORG 000BH
                      LJMP T0
                      ORG 0013H
                      ;LJMP NET_INT1
                      RETI
                      ORG 001BH
                      LJMP T1
                      ORG 0023H
                      RETI
                      ;LJMP SERIAL_PORT
                      ORG	 002BH
                      RETI
                      ;LJMP     T2_int
                      ORG 0050H
;-------------------------------------------
;                     THE START
;-------------------------------------------
GROUP1_ERR:           CALL ALARN

                      AJMP GROUP1_GO
START:                NOP
                      NOP
                      MOV P3,#0FFH
                      CLR MONITOR
                      SETB LS373_SW1
                      SETB LS373_SW2
                      MOV SP,#0C0H
                      CALL SETUP
                      CALL LCD_SETUP
                      CALL LCD_HIT_ME
                      CALL HIT_L_REL
                      CALL LCD_TEST
                      CALL FLAG_SETUP
                      MOV A,#0FFH
                      CALL DELAY
GROUP1_GO:
                      MOV A,#10H
                      CALL GET_AD_DATA
                      MOV B,50H
                      MOV A,51H
                      CALL CHANGE_HEX
                      CALL LCD_SHOW_GROUP1
                      CALL TEST_CACU
                      ;JB TEST_ERR_FLG,GROUP1_ERR
                      CLR MONITOR
                      MOV A,#50
                      CALL DELAY
                      MOV A,#20H
                      CALL GET_AD_DATA
                      MOV B,50H
                      MOV A,51H
                      CALL CHANGE_HEX
                      CALL LCD_SHOW_GROUP2
                      CALL TEST_CACU
                      ;JB TEST_ERR_FLG, GROUP1_ERR
                      CLR MONITOR
                      MOV A,#50
                      CALL DELAY
                      MOV A,#30H
                      CALL GET_AD_DATA
                      MOV B,50H
                      MOV A,51H
                      CALL CHANGE_HEX
                      CALL LCD_SHOW_GROUP3
                      CALL TEST_CACU
                      ;JB TEST_ERR_FLG, GROUP1_ERR

                      CLR MONITOR
                      MOV A,#100
                      CALL DELAY
                      CALL LCD_START
                      MOV EYE_DATA,P1

MAIN:                 NOP
                      NOP
                      CALL KEY_SCAN
                      CJNE A,#0,KEY_DOWN
                      LJMP MAIN
KEY_DOWN:             MOV KEY_RAM,A
                      MOV A,#4
                      CALL DELAY
                      CALL KEY_SCAN
                      CJNE A,KEY_RAM,MAIN
KEY_DOWN_DO:          CJNE A,#20H,KEY_DOWN_DO1
                      MOV EYE_DATA,P1
                      CALL AUTO_TEST
                      LJMP MAIN
GO_RET:               LJMP MAIN
KEY_DOWN_DO1:         CJNE A,#1,KEY_DOWN_DO2
                      CALL MONITOR_DO
                      INC FUN_RAM
                      MOV HAND_RAM,#0
                      CALL FUN_MENU
                      CALL LCD_SETUP
                      CALL LCD_FUN
                      CALL LCD_AUTO
                      CALL LCD_WAIT
                      CALL KEY_OPEN
                      LJMP MAIN
KEY_DOWN_DO2:         CJNE A,#2,KEY_DOWN_DO3
                      MOV HAND_RAM,#0
                      CALL MONITOR_DO
                      INC AUTO_RAM
                      CALL AUTO_MENU
                      CALL LCD_SETUP
                      CALL LCD_FUN
                      CALL LCD_AUTO
                      CALL LCD_WAIT
                      CALL KEY_OPEN
                      LJMP MAIN
KEY_DOWN_DO3:         CJNE A,#4,KEY_DOWN_DO4
                      CALL MONITOR_DO
                      CALL AUTO_CHECK
                      ;MOV A,AUTO_RAM
                      ;XRL A,#1
                      ;JZ HALF_TEST_DO
                      ;MOV A,AUTO_RAM
                      ;XRL A,#2
                      ;JZ AUTO_TEST_DO
                      ;MOV A,AUTO_RAM
                      ;XRL A,#3
                      ;JZ HAND_TEST_DO
                      CALL HALF_TEST
                      CALL KEY_OPEN
                      LJMP MAIN
HALF_TEST_DO:         CALL HALF_TEST
                      CALL KEY_OPEN
                      LJMP MAIN
AUTO_TEST_DO:         CALL AUTO_TEST
                      CALL KEY_OPEN
                      LJMP MAIN
HAND_TEST_DO:         CALL HAND_TEST
                      CALL KEY_OPEN
                      LJMP MAIN
KEY_DOWN_DO4:         CJNE A,#8,KEY_DOWN_DO5
                      CALL LCD_FR_LINE
                      INC HAND_RAM
                      CALL UP_TEST_DO
                      CALL KEY_OPEN
                      LJMP MAIN
KEY_DOWN_DO5:         CJNE A,#10H,ERR_VAL
                      CALL LCD_FR_LINE
                      MOV A,HAND_RAM
                      XRL A,#0
                      JZ KEY_DOWN_DO51
                      DEC HAND_RAM
KEY_DOWN_DO51:        NOP
                      NOP
                      CALL UP_TEST_DO

                      CALL KEY_OPEN
                      LJMP MAIN
ERR_VAL:              LJMP MAIN
;--------------------------------------------
KEY_OPEN:             CALL KEY_SCAN
                      CJNE A,KEY_RAM,KEY_OPEN_RET
                      LJMP KEY_OPEN
KEY_OPEN_RET:         NOP
                      NOP
                      RET
;--------------------------------------------
KEY_SCAN:             NOP
                      NOP
                      MOV A,P1
                      ANL A,#1FH
                      CJNE A,#01FH,KEY_VAL_GET
                      MOV A,P1
                      XRL A,EYE_DATA
                      JB ACC.5,EYE_VAL_GET
                      MOV A,#0
                      NOP
                      NOP
                      RET
EYE_VAL_GET:          MOV A,#20H
                      NOP
                      NOP
                      RET
KEY_VAL_GET:          MOV A,P1
                      ANL A,#1FH
                      ORL A,#0E0H
                      CPL A
                      NOP
                      NOP
                      RET
;--------------------------------------------
LCD_SETUP:         NOP
                   NOP
                   CLR LCD_RS
                   CLR LCD_RW
                   SETB LCD_CE
                   MOV LCDDATA,#38H
                   CLR  LCD_CE
                   CALL LCDWAIT
                   CLR LCD_RS
                   CLR LCD_RW
                   SETB LCD_CE
                   MOV LCDDATA,#06H
                   CLR LCD_CE
                   CALL LCDWAIT
                   CLR LCD_RS
                   CLR LCD_RW
                   SETB LCD_CE
                   MOV LCDDATA,#0CH
                   CLR LCD_CE
                   CALL LCDWAIT
                   CLR LCD_RS
                   CLR LCD_RW
                   SETB LCD_CE
                   MOV LCDDATA,#01H
                   CLR LCD_CE
                   CALL LCDWAIT
                   CLR LCD_RS
                   CLR LCD_RW
                   SETB LCD_CE
                   MOV LCDDATA,#80H
                   CLR LCD_CE
                   CALL LCDWAIT

                   NOP
                   NOP
                   RET
;-----------------------------------------------
LCDWAIT:          NOP
                  NOP
                  MOV LCDDATA,#0FFH
                  CLR LCD_RS
                  SETB LCD_RW
                  SETB LCD_CE
                  MOV A,LCDDATA
                  CLR LCD_CE
                  JB ACC.7,LCDWAIT
                  NOP
                  NOP
                  RET
;--------------------------------------------
CHAR:             NOP
                  NOP
                  SETB LCD_RS
                  CLR  LCD_RW
                  SETB LCD_CE
                  MOV LCDDATA,A
                  CLR LCD_CE
                  CALL LCDWAIT
                  NOP
                  NOP
                  RET
;--------------------------------------------
LCD_TEST:         NOP
                  NOP
                  CLR LCD_RS
                  CLR LCD_RW
                  SETB LCD_CE
                  MOV LCDDATA,#80H
                  CLR LCD_CE
                  CALL LCDWAIT
                  MOV A,#54H;T
                  CALL CHAR
                  MOV A,#45H;E
                  CALL CHAR
                  MOV A,#53H;S
                  CALL CHAR
                  MOV A,#54H;T
                  CALL CHAR
                  MOV A,#20H;
                  CALL CHAR
                  MOV A,#4DH;M
                  CALL CHAR
                  MOV A,#45H;E
                  CALL CHAR

⌨️ 快捷键说明

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