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

📄 dialphon.lst

📁 这源码是用MPLAB开发的单片机asm。
💻 LST
📖 第 1 页 / 共 2 页
字号:
MPASM  5.05                      DIALPHON.ASM   4-22-2008  11:27:29         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00001         list p=16f627
                      00002         
                      00003         Title "DialPhon.asm"
                      00004         
                      00005         include <p16f627.inc>
                      00001         LIST
                      00002 ; P16F627.INC  Standard Header File, Version 1.01    Microchip Technology, Inc.
                      00261         LIST
                      00006         
                      00007         cblock 0x20
  00000020            00008                 W_TEMP,STATUS_TEMP
  00000022            00009                 CALLCNTR,CALLSTATE,CMDCNTR,CMDSTATE,TONECNTR,TONESTATE
  00000028            00010                 DLYCNTH,DLYCNTL,TIMECNTR,TONECYC
                      00011         endc
                      00012         
                      00013         #define dlycmd  0x5             ; delay  5ms
                      00014         #define dlytone 0x14    ; delay 20ms
                      00015         #define dlybtn  0x32    ; delay 50ms
                      00016         
                      00017         ; Reset vector   
0000                  00018         org     00h
0000   2815           00019         goto    start
                      00020         
                      00021         ; interrupt vector
0004                  00022         org     04h
0004   2805           00023         goto    interrupt
                      00024         
                      00025         ; Program start
0005                  00026         org 05h
0005                  00027 interrupt
0005   00A0           00028         movwf   W_TEMP  ;Save W to W_TEMP
0006   0E03           00029         swapf   STATUS,W
0007   0183           00030         clrf    STATUS
0008   00A1           00031         movwf   STATUS_TEMP
                      00032 
0009   1D0B           00033         btfss   INTCON,T0IF
000A   280F           00034         goto    endofint
                      00035         
000B   110B           00036         bcf             INTCON,T0IF
000C   0AAA           00037         incf    TIMECNTR,F
000D   3051           00038         movlw   0x51            ; 50ms interrupt  0x51
000E   0081           00039         movwf   TMR0
                      00040 
000F                  00041 endofint
000F   0183           00042         clrf    STATUS
0010   0E21           00043         swapf   STATUS_TEMP,W
0011   0083           00044         movwf   STATUS
0012   0EA0           00045         swapf   W_TEMP,F
0013   0E20           00046         swapf   W_TEMP,W
                      00047         
0014   0009           00048         retfie
0015                  00049 start
                      00050 ; bank1 select
MPASM  5.05                      DIALPHON.ASM   4-22-2008  11:27:29         PAGE  2
DialPhon.asm

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0015   1683           00051         bsf     STATUS,RP0
0016   1303           00052         bcf     STATUS,RP1
                      00053 
0017   3007           00054         movlw   b'00000111'     ; TMR0 internal clock prescale=256
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0018   0081           00055         movwf   OPTION_REG
                      00056                 
0019   30FF           00057         movlw   b'11111111'     ; PORTA All bits input  
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
001A   0085           00058         movwf   TRISA
                      00059         
001B   3000           00060         movlw   b'00000000'     ; PORTB All bits output
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
001C   0086           00061         movwf   TRISB
                      00062         
                      00063 ; bank0 select  
001D   1283           00064         bcf     STATUS,RP0
001E   1303           00065         bcf     STATUS,RP1
                      00066         
001F   30A0           00067         movlw   b'10100000'     ; Global,TMR0 interrupt enable
0020   008B           00068         movwf   INTCON
                      00069         
0021   3051           00070         movlw   0x51            ; 50ms interrupt  0x51
0022   0081           00071         movwf   TMR0
                      00072 
0023   0185           00073         clrf    PORTA
0024   01AA           00074         clrf    TIMECNTR
0025   01A4           00075         clrf    CMDCNTR
0026   01A2           00076         clrf    CALLCNTR
0027   01A6           00077         clrf    TONECNTR
0028   01AB           00078         clrf    TONECYC
0029   1425           00079         bsf             CMDSTATE,0      ; First Command State->'H'
002A   1423           00080         bsf             CALLSTATE,0     ; First Call Button State->'H'
002B   1427           00081         bsf             TONESTATE,0     ; First StopSound(Tone)input State->'H'
                      00082         
002C   3081           00083         movlw   b'10000001'     ; Alarm -> off,Hook -> down
002D   0086           00084         movwf   PORTB
                      00085 ;       bcf             PORTB,3         ; 16f74 test
                      00086 
002E                  00087 DisConnect   
002E   3081           00088         movlw   b'10000001'     ; Alarm -> off,Hook -> down
002F   0086           00089         movwf   PORTB
                      00090 ;       bcf             PORTB,3         ; 16f74 test
                      00091 
0030   1C05           00092         btfss   PORTA,0         ; Receive Command ?
0031   2848           00093         goto    rcvcmdproc
0032   1425           00094         bsf             CMDSTATE,0      ; Current Command State->'H'
                      00095 
0033   1D05           00096         btfss   PORTA,2         ; Call Button Push Down ?
0034   2837           00097         goto    callbtnproc1
0035   1423           00098         bsf             CALLSTATE,0 ; Current Call Button State->'H'
                      00099 
0036   282E           00100         goto    DisConnect
MPASM  5.05                      DIALPHON.ASM   4-22-2008  11:27:29         PAGE  3
DialPhon.asm

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00101 
0037                  00102 callbtnproc1    
0037   3032           00103         movlw   dlybtn
0038   00A8           00104         movwf   DLYCNTH
0039   2093           00105         call    delay
                      00106         ; Call Button Push Down State Reconfirm
003A   1905           00107         btfsc   PORTA,2
003B   282E           00108         goto    DisConnect      ; Call Button Push Down
                      00109         
003C   1C23           00110         btfss   CALLSTATE,0     ; Previous Call Button State 'H'? Confirm
003D   282E           00111         goto    DisConnect
                      00112 
003E   1023           00113         bcf             CALLSTATE,0     ; Current Call Button State->'L'
003F   0AA2           00114         incf    CALLCNTR,F
                      00115 
0040   0822           00116         movf    CALLCNTR,W
0041   1403           00117         bsf             STATUS,C
0042   3C00           00118         sublw   0x0                     ; n>=1 ?
0043   1803           00119         btfsc   STATUS,C
0044   282E           00120         goto    DisConnect
                      00121         
0045   01A2           00122         clrf    CALLCNTR
0046   01A4           00123         clrf    CMDCNTR
0047   285A           00124         goto    Connect
                      00125         
0048                  00126 rcvcmdproc
0048   3005           00127         movlw   dlycmd
0049   00A8           00128         movwf   DLYCNTH
004A   2093           00129         call    delay
                      00130         ; Receive Command State Reconfirm
004B   1805           00131         btfsc   PORTA,0
004C   282E           00132         goto    DisConnect
                      00133         
004D   1C25           00134         btfss   CMDSTATE,0      ; Previous Command State 'H'? Confirm
004E   282E           00135         goto    DisConnect
                      00136 
004F   1025           00137         bcf             CMDSTATE,0      ; Current Command State->'L'
0050   0AA4           00138         incf    CMDCNTR,F
                      00139         
0051   0824           00140         movf    CMDCNTR,W
0052   1403           00141         bsf             STATUS,C
0053   3C78           00142         sublw   0x78            ; n>120 ?
0054   1803           00143         btfsc   STATUS,C
0055   282E           00144         goto    DisConnect
                      00145         
0056   01A2           00146         clrf    CALLCNTR
0057   01A4           00147         clrf    CMDCNTR
0058   285A           00148         goto    Connect
0059   0000           00149         nop
005A                  00150 Connect
005A   30E1           00151         movlw   b'11100001'     ; Alarm -> on,Hook -> up
005B   0086           00152         movwf   PORTB
                      00153 ;       bsf             PORTB,3         ; 16f74 test
MPASM  5.05                      DIALPHON.ASM   4-22-2008  11:27:29         PAGE  4
DialPhon.asm

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00154 
005C   1D05           00155         btfss   PORTA,2         ; Call Button Push Down
005D   2863           00156         goto    callbtnproc2
005E   1423           00157         bsf             CALLSTATE,0     ; Current Call Button State->'H'
                      00158                 
005F   1C85           00159         btfss   PORTA,1         ; Stop Sound(Tone) input
0060   2874           00160         goto    toneproc
0061   1427           00161         bsf             TONESTATE,0     ; Current StopSound(Tone) input State->'H'
                      00162         
0062   285A           00163         goto    Connect
                      00164 
0063                  00165 callbtnproc2
0063   3032           00166         movlw   dlybtn
0064   00A8           00167         movwf   DLYCNTH
0065   2093           00168         call    delay
                      00169         ; Call Button Push Down State Reconfirm
0066   1905           00170         btfsc   PORTA,2
0067   285A           00171         goto    Connect
                      00172         
0068   1C23           00173         btfss   CALLSTATE,0     ; Previous Call Button State 'H'? Confirm
0069   285A           00174         goto    Connect
                      00175 
006A   1023           00176         bcf             CALLSTATE,0     ; Current Call Button State->'L'
006B   0AA2           00177         incf    CALLCNTR,F
                      00178         
006C   0822           00179         movf    CALLCNTR,W
006D   1403           00180         bsf             STATUS,C
006E   3C00           00181         sublw   0x0                     ; n>=1 ?
006F   1803           00182         btfsc   STATUS,C
0070   285A           00183         goto    Connect
                      00184 
0071   01A2           00185         clrf    CALLCNTR
0072   01A6           00186         clrf    TONECNTR
0073   282E           00187         goto    DisConnect
                      00188         
0074                  00189 toneproc
0074   3014           00190         movlw   dlytone
0075   00A8           00191         movwf   DLYCNTH
0076   2093           00192         call    delay
                      00193         ; Stop Sound input State Reconfirm
0077   1885           00194         btfsc   PORTA,1
0078   285A           00195         goto    Connect
                      00196         
0079   1C27           00197         btfss   TONESTATE,0     ; Previous StopSound(Tone) input State->'H' Confirm
007A   285A           00198         goto    Connect
                      00199 
007B   1027           00200         bcf             TONESTATE,0     ; Current StopSound(Tone) input State->'L' 
                      00201         
007C   082A           00202         movf    TIMECNTR,W      ; Tone signal period detection 
007D   00AB           00203         movwf   TONECYC
007E   01AA           00204         clrf    TIMECNTR
                      00205         
007F   1403           00206         bsf             STATUS,C
MPASM  5.05                      DIALPHON.ASM   4-22-2008  11:27:29         PAGE  5
DialPhon.asm

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0080   3C0B           00207         sublw   0x0b            ; period > 600ms ?
0081   1803           00208         btfsc   STATUS,C
0082   2891           00209         goto    noiseproc
                      00210 
                      00211 ;;;;;;;;;;;;;;;;;;;;
                      00212 ;       btfss   PORTB,2         ; 16f74 test
                      00213 ;       goto    lp0003          ; 16f74 test
                      00214 ;       bcf             PORTB,2         ; 16f74 test
                      00215 ;       goto    lp0004          ; 16f74 test
                      00216 ;lp0003                                 ; 16f74 test
                      00217 ;       bsf             PORTB,2         ; 16f74 test
                      00218 ;lp0004                                 ; 16f74 test
                      00219 ;;;;;;;;;;;;;;;;;;;;
                      00220 
0083   082B           00221         movf    TONECYC,W
0084   1003           00222         bcf             STATUS,C
0085   3C0F           00223         sublw   0x0f            ; period < 800ms ?
0086   1C03           00224         btfss   STATUS,C

⌨️ 快捷键说明

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