lcd1602.lst

来自「PIC16F877入门程序和仿真原理图」· LST 代码 · 共 673 行 · 第 1/2 页

LST
673
字号


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-65018                            Mon Apr  6 21:09:59 2009

Licensed to: ONE
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z65018RS_,global,delta=1
     4                           	psect	rdata_0,global,class=BANK0,space=1,delta
      +                          =1
     5                           	psect	idata_0,global,class=CODE,delta=2
     6                           	psect	text1,local,class=CODE,delta=2
     7                           	psect	text5,local,class=CODE,delta=2
     8                           	psect	text8,local,class=CODE,delta=2
     9                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    10  0000                     
    11  0000                     
    12  0000                     
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20                           
    21                           	psect	__Z65018RS_
    22  0190                     
    23  0190                     
    24                           
    25                           	psect	rdata_0
    26  0027                     _table
    27  0027                     	ds	1
    28  0028                     	ds	1
    29  0029                     	ds	1
    30  002A                     	ds	1
    31  002B                     	ds	1
    32  002C                     	ds	1
    33  002D                     	ds	1
    34  002E                     	ds	1
    35  002F                     	ds	1
    36  0030                     	ds	1
    37  0031                     	ds	1
    38  0032                     _table1
    39  0032                     	ds	1
    40  0033                     	ds	1
    41  0034                     	ds	1
    42  0035                     	ds	1
    43  0036                     	ds	1
    44  0037                     	ds	1
    45  0038                     	ds	1
    46  0039                     	ds	1
    47  003A                     	ds	1
    48  003B                     	ds	1
    49  003C                     _table2
    50  003C                     	ds	1
    51  003D                     	ds	1
    52  003E                     	ds	1
    53  003F                     	ds	1
    54  0040                     	ds	1
    55  0041                     	ds	1
    56  0042                     	ds	1
    57  0043                     	ds	1
    58  0044                     	ds	1
    59                           
    60                           	psect	idata_0
    61  07E2  3479               	retlw	121
    62  07E3  3469               	retlw	105
    63  07E4  346E               	retlw	110
    64  07E5  3462               	retlw	98
    65  07E6  346F               	retlw	111
    66  07E7  3420               	retlw	32
    67  07E8  346D               	retlw	109
    68  07E9  3461               	retlw	97
    69  07EA  3464               	retlw	100
    70  07EB  3465               	retlw	101
    71  07EC  3400               	retlw	0
    72  07ED  3450               	retlw	80
    73  07EE  3449               	retlw	73
    74  07EF  3443               	retlw	67
    75  07F0  3431               	retlw	49
    76  07F1  3436               	retlw	54
    77  07F2  3466               	retlw	102
    78  07F3  3438               	retlw	56
    79  07F4  3437               	retlw	55
    80  07F5  3437               	retlw	55
    81  07F6  3400               	retlw	0
    82  07F7  344C               	retlw	76
    83  07F8  3443               	retlw	67
    84  07F9  3444               	retlw	68
    85  07FA  3431               	retlw	49
    86  07FB  3436               	retlw	54
    87  07FC  3430               	retlw	48
    88  07FD  3432               	retlw	50
    89  07FE  343A               	retlw	58
    90  07FF  3400               	retlw	0
    91                           
    92                           	psect	text1
    93  0720                     _delay_a
    94                           ;	_z assigned to ?a_delay_a+0
    95  0000                     _delay_a$z	set	?a_delay_a
    96                           ;	_j assigned to ?a_delay_a+1
    97  0000                     _delay_a$j	set	?a_delay_a+1
    98                           ;	_i assigned to ?a_delay_a+3
    99  0000                     _delay_a$i	set	?a_delay_a+3
   100                           ;_z stored from w
   101  0720  0183               	clrf	3	;select bank 0
   102  0721  00A2               	movwf	?a_delay_a
   103                           ;lcd1602.c: 18: unsigned int i,j;
   104  0722  00A5               	movwf	?a_delay_a+3
   105  0723  01A6               	clrf	?a_delay_a+4
   106  0724  0426               	iorwf	?a_delay_a+4,w
   107  0725  1903               	btfsc	3,2
   108  0726  0008               	return
   109  0727                     l3
   110                           ;lcd1602.c: 20: for(j=110;j>0;j--);
   111  0727  306E               	movlw	110
   112  0728  00A3               	movwf	?a_delay_a+1
   113  0729  01A4               	clrf	?a_delay_a+2
   114  072A                     l6
   115  072A  08A3               	movf	?a_delay_a+1
   116  072B  1903               	btfsc	3,2
   117  072C  03A4               	decf	?a_delay_a+2
   118  072D  03A3               	decf	?a_delay_a+1
   119  072E  0824               	movf	?a_delay_a+2,w
   120  072F  0423               	iorwf	?a_delay_a+1,w
   121  0730  1D03               	btfss	3,2
   122  0731  2F2A               	goto	l6
   123  0732  08A5               	movf	?a_delay_a+3
   124  0733  1903               	btfsc	3,2
   125  0734  03A6               	decf	?a_delay_a+4
   126  0735  03A5               	decf	?a_delay_a+3
   127  0736  0826               	movf	?a_delay_a+4,w
   128  0737  0425               	iorwf	?a_delay_a+3,w
   129  0738  1903               	btfsc	3,2
   130  0739  0008               	return
   131  073A  2F27               	goto	l3
   132                           ;lcd1602.c: 26: void write_command(unsigned cha
      +                          r tempdata)
   133                           ;lcd1602.c: 27: {
   134  073B                     _write_command
   135                           ;	_tempdata assigned to ?a_write_command+0
   136  0000                     _write_command$tempdata	set	?a_write_command
   137                           ;_tempdata stored from w
   138  073B  0183               	clrf	3	;select bank 0
   139  073C  00A1               	movwf	?a_write_command
   140                           ;lcd1602.c: 28: RB1=0;
   141  073D  1086               	bcf	6,1
   142                           ;lcd1602.c: 29: RB0=0;
   143  073E  1006               	bcf	6,0
   144                           ;lcd1602.c: 30: delay_a(5);
   145  073F  3005               	movlw	5
   146  0740  2720               	fcall	_delay_a
   147                           ;lcd1602.c: 31: PORTD=tempdata;
   148  0741  0821               	movf	?a_write_command,w
   149  0742  0088               	movwf	8	;volatile
   150                           ;lcd1602.c: 32: delay_a(5);
   151  0743  3005               	movlw	5
   152  0744  2720               	fcall	_delay_a
   153                           ;lcd1602.c: 33: RB2=1;
   154  0745  1506               	bsf	6,2
   155                           ;lcd1602.c: 34: delay_a(5);
   156  0746  3005               	movlw	5
   157  0747  2720               	fcall	_delay_a
   158                           ;lcd1602.c: 35: RB2=0;
   159  0748  1106               	bcf	6,2
   160                           ;lcd1602.c: 36: }
   161  0749  0008               	return
   162                           ;lcd1602.c: 41: void write_data(unsigned char t
      +                          empdata)
   163                           ;lcd1602.c: 42: {
   164  074A                     _write_data
   165                           ;	_tempdata assigned to ?a_write_data+0
   166  0000                     _write_data$tempdata	set	?a_write_data
   167                           ;_tempdata stored from w
   168  074A  0183               	clrf	3	;select bank 0
   169  074B  00A1               	movwf	?a_write_data
   170                           ;lcd1602.c: 43: RB1=0;
   171  074C  1086               	bcf	6,1
   172                           ;lcd1602.c: 44: RB0=1;
   173  074D  1406               	bsf	6,0
   174                           ;lcd1602.c: 45: delay_a(5);
   175  074E  3005               	movlw	5
   176  074F  2720               	fcall	_delay_a
   177                           ;lcd1602.c: 46: PORTD=tempdata;
   178  0750  0821               	movf	?a_write_data,w
   179  0751  0088               	movwf	8	;volatile
   180                           ;lcd1602.c: 47: delay_a(5);
   181  0752  3005               	movlw	5
   182  0753  2720               	fcall	_delay_a
   183                           ;lcd1602.c: 48: RB2=1;
   184  0754  1506               	bsf	6,2
   185                           ;lcd1602.c: 49: delay_a(5);
   186  0755  3005               	movlw	5
   187  0756  2720               	fcall	_delay_a
   188                           ;lcd1602.c: 50: RB2=0;
   189  0757  1106               	bcf	6,2
   190                           ;lcd1602.c: 51: }
   191  0758  0008               	return
   192                           ;lcd1602.c: 76: void zifu_disp()
   193                           ;lcd1602.c: 77: {
   194  0759                     _zifu_disp
   195                           ;	_i assigned to ?a_zifu_disp+0
   196  0000                     _zifu_disp$i	set	?a_zifu_disp
   197                           ;lcd1602.c: 78: unsigned char i;
   198  0759  3083               	movlw	-125
   199  075A  273B  120A  118A   	fcall	_write_command
   200                           ;lcd1602.c: 80: for(i=0;i<10;i++)
   201  075D  01A0               	clrf	?a_zifu_disp
   202  075E                     l16
   203                           ;lcd1602.c: 81: {
   204                           ;lcd1602.c: 82: write_data(table[i]);
   205  075E  0820               	movf	?a_zifu_disp,w
   206  075F  3E27               	addlw	_table
   207  0760  0084               	movwf	4
   208  0761  1383               	bcf	3,7
   209  0762  0800               	movf	0,w
   210  0763  274A  120A  118A   	fcall	_write_data
   211                           ;lcd1602.c: 83: delay_a(5);
   212  0766  3005               	movlw	5
   213  0767  2720               	fcall	_delay_a
   214                           ;lcd1602.c: 84: }
   215  0768  0AA0               	incf	?a_zifu_disp
   216  0769  300A               	movlw	10
   217  076A  0220               	subwf	?a_zifu_disp,w
   218  076B  1C03               	btfss	3,0
   219  076C  2F5E               	goto	l16
   220                           ;lcd1602.c: 85: write_command(0x80+0x40);
   221  076D  30C0               	movlw	-64
   222  076E  273B  120A  118A   	fcall	_write_command
   223                           ;lcd1602.c: 86: {
   224  0771  01A0               	clrf	?a_zifu_disp
   225  0772                     l19
   226                           ;lcd1602.c: 88: {
   227                           ;lcd1602.c: 89: write_data(table1[i]);
   228  0772  0820               	movf	?a_zifu_disp,w
   229  0773  3E32               	addlw	_table1
   230  0774  0084               	movwf	4
   231  0775  1383               	bcf	3,7
   232  0776  0800               	movf	0,w
   233  0777  274A  120A  118A   	fcall	_write_data
   234                           ;lcd1602.c: 90: delay_a(5);
   235  077A  3005               	movlw	5
   236  077B  2720               	fcall	_delay_a
   237                           ;lcd1602.c: 91: }
   238  077C  0AA0               	incf	?a_zifu_disp
   239  077D  3009               	movlw	9
   240  077E  0220               	subwf	?a_zifu_disp,w
   241  077F  1C03               	btfss	3,0
   242  0780  2F72               	goto	l19
   243                           ;lcd1602.c: 92: }
   244  0781  30C9               	movlw	-55
   245  0782  273B  120A  118A   	fcall	_write_command
   246                           ;lcd1602.c: 94: for(i=0;i<7;i++)
   247  0785  01A0               	clrf	?a_zifu_disp
   248  0786                     l22
   249                           ;lcd1602.c: 95: {
   250                           ;lcd1602.c: 96: write_data(table2[i]);
   251  0786  0820               	movf	?a_zifu_disp,w
   252  0787  3E3C               	addlw	_table2
   253  0788  0084               	movwf	4
   254  0789  1383               	bcf	3,7
   255  078A  0800               	movf	0,w
   256  078B  274A  120A  118A   	fcall	_write_data
   257                           ;lcd1602.c: 97: delay_a(5);
   258  078E  3005               	movlw	5
   259  078F  2720               	fcall	_delay_a
   260                           ;lcd1602.c: 98: }
   261  0790  0AA0               	incf	?a_zifu_disp
   262  0791  3007               	movlw	7
   263  0792  0220               	subwf	?a_zifu_disp,w
   264  0793  1803               	btfsc	3,0
   265  0794  0008               	return
   266  0795  2F86               	goto	l22
   267                           ;lcd1602.c: 52: void init_LCD(void)
   268                           ;lcd1602.c: 53: {
   269  0796                     _init_LCD
   270                           ;lcd1602.c: 54: write_command(0x38);
   271  0796  3038               	movlw	56
   272  0797  273B  120A  118A   	fcall	_write_command
   273                           ;lcd1602.c: 55: write_command(0x0c);
   274  079A  300C               	movlw	12
   275  079B  273B  120A  118A   	fcall	_write_command
   276                           ;lcd1602.c: 56: write_command(0x06);
   277  079E  3006               	movlw	6
   278  079F  2F3B               	ljmp	_write_command
   279  07A0                     _init_pic
   280                           ;lcd1602.c: 12: TRISB=0X00;
   281  07A0  1683               	bsf	3,5
   282  07A1  1303               	bcf	3,6	;carry unused
   283  07A2  0186               	clrf	6	;volatile
   284                           ;lcd1602.c: 13: TRISD=0X00;
   285  07A3  0188               	clrf	8	;volatile
   286                           ;lcd1602.c: 14: }
   287  07A4  1283               	bcf	3,5
   288  07A5  0008               	return
   289                           ;lcd1602.c: 101: void main()
   290                           ;lcd1602.c: 102: {
   291  07A6                     _main
   292                           ;lcd1602.c: 103: init_pic();
   293  07A6  27A0               	fcall	_init_pic
   294                           ;lcd1602.c: 104: init_LCD();
   295  07A7  2796  120A  118A   	fcall	_init_LCD
   296  07AA                     l27
   297                           ;lcd1602.c: 105: while(1)
   298                           ;lcd1602.c: 106: {
   299  07AA  2759               	fcall	_zifu_disp
   300                           ;lcd1602.c: 110: }
   301  07AB  2FAA               	goto	l27
   302                           
   303                           	psect	text5
   304  06EA                     _write_sfm
   305                           ;	_hang assigned to ?a_write_sfm+0
   306  0000                     _write_sfm$hang	set	?a_write_sfm
   307                           ;	_ge assigned to ?a_write_sfm+1
   308  0000                     _write_sfm$ge	set	?a_write_sfm+1
   309                           ;	_shi assigned to ?a_write_sfm+2
   310  0000                     _write_sfm$shi	set	?a_write_sfm+2
   311                           ;_hang stored from w
   312  06EA  0183               	clrf	3	;select bank 0
   313  06EB  00A0               	movwf	?a_write_sfm
   314                           ;lcd1602.c: 60: unsigned char shi,ge;
   315  06EC  300A               	movlw	10
   316  06ED  00F1               	movwf	btemp+1
   317  06EE  0821               	movf	?_write_sfm+1,w
   318  06EF  120A  118A  27AC   	fcall	lbdiv
   319  06F2  00A2               	movwf	?a_write_sfm+2
   320                           ;lcd1602.c: 62: ge=date%10;
   321  06F3  300A               	movlw	10
   322  06F4  00F1               	movwf	btemp+1
   323  06F5  0821               	movf	?_write_sfm+1,w
   324  06F6  120A  118A  27AC   	fcall	lbmod
      +       120A  118A         
   325  06FB  0870               	movf	btemp,w
   326  06FC  00A1               	movwf	?a_write_sfm+1

⌨️ 快捷键说明

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