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

📄 av-p06a.lst

📁 型号: AV-P06A 5.1CH功率放大器 89C52+12M+PT2314+PT2315+2*M62429+PT6311+CS16210+6221+VFDGDT1313A,包含VFD真值表手册资料
💻 LST
📖 第 1 页 / 共 5 页
字号:
0498 782F            792                 MOV    R0,#2fH                      ;高位开始
                     793                 
049A EA              794        D7GID:   MOV    A,R2
049B 93              795                 MOVC   A,@A+DPTR
049C F6              796                 MOV    @R0,A
049D 18              797                 DEC    R0
049E 0A              798                 INC    R2
049F D9F9            799                 DJNZ   R1,D7GID
04A1 22              800                 RET
                     801                  
                     802                 
                     803     ;/////////////////////////////////////////////////////////////////////////////////////////
                     804     ;A/D转换,T1中断入口
04A2 0576            805     AD_GO:      INC    TIME1
04A4 C0E0            806                 PUSH   ACC
04A6 C0D0            807                 PUSH   PSW
04A8 AB62            808            AD:  MOV    R3,AD_SIGN
04AA BB0017          809                 CJNE   R3,#0,AD_1
                     810                 
04AD D283            811                 SETB   AD_OUT
04AF 0563            812                 INC    AD_CLR
04B1 AB63            813                 MOV    R3,AD_CLR
04B3 756500          814                 MOV    AD_TEM,#0
04B6 BB3227          815                 CJNE   R3,#50,AD_RET
04B9 756300          816                 MOV    AD_CLR,#0
04BC 756400          817                 MOV    AD_CYC,#0
04BF 756201          818                 MOV    AD_SIGN,#1
04C2 801C            819                 JMP    AD_RET
                     820                 
04C4 AB62            821           AD_1: MOV    R3,AD_SIGN
04C6 BB0117          822                 CJNE   R3,#1,AD_RET
04C9 C283            823                 CLR    AD_OUT
04CB 0564            824                 INC    AD_CYC
04CD 308402          825                 JNB    AD_IN,AD_1_1
04D0 0565            826                 INC    AD_TEM
04D2 AB64            827         AD_1_1: MOV    R3,AD_CYC
04D4 BB0B09          828                 CJNE   R3,#11,AD_RET
04D7 756400          829                 MOV    AD_CYC,#0
04DA 85656E          830                 MOV    AD_DATA1,AD_TEM
04DD 756200          831                 MOV    AD_SIGN,#0
04E0 D0D0            832         AD_RET: POP    PSW
04E2 D0E0            833                 POP    ACC
04E4 32              834     RETI
04E5 00              835     NOP
04E6 00              836     NOP
                     837     
                     838        
                     839     ;///////////////////////////////////////////////////////////////////////////////////////// 
                              
04E7                 840     WR_VFD   :
04E7 C2A2            841               CLR   PT6311_STB         ;写入一组8位数据         
04E9 7470            842               MOV   A,#70H             ;设置为正常工作,地址增量,写显示数据模式
04EB B118            843               CALL  OUTDATA 
04ED D2A2            844               SETB  PT6311_STB
04EF 00              845               NOP
A51 MACRO ASSEMBLER  AV_P06A                                                              04/05/2007 17:46:19 PAGE    14

04F0 00              846               NOP
04F1 C2A2            847               CLR   PT6311_STB
04F3 E544            848               MOV   A,DISP_INDEX        ;设置写入地址指针
04F5 900D0A          849               MOV   DPTR,#TAB_6311RAM
04F8 93              850               MOVC  A,@A+DPTR
04F9 24C0            851               ADD   A,#0C0H             ;修正
04FB C3              852               CLR   C
04FC B118            853               CALL  OUTDATA              
                     854       
04FE A943            855               MOV   R1,DISP_BUFFER      ;把显示缓冲区数据写入PT16311
0500 E7              856     WR_VFD1:  MOV   A,@R1
0501 B118            857               CALL  OUTDATA
                     858     
0503 0543            859               INC   DISP_BUFFER
0505 0544            860               INC   DISP_INDEX
0507 E544            861               MOV   A,DISP_INDEX
0509 B41A06          862               CJNE  A,#26,WR_QUT       ;;扫描完13列后PT6311片内地址指针复0(每列需要2个数据缓冲
                             区数据)
                     863            
050C 754322          864               MOV   DISP_BUFFER,#22H   ;显示缓冲区首址复位
050F 754400          865               MOV   DISP_INDEX,#0H     ;片内地址指针复位
                     866               
0512 D2A2            867     WR_QUT:   SETB  PT6311_STB
0514 00              868               NOP
0515 00              869               NOP
0516 0184            870               JMP    RUN4_1  
                     871               
                     872     ;-----------------------------------------------------------------------------------------
0518 7808            873     OUTDATA:  MOV   R0,#8                 ;写入一个字节子程序
051A D2A0            874               SETB  PT6311_DATA
051C 00              875               NOP
051D C2A1            876          W1:  CLR   PT6311_CLK
051F 13              877               RRC   A
0520 92A0            878               MOV   PT6311_DATA,C
0522 D2A1            879               SETB  PT6311_CLK            ;时钟上升沿写入数据
0524 D8F7            880               DJNZ  R0,W1
0526 22              881               RET
                     882     ;-----------------------------------------------------------------------------------------
0527 7E08            883     INDATA:   MOV   R6,#8                 ;读入一个字节子程序(读键盘)        
0529 D2A0            884               SETB  PT6311_DATA           ;令PT6311_DATA接口有效
052B D2A1            885     INDATA1:  SETB  PT6311_CLK            ;时钟的下降沿读出数据(??)   
052D C2A1            886               CLR   PT6311_CLK            ;读出一个位
052F A2A0            887               MOV   C,PT6311_DATA         ;读出的数据暂存位积存器C
0531 13              888               RRC   A                     ;位数据入ACC
0532 DEF7            889               DJNZ  R6,INDATA1    
0534 22              890               RET           
                     891     ;----------------------------------------------------------------------------------------- 
                                        
0535 791A            892     RD_KEY:   MOV   R1,#KEY_CELL          ;读键值子程序
0537 7A06            893               MOV   R2,#06H               ;要读入的键值单元数为6     
0539 C2A2            894               CLR   PT6311_STB            ;
053B 7476            895               MOV   A,#76H                ;01110110    命令字:读键盘值
053D B118            896               CALL  OUTDATA               ;写入控制字
053F B127            897     RD_1:     CALL  INDATA                ;读入键盘键值
0541 F7              898               MOV   @R1,A
0542 09              899               INC   R1
0543 DAFA            900               DJNZ  R2,RD_1        
0545 D2A2            901               SETB  PT6311_STB
0547 00              902               NOP
0548 C2A2            903               CLR   PT6311_STB
                     904     ;/////////////////////////按键键值判断程序(把键值整理后放KEY_NUM中)///////////////////////
054A E51A            905     KEY_EX:   MOV  A,1AH                  ;判断那一行闭合
054C 6004            906               JZ   KEY_2
054E 7E00            907               MOV  R6,#00
0550 8026            908               JMP  TAKE
0552 E51B            909     KEY_2 :   MOV  A,1BH 
A51 MACRO ASSEMBLER  AV_P06A                                                              04/05/2007 17:46:19 PAGE    15

0554 6004            910               JZ   KEY_3
0556 7E08            911               MOV  R6,#08
0558 801E            912               JMP  TAKE
055A E51C            913     KEY_3 :   MOV  A,1CH
055C 6004            914               JZ   KEY_4
055E 7E10            915               MOV  R6,#16
0560 8016            916               JMP  TAKE
0562 E51D            917     KEY_4 :   MOV  A,1DH
0564 6004            918               JZ   KEY_5
0566 7E18            919               MOV  R6,#024
0568 800E            920               JMP  TAKE
056A E51E            921     KEY_5 :   MOV  A,1EH
056C 6004            922               JZ   KEY_6
056E 7E20            923               MOV  R6,#32
0570 8006            924               JMP  TAKE
0572 E51F            925     KEY_6 :   MOV  A,1FH
0574 603E            926               JZ   RET2                   ;无按键按下退出
0576 7E28            927               MOV  R6,#40        
0578 30E004          928     TAKE:     JNB   ACC.0,N2              ;判断那一列闭合
057B 7F01            929               MOV   R7,#1
057D 802F            930               JMP   ADD_KEY
057F 30E104          931     N2:       JNB   ACC.1,N3
0582 7F02            932               MOV   R7,#2
0584 8028            933               JMP   ADD_KEY
0586 30E204          934     N3:       JNB   ACC.2,N4
0589 7F03            935               MOV   R7,#3
058B 8021            936               JMP   ADD_KEY
058D 30E304          937     N4:       JNB   ACC.3,N5
0590 7F04            938               MOV   R7,#4
0592 801A            939               JMP   ADD_KEY
0594 30E404          940     N5:       JNB   ACC.4,N6
0597 7F05            941               MOV   R7,#5
0599 8013            942               JMP   ADD_KEY
059B 30E504          943     N6:       JNB   ACC.5,N7
059E 7F06            944               MOV   R7,#06
05A0 800C            945               JMP   ADD_KEY
05A2 30E604          946     N7:       JNB   ACC.6,N8
05A5 7F07            947               MOV   R7,#07
05A7 8005            948               JMP   ADD_KEY
05A9 30E708          949     N8:       JNB   ACC.7,RET2
05AC 7F08            950               MOV   R7,#08
05AE EE              951     ADD_KEY:  MOV  A,R6
05AF 2F              952               ADD  A,R7
05B0 F554            953               MOV  KEY_NUM,A
05B2 8003            954               JMP  RET3
05B4 755400          955     RET2:     MOV  KEY_NUM,#00H             ;无按键按下键值清0
05B7 019C            956     RET3:     JMP  RUN5_1
                     957     
                     958     ;//////////////////////////////////进制转换子程序/////////////////////////////////////////
                     959     
05B9 E558            960     DIV10:     MOV    A,DIV_16              ;十六进转十进制子程序
05BB 75F064          961                MOV    B,#100
05BE 84              962                DIV    AB
05BF E5F0            963                MOV    A,B
05C1 75F00A          964                MOV    B,#10
05C4 84              965                DIV    AB
05C5 F578            966                MOV    DISP_H,A              ;把十位数值存入高位显示缓冲区
05C7 85F079          967                MOV    DISP_L,B              ;把个位数值存入低位显示缓冲区
05CA 22              968                RET
                     969     ;------------------------------------按键处理子程序---------------------------------------
                     970     
05CB E554            971     KEY_GO:  MOV   A,KEY_NUM
05CD 6028            972              JZ    DELAY_4                  ;没按键按下退出
05CF 0557            973              INC   KEY_DELAY
05D1 E557            974              MOV   A,KEY_DELAY
05D3 B48224          975              CJNE  A,#130,OUT  
A51 MACRO ASSEMBLER  AV_P06A                                                              04/05/2007 17:46:19 PAGE    16

05D6 E554            976              MOV   A,KEY_NUM
05D8 B40902          977              CJNE  A,#9,DELAY_0             ;复合键跳过单键处理(KEY_NUM=9,1,5是功能复合键)
05DB 8008            978              JMP   DELAY_2   
05DD B40102          979     DELAY_0: CJNE  A,#1,DELAY_1
05E0 8003            980              JMP   DELAY_2
05E2 B40507          981     DELAY_1: CJNE  A,#5,DELAY_3
                     982     
05E5 E555            983     DELAY_2: MOV   A,KEYNUM_SAVE            ;================连发/单发的原理===============
05E7 B55402          984              CJNE  A,KEY_NUM,DELAY_3        ;如果检测到连续两次都不是同一键按下的,执行该按键的
                             功能的处理
05EA 800E            985              JMP   OUT                      ;如果检测到连续两次都是同一键按下的,不执行该按键的
                             功能处理
05EC B1FF            986     DELAY_3: CALL  BIJIAO                   ;调用按键处理程序(要隔2x8x23ms才调用一次按键比较程

⌨️ 快捷键说明

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