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

📄 lm9864a.lst

📁 基于三星S6B0724驱动的PIC点阵液晶98*98点阵程序
💻 LST
📖 第 1 页 / 共 2 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL2
                                                      Thu Feb 19 11:52:09 2009


     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z49231UD_,global,delta=1
     4                           	psect	text3,local,class=CODE,delta=2
     5                           	psect	text8,local,class=CODE,delta=2
     6                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
     7  0000                     
     8  0000                     
     9  0000                     
    10  0000                     
    11  0000                     
    12  0000                     
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17                           
    18                           	psect	text3
    19                           ;LM9864a.c: 38: unsigned char lcd_read(void)
    20                           ;LM9864a.c: 39: {
    21  01BC                     _lcd_read
    22                           ;	_temp assigned to ?a_lcd_read+0
    23  0000                     _lcd_read$temp	set	?a_lcd_read
    24                           ;LM9864a.c: 40: unsigned char temp;
    25  01BC  30FF               	movlw	-1
    26  01BD  0183               	clrf	3	;select bank 0
    27  01BE  0088               	movwf	8	;volatile
    28                           ;LM9864a.c: 42: RS = 0;
    29  01BF  1007               	bcf	7,0
    30                           ;LM9864a.c: 43: RW = 1;
    31  01C0  1487               	bsf	7,1
    32                           ;LM9864a.c: 44: E=1;
    33  01C1  1507               	bsf	7,2
    34                           ;LM9864a.c: 45: TRISD = 0xff;
    35  01C2  1683               	bsf	3,5
    36  01C3  0088               	movwf	8	;volatile
    37                           ;LM9864a.c: 46: temp = PORTD;
    38  01C4  1283               	bcf	3,5
    39  01C5  0808               	movf	8,w	;volatile
    40  01C6  00AF               	movwf	?a_lcd_read
    41                           ;LM9864a.c: 47: E = 0;
    42  01C7  1107               	bcf	7,2
    43                           ;LM9864a.c: 48: TRISD = 0x00;
    44  01C8  1683               	bsf	3,5
    45  01C9  0188               	clrf	8	;volatile
    46                           ;LM9864a.c: 49: return temp;
    47  01CA  1283               	bcf	3,5
    48  01CB  082F               	movf	?a_lcd_read,w
    49                           ;LM9864a.c: 50: }
    50  01CC  0008               	return
    51                           ;LM9864a.c: 51: void command_write(unsigned cha
      +                          r flag,unsigned char send_data)
    52                           ;LM9864a.c: 52: {
    53                           ;       param _send_data assigned to ?_command_
      +                          write+0
    54  0000                     _command_write$send_data	set	?_command_write
    55  01CD                     _command_write
    56                           ;	_flag assigned to ?a_command_write+0
    57  0000                     _command_write$flag	set	?a_command_write
    58                           ;_flag stored from w
    59  01CD  0183               	clrf	3	;select bank 0
    60  01CE  00AE               	movwf	?a_command_write
    61                           ;LM9864a.c: 53: if (flag == 0x00) RS = 0;
    62  01CF  08AE               	movf	?a_command_write
    63  01D0  1D03               	btfss	3,2
    64  01D1  29D4               	goto	l14
    65  01D2  1007               	bcf	7,0
    66                           ;LM9864a.c: 54: else RS = 1;
    67  01D3  29D5               	goto	l15
    68  01D4                     l14
    69  01D4  1407               	bsf	7,0
    70  01D5                     l15
    71                           ;LM9864a.c: 55: RW = 0;
    72  01D5  1087               	bcf	7,1
    73                           ;LM9864a.c: 56: PORTD = send_data;
    74  01D6  082D               	movf	?_command_write,w
    75  01D7  0088               	movwf	8	;volatile
    76                           ;LM9864a.c: 57: E = 1;
    77  01D8  1507               	bsf	7,2
    78                           ;LM9864a.c: 58: E = 0;
    79  01D9  1107               	bcf	7,2
    80                           ;LM9864a.c: 59: while (lcd_read() & 0x80);
    81  01DA                     l16
    82  01DA  21BC               	fcall	_lcd_read
    83  01DB  00F0               	movwf	btemp
    84  01DC  1FF0               	btfss	btemp,7
    85  01DD  0008               	return
    86  01DE  29DA               	goto	l16
    87  01DF                     _lcd_delay
    88                           ;	_number assigned to ?a_lcd_delay+0
    89  0000                     _lcd_delay$number	set	?a_lcd_delay
    90                           ;	_i assigned to ?a_lcd_delay+1
    91  0000                     _lcd_delay$i	set	?a_lcd_delay+1
    92                           ;_number stored from w
    93  01DF  0183               	clrf	3	;select bank 0
    94  01E0  00AA               	movwf	?a_lcd_delay
    95                           ;LM9864a.c: 26: unsigned char i;
    96  01E1  01AB               	clrf	?a_lcd_delay+1
    97  01E2  29E4               	goto	l10
    98  01E3                     l7
    99                           ;LM9864a.c: 28: {
   100                           ;LM9864a.c: 29: }
   101  01E3  0AAB               	incf	?a_lcd_delay+1
   102  01E4                     l10
   103  01E4  082A               	movf	?a_lcd_delay,w
   104  01E5  022B               	subwf	?a_lcd_delay+1,w
   105  01E6  1803               	btfsc	3,0
   106  01E7  0008               	return
   107  01E8  29E3               	goto	l7
   108                           ;LM9864a.c: 31: void lcd_rst(void)
   109                           ;LM9864a.c: 32: {
   110  01E9                     _lcd_rst
   111                           ;LM9864a.c: 33: RST = 0;
   112  01E9  0183               	clrf	3	;select bank 0
   113  01EA  1187               	bcf	7,3
   114                           ;LM9864a.c: 34: lcd_delay(0xff);
   115  01EB  30FF               	movlw	-1
   116  01EC  21DF               	fcall	_lcd_delay
   117                           ;LM9864a.c: 35: RST = 1;
   118  01ED  1587               	bsf	7,3
   119                           ;LM9864a.c: 36: lcd_delay(0xff);
   120  01EE  30FF               	movlw	-1
   121  01EF  29DF               	ljmp	_lcd_delay
   122                           ;stdlib.h: 122: extern int atexit(void (*)(void
      +                          ));
   123                           ;stdlib.h: 126: extern void qsort(void *, size_
      +                          t, size_t, int (*)(const void *, const void *))
      +                          ;
   124                           ;stdlib.h: 127: extern void * bsearch(const voi
      +                          d *, void *, size_t, size_t, int(*)(const void 
      +                          *, const void *));
   125  01F0                     _system_inti
   126                           ;LM9864a.c: 19: INTCON = 0x00;
   127  01F0  018B               	clrf	11	;volatile
   128                           ;LM9864a.c: 20: TRISC = 0xf0;
   129  01F1  30F0               	movlw	-16
   130  01F2  1683               	bsf	3,5
   131  01F3  1303               	bcf	3,6	;carry unused
   132  01F4  0087               	movwf	7	;volatile
   133                           ;LM9864a.c: 21: TRISD = 0x00;
   134  01F5  0188               	clrf	8	;volatile
   135                           ;LM9864a.c: 22: (GIE = 0);
   136  01F6  138B               	bcf	11,7
   137                           ;LM9864a.c: 23: }
   138  01F7  1283               	bcf	3,5
   139  01F8  0008               	return
   140                           ;LM9864a.c: 61: void lcd_init(void)
   141                           ;LM9864a.c: 62: {
   142  01F9                     _lcd_init
   143                           ;LM9864a.c: 63: system_inti();
   144  01F9  21F0               	fcall	_system_inti
   145                           ;LM9864a.c: 64: lcd_rst();
   146  01FA  21E9  120A  118A   	fcall	_lcd_rst
   147                           ;LM9864a.c: 65: command_write(0x00,0xe2);
   148  01FD  30E2               	movlw	-30
   149  01FE  00AD               	movwf	?_command_write
   150  01FF  3000               	movlw	0
   151  0200  21CD               	fcall	_command_write
   152                           ;LM9864a.c: 66: lcd_delay(0x02);
   153  0201  3002               	movlw	2
   154  0202  21DF               	fcall	_lcd_delay
   155                           ;LM9864a.c: 67: command_write(0x00,0xa2);
   156  0203  30A2               	movlw	-94
   157  0204  00AD               	movwf	?_command_write
   158  0205  3000               	movlw	0
   159  0206  21CD               	fcall	_command_write
   160                           ;LM9864a.c: 68: lcd_delay(0x02);
   161  0207  3002               	movlw	2
   162  0208  21DF               	fcall	_lcd_delay
   163                           ;LM9864a.c: 69: command_write(0x00,0xa0);
   164  0209  30A0               	movlw	-96
   165  020A  00AD               	movwf	?_command_write
   166  020B  3000               	movlw	0
   167  020C  21CD               	fcall	_command_write
   168                           ;LM9864a.c: 70: lcd_delay(0x02);
   169  020D  3002               	movlw	2
   170  020E  21DF               	fcall	_lcd_delay
   171                           ;LM9864a.c: 71: command_write(0x00,0xc0);
   172  020F  30C0               	movlw	-64
   173  0210  00AD               	movwf	?_command_write
   174  0211  3000               	movlw	0
   175  0212  21CD               	fcall	_command_write
   176                           ;LM9864a.c: 72: lcd_delay(0x02);
   177  0213  3002               	movlw	2
   178  0214  21DF               	fcall	_lcd_delay
   179                           ;LM9864a.c: 73: command_write(0x00,0x2f);
   180  0215  302F               	movlw	47
   181  0216  00AD               	movwf	?_command_write
   182  0217  3000               	movlw	0
   183  0218  21CD               	fcall	_command_write
   184                           ;LM9864a.c: 74: lcd_delay(0x02);
   185  0219  3002               	movlw	2
   186  021A  21DF               	fcall	_lcd_delay
   187                           ;LM9864a.c: 75: command_write(0x00,0x81);
   188  021B  3081               	movlw	-127
   189  021C  00AD               	movwf	?_command_write
   190  021D  3000               	movlw	0
   191  021E  21CD               	fcall	_command_write
   192                           ;LM9864a.c: 76: lcd_delay(0x02);
   193  021F  3002               	movlw	2
   194  0220  21DF               	fcall	_lcd_delay
   195                           ;LM9864a.c: 77: command_write(0x00,0x2f);
   196  0221  302F               	movlw	47
   197  0222  00AD               	movwf	?_command_write
   198  0223  3000               	movlw	0
   199  0224  21CD               	fcall	_command_write
   200                           ;LM9864a.c: 78: lcd_delay(0x02);
   201  0225  3002               	movlw	2
   202  0226  21DF               	fcall	_lcd_delay
   203                           ;LM9864a.c: 79: command_write(0x00,0x40);
   204  0227  3040               	movlw	64
   205  0228  00AD               	movwf	?_command_write
   206  0229  3000               	movlw	0
   207  022A  21CD               	fcall	_command_write
   208                           ;LM9864a.c: 80: lcd_delay(0x02);
   209  022B  3002               	movlw	2
   210  022C  21DF               	fcall	_lcd_delay
   211                           ;LM9864a.c: 81: command_write(0x00,0xe0);
   212  022D  30E0               	movlw	-32
   213  022E  00AD               	movwf	?_command_write
   214  022F  3000               	movlw	0
   215  0230  21CD               	fcall	_command_write
   216                           ;LM9864a.c: 82: lcd_delay(0x02);
   217  0231  3002               	movlw	2
   218  0232  21DF               	fcall	_lcd_delay
   219                           ;LM9864a.c: 83: command_write(0x00,0xaf);
   220  0233  30AF               	movlw	-81
   221  0234  00AD               	movwf	?_command_write
   222  0235  3000               	movlw	0
   223  0236  21CD               	fcall	_command_write
   224                           ;LM9864a.c: 84: lcd_delay(0x02);
   225  0237  3002               	movlw	2
   226  0238  29DF               	ljmp	_lcd_delay
   227                           ;LM9864a.c: 86: void lcd_write_data(unsigned ch
      +                          ar lcd_data)
   228                           ;LM9864a.c: 87: {
   229  0239                     _lcd_write_data
   230                           ;	_lcd_data assigned to ?a_lcd_write_data+0
   231  0000                     _lcd_write_data$lcd_data	set	?a_lcd_write_data
   232                           ;	_j assigned to ?a_lcd_write_data+1
   233  0000                     _lcd_write_data$j	set	?a_lcd_write_data+1
   234                           ;	_i assigned to ?a_lcd_write_data+2
   235  0000                     _lcd_write_data$i	set	?a_lcd_write_data+2
   236                           ;_lcd_data stored from w
   237  0239  0183               	clrf	3	;select bank 0
   238  023A  00AA               	movwf	?a_lcd_write_data
   239                           ;LM9864a.c: 88: unsigned char i,j;
   240  023B  01AC               	clrf	?a_lcd_write_data+2
   241  023C                     l21
   242                           ;LM9864a.c: 90: {
   243                           ;LM9864a.c: 91: command_write(0x00,0xb0|i);
   244  023C  082C               	movf	?a_lcd_write_data+2,w
   245  023D  38B0               	iorlw	-80
   246  023E  00AD               	movwf	?_command_write
   247  023F  3000               	movlw	0
   248  0240  21CD               	fcall	_command_write
   249                           ;LM9864a.c: 92: command_write(0x00,0x01);
   250  0241  01AD               	clrf	?_command_write
   251  0242  0AAD               	incf	?_command_write
   252  0243  3000               	movlw	0
   253  0244  21CD               	fcall	_command_write
   254                           ;LM9864a.c: 93: command_write(0x00,0x00);
   255  0245  01AD               	clrf	?_command_write
   256  0246  3000               	movlw	0
   257  0247  21CD               	fcall	_command_write
   258                           ;LM9864a.c: 94: for(j=0;j<98;j++)
   259  0248  01AB               	clrf	?a_lcd_write_data+1
   260  0249                     l24
   261                           ;LM9864a.c: 95: {
   262                           ;LM9864a.c: 96: command_write(0xff,lcd_data);
   263  0249  082A               	movf	?a_lcd_write_data,w
   264  024A  00AD               	movwf	?_command_write
   265  024B  30FF               	movlw	-1
   266  024C  21CD               	fcall	_command_write
   267                           ;LM9864a.c: 97: }
   268  024D  0AAB               	incf	?a_lcd_write_data+1
   269  024E  3062               	movlw	98
   270  024F  022B               	subwf	?a_lcd_write_data+1,w
   271  0250  1C03               	btfss	3,0
   272  0251  2A49               	goto	l24
   273                           ;LM9864a.c: 98: }
   274  0252  0AAC               	incf	?a_lcd_write_data+2
   275  0253  3008               	movlw	8
   276  0254  022C               	subwf	?a_lcd_write_data+2,w
   277  0255  1803               	btfsc	3,0
   278  0256  0008               	return
   279  0257  2A3C               	goto	l21
   280                           ;LM9864a.c: 100: void main(void)
   281                           ;LM9864a.c: 101: {
   282  0258                     _main
   283                           ;	_d assigned to ?a_main+0
   284  0000                     _main$d	set	?a_main
   285                           ;	_c assigned to ?a_main+1
   286  0000                     _main$c	set	?a_main+1
   287                           ;	_b assigned to ?a_main+2
   288  0000                     _main$b	set	?a_main+2
   289                           ;	_a assigned to ?a_main+6
   290  0000                     _main$a	set	?a_main+6
   291                           ;LM9864a.c: 102: double a,b;
   292  0258  21F9  120A  118A   	fcall	_lcd_init
   293                           ;LM9864a.c: 106: lcd_write_data(0x0f);
   294  025B  300F               	movlw	15
   295  025C  2239               	fcall	_lcd_write_data
   296                           ;LM9864a.c: 107: a = 0.532;
   297  025D  3027               	movlw	39
   298  025E  00A6               	movwf	?a_main+6
   299  025F  3031               	movlw	49
   300  0260  00A7               	movwf	?a_main+7
   301  0261  3008               	movlw	8
   302  0262  00A8               	movwf	?a_main+8
   303  0263  303F               	movlw	63
   304  0264  00A9               	movwf	?a_main+9
   305                           ;LM9864a.c: 108: b = acos(a);
   306  0265  0826               	movf	?a_main+6,w
   307  0266  00AA               	movwf	?_acos
   308  0267  0827               	movf	?a_main+7,w
   309  0268  00AB               	movwf	?_acos+1
   310  0269  0828               	movf	?a_main+8,w
   311  026A  00AC               	movwf	?_acos+2
   312  026B  0829               	movf	?a_main+9,w
   313  026C  00AD               	movwf	?_acos+3
   314  026D  120A  118A  20EB   	fcall	_acos
   315  0270  0870               	movf	btemp,w

⌨️ 快捷键说明

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