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

📄 lcd1602a.lst

📁 PIC单片机的1602液晶显示
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-49394                            Wed Jul 11 13:54:48 2007

Licensed to: ONE
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z49394RS_,global,delta=1
     4                           	psect	strings,global,class=STRING,delta=2
     5                           	psect	const1,local,class=CONST,delta=2
     6                           	psect	const2,local,class=CONST,delta=2
     7                           	psect	const3,local,class=CONST,delta=2
     8                           	psect	const4,local,class=CONST,delta=2
     9                           	psect	text4,local,class=CODE,delta=2
    10                           	psect	text10,local,class=CODE,delta=2
    11                           	psect	text11,local,class=CODE,delta=2
    12                           	psect	text12,local,class=CODE,delta=2
    13                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23  0000                     
    24                           
    25                           	psect	__Z49394RS_
    26  0190                     
    27  0190                     
    28                           
    29                           	psect	const1
    30  0037  0782               	addwf	2
    31  0038                     _dis0
    32  0038  3457               	retlw	87
    33  0039  3465               	retlw	101
    34  003A  346C               	retlw	108
    35  003B  3463               	retlw	99
    36  003C  346F               	retlw	111
    37  003D  346D               	retlw	109
    38  003E  3465               	retlw	101
    39  003F  3400               	retlw	0
    40                           
    41                           	psect	const2
    42  0019  0782               	addwf	2
    43  001A                     _dis1
    44  001A  3477               	retlw	119
    45  001B  3477               	retlw	119
    46  001C  3477               	retlw	119
    47  001D  342E               	retlw	46
    48  001E  3435               	retlw	53
    49  001F  3432               	retlw	50
    50  0020  3437               	retlw	55
    51  0021  3464               	retlw	100
    52  0022  347A               	retlw	122
    53  0023  342E               	retlw	46
    54  0024  3463               	retlw	99
    55  0025  346F               	retlw	111
    56  0026  346D               	retlw	109
    57  0027  3421               	retlw	33
    58  0028  3400               	retlw	0
    59                           
    60                           	psect	const3
    61  0029  0782               	addwf	2
    62  002A                     _dis2
    63  002A  3470               	retlw	112
    64  002B  3465               	retlw	101
    65  002C  346E               	retlw	110
    66  002D  3467               	retlw	103
    67  002E  347A               	retlw	122
    68  002F  3468               	retlw	104
    69  0030  3461               	retlw	97
    70  0031  346E               	retlw	110
    71  0032  3467               	retlw	103
    72  0033  346A               	retlw	106
    73  0034  3475               	retlw	117
    74  0035  346E               	retlw	110
    75  0036  3400               	retlw	0
    76                           
    77                           	psect	const4
    78  0008  0782               	addwf	2
    79  0009                     _dis3
    80  0009  3474               	retlw	116
    81  000A  3465               	retlw	101
    82  000B  346C               	retlw	108
    83  000C  343A               	retlw	58
    84  000D  3431               	retlw	49
    85  000E  3433               	retlw	51
    86  000F  3437               	retlw	55
    87  0010  3439               	retlw	57
    88  0011  3435               	retlw	53
    89  0012  3439               	retlw	57
    90  0013  3435               	retlw	53
    91  0014  3433               	retlw	51
    92  0015  3430               	retlw	48
    93  0016  3434               	retlw	52
    94  0017  3437               	retlw	55
    95  0018  3400               	retlw	0
    96                           
    97                           	psect	text4
    98  0636                     _LCD_wait_Ready
    99                           ;lcd1602a.c: 105: TRISC |= 0x80;
   100  0636  1683               	bsf	3,5
   101  0637  1303               	bcf	3,6	;carry unused
   102  0638  1787               	bsf	7,7	;volatile
   103                           ;lcd1602a.c: 106: RA2=1;
   104  0639  1283               	bcf	3,5
   105  063A  1505               	bsf	5,2
   106                           ;lcd1602a.c: 107: RA1=0;
   107  063B  1085               	bcf	5,1
   108                           ;lcd1602a.c: 108: RA3=1;
   109  063C  1585               	bsf	5,3
   110                           ;lcd1602a.c: 109: while (!( PORTC&0x80 ) == 0);
   111  063D                     l6
   112  063D  1B87               	btfsc	7,7	;volatile
   113  063E  2E3D               	goto	l6
   114                           ;lcd1602a.c: 110: TRISC= 0x00;
   115  063F  1683               	bsf	3,5
   116  0640  0187               	clrf	7	;volatile
   117                           ;lcd1602a.c: 111: }
   118  0641  1283               	bcf	3,5
   119  0642  0008               	return
   120                           
   121                           	psect	text10
   122                           ;lcd1602a.c: 227: void delay_1us(void)
   123                           ;lcd1602a.c: 228: {
   124  0633                     _delay_1us
   125                           ;lcd1602a.c: 229: asm("nop");
   126  0633  0000               	nop	;#
   127                           ;lcd1602a.c: 230: }
   128  0634  0183               	clrf	3	;select bank 0
   129  0635  0008               	return
   130                           
   131                           	psect	text11
   132  0678                     _delay_nus
   133                           ;	_i assigned to ?a_delay_nus+0
   134  0000                     _delay_nus$i	set	?a_delay_nus
   135                           ;lcd1602a.c: 234: unsigned int i=0;
   136  0678  0183               	clrf	3	;select bank 0
   137  0679  01A4               	clrf	?a_delay_nus
   138  067A  01A5               	clrf	?a_delay_nus+1
   139                           ;lcd1602a.c: 235: for (i=0;i<n;i++)
   140  067B  01A4               	clrf	?a_delay_nus
   141  067C  01A5               	clrf	?a_delay_nus+1
   142  067D  2E83               	goto	l46
   143  067E                     l43
   144                           ;lcd1602a.c: 236: delay_1us();
   145                           ;lcd1602a.c: 229: asm("nop");
   146  067E  0000               	nop	;#
   147                           ;lcd1602a.c: 230: }
   148  067F  0183               	clrf	3	;select bank 0
   149  0680  0AA4               	incf	?a_delay_nus
   150  0681  1903               	btfsc	3,2
   151  0682  0AA5               	incf	?a_delay_nus+1
   152  0683                     l46
   153  0683  0823               	movf	?_delay_nus+1,w
   154  0684  0225               	subwf	?a_delay_nus+1,w
   155  0685  1D03               	btfss	3,2
   156  0686  2E89               	goto	u105
   157  0687  0822               	movf	?_delay_nus,w
   158  0688  0224               	subwf	?a_delay_nus,w
   159  0689                     u105
   160  0689  1803               	btfsc	3,0
   161  068A  0008               	return
   162  068B  2E7E               	goto	l43
   163  068C                     _LCD_write_cmd
   164                           ;	_cmd_temp assigned to ?a_LCD_write_cmd+0
   165  0000                     _LCD_write_cmd$cmd_temp	set	?a_LCD_write_cmd
   166                           ;lcd1602a.c: 62: cmd_temp = command;
   167  068C  0183               	clrf	3	;select bank 0
   168  068D  0825               	movf	?_LCD_write_cmd,w
   169  068E  00A7               	movwf	?a_LCD_write_cmd
   170  068F  0826               	movf	?_LCD_write_cmd+1,w
   171  0690  00A8               	movwf	?a_LCD_write_cmd+1
   172                           ;lcd1602a.c: 63: PORTC=PORTC&0x0f;
   173  0691  300F               	movlw	15
   174  0692  0587               	andwf	7	;volatile
   175                           ;lcd1602a.c: 64: PORTC=command&0xf0;
   176  0693  0825               	movf	?_LCD_write_cmd,w
   177  0694  39F0               	andlw	-16
   178  0695  0087               	movwf	7	;volatile
   179                           ;lcd1602a.c: 65: RA1=0;
   180  0696  1085               	bcf	5,1
   181                           ;lcd1602a.c: 66: RA2=0;
   182  0697  1105               	bcf	5,2
   183                           ;lcd1602a.c: 67: LCD_en_write();
   184  0698  2754  120A  118A   	fcall	_LCD_en_write
   185                           ;lcd1602a.c: 68: command=cmd_temp<<4;
   186  069B  0828               	movf	?a_LCD_write_cmd+1,w
   187  069C  00F1               	movwf	btemp+1
   188  069D  0827               	movf	?a_LCD_write_cmd,w
   189  069E  00F0               	movwf	btemp
   190  069F  0EF0               	swapf	btemp
   191  06A0  0EF1               	swapf	btemp+1
   192  06A1  30F0               	movlw	240
   193  06A2  05F1               	andwf	btemp+1
   194  06A3  0870               	movf	btemp,w
   195  06A4  390F               	andlw	15
   196  06A5  04F1               	iorwf	btemp+1
   197  06A6  30F0               	movlw	240
   198  06A7  05F0               	andwf	btemp
   199  06A8  0870               	movf	btemp,w
   200  06A9  00A5               	movwf	?_LCD_write_cmd
   201  06AA  0871               	movf	btemp+1,w
   202  06AB  00A6               	movwf	?_LCD_write_cmd+1
   203                           ;lcd1602a.c: 69: PORTC=PORTC&0x0f;
   204  06AC  300F               	movlw	15
   205  06AD  0587               	andwf	7	;volatile
   206                           ;lcd1602a.c: 70: PORTC=command&0xf0;
   207  06AE  0825               	movf	?_LCD_write_cmd,w
   208  06AF  39F0               	andlw	-16
   209  06B0  0087               	movwf	7	;volatile
   210                           ;lcd1602a.c: 71: RA1=0;
   211  06B1  1085               	bcf	5,1
   212                           ;lcd1602a.c: 72: RA2=0;
   213  06B2  1105               	bcf	5,2
   214                           ;lcd1602a.c: 73: LCD_en_write();
   215  06B3  2F54               	ljmp	_LCD_en_write
   216  06B4                     _LCD_set_xy
   217                           ;	_x assigned to ?a_LCD_set_xy+0
   218  0000                     _LCD_set_xy$x	set	?a_LCD_set_xy
   219                           ;	_address assigned to ?a_LCD_set_xy+1
   220  0000                     _LCD_set_xy$address	set	?a_LCD_set_xy+1
   221                           ;_x stored from w
   222  06B4  0183               	clrf	3	;select bank 0
   223  06B5  00A3               	movwf	?a_LCD_set_xy
   224                           ;lcd1602a.c: 125: unsigned char address;
   225  06B6  08A2               	movf	?_LCD_set_xy
   226  06B7  1D03               	btfss	3,2
   227  06B8  2EBC               	goto	l10
   228  06B9  0823               	movf	?a_LCD_set_xy,w
   229  06BA  3E80               	addlw	-128
   230  06BB  2EBE               	goto	L1
   231                           ;lcd1602a.c: 127: else
   232  06BC                     l10
   233                           ;lcd1602a.c: 128: address = 0xc0 + x;
   234  06BC  0823               	movf	?a_LCD_set_xy,w
   235  06BD  3EC0               	addlw	-64
   236  06BE                     L1
   237  06BE  00A4               	movwf	?a_LCD_set_xy+1
   238                           ;lcd1602a.c: 129: LCD_write_cmd( address );
   239  06BF  00A5               	movwf	?_LCD_write_cmd
   240  06C0  01A6               	clrf	?_LCD_write_cmd+1
   241  06C1  2E8C               	ljmp	_LCD_write_cmd
   242  06C2                     _LCD_write_data
   243                           ;	_data_temp assigned to ?a_LCD_write_data+0
   244  0000                     _LCD_write_data$data_temp	set	?a_LCD_write_data
   245                           ;lcd1602a.c: 86: unsigned data_temp;
   246  06C2  0183               	clrf	3	;select bank 0
   247  06C3  0822               	movf	?_LCD_write_data,w
   248  06C4  00A4               	movwf	?a_LCD_write_data
   249  06C5  0823               	movf	?_LCD_write_data+1,w
   250  06C6  00A5               	movwf	?a_LCD_write_data+1
   251                           ;lcd1602a.c: 90: PORTC=PORTC&0x0f;
   252  06C7  300F               	movlw	15
   253  06C8  0587               	andwf	7	;volatile
   254                           ;lcd1602a.c: 91: PORTC = data&0xf0;
   255  06C9  0822               	movf	?_LCD_write_data,w
   256  06CA  39F0               	andlw	-16
   257  06CB  0087               	movwf	7	;volatile
   258                           ;lcd1602a.c: 92: RA1=1;
   259  06CC  1485               	bsf	5,1
   260                           ;lcd1602a.c: 93: RA2=0;
   261  06CD  1105               	bcf	5,2
   262                           ;lcd1602a.c: 94: LCD_en_write();
   263  06CE  2754  120A  118A   	fcall	_LCD_en_write
   264                           ;lcd1602a.c: 95: data =data_temp<<4;
   265  06D1  0825               	movf	?a_LCD_write_data+1,w
   266  06D2  00F1               	movwf	btemp+1
   267  06D3  0824               	movf	?a_LCD_write_data,w
   268  06D4  00F0               	movwf	btemp
   269  06D5  0EF0               	swapf	btemp
   270  06D6  0EF1               	swapf	btemp+1
   271  06D7  30F0               	movlw	240
   272  06D8  05F1               	andwf	btemp+1
   273  06D9  0870               	movf	btemp,w
   274  06DA  390F               	andlw	15
   275  06DB  04F1               	iorwf	btemp+1
   276  06DC  30F0               	movlw	240
   277  06DD  05F0               	andwf	btemp
   278  06DE  0870               	movf	btemp,w
   279  06DF  00A2               	movwf	?_LCD_write_data
   280  06E0  0871               	movf	btemp+1,w
   281  06E1  00A3               	movwf	?_LCD_write_data+1
   282                           ;lcd1602a.c: 96: PORTC=PORTC&0x0f;
   283  06E2  300F               	movlw	15
   284  06E3  0587               	andwf	7	;volatile
   285                           ;lcd1602a.c: 97: PORTC = data&0xf0;
   286  06E4  0822               	movf	?_LCD_write_data,w
   287  06E5  39F0               	andlw	-16
   288  06E6  0087               	movwf	7	;volatile
   289                           ;lcd1602a.c: 98: RA1=1;
   290  06E7  1485               	bsf	5,1
   291                           ;lcd1602a.c: 99: RA2=0;
   292  06E8  1105               	bcf	5,2
   293                           ;lcd1602a.c: 100: LCD_en_write();
   294  06E9  2F54               	ljmp	_LCD_en_write
   295  06EA                     _LCD_write_string
   296                           ;	_X assigned to ?a_LCD_write_string+0
   297  0000                     _LCD_write_string$X	set	?a_LCD_write_string
   298                           ;_X stored from w
   299  06EA  0183               	clrf	3	;select bank 0
   300  06EB  00A0               	movwf	?a_LCD_write_string
   301                           ;lcd1602a.c: 142: LCD_set_xy( X, Y );
   302  06EC  0820               	movf	?_LCD_write_string,w
   303  06ED  00A2               	movwf	?_LCD_set_xy
   304  06EE  0820               	movf	?a_LCD_write_string,w
   305  06EF  26B4  120A  118A   	fcall	_LCD_set_xy
   306                           ;lcd1602a.c: 144: while (*s)
   307  06F2  2EFD               	goto	l13
   308  06F3                     l14
   309                           ;lcd1602a.c: 145: {
   310  06F3  0821               	movf	?_LCD_write_string+1,w
   311  06F4  0084               	movwf	4
   312  06F5  1383               	bcf	3,7

⌨️ 快捷键说明

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