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

📄 1602lcd.lst

📁 1602液晶显示驱动程序
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC Macro Assembler V9.60PL1
                                                      Fri Aug 01 14:26:12 2008


     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	strings,global,class=STRING,delta=2
     4                           	psect	const1,local,class=CONST,delta=2
     5                           	psect	text0,local,class=CODE,delta=2
     6                           	psect	text1,local,class=CODE,delta=2
     7                           	psect	text2,local,class=CODE,delta=2
     8                           	psect	text3,local,class=CODE,delta=2
     9                           	psect	text4,local,class=CODE,delta=2
    10                           	psect	text5,local,class=CODE,delta=2
    11                           	psect	text6,local,class=CODE,delta=2
    12                           	psect	text7,local,class=CODE,delta=2
    13                           	psect	text8,local,class=CODE,delta=2
    14                           	psect	text9,local,class=CODE,delta=2
    15                           	psect	rbit_0,global,bit,class=BANK0,space=1,de
      +                          lta=1
    16                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23  0000                     
    24  0000                     
    25  0000                     
    26  0000                     
    27                           
    28                           	psect	const1
    29  0022  0782               	addwf	2
    30  0023                     _int2charLCD
    31  0023  3430               	retlw	48
    32  0024  3431               	retlw	49
    33  0025  3432               	retlw	50
    34  0026  3433               	retlw	51
    35  0027  3434               	retlw	52
    36  0028  3435               	retlw	53
    37  0029  3436               	retlw	54
    38  002A  3437               	retlw	55
    39  002B  3438               	retlw	56
    40  002C  3439               	retlw	57
    41  002D  3420               	retlw	32
    42  002E  3400               	retlw	0
    43                           
    44                           	psect	text0
    45  05F3                     _delay_us
    46                           ;	_k assigned to ?a_delay_us+0
    47  0000                     _delay_us$k	set	?a_delay_us
    48                           ;_k stored from w
    49  05F3  0183               	clrf	3	;select bank 0
    50  05F4  00B7               	movwf	?a_delay_us
    51                           ;1602lcd.c: 6: void delay_us(unsigned char k)
    52  05F5                     l2
    53                           ;1602lcd.c: 10: {
    54  05F5  1283               	bcf	3,5
    55  05F6  1303               	bcf	3,6	;carry unused
    56  05F7  03B7               	decf	?a_delay_us
    57  05F8  0F37               	incfsz	?a_delay_us,w
    58  05F9  2DF5               	goto	l2
    59  05FA  0008               	return
    60                           
    61                           	psect	text1
    62  0668                     _delay_ms
    63                           ;	_k assigned to ?a_delay_ms+0
    64  0000                     _delay_ms$k	set	?a_delay_ms
    65                           ;	_i assigned to ?a_delay_ms+1
    66  0000                     _delay_ms$i	set	?a_delay_ms+1
    67                           ;_k stored from w
    68  0668  0183               	clrf	3	;select bank 0
    69  0669  00A7               	movwf	?a_delay_ms
    70                           ;1602lcd.c: 14: void delay_ms(unsigned char k)
    71  066A  2E7A               	goto	l6
    72  066B                     l7
    73                           ;1602lcd.c: 17: { for(i=0;i<256;i++);
    74  066B  01A8               	clrf	?a_delay_ms+1
    75  066C                     l9
    76  066C  0AA8               	incf	?a_delay_ms+1
    77  066D  0828               	movf	?a_delay_ms+1,w
    78  066E  00A9               	movwf	?a_delay_ms+2
    79  066F  01AA               	clrf	?a_delay_ms+3
    80  0670  082A               	movf	?a_delay_ms+3,w
    81  0671  3A80               	xorlw	128
    82  0672  00F4               	movwf	btemp
    83  0673  3081               	movlw	129
    84  0674  0274               	subwf	btemp,w
    85  0675  3000               	movlw	0
    86                           ;set	bank bits for f2813+0
    87  0676  1903               	btfsc	3,2
    88  0677  0229               	subwf	?a_delay_ms+2,w
    89  0678  1C03               	btfss	3,0
    90  0679  2E6C               	goto	l9
    91  067A                     l6
    92  067A  1283               	bcf	3,5
    93  067B  1303               	bcf	3,6	;carry unused
    94  067C  03A7               	decf	?a_delay_ms
    95  067D  0F27               	incfsz	?a_delay_ms,w
    96  067E  2E6B               	goto	l7
    97  067F  0008               	return
    98                           
    99                           	psect	text2
   100  05FB                     _lcd_bz
   101                           ;1602lcd.c: 20: bit lcd_bz()
   102  05FB  0183               	clrf	3	;select bank 0
   103  05FC  1009               	bcf	9,0
   104                           ;1602lcd.c: 24: RE1=1;
   105  05FD  1489               	bsf	9,1
   106                           ;1602lcd.c: 25: RE2=1;
   107  05FE  1509               	bsf	9,2
   108                           ;1602lcd.c: 26: TRISC = 0Xff;
   109  05FF  30FF               	movlw	-1
   110  0600  1683               	bsf	3,5
   111  0601  0087               	movwf	7	;volatile
   112                           ;1602lcd.c: 27: delay_us(100);
   113  0602  3064               	movlw	100
   114  0603  25F3               	call	_delay_us
   115                           ;1602lcd.c: 28: result = (bit)(PORTC&0x80);
   116  0604  1020               	bcf	F535/(0+8),F535& (0+7)
   117                           ;1602lcd.c: 29: RE2=0;
   118  0605  1109               	bcf	9,2
   119                           ;1602lcd.c: 30: return result;
   120  0606  1003               	bcf	3,0
   121  0607  1820               	btfsc	F535/(0+8),F535& (0+7)
   122  0608  1403               	bsf	3,0
   123                           ;1602lcd.c: 31: }
   124  0609  0008               	return	;W free
   125                           ;       param _command assigned to ?_write_LCD_
      +                          command+0
   126  0000                     _write_LCD_command$command	set	?_write_LCD_comm
      +                          and
   127                           
   128                           	psect	text3
   129  061A                     _write_LCD_command
   130                           ;1602lcd.c: 32: void write_LCD_command(unsigned
      +                           command)
   131  061A                     l14
   132  061A  25FB               	call	_lcd_bz
   133  061B  1803               	btfsc	3,0
   134  061C  2E1A               	goto	l14
   135                           ;1602lcd.c: 35: RE1=0;
   136  061D  1089               	bcf	9,1
   137                           ;1602lcd.c: 36: RE0=0;
   138  061E  1009               	bcf	9,0
   139                           ;1602lcd.c: 37: RE2=0;
   140  061F  1109               	bcf	9,2
   141                           ;1602lcd.c: 38: TRISC=0X00;
   142  0620  1683               	bsf	3,5
   143  0621  0187               	clrf	7	;volatile
   144                           ;1602lcd.c: 39: PORTC=command;
   145  0622  1283               	bcf	3,5
   146  0623  082B               	movf	?_write_LCD_command,w
   147  0624  0087               	movwf	7	;volatile
   148                           ;1602lcd.c: 40: delay_us(100);
   149  0625  3064               	movlw	100
   150  0626  25F3               	call	_delay_us
   151                           ;1602lcd.c: 41: RE2=1;
   152  0627  1509               	bsf	9,2
   153                           ;1602lcd.c: 42: delay_us(100);
   154  0628  3064               	movlw	100
   155  0629  25F3               	call	_delay_us
   156                           ;1602lcd.c: 43: RE2=0;
   157  062A  1109               	bcf	9,2
   158                           ;1602lcd.c: 45: }
   159  062B  0008               	return	;W free
   160                           
   161                           	psect	text4
   162  062C                     _write_LCD_data
   163                           ;1602lcd.c: 47: void write_LCD_data(unsigned LC
      +                          Ddata)
   164  062C                     l18
   165  062C  25FB               	call	_lcd_bz
   166  062D  1803               	btfsc	3,0
   167  062E  2E2C               	goto	l18
   168                           ;1602lcd.c: 50: RE1=0;
   169  062F  1089               	bcf	9,1
   170                           ;1602lcd.c: 51: RE0=1;
   171  0630  1409               	bsf	9,0
   172                           ;1602lcd.c: 52: RE2=1;
   173  0631  1509               	bsf	9,2
   174                           ;1602lcd.c: 53: TRISC=0X00;
   175  0632  1683               	bsf	3,5
   176  0633  0187               	clrf	7	;volatile
   177                           ;1602lcd.c: 54: PORTC=LCDdata;
   178  0634  1283               	bcf	3,5
   179  0635  0835               	movf	?_write_LCD_data,w
   180  0636  0087               	movwf	7	;volatile
   181                           ;1602lcd.c: 55: delay_us(100);
   182  0637  3064               	movlw	100
   183  0638  25F3               	call	_delay_us
   184                           ;1602lcd.c: 56: RE2=1;
   185  0639  1509               	bsf	9,2
   186                           ;1602lcd.c: 57: delay_us(100);
   187  063A  3064               	movlw	100
   188  063B  25F3               	call	_delay_us
   189                           ;1602lcd.c: 58: RE2=0;
   190  063C  1109               	bcf	9,2
   191                           ;1602lcd.c: 59: }
   192  063D  0008               	return	;W free
   193                           
   194                           	psect	text5
   195  063E                     _init_LCD
   196                           ;1602lcd.c: 60: void init_LCD(void)
   197  063E  3038               	movlw	56
   198  063F  0183               	clrf	3	;select bank 0
   199  0640  00AB               	movwf	?_write_LCD_command
   200  0641  01AC               	clrf	?_write_LCD_command+1
   201  0642  261A               	call	_write_LCD_command
   202                           ;1602lcd.c: 63: delay_us(10);
   203  0643  300A               	movlw	10
   204  0644  25F3               	call	_delay_us
   205                           ;1602lcd.c: 64: write_LCD_command(0x0d);
   206  0645  300D               	movlw	13
   207  0646  00AB               	movwf	?_write_LCD_command
   208  0647  01AC               	clrf	?_write_LCD_command+1
   209  0648  261A               	call	_write_LCD_command
   210                           ;1602lcd.c: 65: delay_us(10);
   211  0649  300A               	movlw	10
   212  064A  25F3               	call	_delay_us
   213                           ;1602lcd.c: 66: write_LCD_command(0x06);
   214  064B  3006               	movlw	6
   215  064C  00AB               	movwf	?_write_LCD_command
   216  064D  01AC               	clrf	?_write_LCD_command+1
   217  064E  261A               	call	_write_LCD_command
   218                           ;1602lcd.c: 67: delay_us(10);
   219  064F  300A               	movlw	10
   220  0650  2DF3               	goto	_delay_us
   221                           
   222                           	psect	text6
   223  0698                     _clear_LCD
   224                           ;1602lcd.c: 71: void clear_LCD()
   225  0698                     l23
   226  0698  25FB               	call	_lcd_bz
   227  0699  1803               	btfsc	3,0
   228  069A  2E98               	goto	l23
   229                           ;1602lcd.c: 74: RE1=0;
   230  069B  1089               	bcf	9,1
   231                           ;1602lcd.c: 75: RE0=0;
   232  069C  1009               	bcf	9,0
   233                           ;1602lcd.c: 76: RE2=0;
   234  069D  1109               	bcf	9,2
   235                           ;1602lcd.c: 77: TRISC=0X00;
   236  069E  1683               	bsf	3,5
   237  069F  0187               	clrf	7	;volatile
   238                           ;1602lcd.c: 78: PORTC=0x01;
   239  06A0  3001               	movlw	1
   240  06A1  1283               	bcf	3,5
   241  06A2  0087               	movwf	7	;volatile
   242                           ;1602lcd.c: 79: delay_ms(256);
   243  06A3  3000               	movlw	0
   244  06A4  2668               	call	_delay_ms
   245                           ;1602lcd.c: 80: RE2=1;
   246  06A5  1509               	bsf	9,2
   247                           ;1602lcd.c: 81: RE2=0;
   248  06A6  1109               	bcf	9,2
   249                           ;1602lcd.c: 83: while(lcd_bz());
   250  06A7                     l26
   251  06A7  25FB               	call	_lcd_bz

⌨️ 快捷键说明

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