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

📄 main.lst

📁 该程序可以在LCD1602上实现字符的显示功能,
💻 LST
📖 第 1 页 / 共 2 页
字号:


HI-TECH Software PICC Macro Assembler V9.60PL1
                                                      Sun Feb 08 17:01:22 2009


     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	text0,local,class=CODE,delta=2
     4                           	psect	text1,local,class=CODE,delta=2
     5                           	psect	text2,local,class=CODE,delta=2
     6                           	psect	text3,local,class=CODE,delta=2
     7                           	psect	text4,local,class=CODE,delta=2
     8                           	psect	text5,local,class=CODE,delta=2
     9  0000                     
    10  0000                     
    11  0000                     
    12  0000                     
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     _delay$t	set	?_delay
    20                           
    21                           	psect	text0
    22  0778                     _delay
    23                           ;main.c: 4: void delay(unsigned int t)
    24  0778  2F7D               	goto	l2
    25  0779                     l3
    26  0779  08A7               	movf	?_delay
    27  077A  1903               	btfsc	3,2
    28  077B  03A8               	decf	?_delay+1
    29  077C  03A7               	decf	?_delay
    30  077D                     l2
    31  077D  1283               	bcf	3,5
    32  077E  1303               	bcf	3,6	;carry unused
    33  077F  0828               	movf	?_delay+1,w
    34  0780  0427               	iorwf	?_delay,w
    35  0781  1903               	btfsc	3,2
    36  0782  0008               	return
    37  0783  2F79               	goto	l3
    38                           
    39                           	psect	text1
    40  0791                     _write_lcd_command
    41                           ;	_com assigned to ?a_write_lcd_command+0
    42  0000                     _write_lcd_command$com	set	?a_write_lcd_command
    43                           ;_com stored from w
    44  0791  0183               	clrf	3	;select bank 0
    45  0792  00A6               	movwf	?a_write_lcd_command
    46                           ;main.c: 10: void write_lcd_command(unsigned ch
      +                          ar com)
    47  0793  3028               	movlw	40
    48  0794  00A7               	movwf	?_delay
    49  0795  01A8               	clrf	?_delay+1
    50  0796  2778               	call	_delay
    51                           ;main.c: 13: RE0=0;
    52  0797  1009               	bcf	9,0
    53                           ;main.c: 14: RE1=0;;
    54  0798  1089               	bcf	9,1
    55                           ;main.c: 15: PORTD=com;
    56  0799  0826               	movf	?a_write_lcd_command,w
    57  079A  0088               	movwf	8	;volatile
    58                           ;main.c: 16: RE2=1;
    59  079B  1509               	bsf	9,2
    60                           ;main.c: 17: RE2=0;
    61  079C  1109               	bcf	9,2
    62                           ;main.c: 18: }
    63  079D  0008               	return	;W free
    64                           
    65                           	psect	text2
    66  0784                     _write_lcd_data
    67                           ;	_data assigned to ?a_write_lcd_data+0
    68  0000                     _write_lcd_data$data	set	?a_write_lcd_data
    69                           ;_data stored from w
    70  0784  0183               	clrf	3	;select bank 0
    71  0785  00A6               	movwf	?a_write_lcd_data
    72                           ;main.c: 21: void write_lcd_data(unsigned char 
      +                          data)
    73  0786  3028               	movlw	40
    74  0787  00A7               	movwf	?_delay
    75  0788  01A8               	clrf	?_delay+1
    76  0789  2778               	call	_delay
    77                           ;main.c: 24: RE0=1;
    78  078A  1409               	bsf	9,0
    79                           ;main.c: 25: RE1=0;
    80  078B  1089               	bcf	9,1
    81                           ;main.c: 26: PORTD=data;
    82  078C  0826               	movf	?a_write_lcd_data,w
    83  078D  0088               	movwf	8	;volatile
    84                           ;main.c: 27: RE2=1;
    85  078E  1509               	bsf	9,2
    86                           ;main.c: 28: RE2=0;
    87  078F  1109               	bcf	9,2
    88                           ;main.c: 29: }
    89  0790  0008               	return	;W free
    90                           
    91                           	psect	text3
    92  079E                     _lcd_init
    93                           ;	_i assigned to ?a_lcd_init+0
    94  0000                     _lcd_init$i	set	?a_lcd_init
    95                           ;main.c: 32: void lcd_init(void)
    96  079E  3038               	movlw	56
    97  079F  2791               	call	_write_lcd_command
    98                           ;main.c: 36: for(i=4;i>0;i--)delay(248);
    99  07A0  3004               	movlw	4
   100  07A1  00A0               	movwf	?a_lcd_init
   101  07A2                     l8
   102  07A2  30F8               	movlw	248
   103  07A3  00A7               	movwf	?_delay
   104  07A4  01A8               	clrf	?_delay+1
   105  07A5  2778               	call	_delay
   106  07A6  0BA0               	decfsz	?a_lcd_init
   107  07A7  2FA2               	goto	l8
   108                           ;main.c: 37: write_lcd_command(0x38);
   109  07A8  3038               	movlw	56
   110  07A9  2791               	call	_write_lcd_command
   111                           ;main.c: 38: write_lcd_command(0x0c);
   112  07AA  300C               	movlw	12
   113  07AB  2791               	call	_write_lcd_command
   114                           ;main.c: 39: write_lcd_command(0x01);
   115  07AC  3001               	movlw	1
   116  07AD  2791               	call	_write_lcd_command
   117                           ;main.c: 40: for(i=4;i>0;i--)delay(248);
   118  07AE  3004               	movlw	4
   119  07AF  00A0               	movwf	?a_lcd_init
   120  07B0                     l11
   121  07B0  30F8               	movlw	248
   122  07B1  00A7               	movwf	?_delay
   123  07B2  01A8               	clrf	?_delay+1
   124  07B3  2778               	call	_delay
   125  07B4  0BA0               	decfsz	?a_lcd_init
   126  07B5  2FB0               	goto	l11
   127                           ;main.c: 41: write_lcd_command(0x06);
   128  07B6  3006               	movlw	6
   129  07B7  2F91               	goto	_write_lcd_command
   130                           
   131                           	psect	text4
   132  07D3                     _lcd_display
   133                           ;	_x assigned to ?a_lcd_display+0
   134  0000                     _lcd_display$x	set	?a_lcd_display
   135                           ;	_s assigned to ?a_lcd_display+1
   136  0000                     _lcd_display$s	set	?a_lcd_display+1
   137                           ;_x stored from w
   138  07D3  0183               	clrf	3	;select bank 0
   139  07D4  00A3               	movwf	?a_lcd_display
   140                           ;main.c: 45: void lcd_display(unsigned char x,u
      +                          nsigned char y,const unsigned char *str)
   141  07D5  2FDD               	goto	l16
   142  07D6                     l17
   143                           ;main.c: 49: {
   144  07D6  0823               	movf	?a_lcd_display,w
   145  07D7  3E80               	addlw	-128
   146  07D8  2FDB               	goto	L1
   147                           ;main.c: 51: break;
   148  07D9                     l18
   149                           ;main.c: 52: case 1: write_lcd_command(0xc0+x);
   150  07D9  0823               	movf	?a_lcd_display,w
   151  07DA  3EC0               	addlw	-64
   152  07DB                     L1
   153  07DB  2791               	call	_write_lcd_command
   154                           ;main.c: 53: break;
   155  07DC  2FE4               	goto	l19
   156  07DD                     l16
   157  07DD  0820               	movf	?_lcd_display,w
   158  07DE  3A00               	xorlw	0
   159  07DF  1903               	btfsc	3,2
   160  07E0  2FD6               	goto	l17
   161  07E1  3A01               	xorlw	1
   162  07E2  1903               	btfsc	3,2
   163  07E3  2FD9               	goto	l18
   164  07E4                     l19
   165  07E4  0822               	movf	?_lcd_display+2,w
   166  07E5  00AA               	movwf	code_ptr+1
   167  07E6  0821               	movf	?_lcd_display+1,w
   168  07E7  200D               	call	string_table
   169  07E8  3800               	iorlw	0
   170  07E9  1903               	btfsc	3,2
   171  07EA  0008               	return
   172                           ;main.c: 55: while(*str)
   173                           ;main.c: 56: {
   174  07EB  0822               	movf	?_lcd_display+2,w
   175  07EC  00AA               	movwf	code_ptr+1
   176  07ED  0821               	movf	?_lcd_display+1,w
   177  07EE  200D               	call	string_table
   178  07EF  2784               	call	_write_lcd_data
   179                           ;main.c: 58: str++;
   180  07F0  0AA1               	incf	?_lcd_display+1
   181  07F1  1903               	btfsc	3,2
   182  07F2  0AA2               	incf	?_lcd_display+2
   183                           ;main.c: 59: for(s=0;s<30000;s++);
   184  07F3  01A4               	clrf	?a_lcd_display+1
   185  07F4  01A5               	clrf	?a_lcd_display+2
   186  07F5                     l22
   187  07F5  0AA4               	incf	?a_lcd_display+1
   188  07F6  1903               	btfsc	3,2
   189  07F7  0AA5               	incf	?a_lcd_display+2
   190  07F8  3075               	movlw	117
   191  07F9  0225               	subwf	?a_lcd_display+2,w
   192  07FA  3030               	movlw	48
   193  07FB  1903               	btfsc	3,2
   194  07FC  0224               	subwf	?a_lcd_display+1,w
   195  07FD  1803               	btfsc	3,0
   196  07FE  2FE4               	goto	l19
   197  07FF  2FF5               	goto	l22
   198                           
   199                           	psect	text5
   200  0000                     
   201  0000                     
   202  0000                     
   203  0000                     
   204  0000                     
   205  0000                     
   206  0000                     
   207  0000                     
   208  0000                     
   209  0000                     
   210  0000                     
   211  0000                     
   212  0000                     
   213  0000                     
   214  0000                     
   215  0000                     
   216  0000                     
   217  0000                     
   218  0000                     
   219  0000                     
   220  0000                     
   221  0000                     
   222  0000                     
   223  0000                     
   224  0000                     
   225  0000                     
   226  0000                     
   227  0000                     
   228  0000                     
   229  0000                     
   230  0000                     
   231  0000                     
   232  0000                     
   233  0000                     
   234  0000                     
   235  0000                     
   236  0000                     
   237  0000                     
   238  0000                     
   239  0000                     
   240  0000                     
   241  0000                     
   242  0000                     
   243  0000                     

⌨️ 快捷键说明

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