历史上的今天
返回首页

历史上的今天

今天是:2025年01月07日(星期二)

正在发生

2018年01月07日 | DDS技术的数控信号发生器51单片机控制程序

2018-01-07 来源:eefocus

;***************************************************** 
;       基于DDS技术的数控信号发生器控制程序          ; 
;              正弦波1Hz-10MHZ                       ; 
;              单片机 STC12C5410AD                   ;       
;              AD9850  50MHZ晶振                     ; 
;*****************************************************             

;***************************************************** 
;                      端口定义                      ; 
;***************************************************** 
            SCLK  BIT     P3.2;液晶串行操作时钟口 
            SID   BIT     P3.3;数据输入口 
            CS    BIT     P3.4;液晶使能 0禁 
            LB    BIT     P3.5;背光灯   0亮 
             
            KW1   BIT     P1.2;功能、确认键 
            KW2   BIT     P1.1;修改、返回键 
            KW3   BIT     P1.0;加键 
            KW4   BIT     P3.7;减键 
             
            LED1  BIT     P1.7;跳频 
            LED2  BIT     P1.6;扫频 
            LED3  BIT     P3.0;点频 
            LED4  BIT     P3.1;相移 
             
            DATAS BIT     P1.3;AD9850 数据口 
            FQ_UD BIT     P1.5;AD9850 使能 
            W_CLK BIT     P1.4;AD9850 移位时钟 
             
;***************************************************** 
;                     内存定义                       ;    
;*****************************************************                     
            L0    DATA    21H;算法数据缓冲单元 
            L1    DATA    22H; 
            L2    DATA    23H; 
            L3    DATA    24H; 
            L4    DATA    25H; 
            L5    DATA    26H; 
            L6    DATA    27H; 
            L7    DATA    28H; 
             
            SSDIS DATA    39H;闪烁暂存单元 
             
            DIS7  DATA    37H;频率显示单元 
            DIS6  DATA    36H;DIS7-DIS0 
            DIS5  DATA    35H;高-低 
            DIS4  DATA    34H; 
            DIS3  DATA    33H; 
            DIS2  DATA    32H; 
            DIS1  DATA    31H; 
            DIS0  DATA    30H; 
             
            PHASE DATA    3CH;相移控制字 
             
            CON3  DATA    3BH;频率控制字 
            CON2  DATA    3AH;CON3-CON0 
            CON1  DATA    39H;高-低 
            CON0  DATA    38H; 
             
            IT03  DATA    3DH;0.3s定时中断 
             
            GNCDT DATA    3EH;功能菜单标志 
            MSXZT DATA    3FH;模式选择标志 
            FSXZT DATA    40H;方式选择标志 
            XWZLT DATA    41H;相位增量标志 
            PLSZT DATA    42H;频率设置标志 
              
            JDIS5 DATA    4FH;扫频     
            JDIS4 DATA    4EH;间隔 
            JDIS3 DATA    4DH;存储 
            JDIS2 DATA    4CH;单元 
            JDIS1 DATA    4BH; 
            JDIS0 DATA    4AH; 
             
            LCON3 DATA    53H;扫频 
            LCON2 DATA    52H;频率终值 
            LCON1 DATA    51H; 
            LCON0 DATA    50H; 
             
            ZCON3 DATA    57H;扫频 
            ZCON2 DATA    56H;频率增量 
            ZCON1 DATA    55H; 
            ZCON0 DATA    54H; 
             
            FCON3 DATA    5BH;扫频 
            FCON2 DATA    5AH;频率初值 
            FCON1 DATA    59H; 
            FCON0 DATA    58H; 
             
            RCON3 DATA    5FH;频率 
            RCON2 DATA    5EH;控制字 
            RCON1 DATA    5DH;暂存单元 
            RCON0 DATA    5CH; 
             
            PHCON1 DATA   44H;相位增量 
            PHCON0 DATA   43H; 
             
            PHDIS4 DATA    49H;相位显示单元  
            PHDIS3 DATA    48H; 
            PHDIS2 DATA    47H; 
            PHDIS1 DATA    46H; 
            PHDIS0 DATA    45H; 
             
            ZHLIANG0 DATA   60H 
            ZHLIANG1 DATA   61H 
            ZHLIANG2 DATA   62H 
            ZHLIANG3 DATA   63H 
             
;******************************************************             
;                 中断及入口程序                      ; 
;******************************************************             
            ORG     0000H 
            LJMP    START 
            ORG     0003H 
            RETI 
            ORG     000BH 
            LJMP    INTT0 
            ORG     0013H 
            RETI 
            ORG     001BH 
            RETI 
            ORG     0023H 
            RETI 
            ORG     002BH 
            RETI 
             
;****************************************************** 
;                主程序入口                           ; 
;******************************************************            
START:       
            MOV     R1,#20H 
            MOV     R7,#60H 
            CLR     A 
CLEAR:      MOV     @R1,A 
            INC     R1 
            DJNZ    R7,CLEAR             
            MOV     P0,#0FFH 
            MOV     P1,#0FFH 
            MOV     P2,#0FFH 
            MOV     P3,#0FFH 
            CLR     CS 
            MOV     IT03,#06H 
            MOV     6FH,#0AH 
            LCALL   SETUP          ;LCD初始化 
            LCALL   BEGINLCD       ;开机界面 
             
            CLR     W_CLK          ;AD9850初始化 
            CLR     FQ_UD          ;  
            LCALL   SETUP_AD9850   ; 
             
            MOV     CON0,#96H      ;默认频率值 
            MOV     CON1,#4FH      ;125MHZ,1000HZ,863CH 
            MOV     CON2,#01H      ;50MHZ,1000HZ,014F96H 
            MOV     CON3,#00H      ; 
             
            MOV     TMOD,#01H      ;计数器0 方式1 
            MOV     TL0,#0B0H      ;50ms 
            MOV     TH0,#3CH       ;定时 

ADDPLAY:    LCALL   SEND9850       ;写入AD9850                                 
            LCALL   CON_DIS        ;控制字转频率字 
            LCALL   DISPLCD        ;频率显示 
            LCALL   DELAY10ms 
            SETB    LB 
                         
MAIN:        
             
            CLR     LED1 
            JNB     KW1,GNCD0 
            JNB     KW3,CSDPADD0 
            JNB     KW4,CSDPSUBB0 
            LJMP    MAIN             
             
GNCD0:      LJMP    GNCD             
CSDPADD0:   LCALL   CSDPADD 
            LJMP    MAIN 
CSDPSUBB0:  LCALL   CSDPSUBB 
            LJMP    MAIN 
             
;********************************************* 
;           AD9850控制程序                   ; 
;********************************************* 
;初始化DDS 
SETUP_AD9850:CLR    W_CLK  
             CLR    FQ_UD  
             SETB   W_CLK 
             CLR    W_CLK 
             SETB   FQ_UD 
             CLR    FQ_UD 
             RET 
              
;发送数据到AD9850 
SEND9850:    CLR    FQ_UD 
             MOV    A,CON0 
             LCALL  SEND_8DATA 
             MOV    A,CON1 
             LCALL  SEND_8DATA 
             MOV    A,CON2 
             LCALL  SEND_8DATA 
             MOV    A,CON3 
             LCALL  SEND_8DATA  
             MOV    A,#000B 
             LCALL  SEND_8DATA 
             SETB   FQ_UD 
             CLR    FQ_UD 
             RET 

;发送数据到AD9850(相移) 
SEND9850PH:  CLR    FQ_UD 
             MOV    A,CON0 
             LCALL  SEND_8DATA 
             MOV    A,CON1 
             LCALL  SEND_8DATA 
             MOV    A,CON2 
             LCALL  SEND_8DATA 
             MOV    A,CON3 
             LCALL  SEND_8DATA  
              
             MOV    A,PHASE 
             RLC    A 
             RLC    A 
             RLC    A 
             ANL    A,#0F8H  
             LCALL  SEND_8DATA 
             SETB   FQ_UD 
             CLR    FQ_UD 
             RET 

SEND_8DATA:   
             MOV    C,ACC.0 
             MOV    DATAS,C 
             SETB   W_CLK 
             CLR    W_CLK 
             MOV    C,ACC.1 
             MOV    DATAS,C 
             SETB   W_CLK 
             CLR    W_CLK 
             MOV    C,ACC.2 
             MOV    DATAS,C 
             SETB   W_CLK 
             CLR    W_CLK 
             MOV    C,ACC.3 
             MOV    DATAS,C 
             SETB   W_CLK 
             CLR    W_CLK 
             MOV    C,ACC.4 
             MOV    DATAS,C 
             SETB   W_CLK 
             CLR    W_CLK 
             MOV    C,ACC.5 
             MOV    DATAS,C 
             SETB   W_CLK 
             CLR    W_CLK 
             MOV    C,ACC.6 
             MOV    DATAS,C 
             SETB   W_CLK 
             CLR    W_CLK 
             MOV    C,ACC.7 
             MOV    DATAS,C 
             SETB   W_CLK 
             CLR    W_CLK 
             RET 
;********************************************* 
;              液晶显示程序                  ; 
;********************************************* 
;开机界面              
BEGINLCD:    CLR    LB              
             MOV    A,#80H 
             LCALL  WRITE_COM 
             MOV    DPTR,#CHINESE1 
             LCALL  WRITE_HZ7 
             MOV    A,#90H 
             LCALL  WRITE_COM 
             MOV    DPTR,#CHINESE2 
             LCALL  WRITE_HZ7 
             LCALL  DELAY1s 
             LCALL  DELAY1s 
             LCALL  DELAY1s 
              
             MOV    A,#80H 
             LCALL  WRITE_COM 
             MOV    DPTR,#CHINESE3 
             LCALL  WRITE_HZ7 
             MOV    A,#90H 
             LCALL  WRITE_COM 
             MOV    DPTR,#CHINESE4 
             LCALL  WRITE_HZ7 
             LCALL  DELAY1s 
             LCALL  DELAY1s 
             LCALL  DELAY1s 
              
             MOV    A,#80H 
             LCALL  WRITE_COM 
             MOV    DPTR,#CHINESE4 
             LCALL  WRITE_HZ7 
             MOV    A,#90H 
             LCALL  WRITE_COM 
             MOV    DPTR,#CHINESE5 
             LCALL  WRITE_HZ7 
             LCALL  DELAY1s 
             LCALL  DELAY1s 
             LCALL  DELAY1s 
              
SINF:        MOV    A,#80H 
             LCALL  WRITE_COM 
             MOV    DPTR,#CHINESE6 
             LCALL  WRITE_HZ7 
             SETB   LB 
             RET 
              
;频率值显示程序              
DISPLCD:      
                 
                            
             MOV    A,DIS7                           
             CJNE   A,#00H,DIS7PD  
             MOV    DIS7,#0AH 
             MOV    A,DIS6                          
             CJNE   A,#00H,DIS6PD  
             MOV    DIS6,#0AH             
             MOV    A,DIS5                         
             CJNE   A,#00H,DIS5PD  
             MOV    DIS5,#0AH              
             MOV    A,DIS4                         
             CJNE   A,#00H,DIS4PD  
             MOV    DIS4,#0AH              
             MOV    A,DIS3                          
             CJNE   A,#00H,DIS3PD  
             MOV    DIS3,#0AH             
             MOV    A,DIS2                         
             CJNE   A,#00H,DIS2PD  
             MOV    DIS2,#0AH              
             MOV    A,DIS1 
             CJNE   A,#00H,DIS1PD 
             MOV    DIS1,#0AH 
             LJMP   DIS0PD 
              
DIS7PD:      LJMP   LCD3              
DIS6PD:      ;CJNE   A,#0AH,DIS7PD 
             ;LJMP   LCD2 
             LJMP   LCD3              
DIS5PD:      LJMP   LCD2              
DIS4PD:      LJMP   LCD2              
DIS3PD:      ;CJNE   A,#0AH,LCD2 
             ;LJMP   LCD1 
             LJMP   LCD2              
DIS2PD:      LJMP   LCD1              
DIS1PD:      LJMP   LCD1              
DIS0PD:      LJMP   LCD1                          
              
LCD1:         
             MOV    70H,DIS7 
             MOV    71H,DIS6 
             MOV    72H,DIS5 
             MOV    73H,DIS4 
             MOV    74H,DIS3 
             MOV    75H,#0AH 
             MOV    76H,DIS2 
             MOV    77H,DIS1 
             MOV    78H,DIS0 
              
             MOV    A,GNCDT 
             CJNE   A,#06H,JGDWBXS1 
             LJMP   JGDWXS1 
JGDWBXS1:    MOV    A,#95H 
             LCALL  WRITE_COM 
             MOV    DPTR,#CHINESE7 
             LCALL  WRITE_HZ2 
             LJMP   DISPLAY 
JGDWXS1:     MOV    A,#95H 
             LCALL  WRITE_COM 
             MOV    DPTR,#CHINESE10 
             LCALL  WRITE_HZ2 
             LJMP   DISPLAY 
                    
LCD2:        MOV    70H,DIS7 
             MOV    71H,DIS6 
             MOV    72H,DIS5 
             MOV    73H,DIS4 
             MOV    74H,DIS3 
             MOV    75H,#0BH 
             MOV    76H,DIS2 
             MOV    77H,DIS1 
             MOV    78H,DIS0 
              
             MOV    A,GNCDT 
             CJNE   A,#06H,JGDWBXS2 
             LJMP   JGDWXS2 
JGDWBXS2: 
             MOV    A,#95H 
             LCALL  WRITE_COM 
             MOV    DPTR,#CHINESE8 
             LCALL  WRITE_HZ2 
             LJMP   DISPLAY              

JGDWXS2:     MOV    A,#95H 
             LCALL  WRITE_COM 
             MOV    DPTR,#CHINESE11 
             LCALL  WRITE_HZ2 
             LJMP   DISPLAY 
              
LCD3:         
             MOV    70H,DIS7 
             MOV    71H,DIS6 
             MOV    72H,#0BH 
             MOV    73H,DIS5 
             MOV    74H,DIS4 
             MOV    75H,DIS3 
             MOV    76H,DIS2 
             MOV    77H,DIS1 
             MOV    78H,DIS0 
             MOV    A,#95H 
             LCALL  WRITE_COM 
             MOV    DPTR,#CHINESE9 
             LCALL  WRITE_HZ2 
             LJMP   DISPLAY              
              
DISPLAY:     MOV    A,#90H 
             LCALL  WRITE_COM 
             MOV    R1,#6FH 
             MOV    DPTR,#TABLE 
             MOV    R2,#0AH 
             MOV    A,#00H 
MOVCLOP:     MOV    A,@R1              
             MOVC   A,@A+DPTR 
             LCALL  WRITE_DAT 
             INC    R1 
             DJNZ   R2,MOVCLOP 
             LJMP   RESETDIS 
              
RESETDIS:    MOV    A,DIS7              
             CJNE   A,#0AH,RESETDIS1 
             MOV    DIS7,#00H 
RESETDIS1:   MOV    A,DIS6              
             CJNE   A,#0AH,RESETDIS2 
             MOV    DIS6,#00H                          
RESETDIS2:   MOV    A,DIS5             
             CJNE   A,#0AH,RESETDIS3 
             MOV    DIS5,#00H                          
RESETDIS3:   MOV    A,DIS4             
             CJNE   A,#0AH,RESETDIS4 
             MOV    DIS4,#00H              
RESETDIS4:   MOV    A,DIS3             
             CJNE   A,#0AH,RESETDIS5 
             MOV    DIS3,#00H              
RESETDIS5:   MOV    A,DIS2             
             CJNE   A,#0AH,RESETDIS6 
             MOV    DIS2,#00H              
RESETDIS6:   MOV    A,DIS1             
             CJNE   A,#0AH,RESETDIS7 
             MOV    DIS1,#00H              
RESETDIS7:   RET              


;数字编码表 
TABLE:       DB     30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,20H,2EH,3AH,2CH; 
                   ;0   1   2   3   4   5   6   7   8   9       .   :    , 

;汉字编码表 
CHINESE1:    DW     0B1CFH,0D2B5H,0C9E8H,0BCC6H,0B0A0H,03230H,03036H,0B0A0H;毕业设计  2006      
CHINESE2:    DW     0C0EEH,0D6C7H,0C4B1H,02043H,03032H,0B5E7H,0C6F8H,0B0A0H;李智谋 C02电气 
CHINESE3:    DW     0BBF9H,0D3DAH,02044H,04453H,0BCBCH,0CAF5H,0B5C4H,0B0A0H;基于 DDS技术的 
CHINESE4:    DW     0CAFDH,0BFD8H,0D0C5H,0BAC5H,0B7A2H,0C9FAH,0C6F7H,0B0A0H;数控信号发生器 
CHINESE5:    DW     04144H,03938H,03530H,02031H,02D31H,0304DH,0485AH,0B0A0H;AD9850 1-10MHZ 
CHINESE6:    DW     0D5FDH,0CFD2H,0B2A8H,0B0A0H,0C6B5H,0C2CAH,0D6B5H,0B0A0H;正弦波  频率值 
CHINESE7:    DW     02020H,0485AH;  HZ  
CHINESE8:    DW     0204BH,0485AH; KHZ 
CHINESE9:    DW     0204DH,0485AH; MHZ 

CHINESE10:   DW     06D73H,0B0A0H;ms                  
CHINESE11:   DW     02073H,0B0A0H; s                  
CHINESE12:   DW     0C4A3H,0CABDH,0D1A1H,0D4F1H;模式选择                
CHINESE13:   DW     0B7BDH,0CABDH,0D1A1H,0D4F1H;方式选择                
CHINESE14:   DW     0C9E8H,0D6C3H;设置                
CHINESE15:   DW     0C6B5H,0C2CAH;频率                
CHINESE16:   DW     0CFE0H,0CEBBH;相位                
CHINESE17:   DW     0B5E3H,0C6B5H;点频                
CHINESE18:   DW     0C9A8H,0C6B5H;扫频                
CHINESE19:   DW     0CCF8H,0C6B5H;跳频                
                     
CHINESE20:   DW     0D4F6H,0C1BFH;增量                
CHINESE21:   DW     0B7BDH,0CABDH;方式                
CHINESE22:   DW     0D5FDH,0D4DAH;正在                
CHINESE23:   DW     0BDE1H,0CAF8H;结束                
CHINESE24:   DW     0B7B5H,0BBD8H;返回                
CHINESE25:   DW     0C7EBH,0CAE4H,0C8EBH,0B0A0H;请输入                  
CHINESE26:   DW     0A1E3H,0203AH; 。 :                
CHINESE27:   DW     0B3F5H,0D6B5H;初值                
CHINESE28:   DW     0BCE4H,0B8F4H;间隔                
CHINESE29:   DW     0D6D5H,0D6B5H;终值                
              
CHINESE30:   DW     0CFE0H,0D2C6H;相移         
CHINESE31:   DW     0B0A0H,0B0A0H,0B0A0H;             
CHINESE32:   DW     03A20H;:                         
CHINESE34:   DW     03138H,03020H;180          
CHINESE35:   DW     03930H,02020H;90           
CHINESE36:   DW     03435H,02020H;45           
CHINESE37:   DW     03232H,02E35H;22.5         
CHINESE38:   DW     02031H,0312EH,03235H; 11.25         
CHINESE40:   DW     02E2EH,02E2EH,02E2EH;......         
                                         
;********************************************* 
;              液晶控制程序                  ; 
;********************************************* 
;液晶初始化 
SETUP:       MOV    A,#01H             
             LCALL  WRITE_COM 
             MOV    A,#00110000B             
             LCALL  WRITE_COM 
             MOV    A,#00000010B             
             LCALL  WRITE_COM 
             MOV    A,#00000100B             
             LCALL  WRITE_COM 
             MOV    A,#00001100B             
             LCALL  WRITE_COM 
             MOV    A,#00000001B     
         LCALL  WRITE_COM 
             MOV    A,#10000000B            
             LCALL  WRITE_COM            
             LCALL  DELAY1s 
             RET 
              
;串行命令写入程序              
WRITE_COM:   LCALL  DELAY1ms              
             SETB   CS 
             PUSH   ACC 
             MOV    R0,#8 
             MOV    A,#11111000B 
COMM1:       CLR    C              
             RLC    A 
             MOV    SID,C 
             CLR    SCLK 
             SETB   SCLK 
             DJNZ   R0,COMM1 
             POP    ACC 
             MOV    R5,A 
             ANL    A,#0F0H 
             MOV    R0,#8 
COMM2:       CLR    C              
             RLC    A 
             MOV    SID,C 
             CLR    SCLK 
             SETB   SCLK 
             DJNZ   R0,COMM2              
             MOV    A,R5 
             SWAP   A 
             ANL    A,#0F0H 
             MOV    R0,#8 
COMM3:       CLR    C              
             RLC    A 
             MOV    SID,C 
             CLR    SCLK 
             SETB   SCLK 
             DJNZ   R0,COMM3 
             CLR    CS 
             RET 
                           
;串行数据写入程序              
WRITE_DAT:   LCALL  DELAY1ms              
             SETB   CS 
             PUSH   ACC 
             MOV    R0,#8 
             MOV    A,#11111010B 
DATA1:       CLR    C              
             RLC    A 
             MOV    SID,C 
             CLR    SCLK 
             SETB   SCLK 
             DJNZ   R0,DATA1 
             POP    ACC 
             MOV    R5,A 
             ANL    A,#0F0H 
             MOV    R0,#8 
DATA2:       CLR    C              
             RLC    A 
             MOV    SID,C 
             CLR    SCLK 
             SETB   SCLK 
             DJNZ   R0,DATA2              
             MOV    A,R5 
             SWAP   A 
             ANL    A,#0F0H 
             MOV    R0,#8 
DATA3:       CLR    C              
             RLC    A 
             MOV    SID,C 
             CLR    SCLK 
             SETB   SCLK 
             DJNZ   R0,DATA3 
             CLR    CS 
             RET 
              
;16*16汉字写入程序              
;7个              
WRITE_HZ7:    
             MOV    R4,#7              
DD7:         CLR    A              
             MOVC   A,@A+DPTR 
             INC    DPTR 
             LCALL  WRITE_DAT 
             CLR    A 
             MOVC   A,@A+DPTR 
             INC    DPTR 
             LCALL  WRITE_DAT 
             DJNZ   R4,DD7 
             RET 
              
;4个 
WRITE_HZ4:    
             MOV    R4,#4              
DD4:         CLR    A              
             MOVC   A,@A+DPTR 
             INC    DPTR 
             LCALL  WRITE_DAT 
             CLR    A 
             MOVC   A,@A+DPTR 
             INC    DPTR 
             LCALL  WRITE_DAT 
             DJNZ   R4,DD4 
             RET              
;3个 
WRITE_HZ3:    
             MOV    R4,#3             
DD3:         CLR    A              
             MOVC   A,@A+DPTR 
             INC    DPTR 
             LCALL  WRITE_DAT 
             CLR    A 
             MOVC   A,@A+DPTR 
             INC    DPTR 
             LCALL  WRITE_DAT 
             DJNZ   R4,DD3 
             RET              
;2个 
WRITE_HZ2:    
             MOV    R4,#2             
DD2:         CLR    A              
             MOVC   A,@A+DPTR 
             INC    DPTR 
             LCALL  WRITE_DAT 
             CLR    A 
             MOVC   A,@A+DPTR 
             INC    DPTR 
             LCALL  WRITE_DAT 
             DJNZ   R4,DD2 
             RET              
;1个              
WRITE_HZ1:    
             MOV    R4,#1             
DD1:         CLR    A              
             MOVC   A,@A+DPTR 
             INC    DPTR 
             LCALL  WRITE_DAT 
             CLR    A 
             MOVC   A,@A+DPTR 
             INC    DPTR 
             LCALL  WRITE_DAT 
             DJNZ   R4,DD1 
             RET              
              
;**********************************************              
;                 延时程序                    ;             
;**********************************************              
;1ms     1,002us              
DELAY1ms:    MOV    R7,#5BH 
D1ms:        MOV    R6,#04H 
             DJNZ   R6,$ 
             DJNZ   R7,D1ms 
             RET 

;10ms     10,019us              
DELAY10ms:   MOV    R7,#0E9H 
D10ms:       MOV    R6,#14H 
             DJNZ   R6,$ 
             DJNZ   R7,D10ms 
             RET 

;100ms     100,231us              
DELAY100ms:  MOV    R5,#0AH 
D100ms:      LCALL  DELAY10ms 
             DJNZ   R5,D100ms 
             RET 

;1s        1,002,101us              
DELAY1s:     MOV    R5,#64H 
D1s:         LCALL  DELAY10ms 
             DJNZ   R5,D1s 
             RET 

;10s        10,023,301us              
DELAY10s:    MOV    R4,#64H 
D10s:        LCALL  DELAY100ms 
             DJNZ   R4,D10s 
             RET 

;100s        100,210,301us              
DELAY100s:   MOV    R4,#64H 
D100s:       LCALL  DELAY1s 
             DJNZ   R4,D100s 
             RET 



ZHLIANGPD: 
             LCALL   CON_DIS 
             MOV    A,DIS7                           
             CJNE   A,#00H,DIS7PDADD               
             MOV    A,DIS6                          
             CJNE   A,#02H,DIS6PDADD61             
DIS6PDADD61: JC     DIS6PDADD62                 
             LJMP   DIS6PDADD 
DIS6PDADD62: MOV    A,DIS5                         
             CJNE   A,#00H,DIS5PDADD               
             MOV    A,DIS4                         
             CJNE   A,#00H,DIS4PDADD                            
             CLR    C 
             MOV    A,DIS3                          
             CJNE   A,#02H,DIS3PDADD31                                        
DIS3PDADD31: JC     DIS3PDADD32                 
             LJMP   DIS3PDADD 
DIS3PDADD32: MOV    A,DIS2                         
             CJNE   A,#00H,DIS2PDADD                        
             MOV    A,DIS1 
             CJNE   A,#00H,DIS1PDADD 
             LJMP   DIS0PDADD 
              
DIS7PDADD:      LJMP   LCD3ADD              

DIS6PDADD:      LJMP   LCD3ADD              

DIS5PDADD:      LJMP   LCD2ADD              

DIS4PDADD:      LJMP   LCD2ADD              

DIS3PDADD:      LJMP   LCD2ADD              

DIS2PDADD:      LJMP   LCD1ADD              

DIS1PDADD:      LJMP   LCD1ADD              

DIS0PDADD:      LJMP   LCD1ADD 
                       
LCD3ADD:     MOV      ZHLIANG0,#7CH    ;1,000,000        
             MOV      ZHLIANG1,#0E4H   ; 
             MOV      ZHLIANG2,#1EH    ; 
             MOV      ZHLIANG3,#05H    ; 
             RET 
                              
LCD2ADD:     MOV      ZHLIANG0,#96H    ;1,000         
             MOV      ZHLIANG1,#4FH    ; 
             MOV      ZHLIANG2,#01H    ; 
             MOV      ZHLIANG3,#00H    ; 
             RET 
                         
LCD1ADD:     MOV      ZHLIANG0,#55H    ;1      
             MOV      ZHLIANG1,#00H    ;  
             MOV      ZHLIANG2,#00H    ; 
             MOV      ZHLIANG3,#00H    ; 
             RET  
                  
ZHLIANGPD2: 
             LCALL   CON_DIS 
             MOV    A,DIS7                           
             CJNE   A,#00H,LXDIS7PDADD               
             MOV    A,DIS6                          
             CJNE   A,#02H,LXDIS6PDADD61             
LXDIS6PDADD61:  
             JC     LXDIS6PDADD62                 
             LJMP   LXDIS6PDADD 
LXDIS6PDADD62:  
             MOV    A,DIS5                         
             CJNE   A,#00H,LXDIS5PDADD               
             MOV    A,DIS4                         
             CJNE   A,#00H,LXDIS4PDADD                            
             CLR    C 
             MOV    A,DIS3                          
             CJNE   A,#09H,LXDIS3PDADD31                                        
LXDIS3PDADD31:  
             JC     LXDIS3PDADD32                 
             LJMP   LXDIS3PDADD 
LXDIS3PDADD32:  
             MOV    A,DIS2                         
             CJNE   A,#00H,LXDIS2PDADD                        
             MOV    A,DIS1 
             CJNE   A,#00H,LXDIS1PDADD 
             LJMP   LXDIS0PDADD 
              
LXDIS7PDADD:      LJMP   LXLCD3ADD              

LXDIS6PDADD:      LJMP   LXLCD3ADD              

LXDIS5PDADD:      LJMP   LXLCD2ADD              

LXDIS4PDADD:      LJMP   LXLCD2ADD              

LXDIS3PDADD:      LJMP   LXLCD2ADD              

LXDIS2PDADD:      LJMP   LXLCD1ADD              

LXDIS1PDADD:      LJMP   LXLCD1ADD              

LXDIS0PDADD:      LJMP   LXLCD1ADD 
                       
LXLCD3ADD:     MOV      ZHLIANG0,#7CH    ;1,000,000        
               MOV      ZHLIANG1,#0E4H   ; 
               MOV      ZHLIANG2,#1EH    ; 
               MOV      ZHLIANG3,#05H    ; 
               RET 
                              
LXLCD2ADD:     MOV      ZHLIANG0,#4BH    ;9,000  #0E2H       
               MOV      ZHLIANG1,#0CCH   ;       #1BH  
               MOV      ZHLIANG2,#0BH    ;       #0DH 
               MOV      ZHLIANG3,#00H    ;       #00H  
               RET 
                         
LXLCD1ADD:     MOV      ZHLIANG0,#5BH    ;10     
               MOV      ZHLIANG1,#03H    ;  
               MOV      ZHLIANG2,#00H    ; 
               MOV      ZHLIANG3,#00H    ; 
               RET  
              
;*********************************************              
;               频率控制程序                 ;       
;*********************************************              
CSDPADD:     LCALL   DELAY100ms              
             LCALL   DELAY100ms 
             LCALL   DELAY100ms 
             CLR     LB 
             MOV     A,CON3 
             CLR     C 
             ;CJNE    A,#2FH,CSDPADD1        ;晶振125M 最大频率限制FDDSmax=23.4MHZ   M=30000000H 
             CJNE    A,#4FH,CSDPADD1        ;晶振50M  最大频率限制FDDSmax=15MHZ     M=50000000H 
CSDPADD1:    JC      CSDPADD2              
             MOV     CON0,#0FFH 
             MOV     CON1,#0FFH 
             MOV     CON2,#0FFH 
             MOV     CON3,#4FH 
             LCALL   SEND9850       ;写入AD9850                                 
             LCALL   CON_DIS        ;控制字转频率字 
             LCALL   DISPLCD 
             SETB    LB 
             RET 
              
CSDPADD2:    JNB     KW3,CSDPADDLX           
             ;MOV     A,#22H                  ;125MHZ     50MHZ,55H 
             LCALL   ZHLIANGPD              
             MOV     A,ZHLIANG0 
             CLR     C 
             ADD     A,CON0 
             MOV     CON0,A 
             MOV     A,ZHLIANG1 
             ADDC    A,CON1 
             MOV     CON1,A 
             MOV     A,ZHLIANG2 
             ADDC    A,CON2 
             MOV     CON2,A 
             MOV     A,ZHLIANG3 
             ADDC    A,CON3 
             MOV     CON3,A 
             LJMP    ADDPLAY11 
CSDPADDLX:   MOV     A,CON3              
             CLR     C 
             CJNE    A,#4FH,CSDPADD11 
CSDPADD11:   JC      CSDPADD22              
             MOV     CON0,#0FFH 
             MOV     CON1,#0FFH 
             MOV     CON2,#0FFH 
             MOV     CON3,#4FH 
             LCALL   SEND9850       ;写入AD9850                                 
             LCALL   CON_DIS        ;控制字转频率字 
             LCALL   DISPLCD 
             SETB    LB 
             RET              
CSDPADD22:    
             LCALL   ZHLIANGPD2   
             MOV     A,ZHLIANG0               
             CLR     C 
             ADD     A,CON0 
             MOV     CON0,A 
             MOV     A,ZHLIANG1 
             ADDC    A,CON1 
             MOV     CON1,A 
             MOV     A,ZHLIANG2 
             ADDC    A,CON2 
             MOV     CON2,A 
             MOV     A,ZHLIANG3 
             ADDC    A,CON3 
             MOV     CON3,A              
             LCALL   SEND9850       ;写入AD9850                                 
             LCALL   CON_DIS        ;控制字转频率字 
             LCALL   DISPLCD  
             JNB     KW3,CSDPADDLX 
             LCALL   DELAY1s 
             SETB    LB 
MAIN1:       RET              
              
CSDPSUBB:    LCALL   DELAY100ms              
             LCALL   DELAY100ms 
             LCALL   DELAY100ms 
             CLR     LB 
             MOV     A,CON3 
             CJNE    A,#00H,CSDPSUBB1         
             MOV     A,CON2 
             CJNE    A,#00H,CSDPSUBB1 
             MOV     A,CON1 
             CJNE    A,#00H,CSDPSUBB1 
             MOV     A,CON0 
             CLR     C 
             ;CJNE    A,#22H,CSDPSUBB2        ;50MHZ,55H       
             CJNE    A,#55H,CSDPSUBB2  
             LJMP    MAIN11                   ;CSDPSUBB1 
CSDPSUBB2:   JC      MAIN11                          
CSDPSUBB1:   JNB     KW4,CSDPSUBBLX           
             LCALL   ZHLIANGPD 
             MOV     A,CON0 
             CLR     C 
             SUBB    A,ZHLIANG0 
             MOV     CON0,A 
             MOV     A,CON1 
             SUBB    A,ZHLIANG1 
             MOV     CON1,A 
             MOV     A,CON2 
             SUBB    A,ZHLIANG2 
             MOV     CON2,A 
             MOV     A,CON3 
             SUBB    A,ZHLIANG3 
             MOV     CON3,A 
             LJMP    ADDPLAY11 
CSDPSUBBLX:  MOV     A,CON3 
             CJNE    A,#00H,CSDPSUBB3 
             MOV     A,CON2 
             CJNE    A,#00H,CSDPSUBB3 
             MOV     A,CON1 
             CJNE    A,#00H,CSDPSUBB3           
             MOV     A,CON1 
             CLR     C 
             CJNE    A,ZHLIANG1,CSDPSUBB44 
             LJMP    CSDPSUBB33 
CSDPSUBB44:  JC      MAIN11 
             LJMP    CSDPSUBB3              
CSDPSUBB33:  MOV     A,CON0 
             CLR     C 
             CJNE    A,ZHLIANG0,CSDPSUBB4 
             LJMP    CSDPSUBB3 
              
MAIN11:      MOV     CON0,#55H 
             MOV     CON1,#00H 
             MOV     CON2,#00H  
             MOV     CON3,#00H 
             LCALL   SEND9850       ;写入AD9850                                 
             LCALL   CON_DIS        ;控制字转频率字 
             LCALL   DISPLCD 
             SETB    LB 
             LJMP    MAIN1 
              
CSDPSUBB4:   JC      MAIN11              
CSDPSUBB3:    
             LCALL   ZHLIANGPD2 
             MOV     A,CON0 
             CLR     C 
             SUBB    A,ZHLIANG0 
             MOV     CON0,A 
             MOV     A,CON1 
             SUBB    A,ZHLIANG1 
             MOV     CON1,A 
             MOV     A,CON2 
             SUBB    A,ZHLIANG2 
             MOV     CON2,A 
             MOV     A,CON3 
             SUBB    A,ZHLIANG3 
             MOV     CON3,A 
             LCALL   SEND9850       ;写入AD9850                                 
             LCALL   CON_DIS        ;控制字转频率字 
             LCALL   DISPLCD  
             JNB     KW4,CSDPSUBBLX 
             LCALL   DELAY1s 
             SETB    LB             
             RET              
ADDPLAY11:   LCALL   SEND9850              
             LCALL   CON_DIS 
             LCALL   DISPLCD 
             LCALL   DELAY1s 
             SETB    LB 
             RET 


;功能菜单              
GNCDRET:     JNB     KW2,GNCDRET 
             CLR     LED1 
             CLR     EA 
             CLR     ET0 
             CLR     TR0 
             LCALL   SINF 
             LJMP    ADDPLAY 
              
GNCD:        JNB     KW1,GNCD              
GNCD1:       LCALL   SETUP              
             SETB    LED1 
             CLR     LB 
             MOV     A,#80H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE12 
             LCALL   WRITE_HZ4 
             MOV     A,#84H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ1 
             MOV     A,#85H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE14 
             LCALL   WRITE_HZ2 
             SETB    EA 
             SETB    ET0 
             SETB    TR0 
              
             MOV     MSXZT,#01H 
GNCD2:       MOV     GNCDT,#01H              
             JNB     KW1,PFXZ 
             JNB     KW3,MSRR1 
             JNB     KW4,MSRL 
             JNB     KW2,GNCDRET 
             LJMP    GNCD2 
MSRR1:       JNB     KW3,MSRR1              
             LJMP    MSRR 
MSRL:        JNB     KW4,MSRL              
             LJMP    MSRR 
MSRR:        MOV     A,MSXZT              
             CJNE    A,#01H,MSRR11 
             MOV     MSXZT,#02H 
             LJMP    GNCD2 
MSRR11:      MOV     MSXZT,#01H               
             LJMP    GNCD2 
              
PFXZ:         
             JNB     KW1,PFXZ             
             MOV     A,MSXZT 
             CJNE    A,#01H,PZLXZ11 
             LJMP    FFSXZ 
PZLXZ11:      
             LJMP    PZLXZ          
              
FSXZRET:     JNB     KW2,FSXZRET              
             CLR     EA 
             LCALL   SETUP 
             LJMP    GNCD1 
              
FFSXZ:        
             SETB    LED2               
             SETB    LED3 
             CLR     LB 
             CLR     EA 
             LCALL   SETUP 
             MOV     GNCDT,#02H 
             MOV     FSXZT,#01H 
             SETB    EA 
             SETB    TR0 
             SETB    ET0    
FFSXZ1:      MOV     GNCDT,#02H              
              
             JNB     KW1,DSTPXZ 
             JNB     KW3,FSRR 
             JNB     KW4,FSRL 
             JNB     KW2,FSXZRET 
             LJMP    FFSXZ1 
              
FSRR:        JNB     KW3,FSRR              
             MOV     A,FSXZT 
             CJNE    A,#01H,FSRR1 
             MOV     FSXZT,#02H 
             LJMP    FFSXZ1 
FSRR1:        
             CJNE    A,#02H,FSRR2 
             MOV     FSXZT,#03H 
             LJMP    FFSXZ1 
FSRR2:       MOV     FSXZT,#01H              
             LJMP    FFSXZ1 
              
FSRL:        JNB     KW4,FSRL              
             MOV     A,FSXZT 
             CJNE    A,#01H,FSRL1 
             MOV     FSXZT,#03H 
             LJMP    FFSXZ1 
FSRL1:        
             CJNE    A,#02H,FSRL2 
             MOV     FSXZT,#01H 
             LJMP    FFSXZ1 
FSRL2:       MOV     FSXZT,#02H              
             LJMP    FFSXZ1              
              
DSTPXZ:      JNB     KW1,DSTPXZ        
             CLR     EA 
             LCALL   SETUP 
             SETB    EA 
             MOV     A,FSXZT 
             CJNE    A,#01H,DSTPXZ1 
             LJMP    DPSZ 
DSTPXZ1:     CJNE    A,#02H,DSTPXZ2              
             LJMP    SPSZ 
DSTPXZ2:     LJMP    TPSZ         
              
DPSZ:         
               
             CLR     EA 
             CLR     TR0 
             CLR     ET0 
             MOV     A,#82H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE15 
             LCALL   WRITE_HZ2 
             MOV     A,#84H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE14 
             LCALL   WRITE_HZ2 
             MOV     A,#90H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE17 
             LCALL   WRITE_HZ2 
             MOV     A,#92H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE21 
             LCALL   WRITE_HZ2 
             MOV     A,#94H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE40 
             LCALL   WRITE_HZ3 
             LCALL   DELAY1s 
             LCALL   DELAY1s 
             LCALL   SETUP 
             MOV     A,#80H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE22 
             LCALL   WRITE_HZ2 
             MOV     A,#82H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE17 
             LCALL   WRITE_HZ2 
             MOV     A,#84H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE40 
             LCALL   WRITE_HZ3 
             LCALL   DISPLCD 
DPSZ1:       CLR     LED1              
             JNB     KW1,DPOVER 
             JNB     KW3,DPADD 
             JNB     KW4,DPSUBB 
             LJMP    DPSZ1 
DPADD:       LCALL   CSDPADD       
             LJMP    DPSZ1 
DPSUBB:      LCALL   CSDPSUBB      
             LJMP    DPSZ1              
DPOVER:      JNB     KW1,DPOVER        
             LCALL   SETUP 
             MOV     A,#82H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE17 
             LCALL   WRITE_HZ2 
             MOV     A,#84H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE23 
             LCALL   WRITE_HZ2 
             MOV     A,#93H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE24 
             LCALL   WRITE_HZ2 
             LCALL   DELAY1s 
             LCALL   DELAY1s 
             LCALL   DELAY1s 
             LCALL   DELAY1s 
             SETB    LED1 
             SETB    EA 
             SETB    TR0 
             SETB    ET0 
             LJMP    FFSXZ 
              
SPSZRET:     LCALL   DELAY10ms 
             JNB     KW2,SPSZRET 
             MOV     CON3,RCON3              
             MOV     CON2,RCON2 
             MOV     CON1,RCON1 
             MOV     CON0,RCON0 
             LJMP    FFSXZ 
SPSZ:        MOV     RCON3,CON3              
             MOV     RCON2,CON2 
             MOV     RCON1,CON1 
             MOV     RCON0,CON0              
             CLR     EA 
             CLR     TR0 
             CLR     ET0 
             MOV     A,#80H                   ;初值 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE25 
             LCALL   WRITE_HZ3 
             MOV     A,#83H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE18 
             LCALL   WRITE_HZ2 
             MOV     A,#85H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE27 
             LCALL   WRITE_HZ2 
             LCALL   SZCSZ 
             SETB    EA 
             SETB    TR0 
             SETB    ET0 
             CLR     LED2 
             MOV     GNCDT,#04H 
             LCALL   SPSZ1 
             LJMP    SZDIS9 
SPSZ1:       MOV     PLSZT,#08H       
             JNB     KW1,SZDIS6 
             JNB     KW3,DIS7ADD 
             JNB     KW4,DIS7SUBB 
             JNB     KW2,SPSZRET 
             LJMP    SPSZ1 
DIS7ADD:     LCALL   DELAY10ms 
             JNB     KW3,DIS7ADD              
             MOV     A,DIS7 
             LCALL   ADD1 
             MOV     DIS7,A 
             LJMP    SPSZ1 
DIS7SUBB:    LCALL   DELAY10ms 
             JNB     KW4,DIS7SUBB              
             MOV     A,DIS7 
             LCALL   SUBB1 
             MOV     DIS7,A 
             LJMP    SPSZ1 
              
SZDIS6:      LCALL   DELAY10ms 
             JNB     KW1,SZDIS6              
SZDIS61:     MOV     PLSZT,#07H       
             JNB     KW1,SZDIS5 
             JNB     KW3,DIS6ADD 
             JNB     KW4,DIS6SUBB 
             JNB     KW2,SZDIS7 
             LJMP    SZDIS61 
SZDIS7:      LCALL   DELAY10ms 
             JNB     KW2,SZDIS7 
             LJMP    SPSZ1              
DIS6ADD:     LCALL   DELAY10ms 
             JNB     KW3,DIS6ADD              
             MOV     A,DIS6 
             LCALL   ADD1 
             MOV     DIS6,A 
             LJMP    SZDIS61 
DIS6SUBB:    LCALL   DELAY10ms 
             JNB     KW4,DIS6SUBB              
             MOV     A,DIS6 
             LCALL   SUBB1 
             MOV     DIS6,A 
             LJMP    SZDIS61              
              
SZDIS5:      LCALL   DELAY10ms 
             JNB     KW1,SZDIS5              
SZDIS51:     MOV     PLSZT,#06H       
             JNB     KW1,SZDIS4 
             JNB     KW3,DIS5ADD 
             JNB     KW4,DIS5SUBB 
             JNB     KW2,SZDIS62 
             LJMP    SZDIS51 
SZDIS62:     LCALL   DELAY10ms 
             JNB     KW2,SZDIS62 
             LJMP    SZDIS61              
DIS5ADD:     LCALL   DELAY10ms 
             JNB     KW3,DIS5ADD              
             MOV     A,DIS5 
             LCALL   ADD1 
             MOV     DIS5,A 
             LJMP    SZDIS51 
DIS5SUBB:    LCALL   DELAY10ms 
             JNB     KW4,DIS5SUBB              
             MOV     A,DIS5 
             LCALL   SUBB1 
             MOV     DIS5,A 
             LJMP    SZDIS51              
              
SZDIS4:      LCALL   DELAY10ms 
             JNB     KW1,SZDIS4              
SZDIS41:     MOV     PLSZT,#05H       
             JNB     KW1,SZDIS3 
             JNB     KW3,DIS4ADD 
             JNB     KW4,DIS4SUBB 
             JNB     KW2,SZDIS52 
             LJMP    SZDIS41 
SZDIS52:     LCALL   DELAY10ms 
             JNB     KW2,SZDIS52 
             LJMP    SZDIS51              
DIS4ADD:     LCALL   DELAY10ms 
             JNB     KW3,DIS4ADD              
             MOV     A,DIS4 
             LCALL   ADD1 
             MOV     DIS4,A 
             LJMP    SZDIS41 
DIS4SUBB:    LCALL   DELAY10ms 
             JNB     KW4,DIS4SUBB              
             MOV     A,DIS4 
             LCALL   SUBB1 
             MOV     DIS4,A 
             LJMP    SZDIS41              
              
SZDIS3:      LCALL   DELAY10ms 
             JNB     KW1,SZDIS3              
SZDIS31:     MOV     PLSZT,#04H       
             JNB     KW1,SZDIS2 
             JNB     KW3,DIS3ADD 
             JNB     KW4,DIS3SUBB 
             JNB     KW2,SZDIS42 
             LJMP    SZDIS31 
SZDIS42:     LCALL   DELAY10ms 
             JNB     KW2,SZDIS42 
             LJMP    SZDIS41              
DIS3ADD:     LCALL   DELAY10ms 
             JNB     KW3,DIS3ADD              
             MOV     A,DIS3 
             LCALL   ADD1 
             MOV     DIS3,A 
             LJMP    SZDIS31 
DIS3SUBB:    LCALL   DELAY10ms 
             JNB     KW4,DIS3SUBB              
             MOV     A,DIS3 
             LCALL   SUBB1 
             MOV     DIS3,A 
             LJMP    SZDIS31                
              
SZDIS2:      LCALL   DELAY10ms 
             JNB     KW1,SZDIS2              
SZDIS21:     MOV     PLSZT,#03H       
             JNB     KW1,SZDIS1 
             JNB     KW3,DIS2ADD 
             JNB     KW4,DIS2SUBB 
             JNB     KW2,SZDIS32 
             LJMP    SZDIS21 
SZDIS32:     LCALL   DELAY10ms 
             JNB     KW2,SZDIS32 
             LJMP    SZDIS31              
DIS2ADD:     LCALL   DELAY10ms 
             JNB     KW3,DIS2ADD              
             MOV     A,DIS2 
             LCALL   ADD1 
             MOV     DIS2,A 
             LJMP    SZDIS21 
DIS2SUBB:    LCALL   DELAY10ms 
             JNB     KW4,DIS2SUBB              
             MOV     A,DIS2 
             LCALL   SUBB1 
             MOV     DIS2,A 
             LJMP    SZDIS21              
              
SZDIS1:      LCALL   DELAY10ms 
             JNB     KW1,SZDIS1              
SZDIS11:     MOV     PLSZT,#02H       
             JNB     KW1,SZDIS0 
             JNB     KW3,DIS1ADD 
             JNB     KW4,DIS1SUBB 
             JNB     KW2,SZDIS22 
             LJMP    SZDIS11 
SZDIS22:     LCALL   DELAY10ms 
             JNB     KW2,SZDIS22 
             LJMP    SZDIS21              
DIS1ADD:     LCALL   DELAY10ms 
             JNB     KW3,DIS1ADD              
             MOV     A,DIS1 
             LCALL   ADD1 
             MOV     DIS1,A 
             LJMP    SZDIS11 
DIS1SUBB:    LCALL   DELAY10ms 
             JNB     KW4,DIS1SUBB              
             MOV     A,DIS1 
             LCALL   SUBB1 
             MOV     DIS1,A 
             LJMP    SZDIS11                           
              
SZDIS0:      LCALL   DELAY10ms 
             JNB     KW1,SZDIS0              
SZDIS01:     MOV     PLSZT,#01H       
             JNB     KW1,SZDIS99 
             JNB     KW3,DIS0ADD 
             JNB     KW4,DIS0SUBB 
             JNB     KW2,SZDIS12 
             LJMP    SZDIS01 
SZDIS12:     LCALL   DELAY10ms 
             JNB     KW2,SZDIS12 
             LJMP    SZDIS11              
DIS0ADD:     LCALL   DELAY10ms 
             JNB     KW3,DIS0ADD              
             MOV     A,DIS0 
             LCALL   ADD1 
             MOV     DIS0,A 
             LJMP    SZDIS01 
DIS0SUBB:    LCALL   DELAY10ms 
             JNB     KW4,DIS0SUBB              
             MOV     A,DIS0 
             LCALL   SUBB1 
             MOV     DIS0,A 
             LJMP    SZDIS01                           
SZDIS99:     LCALL   DELAY10ms 
             JNB     KW1,SZDIS99 
             RET 

SZCSZ:       MOV     DIS7,#09H 
             MOV     DIS6,#09H 
             MOV     DIS5,#09H 
             MOV     DIS4,#00H 
             MOV     DIS3,#00H 
             MOV     DIS2,#00H 
             MOV     DIS1,#00H 
             MOV     DIS0,#00H 
             RET 
                            
SZDIS9:      CLR     EA        
             CLR     TR0 
             CLR     ET0 
             LCALL   DISBCD_CON 
             MOV     FCON3,CON3 
             MOV     FCON2,CON2 
             MOV     FCON1,CON1 
             MOV     FCON0,CON0 
             LCALL   SETUP 
             MOV     A,#80H                   ;增量 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE25 
             LCALL   WRITE_HZ3 
             MOV     A,#83H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE18 
             LCALL   WRITE_HZ2 
             MOV     A,#85H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE20 
             LCALL   WRITE_HZ2 
             LCALL   SZCSZ 
             SETB    EA 
             SETB    TR0 
             SETB    ET0 
             LCALL   SPSZ1 
             CLR     EA 
             CLR     TR0 
             CLR     ET0 
             LCALL   DISBCD_CON 
             MOV     ZCON3,CON3 
             MOV     ZCON2,CON2 
             MOV     ZCON1,CON1 
             MOV     ZCON0,CON0 
             LCALL   SETUP 
             MOV     A,#80H                   ;间隔 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE25 
             LCALL   WRITE_HZ3 
             MOV     A,#83H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE18 
             LCALL   WRITE_HZ2 
             MOV     A,#85H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE28 
             LCALL   WRITE_HZ2 
             MOV     GNCDT,#06H 
             LCALL   SZCSZ 
             MOV     DIS7,#00H 
             MOV     DIS6,#00H 
             SETB    EA 
             SETB    TR0 
             SETB    ET0             
JGSZDIS5:    MOV     PLSZT,#06H       
             JNB     KW1,JGSZDIS4 
             JNB     KW3,JGDIS5ADD 
             JNB     KW4,JGDIS5SUBB 
             JNB     KW2,SPSZRET1 
             LJMP    JGSZDIS5 
SPSZRET1:    LJMP    SPSZRET                         
JGDIS5ADD:   LCALL   DELAY10ms 
             JNB     KW3,JGDIS5ADD              
             MOV     A,DIS5 
             LCALL   ADD1 
             MOV     DIS5,A 
             LJMP    JGSZDIS5 
JGDIS5SUBB:  LCALL   DELAY10ms 
             JNB     KW4,JGDIS5SUBB              
             MOV     A,DIS5 
             LCALL   SUBB1 
             MOV     DIS5,A 
             LJMP    JGSZDIS5             
JGSZDIS4:    LCALL   SZDIS4             
             CLR     EA 
             CLR     TR0 
             CLR     ET0 
             MOV     JDIS5,DIS5 
             MOV     JDIS4,DIS4 
             MOV     JDIS3,DIS3 
             MOV     JDIS2,DIS2 
             MOV     JDIS1,DIS1 
             MOV     JDIS0,DIS0 
              
             LCALL   SETUP 
             MOV     A,#80H                   ;终值 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE25 
             LCALL   WRITE_HZ3 
             MOV     A,#83H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE18 
             LCALL   WRITE_HZ2 
             MOV     A,#85H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE29 
             LCALL   WRITE_HZ2 
             MOV     GNCDT,#04H 
             LCALL   SZCSZ 
             SETB    EA 
             SETB    TR0 
             SETB    ET0 
             LCALL   SPSZ1 
             CLR     EA 
             CLR     TR0 
             CLR     ET0 
             LCALL   DISBCD_CON 
             MOV     LCON3,CON3 
             MOV     LCON2,CON2 
             MOV     LCON1,CON1 
             MOV     LCON0,CON0 
             LCALL   SETUP 
             MOV     A,#80H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE22 
             LCALL   WRITE_HZ2 
             MOV     A,#82H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE18 
             LCALL   WRITE_HZ2 
             MOV     A,#84H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE40 
             LCALL   WRITE_HZ3 
              
SPJXZ:       MOV     CON3,FCON3              
             MOV     CON2,FCON2 
             MOV     CON1,FCON1 
             MOV     CON0,FCON0 
             LCALL   SEND9850 
             LCALL   CON_DIS 
             LCALL   DISPLCD 
             LCALL   SPJGJS 
             LCALL   SPZLJS 
             CLR     C 
             MOV     A,FCON3 
             CJNE    A,LCON3,SPJXZ11 
             LJMP    SPJXZ2 
SPJXZ11:     JC      SPJXZ0              
             LJMP    SPJXZ00 
              
SPJXZ2:      CLR     C 
             MOV     A,FCON2 
             CJNE    A,LCON2,SPJXZ11 
             LJMP    SPJXZ3 
SPJXZ3:      CLR     C 
             MOV     A,FCON1 
             CJNE    A,LCON1,SPJXZ11 
             LJMP    SPJXZ4              
SPJXZ4:      CLR     C 
             MOV     A,FCON0 
             CJNE    A,LCON0,SPJXZ11 
             LJMP    SPJXZ00              
SPJXZ0:      LJMP    SPJXZ              
SPJXZ00:     MOV     CON3,LCON3              
             MOV     CON2,LCON2 
             MOV     CON1,LCON1 
             MOV     CON0,LCON0              
             LCALL   SEND9850 
             LCALL   CON_DIS 
             LCALL   DISPLCD 
             MOV     A,#80H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE18 
             LCALL   WRITE_HZ2 
             MOV     A,#82H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE23 
             LCALL   WRITE_HZ2 
             MOV     A,#84H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ2 
             MOV     A,#85H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE24 
             LCALL   WRITE_HZ2 
             MOV     GNCDT,#07H 
             SETB    EA 
             SETB    TR0 
             SETB    ET0 
SPJSRET:     JNB     KW1,SPJXERT1              
             LJMP    SPJSRET 
SPJXERT1:    JNB     KW1,SPJXERT1              
             CLR     EA 
             CLR     TR0 
             CLR     ET0 
             LJMP    FFSXZ 
              
SPJGJS:      INC     JDIS5              
             INC     JDIS4 
             INC     JDIS3 
             INC     JDIS2 
             INC     JDIS1 
             INC     JDIS0 
JG1:         DJNZ    JDIS5,JG11              
JG2:         DJNZ    JDIS4,JG22              
JG3:         DJNZ    JDIS3,JG33              
JG4:         DJNZ    JDIS2,JG44              
JG5:         DJNZ    JDIS1,JG55              
JG6:         DJNZ    JDIS0,JG66                         
             RET 
JG11:        LCALL   DELAY100s              
             LJMP    JG1 
JG22:        LCALL   DELAY10s              
             LJMP    JG2              
JG33:        LCALL   DELAY1s              
             LJMP    JG3              
JG44:        LCALL   DELAY100ms              
             LJMP    JG4              
JG55:        LCALL   DELAY10ms              
             LJMP    JG5              
JG66:        LCALL   DELAY1ms              
             LJMP    JG6                          
              
SPZLJS:      CLR     C              
             MOV     A,FCON0 
             ADD     A,ZCON0 
             MOV     FCON0,A 
             MOV     A,FCON1 
             ADDC    A,ZCON1 
             MOV     FCON1,A 
             MOV     A,FCON2 
             ADDC    A,ZCON2 
             MOV     FCON2,A 
             MOV     A,FCON3 
             ADDC    A,ZCON3 
             MOV     FCON3,A 
             RET 
;加法程序 
ADD1:        ADD     A,#01H 
             CJNE    A,#0AH,ADD2 
             CLR     A 
ADD2:        RET                          
;减法程序              
SUBB1:       SUBB    A,#01H 
             CJNE    A,#0FFH,SUBB2 
             MOV     A,#09H 
SUBB2:       RET              
              
              
TPSZ:        CLR     EA              
             CLR     TR0 
             CLR     ET0 
             MOV     A,#80H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE25 
             LCALL   WRITE_HZ3 
             MOV     A,#83H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE19 
             LCALL   WRITE_HZ2 
             MOV     A,#85H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE29 
             LCALL   WRITE_HZ2 
             CLR     LED3 
             MOV     RCON3,CON3              
             MOV     RCON2,CON2 
             MOV     RCON1,CON1 
             MOV     RCON0,CON0 
             LCALL   SZCSZ 
             MOV     GNCDT,#05H 
             SETB    EA 
             SETB    TR0 
             SETB    ET0 
             LCALL   SPSZ1 
             CLR     EA 
             CLR     TR0 
             CLR     ET0 
             LCALL   DISBCD_CON 
             LCALL   SEND9850 
             LCALL   CON_DIS 
             LCALL   DISPLCD 
             MOV     A,#80H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE19 
             LCALL   WRITE_HZ2 
             MOV     A,#82H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE23 
             LCALL   WRITE_HZ2 
             MOV     A,#84H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ2 
             MOV     A,#85H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE24 
             LCALL   WRITE_HZ2 
             MOV     GNCDT,#08H 
             SETB    EA 
             SETB    TR0 
             SETB    ET0 
TPJSRET:     JNB     KW1,TPJSRET1 
             LJMP    TPJSRET 
TPJSRET1:    JNB     KW1,TPJSRET1              
             SETB    LED3 
             CLR     EA 
             CLR     TR0 
             CLR     ET0 
             LJMP    FFSXZ 
              
PZLXZ:       SETB    EA 
             SETB    TR0 
             SETB    ET0              
              
             CLR     EA 
             LCALL   SETUP 
             SETB    EA 
              
             CLR     LED3 
             MOV     GNCDT,#03H 
             MOV     XWZLT,#01H 
PZLXZ1:      JNB     KW1,XWZLXZ               
             JNB     KW3,ZLRR 
             JNB     KW4,ZLRL 
             JNB     KW2,PZLXZRET 
             LJMP    PZLXZ1 
PZLXZRET:    JNB     KW2,PZLXZRET              
             SETB    LED3 
             CLR     EA 
             CLR     TR0 
             CLR     ET0 
             LJMP    GNCD1 
              
ZLRR:        JNB     KW3,ZLRR              
             MOV     A,XWZLT 
             CJNE    A,#01H,ZLRR1 
             MOV     XWZLT,#02H 
             LJMP    PZLXZ1 
ZLRR1:       CJNE    A,#02H,ZLRR2 
             MOV     XWZLT,#03H 
             LJMP    PZLXZ1       
ZLRR2:       CJNE    A,#03H,ZLRR3 
             MOV     XWZLT,#04H 
             LJMP    PZLXZ1              
ZLRR3:       CJNE    A,#04H,ZLRR4 
             MOV     XWZLT,#05H 
             LJMP    PZLXZ1              
ZLRR4:       MOV     XWZLT,#01H 
             LJMP    PZLXZ1       
              
ZLRL:        JNB     KW4,ZLRL             
             MOV     A,XWZLT 
             CJNE    A,#01H,ZLRL1 
             MOV     XWZLT,#05H 
             LJMP    PZLXZ1 
ZLRL1:       CJNE    A,#02H,ZLRL2 
             MOV     XWZLT,#01H 
             LJMP    PZLXZ1       
ZLRL2:       CJNE    A,#03H,ZLRL3 
             MOV     XWZLT,#02H 
             LJMP    PZLXZ1              
ZLRL3:       CJNE    A,#04H,ZLRL4 
             MOV     XWZLT,#03H 
             LJMP    PZLXZ1              
ZLRL4:       MOV     XWZLT,#04H 
             LJMP    PZLXZ1              
XWZLXZ:      JNB     KW1,XWZLXZ              
             CLR     EA 
             CLR     TR0 
             CLR     ET0 
             CLR     A 
             MOV     PHASE,A 
             LCALL   SETUP 
             MOV     A,#80H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE30 
             LCALL   WRITE_HZ2 
             MOV     A,#82H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE20 
             LCALL   WRITE_HZ2 
             MOV     A,#90H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE16 
             LCALL   WRITE_HZ2 
             MOV     A,#96H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE26 
             LCALL   WRITE_HZ1 
             MOV     A,#92H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE32 
             LCALL   WRITE_HZ1 
             MOV     A,XWZLT 
             CJNE    A,#01H,XWZLXZ2 
             LJMP    ZL180SZ 
XWZLXZ2:     CJNE    A,#02H,XWZLXZ3 
             LJMP    ZL90SZ             
XWZLXZ3:     CJNE    A,#03H,XWZLXZ4 
             LJMP    ZL45SZ              
XWZLXZ4:     CJNE    A,#04H,XWZLXZ5 
             LJMP    ZL225SZ              
XWZLXZ5:     LJMP    ZL1125SZ         
              
ZL180SZ:     MOV     A,#84H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE34 
             LCALL   WRITE_HZ2         
             MOV     PHCON1,#04H;1125 
             MOV     PHCON0,#65H; 
             ;MOV     PHCON1,#46H;18000 
             ;MOV     PHCON0,#50H; 
ZL180SZ1:    JNB     KW1,PHOVER          
             JNB     KW3,PH180ADD 
             JNB     KW4,PH180SUBB 
             LCALL   SEND9850PH 
             LCALL   PHCON_DIS 
             LCALL   PHDISPLCD 
             LJMP    ZL180SZ1 
PHOVER:      JNB     KW1,PHOVER        
             CLR     EA 
             LCALL   SETUP 
             MOV     A,#82H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE30 
             LCALL   WRITE_HZ2 
             MOV     A,#84H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE23 
             LCALL   WRITE_HZ2 
             MOV     A,#93H 
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE24 
             LCALL   WRITE_HZ2 
             LCALL   DELAY1s 
             LCALL   DELAY1s 
             LCALL   DELAY1s 
             LJMP    PZLXZ 
PH180ADD:    JNB     KW3,PH180ADD              
             MOV     B,#10H 
             LCALL   ADDPH 
             LJMP    ZL180SZ1 
PH180SUBB:   JNB     KW4,PH180SUBB             
             MOV     B,#10H 
             LCALL   SUBBPH 
             LJMP    ZL180SZ1 
                           
ADDPH:       MOV     A,PHASE              
             ADD     A,B 
             MOV     PHASE,A 
             CJNE    A,#20H,ADDPH1 
             CLR     A 
             MOV     PHASE,A 
ADDPH1:      RET        
              
SUBBPH:      CLR     C        
             MOV     A,PHASE 
             SUBB    A,B 
             MOV     PHASE,A 
             JC      SUBBPH2 
             RET 
SUBBPH2:     CJNE    A,#0FFH,SUBBPH3              
             MOV     PHASE,#1FH 
             RET 
SUBBPH3:     CJNE    A,#0FEH,SUBBPH4              
             MOV     PHASE,#1EH 
             RET              
SUBBPH4:     CJNE    A,#0FCH,SUBBPH5              
             MOV     PHASE,#1CH 
             RET              
SUBBPH5:     CJNE    A,#0F8H,SUBBPH6             
             MOV     PHASE,#18H 
             RET              
SUBBPH6:     MOV     PHASE,#10H 
             RET              
              
              
PHCON_DIS:   MOV     R3,PHCON1              
             MOV     R2,PHCON0 
             MOV     R1,#00H 
             MOV     R0,PHASE 
             LCALL   MUL2BY2 
             MOV     R3,#27H;10,000 
             MOV     R2,#10H; 
             LCALL   DIV4BY2 
             MOV     PHDIS4,R4 
             MOV     A,R1 
             MOV     R5,A 
             MOV     A,R0 
             MOV     R4,A 
             MOV     R3,#03H;1,000 
             MOV     R2,#0E8H; 
             LCALL   DIV4BY2 
             MOV     PHDIS3,R4 
             MOV     A,R1 
             MOV     R5,A 
             MOV     A,R0 
             MOV     R4,A 
             MOV     R3,#00H;100 
             MOV     R2,#64H; 
             LCALL   DIV4BY2 
             MOV     PHDIS2,R4 
             MOV     A,R1 
             MOV     R5,A 
             MOV     A,R0 
             MOV     R4,A 
             MOV     R3,#00H;10 
             MOV     R2,#0AH; 
             LCALL   DIV4BY2 
             MOV     PHDIS1,R4 
             MOV     PHDIS0,R0 
             RET 
              
PHDISPLCD:               
             MOV    A,PHDIS4                         
             CJNE   A,#00H,PHDIS4PD  
             MOV    PHDIS4,#0AH              
             MOV    A,PHDIS3                          
             CJNE   A,#00H,PHDIS3PD  
             MOV    PHDIS3,#0AH             
             MOV    A,PHDIS2                         
             CJNE   A,#00H,PHDIS2PD  
             MOV    PHDIS2,#0AH              
             MOV    A,PHDIS1 
             CJNE   A,#00H,PHDIS1PD 
             MOV    PHDIS1,#0AH 
             LJMP   PHDIS0PD 
                           
PHDIS4PD:    LJMP   PHLCD2              
PHDIS3PD:    LJMP   PHLCD2              
PHDIS2PD:    LJMP   PHLCD2              
PHDIS1PD:    LJMP   PHLCD1              
PHDIS0PD:    LJMP   PHLCD1                          
              
PHLCD2:      MOV    70H,PHDIS4 
             MOV    71H,PHDIS3 
             MOV    72H,PHDIS2 
             MOV    73H,#0BH 
             MOV    74H,PHDIS1 
             MOV    75H,PHDIS0 
             LJMP   PHDISPLAY 
              
PHLCD1:      MOV    70H,PHDIS4 
             MOV    71H,PHDIS3 
             MOV    72H,PHDIS2 
             MOV    73H,#0AH 
             MOV    74H,PHDIS1 
             MOV    75H,PHDIS0 
             LJMP   PHDISPLAY 
  
PHDISPLAY:   MOV    A,#93H 
             LCALL  WRITE_COM 
             MOV    R1,#70H 
             MOV    DPTR,#TABLE 
             MOV    R2,#06H 
             MOV    A,#00H 
PHMOVCLOP:   MOV    A,@R1              
             MOVC   A,@A+DPTR 
             LCALL  WRITE_DAT 
             INC    R1 
             DJNZ   R2,PHMOVCLOP 
             MOV    A,PHDIS4             
             CJNE   A,#0AH,RPHDIS1 
             MOV    PHDIS4,#00H 
RPHDIS1:     MOV    A,PHDIS3             
             CJNE   A,#0AH,RPHDIS2 
             MOV    PHDIS3,#00H              
RPHDIS2:     MOV    A,PHDIS2             
             CJNE   A,#0AH,RPHDIS3 
             MOV    PHDIS2,#00H              
RPHDIS3:     MOV    A,PHDIS1             
             CJNE   A,#0AH,RPHDIS4 
             MOV    PHDIS1,#00H              
RPHDIS4:     RET              
              
ZL90SZ:      MOV     A,#84H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE35 
             LCALL   WRITE_HZ2         
             MOV     PHCON1,#04H;1125 
             MOV     PHCON0,#65H; 
             ;MOV     PHCON1,#23H;9000 
             ;MOV     PHCON0,#28H; 
ZL90SZ1:     JNB     KW1,PHOVER1          
             JNB     KW3,PH90ADD 
             JNB     KW4,PH90SUBB 
             LCALL   SEND9850PH 
             LCALL   PHCON_DIS 
             LCALL   PHDISPLCD 
             LJMP    ZL90SZ1              
        
PH90ADD:     JNB     KW3,PH90ADD              
             MOV     B,#08H 
             LCALL   ADDPH 
             LJMP    ZL90SZ1 
PH90SUBB:    JNB     KW4,PH90SUBB             
             MOV     B,#08H 
             LCALL   SUBBPH 
             LJMP    ZL90SZ1              
              
ZL45SZ:      MOV     A,#84H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE36 
             LCALL   WRITE_HZ2         
             MOV     PHCON1,#04H;1125 
             MOV     PHCON0,#65H; 
             ;MOV     PHCON1,#11H;4500 
             ;MOV     PHCON0,#94H; 
ZL45SZ1:     JNB     KW1,PHOVER1          
             JNB     KW3,PH45ADD 
             JNB     KW4,PH45SUBB 
             LCALL   SEND9850PH 
             LCALL   PHCON_DIS 
             LCALL   PHDISPLCD 
             LJMP    ZL45SZ1                     
PH45ADD:     JNB     KW3,PH45ADD              
             MOV     B,#04H 
             LCALL   ADDPH 
             LJMP    ZL45SZ1 
PH45SUBB:    JNB     KW4,PH45SUBB             
             MOV     B,#04H 
             LCALL   SUBBPH 
             LJMP    ZL45SZ1              
PHOVER1:     LJMP    PHOVER              
ZL225SZ:     MOV     A,#84H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE37 
             LCALL   WRITE_HZ2         
             MOV     PHCON1,#04H;1125 
             MOV     PHCON0,#65H; 
             ;MOV     PHCON1,#08H;2250 
             ;MOV     PHCON0,#0CAH; 
ZL225SZ1:    JNB     KW1,PHOVER1          
             JNB     KW3,PH225ADD 
             JNB     KW4,PH225SUBB 
             LCALL   SEND9850PH 
             LCALL   PHCON_DIS 
             LCALL   PHDISPLCD 
             LJMP    ZL225SZ1                     
PH225ADD:    JNB     KW3,PH225ADD              
             MOV     B,#02H 
             LCALL   ADDPH 
             LJMP    ZL225SZ1 
PH225SUBB:   JNB     KW4,PH225SUBB             
             MOV     B,#02H 
             LCALL   SUBBPH 
             LJMP    ZL225SZ1              
              
ZL1125SZ:    MOV     A,#84H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE38 
             LCALL   WRITE_HZ3         
             MOV     PHCON1,#04H;1125 
             MOV     PHCON0,#65H; 
ZL1125SZ1:   JNB     KW1,PHOVER1          
             JNB     KW3,PH1125ADD 
             JNB     KW4,PH1125SUBB 
             LCALL   SEND9850PH 
             LCALL   PHCON_DIS 
             LCALL   PHDISPLCD 
             LJMP    ZL1125SZ1                     
PH1125ADD:   JNB     KW3,PH1125ADD              
             MOV     B,#01H 
             LCALL   ADDPH 
             LJMP    ZL1125SZ1 
PH1125SUBB:  JNB     KW4,PH1125SUBB             
             MOV     B,#01H 
             LCALL   SUBBPH 
             LJMP    ZL1125SZ1              

;设置闪烁中断              
INTT0:       PUSH    ACC              
             PUSH    PSW 
             CLR     EA 
             CLR     TR0 
             CLR     ET0 
             MOV     TL0,#0B0H;50ms 
             MOV     TH0,#3CH; 定时 
             DJNZ    IT03,INTOUT 
             MOV     IT03,#06H 
             LJMP    SSWPD 
INTOUT:      SETB    EA              
             SETB    TR0 
             SETB    ET0 
             POP     PSW  
             POP     ACC 
             RETI 
              
SSWPD:       MOV     A,GNCDT              
             CJNE    A,#01H,SSWPD1 
             LJMP    SSMSP
SSWPD1:      CJNE    A,#02H,SSWPD2 
              
             LJMP    SSFSPD              
SSWPD2:      CJNE    A,#03H,SSWPD3 
             LJMP    SSXWPD              
SSWPD3:      CJNE    A,#04H,SSWPD4 
             LJMP    SSSPPD              
SSWPD4:      CJNE    A,#05H,SSWPD5 
             LJMP    SSTPPD              
SSWPD5:      CJNE    A,#06H,SSWPD6 
             LJMP    SSJGPD              
SSWPD6:      CJNE    A,#07H,SSWPD7 
             LJMP    SSFHPDS              
SSWPD7:      LJMP    SSFHPDT        
              
;跳频闪              
SSTPPD:      LJMP    SSSPPD              
SSFHPDT:     LJMP    SSFHPDS         
              
;模式闪              
SSMSPD:      MOV     A,MSXZT              
             CJNE    A,#01H,SSMSPD1 
             LJMP    SSMSF 
SSMSPD1:     LJMP    SSMSPH         
              
;方式闪              
SSFSPD:      LCALL   SSFSD2              
             MOV     A,FSXZT 
             CJNE    A,#01H,SSFSPD1 
             LJMP    SSFSD 
SSFSPD1:     CJNE    A,#02H,SSFSPD2        
             LJMP    SSFSS 
SSFSPD2:     LJMP    SSFST         
              
;增量闪              
SSXWPD:      LCALL   SSXWD2              
             MOV     A,XWZLT 
             CJNE    A,#01H,SSXWPD1 
             LJMP    SSXW180 
SSXWPD1:     CJNE    A,#02H,SSXWPD2 
             LJMP    SSXW90              
SSXWPD2:     CJNE    A,#03H,SSXWPD3 
             LJMP    SSXW45              
SSXWPD3:     CJNE    A,#04H,SSXWPD4 
             LJMP    SSXW225              
SSXWPD4:     LJMP    SSXW1125        
              
;扫频闪              
SSSPPD:      MOV     A,PLSZT              
             CJNE    A,#01H,SSSPPD1 
             LJMP    SSSP0 
SSSPPD1:     CJNE    A,#02H,SSSPPD2 
             LJMP    SSSP1         
SSSPPD2:     CJNE    A,#03H,SSSPPD3 
             LJMP    SSSP2              
SSSPPD3:     CJNE    A,#04H,SSSPPD4 
             LJMP    SSSP3              
SSSPPD4:     CJNE    A,#05H,SSSPPD5 
             LJMP    SSSP4              
SSSPPD5:     CJNE    A,#06H,SSSPPD6 
             LJMP    SSSP5              
SSSPPD6:     CJNE    A,#07H,SSSPPD7 
             LJMP    SSSP6              
SSSPPD7:     LJMP    SSSP7        
              
;调间隔闪              
SSJGPD:      LJMP    SSSPPD              
              
;扫调频返回闪              
SSFHPDS:     CPL     00H              
             JB      00H,SSFHPDS1 
             MOV     A,#85H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE24 
             LCALL   WRITE_HZ2 
             LJMP    INTOUT 
SSFHPDS1:    MOV     A,#85H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ2 
             LJMP    INTOUT          
              
;模频闪              
SSMSF:       CPL     00H              
             JB      00H,SSMSF1 
             MOV     A,#91H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE15 
             LCALL   WRITE_HZ2 
             MOV     A,#95H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE16 
             LCALL   WRITE_HZ2 
             LJMP    INTOUT 
SSMSF1:      MOV     A,#91H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ2 
             MOV     A,#95H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE16 
             LCALL   WRITE_HZ2 
             LJMP    INTOUT        
              
;模相闪              
SSMSPH:      CPL     00H              
             JB      00H,SSMSPH1 
             MOV     A,#91H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE15 
             LCALL   WRITE_HZ2 
             MOV     A,#95H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE16 
             LCALL   WRITE_HZ2 
             LJMP    INTOUT 
SSMSPH1:     MOV     A,#91H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE15 
             LCALL   WRITE_HZ2 
             MOV     A,#95H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ2 
             LJMP    INTOUT              
              
;方点闪              
SSFSD:       CPL     00H              
             JB      00H,SSFSD1 
             LCALL   SSFSD2 
             LJMP    INTOUT 
              
SSFSD2:      MOV     A,#80H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE13 
             LCALL   WRITE_HZ4 
             MOV     A,#84H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE32 
             LCALL   WRITE_HZ1        
             MOV     A,#85H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE17 
             LCALL   WRITE_HZ2 
             MOV     A,#91H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE18 
             LCALL   WRITE_HZ2 
             MOV     A,#94H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE19 
             LCALL   WRITE_HZ2 
             RET 

SSFSD1:      MOV     A,#85H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ2        
             LJMP    INTOUT 
              
SSFSS:       CPL     00H       
             JB      00H,SSFSS1 
             LCALL   SSFSD2 
             LJMP    INTOUT 
              
SSFSS1:      MOV     A,#91H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ2        
             LJMP    INTOUT 
              
SSFST:       CPL     00H              
             JB      00H,SSFST1 
             LCALL   SSFSD2 
             LJMP    INTOUT 
SSFST1:      MOV     A,#94H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ2        
             LJMP    INTOUT 
              
SSXWD2:      MOV     A,#80H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE20 
             LCALL   WRITE_HZ2 
             MOV     A,#82H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE26 
             LCALL   WRITE_HZ2        
             MOV     A,#84H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE34 
             LCALL   WRITE_HZ2 
             MOV     A,#86H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE35 
             LCALL   WRITE_HZ1 
             MOV     A,#90H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE36 
             LCALL   WRITE_HZ2              
             MOV     A,#92H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE37 
             LCALL   WRITE_HZ2 
             MOV     A,#94H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE38 
             LCALL   WRITE_HZ3 
             RET 
  
SSXW180:     CPL     00H 
             JB      00H,SSXW1801 
             LCALL   SSXWD2 
             LJMP    INTOUT 
SSXW1801:    MOV     A,#84H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ2          
             LJMP    INTOUT 
              
SSXW90:      CPL     00H 
             JB      00H,SSXW901 
             LCALL   SSXWD2 
             LJMP    INTOUT 
SSXW901:     MOV     A,#86H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ2          
             LJMP    INTOUT              
              
SSXW45:      CPL     00H 
             JB      00H,SSXW451 
             LCALL   SSXWD2 
             LJMP    INTOUT 
SSXW451:     MOV     A,#90H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ2          
             LJMP    INTOUT              
              
SSXW225:     CPL     00H 
             JB      00H,SSXW2251 
             LCALL   SSXWD2 
             LJMP    INTOUT 
SSXW2251:    MOV     A,#92H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ2          
             LJMP    INTOUT              
              
SSXW1125:    CPL     00H 
             JB      00H,SSXW11251 
             LCALL   SSXWD2 
             LJMP    INTOUT 
SSXW11251:   MOV     A,#94H                    
             LCALL   WRITE_COM 
             MOV     DPTR,#CHINESE31 
             LCALL   WRITE_HZ3          
             LJMP    INTOUT              
              
;设置频率闪              
SSSP7:       CPL     00H              
             JB      00H,SSSP71 
             LCALL   DISPLCD 
             LJMP    INTOUT 
SSSP71:      MOV     SSDIS,DIS7        
             MOV     DIS7,#0AH 
             LCALL   DISPLCD 
             MOV     DIS7,SSDIS 
             LJMP    INTOUT  
SSSP6:       CPL     00H              
             JB      00H,SSSP61 
             LCALL   DISPLCD 
             LJMP    INTOUT 
SSSP61:      MOV     SSDIS,DIS6       
             MOV     DIS6,#0AH 
             LCALL   DISPLCD 
             MOV     DIS6,SSDIS 
             LJMP    INTOUT                
SSSP5:       CPL     00H              
             JB      00H,SSSP51 
             LCALL   DISPLCD 
             LJMP    INTOUT 
SSSP51:      MOV     SSDIS,DIS5      
             MOV     DIS5,#0AH 
             LCALL   DISPLCD 
             MOV     DIS5,SSDIS 
             LJMP    INTOUT            
SSSP4:       CPL     00H              
             JB      00H,SSSP41 
             LCALL   DISPLCD 
             LJMP    INTOUT 
SSSP41:      MOV     SSDIS,DIS4     
             MOV     DIS4,#0AH 
             LCALL   DISPLCD 
             MOV     DIS4,SSDIS 
             LJMP    INTOUT                
SSSP3:       CPL     00H              
             JB      00H,SSSP31 
             LCALL   DISPLCD 
             LJMP    INTOUT 
SSSP31:      MOV     SSDIS,DIS3     
             MOV     DIS3,#0AH 
             LCALL   DISPLCD 
             MOV     DIS3,SSDIS 
             LJMP    INTOUT              
SSSP2:       CPL     00H              
             JB      00H,SSSP21 
             LCALL   DISPLCD 
             LJMP    INTOUT 
SSSP21:      MOV     SSDIS,DIS2     
             MOV     DIS2,#0AH 
             LCALL   DISPLCD 
             MOV     DIS2,SSDIS 
             LJMP    INTOUT                
SSSP1:       CPL     00H              
             JB      00H,SSSP11 
             LCALL   DISPLCD 
             LJMP    INTOUT 
SSSP11:      MOV     SSDIS,DIS1    
             MOV     DIS1,#0AH 
             LCALL   DISPLCD 
             MOV     DIS1,SSDIS 
             LJMP    INTOUT            
SSSP0:       CPL     00H              
             JB      00H,SSSP01 
             LCALL   DISPLCD 
             LJMP    INTOUT 
SSSP01:      MOV     SSDIS,DIS0   
             MOV     DIS0,#0AH 
             LCALL   DISPLCD 
             MOV     DIS0,SSDIS 
             LJMP    INTOUT                          
;********************************************** 
;              频率值转换为控制字             ; 
;**********************************************             
DISBCD_CON:     
DISD_BCD:   MOV      L7,#00H 
            MOV      L6,#00H 
            MOV      L5,#00H 
            MOV      L4,DIS7 
            MOV      L3,#00H ;10,000,000 
            MOV      L2,#98H ;10,000,000 
            MOV      L1,#96H ;10,000,000   
            MOV      L0,#80H ;10,000,000  
            LCALL    MUL4BY4 
            MOV      CON0,R0 
            MOV      CON1,R1 
            MOV      CON2,R2 
            MOV      CON3,R3 
             
            MOV      L7,#00H 
            MOV      L6,#00H 
            MOV      L5,#00H 
            MOV      L4,DIS6 
            MOV      L3,#00H ;1,000,000 
            MOV      L2,#0FH ;1,000,000 
            MOV      L1,#42H ;1,000,000 
            MOV      L0,#40H ;1,000,000 
            LCALL    MUL4BY4 
            LCALL    DISBCD_CONADD 
             
            MOV      L7,#00H 
            MOV      L6,#00H 
            MOV      L5,#00H 
            MOV      L4,DIS5 
            MOV      L3,#00H ;100,000 
            MOV      L2,#01H ;100,000 
            MOV      L1,#86H ;100,000 
            MOV      L0,#0A0H;100,000 
            LCALL    MUL4BY4 
            LCALL    DISBCD_CONADD 
             
            MOV      L7,#00H 
            MOV      L6,#00H 
            MOV      L5,#00H 
            MOV      L4,DIS4 
            MOV      L3,#00H ;10,000 
            MOV      L2,#00H ;10,000 
            MOV      L1,#27H ;10,000 
            MOV      L0,#10H ;10,000 
            LCALL    MUL4BY4 
            LCALL    DISBCD_CONADD 
             
            MOV      L7,#00H 
            MOV      L6,#00H 
            MOV      L5,#00H 
            MOV      L4,DIS3 
            MOV      L3,#00H ;1,000 
            MOV      L2,#00H ;1,000 
            MOV      L1,#03H ;1,000 
            MOV      L0,#0E8H;1,000 
            LCALL    MUL4BY4 
            LCALL    DISBCD_CONADD 
             
            MOV      L7,#00H 
            MOV      L6,#00H 
            MOV      L5,#00H 
            MOV      L4,DIS2 
            MOV      L3,#00H ;100 
            MOV      L2,#00H ;100 
            MOV      L1,#00H ;100 
            MOV      L0,#64H ;100 
            LCALL    MUL4BY4 
            LCALL    DISBCD_CONADD 
             
            MOV      L7,#00H 
            MOV      L6,#00H 
            MOV      L5,#00H 
            MOV      L4,DIS1 
            MOV      L3,#00H ;10 
            MOV      L2,#00H ;10 
            MOV      L1,#00H ;10 
            MOV      L0,#0AH ;10 
            LCALL    MUL4BY4 
            LCALL    DISBCD_CONADD 
             
            MOV      L7,#00H 
            MOV      L6,#00H 
            MOV      L5,#00H 
            MOV      L4,DIS0 
            MOV      L3,#00H ;1 
            MOV      L2,#00H ;1 
            MOV      L1,#00H ;1 
            MOV      L0,#01H ;1 
            LCALL    MUL4BY4 
            LCALL    DISBCD_CONADD 
             
             
             
DIS_CON:     
            MOV      L7,CON3 
            MOV      L6,CON2 
            MOV      L5,CON1 
            MOV      L4,CON0 
            ;MOV      L3,#00H ;10,000 
            ;MOV      L2,#00H ;10,000 
            ;MOV      L1,#27H ;10,000 
            ;MOV      L0,#10H ;10,000             
            MOV      L3,#00H  ;100,000 
            MOV      L2,#01H  ;100,000 
            MOV      L1,#86H  ;100,000 
            MOV      L0,#0A0H ;100,000 
            LCALL    MUL4BY4        
             
            ;MOV      L7,#00H ;291  AD9850晶振 125MHZ 
            ;MOV      L6,#00H ;291  AD9850晶振 125MHZ 
            ;MOV      L5,#01H ;291  AD9850晶振 125MHZ 
            ;MOV      L4,#23H ;291  AD9850晶振 125MHZ 
            MOV      L7,#00H ;1164 AD9850晶振 50MHZ 
            MOV      L6,#00H ;1164 AD9850晶振 50MHZ 
            MOV      L5,#04H ;1164 AD9850晶振 50MHZ 
            MOV      L4,#8CH ;1164 AD9850晶振 50MHZ 
            LCALL    DIV8BY4 
             
             
            MOV      CON3,R3 
            MOV      CON2,R2               
            MOV      CON1,R1 
            MOV      CON0,R0 
             
            RET 
             
             
             
DISBCD_CONADD:  
            MOV      A,CON0 
            ADD      A,R0 
            MOV      CON0,A 
             
            MOV      A,CON1 
            ADDC     A,R1 
            MOV      CON1,A 
             
            MOV      A,CON2 
            ADDC     A,R2 
            MOV      CON2,A 
             
            MOV      A,CON3 
            ADDC     A,R3 
            MOV      CON3,A 
             
            RET 
;**************************************************** 
;              控制字转换为频率值                   ; 
;****************************************************             
CON_DIS:     
            MOV      L7,CON3 
            MOV      L6,CON2 
            MOV      L5,CON1 
            MOV      L4,CON0 
            ;MOV      L3,#00H ;291  AD9850晶振 125MHZ 
            ;MOV      L2,#00H ;291  AD9850晶振 125MHZ 
            ;MOV      L1,#01H ;291  AD9850晶振 125MHZ 
            ;MOV      L0,#23H ;291  AD9850晶振 125MHZ 
            MOV      L3,#00H ;1164 AD9850晶振 50MHZ 
            MOV      L2,#00H ;1164 AD9850晶振 50MHZ 
            MOV      L1,#04H ;1164 AD9850晶振 50MHZ 
            MOV      L0,#8CH ;1164 AD9850晶振 50MHZ 
            LCALL    MUL4BY4 
            ;MOV      L7,#00H ;10,000 
            ;MOV      L6,#00H ;10,000 
            ;MOV      L5,#27H ;10,000 
            ;MOV      L4,#10H ;10,000 
            MOV      L7,#00H  ;100,000 
            MOV      L6,#01H  ;100,000 
            MOV      L5,#86H  ;100,000 
            MOV      L4,#0A0H ;100,000 
            LCALL    DIV8BY4 
             
            LCALL    JWPD 
             
            MOV      R7,#00H 
            MOV      R6,#00H 
            MOV      R5,#00H 
            MOV      R4,#00H             
            MOV      L7,#00H ;10,000,000 
            MOV      L6,#98H ;10,000,000 
            MOV      L5,#96H ;10,000,000   
            MOV      L4,#80H ;10,000,000 
            LCALL    DIV8BY4 
            MOV      DIS7,R0 
             
            MOV      R7,#00H 
            MOV      R6,#00H 
            MOV      R5,#00H 
            MOV      R4,#00H 
            MOV      R3,L3 
            MOV      R2,L2 
            MOV      R1,L1 
            MOV      R0,L0             
            MOV      L7,#00H ;1,000,000 
            MOV      L6,#0FH ;1,000,000 
            MOV      L5,#42H ;1,000,000 
            MOV      L4,#40H ;1,000,000 
            LCALL    DIV8BY4 
            MOV      DIS6,R0 
             
            MOV      R7,#00H 
            MOV      R6,#00H 
            MOV      R5,#00H 
            MOV      R4,#00H 
            MOV      R3,L3 
            MOV      R2,L2 
            MOV      R1,L1 
            MOV      R0,L0             
            MOV      L7,#00H ;100,000 
            MOV      L6,#01H ;100,000 
            MOV      L5,#86H ;100,000 
            MOV      L4,#0A0H;100,000 
            LCALL    DIV8BY4 
            MOV      DIS5,R0 
             
            MOV      R7,#00H 
            MOV      R6,#00H 
            MOV      R5,#00H 
            MOV      R4,#00H 
            MOV      R3,L3 
            MOV      R2,L2 
            MOV      R1,L1 
            MOV      R0,L0             
            MOV      L7,#00H ;10,000 
            MOV      L6,#00H ;10,000 
            MOV      L5,#27H ;10,000 
            MOV      L4,#10H ;10,000 
            LCALL    DIV8BY4 
            MOV      DIS4,R0 
             
            MOV      R7,#00H 
            MOV      R6,#00H 
            MOV      R5,#00H 
            MOV      R4,#00H 
            MOV      R3,L3 
            MOV      R2,L2 
            MOV      R1,L1 
            MOV      R0,L0             
            MOV      L7,#00H ;1,000 
            MOV      L6,#00H ;1,000 
            MOV      L5,#03H ;1,000 
            MOV      L4,#0E8H;1,000 
            LCALL    DIV8BY4 
            MOV      DIS3,R0 
             
            MOV      R7,#00H 
            MOV      R6,#00H 
            MOV      R5,#00H 
            MOV      R4,#00H 
            MOV      R3,L3 
            MOV      R2,L2 
            MOV      R1,L1 
            MOV      R0,L0             
            MOV      L7,#00H ;100 
            MOV      L6,#00H ;100 
            MOV      L5,#00H ;100 
            MOV      L4,#64H ;100 
            LCALL    DIV8BY4 
            MOV      DIS2,R0 
             
            MOV      R7,#00H 
            MOV      R6,#00H 
            MOV      R5,#00H 
            MOV      R4,#00H 
            MOV      R3,L3 
            MOV      R2,L2 
            MOV      R1,L1 
            MOV      R0,L0             
            MOV      L7,#00H ;10 
            MOV      L6,#00H ;10 
            MOV      L5,#00H ;10 
            MOV      L4,#0AH ;10 
            LCALL    DIV8BY4 
            MOV      DIS1,R0 
             
            MOV      R7,#00H 
            MOV      R6,#00H 
            MOV      R5,#00H 
            MOV      R4,#00H 
            MOV      R3,L3 
            MOV      R2,L2 
            MOV      R1,L1 
            MOV      R0,L0             
            MOV      L7,#00H ;1 
            MOV      L6,#00H ;1 
            MOV      L5,#00H ;1 
            MOV      L4,#01H ;1 
            LCALL    DIV8BY4 
            MOV      DIS0,R0 
                         
            RET 
             
JWPD:       MOV      DIS3,R3             
            MOV      DIS2,R2 
            MOV      DIS1,R1 
            MOV      DIS0,R0 
            MOV      R7,#00H 
            MOV      R6,#00H 
            MOV      R5,#00H 
            MOV      R4,#00H 
            MOV      R3,L3 
            MOV      R2,L2 
            MOV      R1,L1 
            MOV      R0,L0 
            MOV      L7,#00H ;1,000 
            MOV      L6,#00H ;1,000 
            MOV      L5,#03H ;1,000 
            MOV      L4,#0E8H;1,000 
            LCALL    DIV8BY4 
            MOV      A,R0 
            CLR      C 
            CJNE     A,#05H,JWPD1 
JWPD1:      JC       BJW             
            MOV      A,DIS0 
            ADD      A,#01H 
            MOV      DIS0,A 
            MOV      A,DIS1 
            ADDC     A,#00H 
            MOV      DIS1,A 
            MOV      A,DIS2 
            ADDC     A,#00H 
            MOV      DIS2,A 
            MOV      A,DIS3 
            ADDC     A,#00H 
            MOV      DIS3,A 
BJW:        MOV      R3,DIS3             
            MOV      R2,DIS2 
            MOV      R1,DIS1 
            MOV      R0,DIS0 
             
            RET 
;**************************************************** 
;             两字节无符号数乘法程序                ; 
;****************************************************             
;R3R2*R1R0=R7R6R5R4 
MUL2BY2:    CLR      A 
            MOV      R7,A 
            MOV      R6,A 
            MOV      R5,A 
            MOV      R4,A 
            MOV      2FH,#10H 
MULLOOP1:   CLR      C             
            MOV      A,   R4 
            RLC      A 
            MOV      R4,  A 
            MOV      A,   R5 
            RLC      A 
            MOV      R5,  A 
            MOV      A,   R6 
            RLC      A 
            MOV      R6,  A 
            MOV      A,   R7 
            RLC      A 
            MOV      R7,  A    
            MOV      A,   R0 
            RLC      A 
            MOV      R0,  A 
            MOV      A,   R1 
            RLC      A 
            MOV      R1,  A       
            JNC      MULLOOP2 
            MOV      A,R4 
            ADD      A,R2 
            MOV      R4,A 
            MOV      A,R5 
            ADDC     A,R3 
            MOV      R5,A 
            MOV      A,R6 
            ADDC     A,#00H 
            MOV      R6,A 
            MOV      A,R7 
            ADDC     A,#00H 
            MOV      R7,A 
MULLOOP2:   DJNZ     2FH,MULLOOP1 
            RET 
                                              
;**************************************************** 
;             四字节无符号数乘法程序                ; 
;**************************************************** 
;L7L6L5L4*L3L2L1L0=  
;R7R6R5R4R3R2R1R0 
MUL4BY4:    CLR   A 
            MOV   R7,  A 
            MOV   R6,  A 
            MOV   R5,  A 
            MOV   R4,  A 
            MOV   R3,  A 
            MOV   R2,  A 
            MOV   R1,  A 
            MOV   R0,  A 
  
            MOV   2FH, #20H 
MUL44LOOP1: CLR   C 
            MOV   A,   R0 
            RLC   A 
            MOV   R0,  A 
            MOV   A,   R1 
            RLC   A 
            MOV   R1,  A            
            MOV   A,   R2 
            RLC   A 
            MOV   R2,  A 
            MOV   A,   R3 
            RLC   A 
            MOV   R3,  A     
            MOV   A,   R4 
            RLC   A 
            MOV   R4,  A 
            MOV   A,   R5 
            RLC   A 
            MOV   R5,  A 
            MOV   A,   R6 
            RLC   A 
            MOV   R6,  A 
            MOV   A,   R7 
            RLC   A 
            MOV   R7,  A 
             
            MOV   A,   L0 
            RLC   A 
            MOV   L0,  A 
            MOV   A,   L1 
            RLC   A 
            MOV   L1,  A 
            MOV   A,   L2 
            RLC   A 
            MOV   L2,  A 
            MOV   A,   L3 
            RLC   A 
            MOV   L3,  A 
             
            JNC   MUL44LOOP2 
             
             
            MOV   A,   R0 
            ADD   A,   L4 
            MOV   R0,  A 
            MOV   A,   R1 
            ADDC  A,   L5 
            MOV   R1,  A 
            MOV   A,   R2 
            ADDC  A,   L6 
            MOV   R2,  A 
            MOV   A,   R3 
            ADDC  A,   L7 
            MOV   R3,  A 
             
            MOV   A,   R4 
            ADDC  A,   #00H 
            MOV   R4,  A 
            MOV   A,   R5 
            ADDC  A,   #00H 
            MOV   R5,  A 
            MOV   A,   R6 
            ADDC  A,   #00H 
            MOV   R6,  A 
            MOV   A,   R7 
            ADDC  A,   #00H 
            MOV   R7,  A 
MUL44LOOP2: DJNZ  2FH, MUL44LOOP1 
            RET 

;**************************************************** 
;*            四字节/两字节无符号数除法程序         * 
;**************************************************** 
;R7R6R5R4/R3R2=R7R6R5R4(商)...R1R0(余数) 

DIV4BY2:  MOV   2FH,  #20H 
          MOV   R0,  #00H 
          MOV   R1,  #00H 
DIVLOOP1: MOV   A,   R4 
          RLC   A 
          MOV   R4,  A 
          MOV   A,   R5 
          RLC   A 
          MOV   R5,  A 
          MOV   A,   R6 
          RLC   A 
          MOV   R6,  A 
          MOV   A,   R7 
          RLC   A 
          MOV   R7,  A 
          MOV   A,   R0 
          RLC   A 
          MOV   R0,  A 
          MOV   A,   R1 
          RLC   A 
          MOV   R1,  A 
          CLR   C 
          MOV   A,   R0 
          SUBB  A,   R2 
          MOV   B,   A 
          MOV   A,   R1 
          SUBB  A,   R3 
          JC    DIVLOOP2 
          MOV   R0,  B 
          MOV   R1,  A 
DIVLOOP2: CPL   C 
          DJNZ  2FH,  DIVLOOP1 
          MOV   A,   R4 
          RLC   A 
          MOV   R4,  A 
          MOV   A,   R5 
          RLC   A 
          MOV   R5,  A 
          MOV   A,   R6 
          RLC   A 
          MOV   R6,  A 
          MOV   A,   R7 
          RLC   A 
          MOV   R7,  A 
          RET 
;**************************************************** 
;             八字节/四字节无符号数除法程序         ; 
;**************************************************** 
;R7R6R5R4R3R2R1R0/L7L6L5L4=R7R6R5R4R3R2R1R0(商) 
;L3L2L1L0(余数) 

DIV8BY4:    MOV   2FH,  #40H 
            MOV   L0,  #00H 
            MOV   L1,  #00H 
            MOV   L2,  #00H 
            MOV   L3,  #00H 
DIV84LOOP1:  
            MOV   A,   R0 
            RLC   A 
            MOV   R0,  A 
            MOV   A,   R1 
            RLC   A 
            MOV   R1,  A            
            MOV   A,   R2 
            RLC   A 
            MOV   R2,  A 
            MOV   A,   R3 
            RLC   A 
            MOV   R3,  A                         
            MOV   A,   R4 
            RLC   A 
            MOV   R4,  A 
            MOV   A,   R5 
            RLC   A 
            MOV   R5,  A 
            MOV   A,   R6 
            RLC   A 
            MOV   R6,  A 
            MOV   A,   R7 
            RLC   A 
            MOV   R7,  A 
             
            MOV   A,   L0 
            RLC   A 
            MOV   L0,  A 
            MOV   A,   L1 
            RLC   A 
            MOV   L1,  A 
            MOV   A,   L2 
            RLC   A 
            MOV   L2,  A 
            MOV   A,   L3 
            RLC   A 
            MOV   L3,  A 
             
            CLR   C 
            MOV   A,   L0 
            SUBB  A,   L4 
            MOV   29H,   A 
            MOV   A,   L1 
            SUBB  A,   L5 
            MOV   2AH,   A 
            MOV   A,   L2 
            SUBB  A,   L6 
            MOV   2BH,   A 
            MOV   A,   L3 
            SUBB  A,   L7 
            MOV   2CH,   A 
             
            JC    DIV84LOOP2 
            MOV   L0,  29H 
            MOV   L1,  2AH 
            MOV   L2,  2BH 
            MOV   L3,  2CH 
DIV84LOOP2: CPL   C 
            DJNZ  2FH,  DIV84LOOP1 
            MOV   A,   R0 
            RLC   A 
            MOV   R0,  A 
            MOV   A,   R1 
            RLC   A 
            MOV   R1,  A            
            MOV   A,   R2 
            RLC   A 
            MOV   R2,  A 
            MOV   A,   R3 
            RLC   A 
            MOV   R3,  A       
            MOV   A,   R4 
            RLC   A 
            MOV   R4,  A 
            MOV   A,   R5 
            RLC   A 
            MOV   R5,  A 
            MOV   A,   R6 
            RLC   A 
            MOV   R6,  A 
            MOV   A,   R7 
            RLC   A 
            MOV   R7,  A 
            RET  
            END             
             

推荐阅读

史海拾趣

ENOCEAN公司的发展小趣事

作为一家以技术创新为核心竞争力的公司,EnOcean始终致力于研发更先进、更高效的无线无源传输技术。通过不断投入研发资源,EnOcean在能量转换效率、数据传输速率等方面取得了显著进展。同时,公司还积极探索新的应用领域和市场机会,以保持其在电子行业中的领先地位。

以上五个故事概述了EnOcean公司在电子行业中发展的主要历程和关键事件。通过这些故事,我们可以看到EnOcean凭借其在无线无源传输技术方面的持续创新和卓越性能,成功在全球市场上赢得了广泛认可和应用。

Genesys Logic公司的发展小趣事

进入21世纪,“General Microcircuits”开始实施全球化战略,先后在美国、欧洲、亚洲等地建立研发中心和生产基地。通过全球化布局,公司不仅能够更快地响应不同地区的市场需求,还能充分利用各地的资源优势和技术优势,进一步提升产品的竞争力和市场占有率。同时,公司还加强了与国际知名电子制造商的战略合作,共同推动半导体技术的创新与发展。

EOS POWER INDIA Pvt公司的发展小趣事

随着市场的不断发展和客户需求的变化,EOS意识到只有不断创新才能保持竞争力。因此,公司加大了对研发的投入,引进了一批高素质的研发人才。经过数年的努力,EOS成功研发出了一系列高性能、高可靠性的电源产品,如交钥匙电源解决方案、定制电源等。这些产品不仅满足了客户的多样化需求,还帮助EOS在市场上获得了更多的份额。

Ampex Data Systems Group公司的发展小趣事

EOS一直将质量管理作为公司发展的核心。公司建立了完善的质量管理体系,从原材料采购到生产、检测、包装等各个环节都进行严格的质量控制。EOS还引入了先进的质量检测设备和方法,确保每一件产品都符合高标准的质量要求。此外,公司还定期对员工进行质量培训,提高员工的质量意识和操作技能。这些措施使得EOS的产品在市场上赢得了良好的口碑和信誉。

Continental公司的发展小趣事

随着技术的不断进步和市场的不断变化,大陆集团也在不断调整其业务架构。在新的架构中,大陆集团将业务领域划分为三个部分:自主驾驶和安全、车联网和信息、以及橡胶技术(包括轮胎业务和康迪泰克)。这一调整使得大陆集团能够更好地应对市场变化和技术挑战。同时,大陆集团还通过收购和兼并等方式不断扩大其业务范围和技术实力。

Bussmann (Eaton)公司的发展小趣事

随着全球市场的不断扩张,Bussmann也加快了其全球化布局的步伐。目前,Bussmann的产品已在全球170多个国家销售,为各地的客户提供优质的电路保护解决方案。同时,为了满足不同客户的需求,Bussmann不断扩展其产品线,现已涵盖电气电源熔断器、电子电路板及小型熔断器、熔丝盒、熔丝座及断开开关等多个品类。这些产品的推出不仅丰富了Bussmann的产品线,也使其能够更好地满足市场的多元化需求。

以上五个故事展示了Bussmann (Eaton)公司在电子行业发展的不同阶段和关键节点,体现了其技术创新、市场拓展和全球化布局的重要历程。这些故事不仅反映了Bussmann在电路保护领域的领先地位,也展示了其在应对市场变化和客户需求方面的灵活性和实力。

问答坊 | AI 解惑

matlab第六课预告!

好不容易盼到这里啦! 这里我们一起来分享一下二维图形的绘制和修饰 对数坐标图,极坐标图 饼状图,梯形图,概率分布图,向量图等等的二维图形 如果你觉得不过瘾, 我们接着来三维图形 甚至是GUI的界面都可以的啦! 期待大家的帮助拉!…

查看全部问答>

【分享】ATmega16学习笔记PDF完整版下载(WinAVR)

笔记均为原创,欢迎转载,转载请注明出处! 持续更新中,敬请关注!…

查看全部问答>

发一个外包项目贴!请有实力有精力的工程师速与我联系!!斑竹请鼠标下留帖!先谢谢啦

2440手持机外包项目: 1、背光驱动 2、电源管理 3、自定义键盘驱动 4、LP3913驱动 5、EEPROM驱动 6、NANDFLASH分区及海量存储 注意:目前BSP为WINCE42下的 要求: 有实力做出以上6个驱动(具体详见需求) 时间价钱面议 地点限北京 QQ: ...…

查看全部问答>

USB的问题

现在碰到了一个问题。。。。在USB枚举这一块 在枚举的工程中 当插入USBdevice后。出现了一个RESET的中断,之后马上就会出现一个SUSPEND中断,这正常吗?出现这个中断我该怎么处理,是硬件的问题还是软件的问题…

查看全部问答>

求嵌入式开发的经典教材

本人是嵌入式开发的新手,请高人说说嵌入式开发的什么教材比较经典或则比较好的网站,谢谢!…

查看全部问答>

在DDK里,哪个函数可以修改文件的属性

在DDK里,哪个函数可以修改文件的属性…

查看全部问答>

有关捕获单元的编程问题

我是新手,最近在编一个程序需要用到捕获单元,但有一点想不清楚,就是我需要在第一次捕获时屏蔽中断,第二次捕获后响应中断,从而读出这两个的差值,但程序应该怎么编写呢。感谢指点!…

查看全部问答>

关于例化引用问题,求助

大虾们好! 俺们菜鸟,下面的例化引用好像有问题,请救救俺们吧   reg clkb,rdb,wrb;reg [11:0]datab;wire[11:0]qb;assign qb = ( channelout == 0 ) ? q0 : (( channelout == 1 ) ? q1 : (( channelout == 2 ) ? q2 :(( channelout == 3 ...…

查看全部问答>

谁遇到过SIM300,接受TCP数据后,串口读取数据时,发现数据丢失情况

谁遇到过SIM300,接受TCP数据后,串口读取数据时,发现数据丢失情况~~~急啊~~~高手解答一下啊~~急~!!!…

查看全部问答>

PWM输出DA调节电源的方案

我是用的二阶滤波,分了1024份,输出端430的adc检测不到,但万用表有数字,于是加了一级射随器。纹波在10mv左右。不知道各位有什么更好的方案没?同时想请教下这个纹波和最终电源输出的纹波有怎样的影响。我在网上找的资料顺便给大家分享下。…

查看全部问答>