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

📄 333l.asm

📁 这是一款美容医疗仪器程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;filename: B-333L
;ver:      01
;mcu:      89c52
;freq:     12MHz
;desige:   xiaoxilong
;date:     2004.02.06
;**************************************
              SPK       BIT P1.7
              SWITCH    BIT P3.4

              LED1      EQU 20H
              LED2      EQU 21H

              SYS       EQU 22H
                                   ;0确定系统是否复位,由T2控制
                                   ;1确定DISP指示灯的状态,由T2控制
              DBUF1     EQU 23H
              DBUF2     EQU 24H
              KEY4      EQU 25H
              KEY5      EQU 26H
              KEY6      EQU 27H

              DISP      EQU 28H
              DEL_LED   EQU 29H
              PUL       EQU 2AH     ;T0 PULSE OUT USE
              CHANG     EQU 2BH
              BOXING    EQU 2CH
              FREQ      EQU 2DH
              ZHUT      EQU 2EH

              MIN       EQU 30H
              SEC1      EQU 31H
              SEC2      EQU 32H
              SEC3      EQU 33H
              SEC4      EQU 34H
              SEC5      EQU 35H
              SEC6      EQU 36H
              CON1      EQU 37H
              CON2      EQU 38H
              SEC30     EQU 39H
              SEC40     EQU 3AH
;**************************************
              ORG       0000H
              LJMP      RESET
              ORG       000BH
              LJMP      T0INT
              ORG       001BH
              LJMP      T1INT
              ORG       002BH
              LJMP      T2INT

;********************************************************************
;         数码管显示(时间)
;********************************************************************
DISPLAY:
         MOV     R6,#20
DISP1:
         MOV     R0,#20H
         CLR     P2.0
         MOV     P0,@R0
         CALL    DELAY
         SETB    P2.0
DISP2:
         INC     R0
         CLR     P2.1
         MOV     P0,@R0
         CALL    DELAY
         SETB    P2.1
         DJNZ    R6,DISP1
         RET
;======================================1MS(LED DISPLAY USE)
DELAY:
         MOV     R7,#50
D1:
         NOP
         NOP
         DJNZ    R7,D1
         RET
;********************************************************************
;           KEY SCAN HERE
;********************************************************************
KEYSCAN:
         MOV     P1,#0FFH
         JNB     P1.0,OPK1
         JNB     P1.1,OPK2
         JNB     P1.2,OPK3
         JNB     P1.3,OPK4
         JNB     P1.4,OPK5
         JNB     P1.5,OPK6
RETKEY:
         RET
;======================================
OPK1:
         JNB     SWITCH,RETKEY
         CALL    DISPLAY
         JNB     P1.0,PK1
         JMP     RETKEY
OPK2:
         JNB     SWITCH,RETKEY
         CALL    DISPLAY
         JNB     P1.1,PK2
         JMP     RETKEY
OPK3:
         CALL    DISPLAY
         JNB     P1.2,PK3
         JMP     RETKEY
OPK4:
         CALL    DISPLAY
         JNB     P1.3,PK4
         JMP     RETKEY
OPK5:
         CALL    DISPLAY
         JNB     P1.4,PK5
         JMP     RETKEY
OPK6:
         CALL    DISPLAY
         JNB     P1.5,PK6
         JMP     RETKEY
;======================================
PK1:
         CALL    SPK_DEL1
         JMP     K1
PK2:
         CALL    SPK_DEL1
         JMP     K2
PK3:
         JMP     K3
PK4:
         JMP     K4
PK5:
         JMP     K5
PK6:
         JMP     K6
;====================================== 时间减
K1:
         MOV     A,MIN
         CJNE    A,#01,DECTIME
         MOV     MIN,#99
         CALL    ADJMIN
         RET
DECTIME:
         DEC     MIN
         CALL    ADJMIN
         RET
;======================================时间加
K2:
         MOV     A,MIN
         CJNE    A,#99,INCTIME
         MOV     MIN,#01
         CALL    ADJMIN
         RET
INCTIME:
         INC     MIN
         CALL    ADJMIN
         RET
;====================================== P1
K3:
         CALL    DISPLAY
         JNB     P1.2,K3
         CALL    SPK_DEL1
         MOV     KEY4,#0FFH
         MOV     KEY5,#0FFH
         MOV     KEY6,#0FFH
         MOV     DBUF1,#11111110B
         MOV     DBUF2,#0FFH
         MOV     MIN,#15                  ;15 MIN
         MOV     LED1,#01111101B          ;1  十位数
         MOV     LED2,#00110001B          ;5  个位数
         RET
;====================================== P2
K4:
         CALL    DISPLAY
         JNB     P1.3,K4
         MOV     KEY5,#0FFH
         MOV     KEY6,#0FFH
         MOV     MIN,#90                  ;90 MIN
         MOV     LED1,#00001001B          ;9  十位数
         MOV     LED2,#00010100B          ;0  个位数
         MOV     A,KEY4
         CJNE    A,#0FFH,START_K4
         JMP     P2_1
START_K4:
         JB      KEY4.1,P2_2
         JB      KEY4.2,P2_3
         JB      KEY4.3,P2_1
         RET
P2_1:
         CALL    SPK_DEL1
         MOV     KEY4,#11111110B
         MOV     DBUF1,#11111101B
         MOV     DBUF2,#0FFH
         RET
P2_2:
         CALL    SPK_DEL2
         MOV     KEY4,#11111100B
         MOV     DBUF1,#11111011B
         MOV     DBUF2,#0FFH
         RET
P2_3:
         CALL    SPK_DEL3
         MOV     KEY4,#11111000B
         MOV     DBUF1,#11110111B
         MOV     DBUF2,#0FFH
         RET
;====================================== P3
K5:
         CALL    DISPLAY
         JNB     P1.4,K5
         MOV     KEY4,#0FFH
         MOV     KEY6,#0FFH
         MOV     MIN,#20                  ;20 MIN
         MOV     LED1,#00010011B
         MOV     LED2,#00010100B
         MOV     A,KEY5
         CJNE    A,#0FFH,START_K5
         JMP     P3_1
START_K5:
         JB      KEY5.1,P3_2
         JB      KEY5.2,P3_3
         JB      KEY5.3,P3_1
         RET
P3_1:
         CALL    SPK_DEL1
         MOV     KEY5,#11111110B
         MOV     DBUF1,#11101111B
         MOV     DBUF2,#0FFH
         RET
P3_2:
         CALL    SPK_DEL2
         MOV     KEY5,#11111100B
         MOV     DBUF1,#11011111B
         MOV     DBUF2,#0FFH
         RET
P3_3:
         CALL    SPK_DEL3
         MOV     KEY5,#11111000B
         MOV     DBUF1,#10111111B
         MOV     DBUF2,#0FFH
         RET
         RET
;====================================== P4
K6:
         CALL    DISPLAY
         JNB     P1.5,K6
         MOV     KEY4,#0FFH
         MOV     KEY5,#0FFH
         MOV     MIN,#20                  ;20 MIN
         MOV     LED1,#00010011B
         MOV     LED2,#00010100B
         MOV     A,KEY6
         CJNE    A,#0FFH,START_K6
         JMP     P4_1
START_K6:
         JB      KEY6.1,P4_2
         JB      KEY6.2,P4_3
         JB      KEY6.3,P4_4
         JB      KEY6.4,P4_1
         RET
P4_1:
         CALL    SPK_DEL1
         MOV     KEY6,#11111110B
         MOV     DBUF1,#01111111B
         MOV     DBUF2,#0FFH
         RET
P4_2:
         CALL    SPK_DEL2
         MOV     KEY6,#11111100B
         MOV     DBUF1,#0FFH
         MOV     DBUF2,#11111110B
         RET
P4_3:
         CALL    SPK_DEL3
         MOV     KEY6,#11111000B
         MOV     DBUF1,#0FFH
         MOV     DBUF2,#11111101B
         RET
P4_4:
         CALL    SPK_DEL4
         MOV     KEY6,#11110000B
         MOV     DBUF1,#0FFH
         MOV     DBUF2,#11111011B
         RET

;======================================蜂鸣器叫一声
SPEAK:
SPK_DEL1:
         CLR     SPK
         CALL    SPK_RET
         SETB    SPK
         RET
;====================================== 蜂鸣器叫2声
SPK_DEL2:
         CALL    SPEAK
         CALL    SPK_RET
         CALL    SPEAK
         RET
;====================================== 蜂鸣器叫3声
SPK_DEL3:
         CALL    SPEAK
         CALL    SPK_RET
         CALL    SPEAK
         CALL    SPK_RET
         CALL    SPEAK
         RET
;====================================== 蜂鸣器叫4声
SPK_DEL4:
         CALL    SPK_DEL1
         CALL    SPK_RET
         CALL    SPK_DEL1
         CALL    SPK_RET
         CALL    SPK_DEL1
         CALL    SPK_RET
         CALL    SPK_DEL1
         RET
;************************************** 蜂鸣器叫声间隔时间
SPK_RET:
         MOV     R4,#20
SPK_RET0:
         CALL    DISPLAY
         DJNZ    R4,SPK_RET0
         RET
;******************************************************************
;          TIMER ADJUSTT
;******************************************************************
ADJMIN:
         MOV     A,MIN
         MOV     B,#10
         DIV     AB
         MOV     DPTR,#TAB1
         MOVC    A,@A+DPTR
         MOV     LED1,A
         MOV     A,B
         MOV     DPTR,#TAB2
         MOVC    A,@A+DPTR
         MOV     LED2,A
         RET
TAB1:
         DB      021H,07DH,013H,019H,04DH
         DB      089H,081H,03DH,001H,009H
TAB2:
         DB      014H,0D7H,098H,091H,053H
         DB      031H,030H,097H,010H,011H
;********************************************************************
;            波形输出控制
;********************************************************************
T0INT:
         PUSH    ACC
         PUSH    PSW
         JNB     DBUF1.0,P1_OUT
         JNB     DBUF1.1,P2_OUT1A         ;P2的第1种状态
         JNB     DBUF1.2,P2_OUT2A
         JNB     DBUF1.3,P2_OUT3A
         JNB     DBUF1.4,P3_OUT1A
         JNB     DBUF1.5,P3_OUT2A
         JNB     DBUF1.6,P3_OUT3A
         JNB     DBUF1.7,P4_OUT1A
         JNB     DBUF2.0,P4_OUT2A
         JNB     DBUF2.1,P4_OUT3A
         JNB     DBUF2.2,P2_OUT3A
         JMP     RETT0
P2_OUT1A:
         JMP     P2_OUT1
P2_OUT2A:
         JMP     P2_OUT2
P2_OUT3A:
         JMP     P2_OUT3
P3_OUT1A:
         JMP     P3_OUT1
P3_OUT2A:
         JMP     P3_OUT2
P3_OUT3A:
         JMP     P3_OUT3
P4_OUT1A:
         JMP     P4_OUT1
P4_OUT2A:
         JMP     P4_OUT2
P4_OUT3A:
         JMP     P4_OUT3
;P4_OUT4A:
         ;JMP     P4_OUT4
;**************************************  P1 状态
P1_OUT:
         JNB     ZHUT.0,P1_SEL1
         JNB     ZHUT.1,P1_SEL2
         JNB     ZHUT.2,P1_SEL3
         JNB     ZHUT.3,P1_SEL4
         JNB     ZHUT.4,P1_SEL1
         JNB     ZHUT.5,P1_SEL2
         JNB     ZHUT.6,P1_SEL3
         JNB     ZHUT.7,P1_SEL4
         JMP     RETT0
;======================================
P1_SEL1:
         JNB     FREQ.0,PULSE1A
         JNB     FREQ.1,PULSE2A
         JNB     FREQ.2,PULSE1A
         JNB     FREQ.3,PULSE2A
         JNB     FREQ.4,PULSE1A
         JNB     FREQ.5,PULSE2A
         JNB     FREQ.6,PULSE1A
         JNB     FREQ.7,PULSE4A
         JMP     RETT0
;======================================
P1_SEL2:
         JNB     FREQ.0,PULSE1A
         JNB     FREQ.1,PULSE4A
         JNB     FREQ.2,PULSE2A
         JNB     FREQ.3,PULSE5A
         JNB     FREQ.4,PULSE7A
         JNB     FREQ.5,PULSE3A
         JNB     FREQ.6,PULSE1A
         JNB     FREQ.7,PULSE4A
         JMP     RETT0
PULSE1A:
         JMP     PULSE1
PULSE2A:
         JMP     PULSE2
PULSE3A:
         JMP     PULSE3
PULSE4A:
         JMP     PULSE4
PULSE5A:
         JMP     PULSE5
PULSE6A:
         JMP     PULSE6
PULSE7A:
         JMP     PULSE7
;======================================
P1_SEL3:
         JNB     FREQ.0,PULSE4A
         JNB     FREQ.1,PULSE6A
         JNB     FREQ.2,PULSE2A
         JNB     FREQ.3,PULSE1A
         JNB     FREQ.4,PULSE7A
         JNB     FREQ.5,PULSE6A
         JNB     FREQ.6,PULSE5A
         JNB     FREQ.7,PULSE4A
         JMP     RETT0
;======================================
P1_SEL4:
         JNB     FREQ.0,PULSE7A
         JNB     FREQ.1,PULSE6A
         JNB     FREQ.2,PULSE2A
         JNB     FREQ.3,PULSE5A
         JNB     FREQ.4,PULSE3A
         JNB     FREQ.5,PULSE2A
         JNB     FREQ.6,PULSE1A
         JNB     FREQ.7,PULSE4A
         JMP     RETT0

;**************************************  P2第1 种 状态
P2_OUT1:
         JNB     ZHUT.0,P21_SEL1
         JNB     ZHUT.1,P21_SEL2
         JNB     ZHUT.2,P21_SEL3
         JNB     ZHUT.3,P21_SEL4
         JNB     ZHUT.4,P21_SEL1
         JNB     ZHUT.5,P21_SEL2
         JNB     ZHUT.6,P21_SEL3
         JNB     ZHUT.7,P21_SEL4
         JMP     RETT0
;======================================
P21_SEL1:
         JNB     FREQ.0,PULSE7B
         JNB     FREQ.1,PULSE6B
         JNB     FREQ.2,PULSE4B
         JNB     FREQ.3,PULSE5B
         JNB     FREQ.4,PULSE1B
         JNB     FREQ.5,PULSE2B
         JNB     FREQ.6,PULSE3B
         JNB     FREQ.7,PULSE4B
         JMP     RETT0
;======================================
P21_SEL2:
         JNB     FREQ.0,PULSE6B
         JNB     FREQ.1,PULSE4B
         JNB     FREQ.2,PULSE5B
         JNB     FREQ.3,PULSE7B
         JNB     FREQ.4,PULSE2B
         JNB     FREQ.5,PULSE3B
         JNB     FREQ.6,PULSE1B
         JNB     FREQ.7,PULSE4B
         JMP     RETT0
PULSE1B:
         JMP     PULSE1
PULSE2B:
         JMP     PULSE2
PULSE3B:
         JMP     PULSE3
PULSE4B:
         JMP     PULSE4
PULSE5B:
         JMP     PULSE5
PULSE6B:
         JMP     PULSE6
PULSE7B:
         JMP     PULSE7
;======================================
P21_SEL3:
         JNB     FREQ.0,PULSE5B
         JNB     FREQ.1,PULSE6B
         JNB     FREQ.2,PULSE2B
         JNB     FREQ.3,PULSE1B
         JNB     FREQ.4,PULSE3B
         JNB     FREQ.5,PULSE6B
         JNB     FREQ.6,PULSE3B
         JNB     FREQ.7,PULSE4B
         JMP     RETT0
;======================================
P21_SEL4:
         JNB     FREQ.0,PULSE3B
         JNB     FREQ.1,PULSE6B
         JNB     FREQ.2,PULSE3B
         JNB     FREQ.3,PULSE5B
         JNB     FREQ.4,PULSE7B
         JNB     FREQ.5,PULSE2B
         JNB     FREQ.6,PULSE5B
         JNB     FREQ.7,PULSE4B
         JMP     RETT0

;**************************************  P2第2 种 状态
P2_OUT2:
         JNB     ZHUT.0,P22_SEL1
         JNB     ZHUT.1,P22_SEL2
         JNB     ZHUT.2,P22_SEL3
         JNB     ZHUT.3,P22_SEL4
         JNB     ZHUT.4,P22_SEL1
         JNB     ZHUT.5,P22_SEL2
         JNB     ZHUT.6,P22_SEL3
         JNB     ZHUT.7,P22_SEL4
         JMP     RETT0
;======================================
P22_SEL1:
         JNB     FREQ.0,PULSE6C
         JNB     FREQ.1,PULSE5C

⌨️ 快捷键说明

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