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

📄 pic16f877-led.lst

📁 pic16f877的led显示的源程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
MPASM  5.03                 PIC16F877-LED.ASM   10-27-2008  23:00:43         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00001                 LIST    P=16f877A
                      00002                 #INCLUDE <P16f877A.INC>   
                      00001         LIST
                      00002 ; P16F877A.INC  Standard Header File, Version 1.00    Microchip Technology, Inc.
                      00400         LIST
                      00003 ;***************************************************
                      00004 #define dis1    0x7f
                      00005 #define dis2    0xBf
                      00006 #define dis3    0xDf
                      00007 #define dis4    0xEf
                      00008 #define dis5    0xf7
                      00009 #define dis6    0xfB    
                      00010 ;***************************************************
  00000021            00011 R1              equ     0x21
  00000022            00012 R2              equ     0x22
  00000023            00013 R3              equ     0x23
  00000024            00014 count   equ     0x24
  00000025            00015 disnum  equ     0x25
  00000026            00016 numg    equ     0x26
  00000027            00017 nums    equ     0x27
  00000028            00018 numb    equ     0x28
  00000030            00019 numq    equ     0x30
  00000030            00020 numw    equ     0x30
  00000031            00021 numsw   equ     0x31
  00000032            00022 num             equ     0x32
  00000033            00023 ADR             equ     0x33
                      00024 ;***************************************************
0000                  00025         org     0x0 
0000   0000           00026                 nop
0001   2820           00027         goto    START
                      00028 ;-------------------PROGRAM------------------------  
0020                  00029         org     0X20
0020                  00030 START:
0020   1683 1303      00031                 banksel TRISD
0022   3000           00032                 movlw   0x00
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0023   0088           00033                 movwf   TRISD
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0024   0086           00034                 movwf   TRISB
0025   30FF           00035                 movlw   0xff
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0026   0087           00036                 movwf   TRISC
0027   1283 1303      00037                 banksel PORTD
0029   30FF           00038                 movlw   0xff
002A   0808           00039                 movfw   PORTD
002B   01A4           00040                 clrf    count
002C   01B2           00041                 clrf    num
002D   01A8           00042                 clrf    numb
002E   01A7           00043                 clrf    nums
002F   01A6           00044                 clrf    numg
0030   2856           00045         goto    xx
0031                  00046 tt:
0031   3001           00047                 movlw   .1
MPASM  5.03                 PIC16F877-LED.ASM   10-27-2008  23:00:43         PAGE  2


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0032   208F           00048                 call    GetDisNum
0033   0086           00049                 movwf   PORTB
0034   307F           00050                 movlw   dis1
0035   0088           00051                 movwf   PORTD
0036   20BC           00052                 call    delay10ms
0037   3002           00053                 movlw   .2
0038   208F           00054                 call    GetDisNum
0039   0086           00055                 movwf   PORTB
003A   30BF           00056                 movlw   dis2
003B   0088           00057                 movwf   PORTD
003C   20BC           00058                 call    delay10ms
003D   3003           00059                 movlw   .3
003E   208F           00060                 call    GetDisNum
003F   0086           00061                 movwf   PORTB
0040   30DF           00062                 movlw   dis3
0041   0088           00063                 movwf   PORTD
0042   20BC           00064                 call    delay10ms
0043   3004           00065                 movlw   .4
0044   208F           00066                 call    GetDisNum
0045   0086           00067                 movwf   PORTB
0046   30EF           00068                 movlw   dis4
0047   0088           00069                 movwf   PORTD
0048   20BC           00070                 call    delay10ms
0049   3005           00071                 movlw   .5
004A   208F           00072                 call    GetDisNum
004B   0086           00073                 movwf   PORTB
004C   30F7           00074                 movlw   dis5
004D   0088           00075                 movwf   PORTD
004E   20BC           00076                 call    delay10ms
004F   3006           00077                 movlw   .6
0050   208F           00078                 call    GetDisNum
0051   0086           00079                 movwf   PORTB
0052   30FB           00080                 movlw   dis6
0053   0088           00081                 movwf   PORTD
0054   20BC           00082                 call    delay10ms
0055   2831           00083                 goto    tt              
0056                  00084 xx:
0056   20AF           00085                 call    AD_trans
0057   0833           00086                 movfw   ADR
0058   00B2           00087                 movwf   num
0059   209A           00088                 call    bintobcd
005A   207C           00089                 call    displayBCD
005B   2856           00090                 goto    xx
                      00091 ;***************************************************
                      00092 ;======================按键子程序===================             
                      00093 ;***************************************************
005C                  00094 key:    
005C   1807           00095                 btfsc   PORTC,0
005D   2862           00096                 goto    knext1
005E   20BC           00097                 call    delay10ms
005F   1807           00098                 btfsc   PORTC,0
0060   2862           00099                 goto    knext1
0061   2876           00100                 goto    key_back        
MPASM  5.03                 PIC16F877-LED.ASM   10-27-2008  23:00:43         PAGE  3


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0062                  00101 knext1:
0062   1887           00102                 btfsc   PORTC,1
0063   2868           00103                 goto    knext2
0064   20BC           00104                 call    delay10ms
0065   1887           00105                 btfsc   PORTC,1
0066   2868           00106                 goto    knext2
0067   2077           00107                 call    key_add
0068                  00108 knext2:
0068   1907           00109                 btfsc   PORTC,2
0069   286E           00110                 goto    knext3
006A   20BC           00111                 call    delay10ms
006B   1907           00112                 btfsc   PORTC,2
006C   286E           00113                 goto    knext3
006D   2079           00114                 call    key_sub
006E                  00115 knext3:
006E   1987           00116                 btfsc   PORTC,3
006F   2875           00117                 goto    knext4
0070   20BC           00118                 call    delay10ms
0071   1987           00119                 btfsc   PORTC,3
0072   2875           00120                 goto    knext4
0073   207B           00121                 call    key_cof
0074   285C           00122                 goto    key
0075                  00123 knext4:
0075   0008           00124                 return
0076                  00125 key_back:
0076   0008           00126                 return
0077                  00127 key_add:
0077   0AA4           00128                 incf    count,f
0078   0008           00129                 return  
0079                  00130 key_sub:
0079   03A4           00131                 decf    count,f
007A   0008           00132                 return
007B                  00133 key_cof:
007B   0008           00134                 return
                      00135 ;***************************************************
                      00136 ;-------------------显示程序------------------------
                      00137 ;***************************************************
007C                  00138 displayBCD:
007C   0828           00139                 movfw   numb
007D   208F           00140                 call    GetDisNum
007E   0086           00141                 movwf   PORTB
007F   30EF           00142                 movlw   dis4
0080   0088           00143                 movwf   PORTD
0081   20BC           00144                 call    delay10ms
0082   0827           00145                 movfw   nums
0083   208F           00146                 call    GetDisNum
0084   0086           00147                 movwf   PORTB
0085   30F7           00148                 movlw   dis5
0086   0088           00149                 movwf   PORTD
0087   20BC           00150                 call    delay10ms
0088   0826           00151                 movfw   numg
0089   208F           00152                 call    GetDisNum
008A   0086           00153                 movwf   PORTB
MPASM  5.03                 PIC16F877-LED.ASM   10-27-2008  23:00:43         PAGE  4


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

008B   30FB           00154                 movlw   dis6
008C   0088           00155                 movwf   PORTD
008D   20BC           00156                 call    delay10ms
008E   0008           00157                 return
                      00158 ;*************************************************************
                      00159 ;*****************共阴极数码管BCD码显示***********************
008F                  00160 GetDisNum:
008F   0782           00161                 addwf   PCL,f
0090   343F           00162                 retlw   #3F
0091   3406           00163                 retlw   #06
0092   345B           00164                 retlw   #5B
0093   344F           00165                 retlw   #4F
0094   3466           00166                 retlw   #66
0095   346D           00167                 retlw   #6D
0096   347D           00168                 retlw   #7D
0097   3407           00169                 retlw   #07
0098   347F           00170                 retlw   #7F
0099   3467           00171                 retlw   #67     
                      00172 ;***************************************************
                      00173 ;-------------------二进制转BCD码子程序-------------
                      00174 ;***************************************************
009A                  00175 bintobcd:
009A   01A6           00176                 clrf    numg
009B   01A7           00177                 clrf    nums
009C   01A8           00178                 clrf    numb
009D   3064           00179                 movlw   64H
009E   02B2           00180 BAI             subwf   num,f   ;NUM-100>0,则NUMB+1
009F   1C03           00181                 btfss   STATUS,0
00A0   28A3           00182                 goto    BAI1
00A1   0AA8           00183                 incf    numb,f
00A2   289E           00184                 goto    BAI
00A3   07B2           00185 BAI1    addwf   num,f
00A4   300A           00186                 movlw   0ah
00A5   02B2           00187 SHI             subwf   num,f
00A6   1C03           00188                 btfss   STATUS,0

⌨️ 快捷键说明

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