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

📄 my_pt2314.lst

📁 电子音量pT2314原程序 需要的朋友请赶快
💻 LST
📖 第 1 页 / 共 5 页
字号:
0499 1200D8     +1   745     LCALL   OPREAT
049C D202       +1   746     SETB    RE_KEY
049E 61C2       +1   747     AJMP    LINE1
                +1   748     ;----------------
                +1   749     
                +1   750     
                +1   751     ;**************************************
04A0            +1   752     KEYWAIT:
04A0 91B0       +1   753     ACALL   KEYDELAY
04A2 91B0       +1   754     ACALL   KEYDELAY
                +1   755     ;KW:
                +1   756     ;MOV    KEY_IO,#11110000B
                +1   757     ;MOV    A,KEY_IO
                +1   758     ;CJNE   A,#11110000B,KW
04A4 22         +1   759     RET
04A5            +1   760     KEYWAIT_SOTP:
04A5 91B0       +1   761     ACALL   KEYDELAY
                +1   762     ;ACALL  KEYDELAY
04A7            +1   763     KW:
04A7 75A0F0     +1   764     MOV     KEY_IO,#11110000B
04AA E5A0       +1   765     MOV     A,KEY_IO
04AC B4F0F8     +1   766     CJNE    A,#11110000B,KW
04AF 22         +1   767     RET
                +1   768     ;**************************************
04B0            +1   769     KEYDELAY:
04B0 C000       +1   770     PUSH    00H
04B2 C001       +1   771     PUSH    01H
04B4 78FF       +1   772     MOV     R0,#255
04B6            +1   773     LOOP1:
04B6 79FF       +1   774     MOV     R1,#255
04B8            +1   775     LOOP2:
                +1   776     ;CPL    BUZZER
04B8 D9FE       +1   777     DJNZ    R1,LOOP2
04BA D8FA       +1   778     DJNZ    R0,LOOP1
04BC D001       +1   779     POP     01H
04BE D000       +1   780     POP     00H
04C0 22         +1   781     RET
                +1   782     ;*******************************
A51 MACRO ASSEMBLER  MY_PT2314                                                            03/02/2006 09:51:14 PAGE    13

                     783     
                     784     ;$include (LCM1602-4.ASM)
  0080          +1   785                     RS      EQU     P0.0    ;LCM_RS_PIN
  0081          +1   786                     RW      EQU     P0.1    ;LCM_RW_PIN
  0082          +1   787                     E       EQU     P0.2    ;LCM_E_PIN
  0080          +1   788                     LCM_D   EQU     P0      ;LCM接口
  0087          +1   789                     BF      BIT     P0.7    ;判断LCM是否忙
  0000          +1   790                     LCD_BIT BIT     20H.0   ;为0写LCM控制,为1写数值
  0070          +1   791                     LCM_BUFF DATA   70H     ;LCM写缓冲
  0045          +1   792                     ZLING   DATA    45H     ;控制缓冲
  0046          +1   793                     SHUJU   DATA    46H     ;数值缓冲
                +1   794     
                +1   795     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                +1   796     ;LCM初始化程序
04C1 7580FF     +1   797     LCM_RESET:      MOV     LCM_D,  #0FFH
04C4 120504     +1   798                     LCALL   W_LCD1
04C7 1200CF     +1   799                     LCALL   DELAY10
04CA 120504     +1   800                     LCALL   W_LCD1
04CD 1200CF     +1   801                     LCALL   DELAY10
04D0 120504     +1   802                     LCALL   W_LCD1
04D3 1200CF     +1   803                     LCALL   DELAY10
04D6 120504     +1   804                     LCALL   W_LCD1
04D9 C200       +1   805                     CLR     LCD_BIT
04DB 75700C     +1   806                     MOV     LCM_BUFF,#0CH
04DE 120509     +1   807                     LCALL   W_LCD
04E1 C200       +1   808                     CLR     LCD_BIT
04E3 757001     +1   809                     MOV     LCM_BUFF,#01H
04E6 120509     +1   810                     LCALL   W_LCD
04E9 C200       +1   811                     CLR     LCD_BIT
04EB 757006     +1   812                     MOV     LCM_BUFF,#06H
04EE 120509     +1   813                     LCALL   W_LCD
04F1 22         +1   814                     RET
                +1   815     ;********************************
                +1   816     ;以下为LCD各个子程序程序应用部分
                +1   817     ;********************************
04F2            +1   818     WRTC:   ;写控制
04F2 C200       +1   819                     CLR     LCD_BIT
04F4 854570     +1   820                     MOV     LCM_BUFF,ZLING
04F7 120509     +1   821                     LCALL   W_LCD
04FA 22         +1   822                     RET
04FB            +1   823     WRTS:   ;写数值
04FB D200       +1   824                     SETB    LCD_BIT
04FD 854670     +1   825                     MOV     LCM_BUFF,SHUJU
0500 120509     +1   826                     LCALL   W_LCD
0503 22         +1   827                     RET
                +1   828     ;==========================================================================
                +1   829     ;送控制指令程序
0504 C200       +1   830     W_LCD1:         CLR     LCD_BIT         ;送控制指令程序
0506 757028     +1   831                     MOV     LCM_BUFF,#28H   ;显示模式设置,4位数据,双行显示,5x7点阵
0509 120544     +1   832     W_LCD:          LCALL BUSY_WAIT         ;BF查询子程序
050C E580       +1   833                     MOV   A,LCM_D
050E 540F       +1   834                     ANL   A,#0FH            ;取出P0口的控制,暂放在R7里
0510 FF         +1   835                     MOV   R7,A
0511 E570       +1   836                     MOV   A,LCM_BUFF        ;取控制或数值
0513 54F0       +1   837                     ANL   A,#0F0H           ;先取高位控制或数值
0515 4F         +1   838                     ORL   A,R7              ;和P0口的控制一起送回P0口
0516 F580       +1   839                     MOV   LCM_D,A
0518 C281       +1   840                     CLR   RW
051A 200004     +1   841                     JB    LCD_BIT,WD_1      ;为0写控制,为1写数值
051D C280       +1   842                     CLR   RS
051F 8002       +1   843                     SJMP  WC_1
0521 D280       +1   844     WD_1:           SETB  RS
0523 D282       +1   845     WC_1:           SETB  E
0525 C282       +1   846                     CLR   E
0527 C282       +1   847                     CLR   E
0529 E570       +1   848                     MOV   A,LCM_BUFF        ;取控制或数值
A51 MACRO ASSEMBLER  MY_PT2314                                                            03/02/2006 09:51:14 PAGE    14

052B C4         +1   849                     SWAP  A                 ;
052C 54F0       +1   850                     ANL   A,#0F0H           ;取低字节
052E FF         +1   851                     MOV   R7,A
052F E580       +1   852                     MOV   A,LCM_D           ;取出P0口的控制,暂放在R7里
0531 540F       +1   853                     ANL   A,#0FH
0533 4F         +1   854                     ORL   A,R7              ;和P0口的控制一起送回P0口
0534 F580       +1   855                     MOV   LCM_D,A
0536 200004     +1   856                     JB    LCD_BIT,WD_2      ;为0写控制,为1写数值
0539 C280       +1   857                     CLR   RS
053B 8002       +1   858                     SJMP  WC_2
053D D280       +1   859     WD_2:           SETB  RS
053F D282       +1   860     WC_2:           SETB  E
0541 C282       +1   861                     CLR   E
0543 22         +1   862                     RET
                +1   863     ;==========================================================================
                +1   864     ;BF查询子程序  功能: 直到BF=0才退出该程序
0544 D287       +1   865     BUSY_WAIT:      SETB  BF
0546 C280       +1   866                     CLR   RS
0548 D281       +1   867                     SETB  RW
054A C282       +1   868                     CLR   E
054C C282       +1   869                     CLR   E
054E D282       +1   870                     SETB  E
0550 2087FD     +1   871                     JB    BF,$
                +1   872                     ;lcall DELAY
0553 22         +1   873                     RET
                +1   874     ;***********************************
                +1   875     ;以上为LCD各个子程序程序应用部分
                +1   876     ;***********************************
                     877     
                     878     ;$include (REMOTE.ASM)
                +1   879     
  00B2          +1   880     REMOTEIN        BIT  P3.2    ;遥控输入 
  0040          +1   881     ir_code         data 40H ;操作码
  0041          +1   882     ir_code_R       data 41h ;操作码反码
  0042          +1   883     ir_ID_code      data 42h ;用户码
  0043          +1   884     ir_id_code_r    data 43h ;操作反码
  0044          +1   885     IR_ADDR         DATA 44H        
                +1   886     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0554            +1   887     REMOTE: 
0554 C0E0       +1   888     push    acc             ;定时1中断子程序
0556 C0D0       +1   889     push    psw
0558 C2A8       +1   890     CLR     EX0             ;INT0请求中断
055A D2D4       +1   891     SETB    rs1             ;选择寄存器组
055C C2D3       +1   892     clr     rs0
055E 7D01       +1   893     MOV     R5,#1
0560            +1   894     SB:
0560 7CCB       +1   895     MOV     R4,#203;220;转到882微秒延时判断子程序
0562            +1   896     irD0:
0562 20B24D     +1   897     JB      REMOTEIN,EXIT
0565 DCFB       +1   898     DJNZ    R4,irD0  ;延时882微秒中判断P3.3脚是否出现高电平如果有就退出解码程序
0567 DDF7       +1   899     DJNZ    R5, SB    ;重复'R6次,目的是检测在8820微秒内如果出现高电平就退出解码程序
                +1   900                      ;以上完成对遥控信号的9000微秒的初始低电平信号的识别。
0569 30B2FD     +1   901     JNB     REMOTEIN, $        ;等待高电平避开9毫秒低电平引导脉冲
056C B1C4       +1   902     ACALL   YS2         ;延时4.74毫秒判断是否连发
                +1   903     ;JB     REMOTEIN,EXIT      ;
056E 791A       +1   904     MOV     R1,#1AH        ;设定1AH为起始RAM区
0570 7A04       +1   905     MOV     R2,#4          ;接收从1AH到1DH的4个内存,用于存放操作码和操作反码
0572            +1   906     PP:                      ;
0572 7B08       +1   907     MOV     R3,#8          ;每组数据为8位
0574            +1   908     JJJJ:                    ;
0574 30B2FD     +1   909     JNB     REMOTEIN,$         ;等待地址码第一位的高电平信号
0577 1205BB     +1   910     LCALL   YS1          ;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态
057A A2B2       +1   911     MOV     C,REMOTEIN         ;将P3.2引脚此时的电平状态0或1存入C中
057C 5003       +1   912     JNC     UUU            ;如果为0就跳转到UUU
057E 1205CD     +1   913     LCALL   YS3;JB  P3.2,$         ;检测到高电平1的话延时882微秒等待脉冲高电平结束
0581            +1   914     UUU:                     ;
A51 MACRO ASSEMBLER  MY_PT2314                                                            03/02/2006 09:51:14 PAGE    15

0581 E7         +1   915     MOV     A,@R1          ;将R1中地址的给A
0582 13         +1   916     RRC     A              ;将C中的值0或1移入A中的最低位
0583 F7         +1   917     MOV     @R1,A          ;将A中的数暂时存放在R1数值的内存中
0584 DBEE       +1   918     DJNZ    R3,JJJJ       ;接收满8位换一个内存
0586 09         +1   919     INC     R1             ;对R1中的值加1,换下一个RAM
0587 DAE9       +1   920     DJNZ    R2,PP         ;接收完8位数据码和8位数据反码,存放在1AH/1BH/1CH/1DH中
                +1   921     
0589 E51D       +1   922     MOV     A,1DH
058B B4FF02     +1   923     CJNE    A,#0FFH,IR_OK
058E A1B2       +1   924     AJMP    EXIT          ;如果不相等说明解码失败退出解码程序
0590            +1   925     IR_OK:
0590 A1DF       +1   926     AJMP    BIJIAO        ;如果相等说明解码正确
0592 A1B2       +1   927     AJMP    EXIT          ;如果不相等说明解码失败退出解码程序
                +1   928     
                +1   929     ;判断在118毫秒内是否有连发码
0594            +1   930     AA:
0594 1200CF     +1   931     LCALL   DELAY10
0597 7B19       +1   932     MOV     R3,#25
0599            +1   933     XX:
0599 B1C4       +1   934     ACALL   YS2
059B 30B204     +1   935     JNB     REMOTEIN,HH;跳转到判断连发代码是否正确的程序段
059E DBF9       +1   936     DJNZ    R3,XX
                +1   937     ;JNB    REMOTEIN,HH;跳转到判断连发代码是否正确的程序段
05A0 8010       +1   938     JMP     EXIT
                +1   939     ;连发码判断程序段-----------
05A2 7C04       +1   940     HH:     MOV R4,#4
05A4            +1   941     S: 
05A4 B1BB       +1   942     ACALL   YS1;调用882微秒延时子程序
05A6 20B209     +1   943     JB      REMOTEIN,EXIT;延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序
05A9 DCF9       +1   944     DJNZ    R4, S;重复4次,目的是确认连发码的低电平信号波形
05AB 8032       +1   945     JMP     BIJIAO
05AD 30B2FD     +1   946     JNB     REMOTEIN, $ ;等待高电平
05B0 80E2       +1   947     JMP     AA
05B2            +1   948     EXIT:
05B2 D2A8       +1   949     SETB    EX0            ;INT0请求中断
05B4 D2B2       +1   950     SETB    REMOTEIN
05B6 D0D0       +1   951     pop     psw
05B8 D0E0       +1   952     pop     acc
05BA 32         +1   953     RETI
                +1   954     ;-------------------------------------
05BB            +1   955     YS1:
05BB 7E12       +1   956     MOV     R6,#18  ;精确延时882微秒(18:11.059M,20:12M)
05BD            +1   957     D1:
05BD 7F14       +1   958     MOV     R7,#20
05BF DFFE       +1   959     DJNZ    R7,$
05C1 DEFA       +1   960     DJNZ    R6,D1
05C3 22         +1   961     RET
                +1   962     ;
05C4            +1   963     YS2:
05C4 7E09       +1   964     MOV     R6,#9   ;精确延时4740微秒(9:11.059M,10:12M)
05C6            +1   965     D2:
05C6 7FEB       +1   966     MOV     R7,#235
05C8 DFFE       +1   967     DJNZ    R7,$
05CA DEFA       +1   968     DJNZ    R6,D2
05CC 22         +1   969     RET
                +1   970     ;
05CD            +1   971     YS3:
05CD 7E02       +1   972     MOV     R6,#2   ;延时子程序3,精确延时1000微秒
05CF            +1   973     D3:
05CF 7FF8       +1   974     MOV     R7,#248
05D1 DFFE       +1   975     DJNZ    R7,$
05D3 DEFA       +1   976     DJNZ    R6,D3
05D5 22         +1   977     RET
                +1   978     ;
05D6            +1   979     YS4:
05D6 7EFF       +1   980     MOV     R6,#255 ;延时子程序3,精确延时4740微秒
A51 MACRO ASSEMBLER  MY_PT2314                                                            03/02/2006 09:51:14 PAGE    16

05D8            +1   981     D4:
05D8 7FFF       +1   982     MOV     R7,#255
05DA DFFE       +1   983     DJNZ    R7,$
05DC DEFA       +1   984     DJNZ    R6,D4
05DE 22         +1   985     RET
                +1   986     ;-----------------------------------------------
05DF            +1   987     BIJIAO:
05DF 851A40     +1   988     mov     ir_code,1Ah           ;操作原码
05E2 851B41     +1   989     mov     ir_code_r,1Bh         ;操作反码
05E5 851C42     +1   990     mov     ir_id_code,1Ch        ;ID原码
05E8 851D43     +1   991     mov     ir_id_code_r,1Dh      ;ID反码
05EB 200305     +1   992     JB      IR_SET_BIT,IR_WORK0
05EE 120F5F     +1   993     LCALL   DIS_IR_OK
                +1   994     ;LCALL  IR_SEL
05F1 80BF       +1   995     JMP     EXIT

⌨️ 快捷键说明

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