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

📄 lcd.lst

📁 利用热释红外传感器、12C887和PIC单片机制作的智能电子时钟
💻 LST
📖 第 1 页 / 共 2 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-88888                            Tue Oct  2 19:10:15 2007

Licensed to: ONE TWO
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z88888RS_,global,delta=1
     4                           	psect	text0,local,class=CODE,delta=2
     5                           	psect	text1,local,class=CODE,delta=2
     6                           	psect	text2,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	__Z88888RS_
    22  0190                     
    23  0190                     
    24                           
    25                           	psect	text0
    26  02FC                     _lcd_light
    27                           ;lcd.c: 36: RA3 = 0;
    28  02FC  0183               	clrf	3	;select bank 0
    29  02FD  1185               	bcf	5,3
    30                           ;lcd.c: 37: }
    31  02FE  0183               	clrf	3	;select bank 0
    32  02FF  0008               	return
    33                           
    34                           	psect	text1
    35  02F8                     _lcd_dark
    36                           ;lcd.c: 41: RA3 = 1;
    37  02F8  0183               	clrf	3	;select bank 0
    38  02F9  1585               	bsf	5,3
    39                           ;lcd.c: 42: }
    40  02FA  0183               	clrf	3	;select bank 0
    41  02FB  0008               	return
    42                           
    43                           	psect	text2
    44  03D4                     _lcd_write
    45                           ;lcd.c: 49: PORTC = (PORTC & 0x0F) | (c &0xF0);
    46                           ;	_c assigned to ?a_lcd_write+0
    47  0000                     _lcd_write$c	set	?a_lcd_write
    48                           ;_c stored from w
    49  03D4  0183               	clrf	3	;select bank 0
    50  03D5  00CE               	movwf	?a_lcd_write
    51  03D6  39F0               	andlw	-16
    52  03D7  00F0               	movwf	btemp
    53  03D8  0807               	movf	7,w	;volatile
    54  03D9  390F               	andlw	15
    55  03DA  0470               	iorwf	btemp,w
    56  03DB  0087               	movwf	7	;volatile
    57                           ;lcd.c: 50: ((RA2 = 1),(RA2=0));
    58  03DC  1505               	bsf	5,2
    59  03DD  1105               	bcf	5,2
    60                           ;lcd.c: 51: PORTC = (PORTC & 0x0F) | (c<<4);
    61  03DE  0E4E               	swapf	?a_lcd_write,w
    62  03DF  39F0               	andlw	240
    63  03E0  00F0               	movwf	btemp
    64  03E1  0807               	movf	7,w	;volatile
    65  03E2  390F               	andlw	15
    66  03E3  0470               	iorwf	btemp,w
    67  03E4  0087               	movwf	7	;volatile
    68                           ;lcd.c: 52: ((RA2 = 1),(RA2=0));
    69  03E5  1505               	bsf	5,2
    70  03E6  1105               	bcf	5,2
    71                           ;lcd.c: 53: { unsigned char _dcnt; _dcnt = (40)
      +                          /((12*1000L)/(4*1000L))|1; while(--_dcnt != 0) 
      +                          continue; };
    72                           ;	__dcnt assigned to ?a_lcd_write+1
    73  0000                     _lcd_write$_dcnt	set	?a_lcd_write+1
    74  03E7  300D               	movlw	13
    75  03E8  00CF               	movwf	?a_lcd_write+1
    76  03E9                     l4
    77  03E9  1283               	bcf	3,5
    78  03EA  1303               	bcf	3,6	;carry unused
    79  03EB  0BCF               	decfsz	?a_lcd_write+1
    80  03EC  2BE9               	goto	l4
    81                           ;lcd.c: 54: }
    82  03ED  0008               	return
    83                           ;lcd.c: 58: void lcd_clear(void)
    84                           ;lcd.c: 59: {
    85  03EE                     _lcd_clear
    86                           ;lcd.c: 60: RA1 = 0;
    87  03EE  0183               	clrf	3	;select bank 0
    88  03EF  1085               	bcf	5,1
    89                           ;lcd.c: 61: lcd_write(0x1);
    90  03F0  3001               	movlw	1
    91  03F1  23D4               	fcall	_lcd_write
    92                           ;lcd.c: 62: DelayMs(2);
    93  03F2  3002               	movlw	2
    94  03F3  120A  118A  2B00   	ljmp	_DelayMs
    95  03F6                     _lcd_puts
    96                           ;lcd.c: 69: RA1 = 1;
    97  03F6  0183               	clrf	3	;select bank 0
    98  03F7  1485               	bsf	5,1
    99                           ;lcd.c: 70: while(*s)
   100  03F8  2C07               	goto	l9
   101  03F9                     l10
   102                           ;lcd.c: 71: {
   103                           ;lcd.c: 72: lcd_write(*s++);
   104  03F9  1283               	bcf	3,5
   105  03FA  1303               	bcf	3,6	;carry unused
   106  03FB  084D               	movf	?_lcd_puts+1,w
   107  03FC  00D4               	movwf	code_ptr+1
   108  03FD  084C               	movf	?_lcd_puts,w
   109  03FE  0ACC               	incf	?_lcd_puts
   110  03FF  1903               	btfsc	3,2
   111  0400  0ACD               	incf	?_lcd_puts+1
   112  0401  120A  118A  204C   	fcall	string_table
      +       120A  118A         
   113  0406  23D4               	fcall	_lcd_write
   114                           ;lcd.c: 73: }
   115  0407                     l9
   116  0407  1283               	bcf	3,5
   117  0408  1303               	bcf	3,6	;carry unused
   118  0409  084D               	movf	?_lcd_puts+1,w
   119  040A  00D4               	movwf	code_ptr+1
   120  040B  084C               	movf	?_lcd_puts,w
   121  040C  120A  118A  204C   	fcall	string_table
      +       120A  118A         
   122  0411  3800               	iorlw	0
   123  0412  1D03               	btfss	3,2
   124  0413  2BF9               	goto	l10
   125                           ;lcd.c: 74: }
   126  0414  0183               	clrf	3	;select bank 0
   127  0415  0008               	return
   128                           ;lcd.c: 91: void lcd_goto(unsigned char pos)
   129                           ;lcd.c: 92: {
   130  0416                     _lcd_goto
   131                           ;lcd.c: 93: RA1 = 0;
   132  0416  0183               	clrf	3	;select bank 0
   133  0417  1085               	bcf	5,1
   134                           ;lcd.c: 94: lcd_write(((pos)&0x7F)|0x80);
   135                           ;	_pos assigned to ?a_lcd_goto+0
   136  0000                     _lcd_goto$pos	set	?a_lcd_goto
   137                           ;_pos stored from w
   138  0418  00CC               	movwf	?a_lcd_goto
   139  0419  397F               	andlw	127
   140  041A  3880               	iorlw	-128
   141  041B  2BD4               	ljmp	_lcd_write
   142                           ;lcd.c: 117: void lcd_init(void)
   143                           ;lcd.c: 118: {
   144  041C                     _lcd_init
   145                           ;lcd.c: 120: TRISA1 = 0;
   146  041C  1683               	bsf	3,5
   147  041D  1303               	bcf	3,6	;carry unused
   148  041E  1085               	bcf	5,1
   149                           ;lcd.c: 121: TRISA2 = 0;
   150  041F  1105               	bcf	5,2
   151                           ;lcd.c: 122: TRISA3 = 0;
   152  0420  1185               	bcf	5,3
   153                           ;lcd.c: 123: RA1 = 0;
   154  0421  1283               	bcf	3,5
   155  0422  1085               	bcf	5,1
   156                           ;lcd.c: 124: RA2 = 0;
   157  0423  1105               	bcf	5,2
   158                           ;lcd.c: 125: RA3 = 0;
   159  0424  1185               	bcf	5,3
   160                           ;lcd.c: 126: RA1 = 0;
   161  0425  1085               	bcf	5,1
   162                           ;lcd.c: 127: lcd_write(0b00000010);
   163  0426  3002               	movlw	2
   164  0427  23D4               	fcall	_lcd_write
   165                           ;lcd.c: 128: DelayMs(10);
   166  0428  300A               	movlw	10
   167  0429  120A  118A  2300   	fcall	_DelayMs
      +       120A  118A         
   168                           ;lcd.c: 129: lcd_write(0b00111111);
   169  042E  303F               	movlw	63
   170  042F  23D4               	fcall	_lcd_write
   171                           ;lcd.c: 130: DelayMs(10);
   172  0430  300A               	movlw	10
   173  0431  120A  118A  2300   	fcall	_DelayMs
      +       120A  118A         
   174                           ;lcd.c: 131: lcd_write(0b00111111);
   175  0436  303F               	movlw	63
   176  0437  23D4               	fcall	_lcd_write
   177                           ;lcd.c: 132: DelayMs(10);
   178  0438  300A               	movlw	10
   179  0439  120A  118A  2300   	fcall	_DelayMs
      +       120A  118A         
   180                           ;lcd.c: 133: lcd_write(0b00101000);
   181  043E  3028               	movlw	40
   182  043F  23D4               	fcall	_lcd_write
   183                           ;lcd.c: 134: DelayMs(10);
   184  0440  300A               	movlw	10
   185  0441  120A  118A  2300   	fcall	_DelayMs
      +       120A  118A         
   186                           ;lcd.c: 135: lcd_write(0b00001100);
   187  0446  300C               	movlw	12
   188  0447  23D4               	fcall	_lcd_write
   189                           ;lcd.c: 136: DelayMs(10);
   190  0448  300A               	movlw	10
   191  0449  120A  118A  2300   	fcall	_DelayMs
      +       120A  118A         
   192                           ;lcd.c: 137: lcd_write(0b00000001);
   193  044E  3001               	movlw	1
   194  044F  23D4               	fcall	_lcd_write
   195                           ;lcd.c: 138: DelayMs(10);
   196  0450  300A               	movlw	10
   197  0451  120A  118A  2300   	fcall	_DelayMs
      +       120A  118A         
   198                           ;lcd.c: 139: lcd_write(0b00000110);
   199  0456  3006               	movlw	6
   200  0457  23D4               	fcall	_lcd_write
   201                           ;lcd.c: 140: DelayMs(10);
   202  0458  300A               	movlw	10
   203  0459  120A  118A  2B00   	ljmp	_DelayMs
   204                           
   205                           	psect	text5
   206                           ;lcd.c: 79: void lcd_putch(char c)
   207                           ;lcd.c: 80: {
   208  0327                     _lcd_putch
   209                           ;lcd.c: 81: RA1 = 1;
   210  0327  0183               	clrf	3	;select bank 0
   211  0328  1485               	bsf	5,1
   212                           ;lcd.c: 82: PORTC = (PORTC & 0x0F) | (c &0xF0);
   213                           ;	_c assigned to ?a_lcd_putch+0
   214  0000                     _lcd_putch$c	set	?a_lcd_putch
   215                           ;_c stored from w
   216  0329  00CC               	movwf	?a_lcd_putch
   217  032A  39F0               	andlw	-16
   218  032B  00F0               	movwf	btemp
   219  032C  0807               	movf	7,w	;volatile
   220  032D  390F               	andlw	15
   221  032E  0470               	iorwf	btemp,w
   222  032F  0087               	movwf	7	;volatile
   223                           ;lcd.c: 83: ((RA2 = 1),(RA2=0));
   224  0330  1505               	bsf	5,2
   225  0331  1105               	bcf	5,2
   226                           ;lcd.c: 84: PORTC = (PORTC & 0x0F) | (c<<4);
   227  0332  0E4C               	swapf	?a_lcd_putch,w
   228  0333  39F0               	andlw	240
   229  0334  00F0               	movwf	btemp
   230  0335  0807               	movf	7,w	;volatile
   231  0336  390F               	andlw	15
   232  0337  0470               	iorwf	btemp,w
   233  0338  0087               	movwf	7	;volatile
   234                           ;lcd.c: 85: ((RA2 = 1),(RA2=0));
   235  0339  1505               	bsf	5,2
   236  033A  1105               	bcf	5,2
   237                           ;lcd.c: 86: { unsigned char _dcnt; _dcnt = (40)
      +                          /((12*1000L)/(4*1000L))|1; while(--_dcnt != 0) 
      +                          continue; };
   238                           ;	__dcnt assigned to ?a_lcd_putch+1
   239  0000                     _lcd_putch$_dcnt	set	?a_lcd_putch+1
   240  033B  300D               	movlw	13
   241  033C  00CD               	movwf	?a_lcd_putch+1
   242  033D                     l13
   243  033D  1283               	bcf	3,5
   244  033E  1303               	bcf	3,6	;carry unused
   245  033F  0BCD               	decfsz	?a_lcd_putch+1
   246  0340  2B3D               	goto	l13
   247                           ;lcd.c: 87: }
   248  0341  0008               	return
   249                           
   250                           	psect	text8
   251  0000                     
   252  0000                     
   253  0000                     
   254  0000                     
   255  0000                     
   256  0000                     
   257  0000                     
   258  0000                     
   259  0000                     
   260  0000                     
   261  0000                     
   262  0000                     
   263  0000                     

⌨️ 快捷键说明

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