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

📄 led.lst

📁 max7219驱动的led数码管显示程序
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC Macro Assembler V9.60
                                                      Mon Apr 20 21:15:09 2009


     1                           	processor	16F913
     2                           	opt	pw 79
     3                           	psect	text3,local,class=CODE,delta=2
     4                           	psect	text4,local,class=CODE,delta=2
     5                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
     6  0000                     
     7  0000                     
     8  0000                     
     9  0000                     
    10  0000                     
    11  0000                     
    12  0000                     
    13  0000                     
    14  0000                     
    15  0000                     
    16                           
    17                           	psect	text3
    18  0721                     _SendDataToMax7219
    19                           ;	_RegisterAddress assigned to ?a_SendDataToMax
      +                          7219+0
    20  0000                     _SendDataToMax7219$RegisterAddress	set	?a_SendD
      +                          ataToMax7219
    21                           ;	_DISP_DIGTMP assigned to ?a_SendDataToMax7219
      +                          +1
    22  0000                     _SendDataToMax7219$DISP_DIGTMP	set	?a_SendDataT
      +                          oMax7219+1
    23                           ;	_DISP_SEGTMP assigned to ?a_SendDataToMax7219
      +                          +2
    24  0000                     _SendDataToMax7219$DISP_SEGTMP	set	?a_SendDataT
      +                          oMax7219+2
    25                           ;	_DATA_TMP assigned to ?a_SendDataToMax7219+3
    26  0000                     _SendDataToMax7219$DATA_TMP	set	?a_SendDataToMa
      +                          x7219+3
    27                           ;	_i assigned to ?a_SendDataToMax7219+4
    28  0000                     _SendDataToMax7219$i	set	?a_SendDataToMax7219+4
    29                           ;_RegisterAddress stored from w
    30  0721  0183               	clrf	3	;select bank 0
    31  0722  00A9               	movwf	?a_SendDataToMax7219
    32                           ;led.c: 81: void SendDataToMax7219(unsigned cha
      +                          r RegisterAddress ,unsigned char RegisterData)
    33  0723  00AA               	movwf	?a_SendDataToMax7219+1	;volatile
    34                           ;led.c: 89: DISP_SEGTMP = RegisterData;
    35  0724  0828               	movf	?_SendDataToMax7219,w
    36  0725  00AB               	movwf	?a_SendDataToMax7219+2	;volatile
    37                           ;led.c: 91: RB1 = 0;
    38  0726  1086               	bcf	6,1
    39                           ;led.c: 92: RC6 = 0;
    40  0727  1307               	bcf	7,6
    41                           ;led.c: 95: for(i=0;i<8;i++)
    42  0728  01AD               	clrf	?a_SendDataToMax7219+4
    43  0729  01AE               	clrf	?a_SendDataToMax7219+5
    44  072A                     l23
    45                           ;led.c: 96: {
    46  072A  082A               	movf	?a_SendDataToMax7219+1,w	;volatile
    47  072B  3980               	andlw	-128
    48  072C  00AC               	movwf	?a_SendDataToMax7219+3	;volatile
    49                           ;led.c: 99: if(DATA_TMP)
    50  072D  082C               	movf	?a_SendDataToMax7219+3,w	;volatile
    51  072E  1903               	btfsc	3,2
    52  072F  2F32               	goto	l26
    53                           ;led.c: 100: {
    54  0730  1607               	bsf	7,4
    55  0731  2F33               	goto	L1
    56                           ;led.c: 103: RC6 = 1;
    57                           ;led.c: 104: ;
    58                           ;led.c: 109: }
    59  0732                     l26
    60                           ;led.c: 110: else
    61  0732  1207               	bcf	7,4
    62  0733                     L1
    63                           ;led.c: 114: RC6 = 1;
    64  0733  1707               	bsf	7,6
    65                           ;led.c: 115: ;
    66  0734  1307               	bcf	7,6
    67                           ;led.c: 120: }
    68  0735  1003               	bcf	3,0
    69  0736  0DAA               	rlf	?a_SendDataToMax7219+1	;volatile
    70  0737  0AAD               	incf	?a_SendDataToMax7219+4
    71  0738  1903               	btfsc	3,2
    72  0739  0AAE               	incf	?a_SendDataToMax7219+5
    73  073A  082E               	movf	?a_SendDataToMax7219+5,w
    74  073B  3A80               	xorlw	128
    75  073C  00FF               	movwf	btemp
    76  073D  3080               	movlw	128
    77  073E  027F               	subwf	btemp,w
    78  073F  3008               	movlw	8
    79                           ;set	bank bits for (((?a_SendDataToMax7219+4)))
    80  0740  1903               	btfsc	3,2
    81  0741  022D               	subwf	?a_SendDataToMax7219+4,w
    82  0742  1C03               	btfss	3,0
    83  0743  2F2A               	goto	l23
    84                           ;led.c: 122: }
    85  0744  01AD               	clrf	?a_SendDataToMax7219+4
    86  0745  01AE               	clrf	?a_SendDataToMax7219+5
    87  0746                     l28
    88                           ;led.c: 127: {
    89  0746  082B               	movf	?a_SendDataToMax7219+2,w	;volatile
    90  0747  3980               	andlw	-128
    91  0748  00AC               	movwf	?a_SendDataToMax7219+3	;volatile
    92                           ;led.c: 130: if(DATA_TMP)
    93  0749  082C               	movf	?a_SendDataToMax7219+3,w	;volatile
    94  074A  1903               	btfsc	3,2
    95  074B  2F4E               	goto	l31
    96                           ;led.c: 131: {
    97  074C  1607               	bsf	7,4
    98  074D  2F4F               	goto	L2
    99                           ;led.c: 134: RC6 = 1;
   100                           ;led.c: 135: ;
   101                           ;led.c: 140: }
   102  074E                     l31
   103                           ;led.c: 141: else
   104  074E  1207               	bcf	7,4
   105  074F                     L2
   106                           ;led.c: 145: RC6 = 1;
   107  074F  1707               	bsf	7,6
   108                           ;led.c: 146: ;
   109  0750  1307               	bcf	7,6
   110                           ;led.c: 151: }
   111  0751  1003               	bcf	3,0
   112  0752  0DAB               	rlf	?a_SendDataToMax7219+2	;volatile
   113  0753  0AAD               	incf	?a_SendDataToMax7219+4
   114  0754  1903               	btfsc	3,2
   115  0755  0AAE               	incf	?a_SendDataToMax7219+5
   116  0756  082E               	movf	?a_SendDataToMax7219+5,w
   117  0757  3A80               	xorlw	128
   118  0758  00FF               	movwf	btemp
   119  0759  3080               	movlw	128
   120  075A  027F               	subwf	btemp,w
   121  075B  3008               	movlw	8
   122                           ;set	bank bits for (((?a_SendDataToMax7219+4)))
   123  075C  1903               	btfsc	3,2
   124  075D  022D               	subwf	?a_SendDataToMax7219+4,w
   125  075E  1C03               	btfss	3,0
   126  075F  2F46               	goto	l28
   127                           ;led.c: 153: }
   128  0760  1486               	bsf	6,1
   129                           ;led.c: 157: }
   130  0761  0008               	return	;W free
   131  0762                     _initMax7219
   132                           ;	_InitRegisterAdress assigned to ?a_initMax721
      +                          9+0
   133  0000                     _initMax7219$InitRegisterAdress	set	?a_initMax7
      +                          219
   134                           ;	_InitRegisterData assigned to ?a_initMax7219+
      +                          1
   135  0000                     _initMax7219$InitRegisterData	set	?a_initMax721
      +                          9+1
   136                           ;led.c: 54: void initMax7219(void)
   137  0762  300C               	movlw	12
   138  0763  0183               	clrf	3	;select bank 0
   139  0764  00A6               	movwf	?a_initMax7219	;volatile
   140                           ;led.c: 58: InitRegisterData = 0x01;
   141  0765  3001               	movlw	1
   142  0766  00A7               	movwf	?a_initMax7219+1	;volatile
   143                           ;led.c: 59: SendDataToMax7219(InitRegisterAdres
      +                          s,InitRegisterData);
   144  0767  0827               	movf	?a_initMax7219+1,w	;volatile
   145  0768  00A8               	movwf	?_SendDataToMax7219
   146  0769  0826               	movf	?a_initMax7219,w	;volatile
   147  076A  2721               	fcall	_SendDataToMax7219
   148                           ;led.c: 61: InitRegisterAdress = 0x0F;
   149  076B  300F               	movlw	15
   150  076C  00A6               	movwf	?a_initMax7219	;volatile
   151                           ;led.c: 62: InitRegisterData = 0x00;
   152  076D  01A7               	clrf	?a_initMax7219+1	;volatile
   153                           ;led.c: 63: SendDataToMax7219(InitRegisterAdres
      +                          s,InitRegisterData);
   154  076E  0827               	movf	?a_initMax7219+1,w	;volatile
   155  076F  00A8               	movwf	?_SendDataToMax7219
   156  0770  0826               	movf	?a_initMax7219,w	;volatile
   157  0771  2721               	fcall	_SendDataToMax7219
   158                           ;led.c: 65: InitRegisterAdress = 0x0B;
   159  0772  300B               	movlw	11
   160  0773  00A6               	movwf	?a_initMax7219	;volatile
   161                           ;led.c: 66: InitRegisterData = 0x07;
   162  0774  3007               	movlw	7
   163  0775  00A7               	movwf	?a_initMax7219+1	;volatile
   164                           ;led.c: 67: SendDataToMax7219(InitRegisterAdres
      +                          s,InitRegisterData);
   165  0776  0827               	movf	?a_initMax7219+1,w	;volatile
   166  0777  00A8               	movwf	?_SendDataToMax7219
   167  0778  0826               	movf	?a_initMax7219,w	;volatile
   168  0779  2721               	fcall	_SendDataToMax7219
   169                           ;led.c: 69: InitRegisterAdress = 0x09;
   170  077A  3009               	movlw	9
   171  077B  00A6               	movwf	?a_initMax7219	;volatile
   172                           ;led.c: 70: InitRegisterData = 0xFF;
   173  077C  30FF               	movlw	-1
   174  077D  00A7               	movwf	?a_initMax7219+1	;volatile
   175                           ;led.c: 71: SendDataToMax7219(InitRegisterAdres
      +                          s,InitRegisterData);
   176  077E  0827               	movf	?a_initMax7219+1,w	;volatile
   177  077F  00A8               	movwf	?_SendDataToMax7219
   178  0780  0826               	movf	?a_initMax7219,w	;volatile
   179  0781  2721               	fcall	_SendDataToMax7219
   180                           ;led.c: 73: InitRegisterAdress = 0x0A;
   181  0782  300A               	movlw	10
   182  0783  00A6               	movwf	?a_initMax7219	;volatile
   183                           ;led.c: 74: InitRegisterData = 0x0F;
   184  0784  300F               	movlw	15
   185  0785  00A7               	movwf	?a_initMax7219+1	;volatile
   186                           ;led.c: 75: SendDataToMax7219(InitRegisterAdres
      +                          s,InitRegisterData);
   187  0786  0827               	movf	?a_initMax7219+1,w	;volatile
   188  0787  00A8               	movwf	?_SendDataToMax7219
   189  0788  0826               	movf	?a_initMax7219,w	;volatile
   190  0789  2F21               	ljmp	_SendDataToMax7219
   191                           ;led.c: 78: }
   192  078A  0008               	return	;W free
   193                           ;       param _RegisterData assigned to ?_SendD
      +                          ataToMax7219+0
   194  0000                     _SendDataToMax7219$RegisterData	set	?_SendDataT
      +                          oMax7219
   195  078B                     _init
   196                           ;	_i assigned to ?a_init+0
   197  0000                     _init$i	set	?a_init
   198                           ;led.c: 32: void init()
   199  078B  30FF               	movlw	-1
   200  078C  1683               	bsf	3,5
   201  078D  1303               	bcf	3,6	;carry unused
   202  078E  0085               	movwf	5	;volatile
   203                           ;led.c: 36: PORTA = 0x00;
   204  078F  1283               	bcf	3,5
   205  0790  0185               	clrf	5	;volatile
   206                           ;led.c: 37: PORTC = 0x00;
   207  0791  0187               	clrf	7	;volatile
   208                           ;led.c: 38: TRISC = 0x00;
   209  0792  1683               	bsf	3,5
   210  0793  0187               	clrf	7	;volatile
   211                           ;led.c: 39: TRISB = 0x00;
   212  0794  0186               	clrf	6	;volatile
   213                           ;led.c: 40: PORTB = 0x00;
   214  0795  1283               	bcf	3,5
   215  0796  0186               	clrf	6	;volatile
   216                           ;led.c: 41: INTCON = 0x00;
   217  0797  018B               	clrf	11	;volatile
   218                           ;led.c: 42: T1CON = 0x00;
   219  0798  0190               	clrf	16	;volatile
   220                           ;led.c: 43: RCSTA = 0x00;
   221  0799  0198               	clrf	24	;volatile
   222                           ;led.c: 44: initMax7219();
   223  079A  2762  118A         	fcall	_initMax7219
   224                           ;led.c: 45: asm("nop");
   225  079C  0000               	nop	;#
   226                           ;led.c: 46: asm("nop");
   227  079D  0000               	nop	;#
   228                           ;led.c: 47: for(i=1;i<=8;i++)
   229  079E  01A4               	clrf	?a_init
   230  079F  0AA4               	incf	?a_init
   231  07A0  01A5               	clrf	?a_init+1
   232  07A1                     l18
   233                           ;led.c: 48: {
   234  07A1  01A8               	clrf	?_SendDataToMax7219
   235  07A2  0824               	movf	?a_init,w
   236  07A3  2721               	fcall	_SendDataToMax7219
   237  07A4  0AA4               	incf	?a_init
   238  07A5  1903               	btfsc	3,2
   239  07A6  0AA5               	incf	?a_init+1
   240  07A7  0825               	movf	?a_init+1,w
   241  07A8  3A80               	xorlw	128
   242  07A9  00FF               	movwf	btemp
   243  07AA  3080               	movlw	128
   244  07AB  027F               	subwf	btemp,w
   245  07AC  3009               	movlw	9
   246                           ;set	bank bits for (((?a_init+0)))
   247  07AD  1903               	btfsc	3,2

⌨️ 快捷键说明

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