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

📄 lcd.lst

📁 基于跳转表的LCD目录跳转C程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
   314  0060  3420               	retlw	32
   315  0061  3477               	retlw	119	;'w'
   316  0062  3465               	retlw	101	;'e'
   317  0063  346C               	retlw	108	;'l'
   318  0064  3463               	retlw	99	;'c'
   319  0065  346F               	retlw	111	;'o'
   320  0066  346D               	retlw	109	;'m'
   321  0067  3465               	retlw	101	;'e'
   322  0068  3421               	retlw	33
   323  0069  3421               	retlw	33
   324  006A  3400               	retlw	0
   325  006B                     u29
   326  006B  3457               	retlw	87	;'W'
   327  006C  3468               	retlw	104	;'h'
   328  006D  3461               	retlw	97	;'a'
   329  006E  3474               	retlw	116	;'t'
   330  006F  3420               	retlw	32
   331  0070  3461               	retlw	97	;'a'
   332  0071  3420               	retlw	32
   333  0072  3466               	retlw	102	;'f'
   334  0073  3475               	retlw	117	;'u'
   335  0074  3463               	retlw	99	;'c'
   336  0075  346B               	retlw	107	;'k'
   337  0076  3420               	retlw	32
   338  0077  3421               	retlw	33
   339  0078  3421               	retlw	33
   340  0079  3400               	retlw	0
   341                           
   342                           	psect	const1
   343  00A6  0782               	addwf	2
   344  00A7                     _string
   345  00A7  3457               	retlw	87
   346  00A8  3445               	retlw	69
   347  00A9  344C               	retlw	76
   348  00AA  3443               	retlw	67
   349  00AB  344F               	retlw	79
   350  00AC  344D               	retlw	77
   351  00AD  3445               	retlw	69
   352  00AE  3420               	retlw	32
   353  00AF  3459               	retlw	89
   354  00B0  344F               	retlw	79
   355  00B1  3455               	retlw	85
   356                           
   357                           	psect	text9
   358  016F                     _SetCGRAM
   359                           ;	_i assigned to ?a_SetCGRAM+0
   360  0000                     _SetCGRAM$i	set	?a_SetCGRAM
   361                           ;lcd.c: 135: unsigned char i;
   362  016F  3040               	movlw	64
   363  0170  120A  158A  25AD   	fcall	_WRCommand
      +       120A  118A         
   364                           ;lcd.c: 137: for(i=0;i<len;i++)
   365  0175  01A0               	clrf	?a_SetCGRAM
   366  0176  2988               	goto	l40
   367  0177                     l37
   368                           ;lcd.c: 138: WRData(str[i]);
   369  0177  0820               	movf	?a_SetCGRAM,w
   370  0178  0720               	addwf	?_SetCGRAM,w
   371  0179  00C4               	movwf	code_ptr
   372  017A  0821               	movf	?_SetCGRAM+1,w
   373  017B  00C5               	movwf	code_ptr+1
   374  017C  0844               	movf	code_ptr,w
   375  017D  1803               	btfsc	3,0
   376  017E  0AC5               	incf	code_ptr+1
   377  017F  120A  118A  202A   	fcall	string_table
   378  0182  120A  158A  25B7   	fcall	_WRData
      +       120A  118A         
   379  0187  0AA0               	incf	?a_SetCGRAM
   380  0188                     l40
   381  0188  0822               	movf	?_SetCGRAM+2,w
   382  0189  0220               	subwf	?a_SetCGRAM,w
   383  018A  1803               	btfsc	3,0
   384  018B  0008               	return
   385  018C  2977               	goto	l37
   386                           
   387                           	psect	text10
   388  01D7                     _CursorScroll
   389                           ;	_direction assigned to ?a_CursorScroll+0
   390  0000                     _CursorScroll$direction	set	?a_CursorScroll
   391                           ;	_pointer assigned to ?a_CursorScroll+1
   392  0000                     _CursorScroll$pointer	set	?a_CursorScroll+1
   393                           ;	_i assigned to ?a_CursorScroll+2
   394  0000                     _CursorScroll$i	set	?a_CursorScroll+2
   395                           ;_direction stored from w
   396  01D7  0183               	clrf	3	;select bank 0
   397  01D8  00A0               	movwf	?a_CursorScroll
   398                           ;lcd.c: 143: unsigned char i,pointer=0x80+x+y*6
      +                          4;
   399  01D9  0821               	movf	?_CursorScroll+1,w
   400  01DA  00F0               	movwf	btemp
   401  01DB  3006               	movlw	6
   402  01DC  00F1               	movwf	btemp+1
   403  01DD                     u245
   404  01DD  1003               	bcf	3,0
   405  01DE  0DF0               	rlf	btemp
   406  01DF  0BF1               	decfsz	btemp+1
   407  01E0  29DD               	goto	u245
   408  01E1  0870               	movf	btemp,w
   409  01E2  0720               	addwf	?_CursorScroll,w
   410  01E3  3E80               	addlw	-128
   411  01E4  00A1               	movwf	?a_CursorScroll+1
   412                           ;lcd.c: 144: WRCommand(pointer);
   413  01E5  120A  158A  25AD   	fcall	_WRCommand
      +       120A  118A         
   414                           ;lcd.c: 145: for(i=0;i<len;i++)
   415  01EA  01A2               	clrf	?a_CursorScroll+2
   416  01EB                     l45
   417  01EB  0822               	movf	?_CursorScroll+2,w
   418  01EC  0222               	subwf	?a_CursorScroll+2,w
   419  01ED  1803               	btfsc	3,0
   420  01EE  0008               	return
   421                           ;lcd.c: 146: {
   422                           ;lcd.c: 147: if(direction==0) WRCommand(0x10);
   423  01EF  08A0               	movf	?a_CursorScroll
   424  01F0  1D03               	btfss	3,2
   425  01F1  29F4               	goto	l46
   426  01F2  3010               	movlw	16
   427  01F3  29F5               	goto	L4
   428                           ;lcd.c: 148: else WRCommand(0x14);
   429  01F4                     l46
   430  01F4  3014               	movlw	20
   431  01F5                     L4
   432  01F5  120A  158A  25AD   	fcall	_WRCommand
   433                           ;lcd.c: 149: DelayNms(200);
   434  01F8  30C8               	movlw	200
   435  01F9  00A1               	movwf	?_DelayNms
   436  01FA  01A2               	clrf	?_DelayNms+1
   437  01FB  120A  158A  27B9   	fcall	_DelayNms
      +       120A  118A         
   438                           ;lcd.c: 150: }
   439  0200  0AA2               	incf	?a_CursorScroll+2
   440  0201  29EB               	goto	l45
   441                           
   442                           	psect	text11
   443                           ;lcd.c: 153: void ScreenScroll(unsigned char di
      +                          rection)
   444                           ;lcd.c: 154: {
   445  0D8D                     _ScreenScroll
   446                           ;	_direction assigned to ?a_ScreenScroll+0
   447  0000                     _ScreenScroll$direction	set	?a_ScreenScroll
   448                           ;_direction stored from w
   449  0D8D  0183               	clrf	3	;select bank 0
   450  0D8E  00A0               	movwf	?a_ScreenScroll
   451  0D8F                     l50
   452                           ;lcd.c: 155: while(1)
   453                           ;lcd.c: 156: {
   454  0D8F  08A0               	movf	?a_ScreenScroll
   455  0D90  1D03               	btfss	3,2
   456  0D91  2D94               	goto	l52
   457  0D92  3018               	movlw	24
   458  0D93  2D95               	goto	L5
   459                           ;lcd.c: 158: else WRCommand(0x1C);
   460  0D94                     l52
   461  0D94  301C               	movlw	28
   462  0D95                     L5
   463  0D95  25AD  120A  158A   	fcall	_WRCommand
   464                           ;lcd.c: 159: DelayNms(600);
   465  0D98  3058               	movlw	88
   466  0D99  00A1               	movwf	?_DelayNms
   467  0D9A  3002               	movlw	2
   468  0D9B  00A2               	movwf	?_DelayNms+1
   469  0D9C  27B9               	fcall	_DelayNms
   470                           ;lcd.c: 160: }
   471  0D9D  2D8F               	goto	l50
   472                           ;lcd.c: 31: unsigned char ReadBF()
   473                           ;lcd.c: 32: {
   474  0D9E                     _ReadBF
   475                           ;	_temp assigned to ?a_ReadBF+0
   476  0000                     _ReadBF$temp	set	?a_ReadBF
   477                           ;lcd.c: 33: unsigned char temp;
   478  0D9E  30FF               	movlw	-1
   479  0D9F  1683               	bsf	3,5
   480  0DA0  1303               	bcf	3,6	;carry unused
   481  0DA1  0087               	movwf	7	;volatile
   482  0DA2                     l13
   483                           ;lcd.c: 35: while(1)
   484                           ;lcd.c: 36: {
   485  0DA2  1283               	bcf	3,5
   486  0DA3  1288               	bcf	8,5
   487                           ;lcd.c: 38: RD6=1;
   488  0DA4  1708               	bsf	8,6
   489                           ;lcd.c: 39: RD7=1;
   490  0DA5  1788               	bsf	8,7
   491                           ;lcd.c: 40: temp=PORTC;
   492  0DA6  0807               	movf	7,w	;volatile
   493  0DA7  00AA               	movwf	?a_ReadBF
   494                           ;lcd.c: 41: RD7=0;
   495  0DA8  1388               	bcf	8,7
   496                           ;lcd.c: 42: if(RC7==0) break;
   497  0DA9  1B87               	btfsc	7,7
   498  0DAA  2DA2               	goto	l13
   499                           ;lcd.c: 44: return temp;
   500  0DAB  082A               	movf	?a_ReadBF,w
   501                           ;lcd.c: 45: }
   502  0DAC  0008               	return
   503                           ;lcd.c: 47: void WRCommand(unsigned char comman
      +                          d)
   504                           ;lcd.c: 48: {
   505  0DAD                     _WRCommand
   506                           ;	_command assigned to ?a_WRCommand+0
   507  0000                     _WRCommand$command	set	?a_WRCommand
   508                           ;_command stored from w
   509  0DAD  0183               	clrf	3	;select bank 0
   510  0DAE  00A9               	movwf	?a_WRCommand
   511                           ;lcd.c: 49: ReadBF();
   512  0DAF  259E               	fcall	_ReadBF
   513                           ;lcd.c: 50: TRISC=0;
   514  0DB0  1683               	bsf	3,5
   515  0DB1  0187               	clrf	7	;volatile
   516                           ;lcd.c: 51: RD6=0;
   517  0DB2  1283               	bcf	3,5
   518  0DB3  1308               	bcf	8,6
   519                           ;lcd.c: 52: PORTC=command;
   520  0DB4  0829               	movf	?a_WRCommand,w
   521  0DB5  0087               	movwf	7	;volatile
   522                           ;lcd.c: 53: Toggle();
   523  0DB6  2FCA               	ljmp	_Toggle
   524                           ;lcd.c: 56: void WRData(unsigned char data)
   525                           ;lcd.c: 57: {
   526  0DB7                     _WRData
   527                           ;	_data assigned to ?a_WRData+0
   528  0000                     _WRData$data	set	?a_WRData
   529                           ;_data stored from w
   530  0DB7  0183               	clrf	3	;select bank 0
   531  0DB8  00A9               	movwf	?a_WRData
   532                           ;lcd.c: 58: ReadBF();
   533  0DB9  259E               	fcall	_ReadBF
   534                           ;lcd.c: 59: TRISC=0;
   535  0DBA  1683               	bsf	3,5
   536  0DBB  0187               	clrf	7	;volatile
   537                           ;lcd.c: 60: RD5=1;
   538  0DBC  1283               	bcf	3,5
   539  0DBD  1688               	bsf	8,5
   540                           ;lcd.c: 61: RD6=0;
   541  0DBE  1308               	bcf	8,6
   542                           ;lcd.c: 62: PORTC=data;
   543  0DBF  0829               	movf	?a_WRData,w
   544  0DC0  0087               	movwf	7	;volatile
   545                           ;lcd.c: 63: Toggle();
   546  0DC1  2FCA               	ljmp	_Toggle
   547                           ;lcd.c: 66: unsigned char RDData()
   548                           ;lcd.c: 67: {
   549  0DC2                     _RDData
   550                           ;	_data assigned to ?a_RDData+0
   551  0000                     _RDData$data	set	?a_RDData
   552                           ;lcd.c: 68: unsigned char data;
   553  0DC2  259E               	fcall	_ReadBF
   554                           ;lcd.c: 70: RD5=1;
   555  0DC3  1688               	bsf	8,5
   556                           ;lcd.c: 71: RD6=1;
   557  0DC4  1708               	bsf	8,6
   558                           ;lcd.c: 72: RD7=1;
   559  0DC5  1788               	bsf	8,7
   560                           ;lcd.c: 73: data=PORTC;
   561  0DC6  0807               	movf	7,w	;volatile
   562  0DC7  00A0               	movwf	?a_RDData
   563                           ;lcd.c: 74: RD7=0;
   564  0DC8  1388               	bcf	8,7
   565                           ;lcd.c: 76: }
   566  0DC9  0008               	return
   567  0DCA                     _DisplayChar
   568                           ;	_pointer assigned to ?a_DisplayChar+0
   569  0000                     _DisplayChar$pointer	set	?a_DisplayChar
   570                           ;	_temp assigned to ?a_DisplayChar+1
   571  0000                     _DisplayChar$temp	set	?a_DisplayChar+1
   572                           ;	_i assigned to ?a_DisplayChar+2
   573  0000                     _DisplayChar$i	set	?a_DisplayChar+2
   574                           ;	_len assigned to ?a_DisplayChar+3
   575  0000                     _DisplayChar$len	set	?a_DisplayChar+3
   576                           ;lcd.c: 110: unsigned char i,pointer=0x80+x+y*6
      +                          4,temp;
   577  0DCA  0183               	clrf	3	;select bank 0
   578  0DCB  0823               	movf	?_DisplayChar+3,w
   579  0DCC  00F0               	movwf	btemp
   580  0DCD  3006               	movlw	6
   581  0DCE  00F1               	movwf	btemp+1
   582  0DCF                     u45
   583  0DCF  1003               	bcf	3,0
   584  0DD0  0DF0               	rlf	btemp
   585  0DD1  0BF1               	decfsz	btemp+1
   586  0DD2  2DCF               	goto	u45
   587  0DD3  0870               	movf	btemp,w
   588  0DD4  0722               	addwf	?_DisplayChar+2,w
   589  0DD5  3E80               	addlw	-128
   590  0DD6  00A4               	movwf	?a_DisplayChar
   591                           ;lcd.c: 111: unsigned int len=strlen(str);
   592  0DD7  0820               	movf	?_DisplayChar,w
   593  0DD8  00A9               	movwf	?_strlen
   594  0DD9  0821               	movf	?_DisplayChar+1,w
   595  0DDA  00AA               	movwf	?_strlen+1
   596  0DDB  120A  118A  218D   	fcall	_strlen
      +       120A  158A         
   597  0DE0  0870               	movf	btemp,w
   598  0DE1  00A7               	movwf	?a_DisplayChar+3
   599  0DE2  0871               	movf	btemp+1,w
   600  0DE3  00A8               	movwf	?a_DisplayChar+4
   601                           ;lcd.c: 112: WRCommand(pointer);
   602  0DE4  0824               	movf	?a_DisplayChar,w
   603  0DE5  25AD  120A  158A   	fcall	_WRCommand
   604                           ;lcd.c: 113: for(i=0;i<len;i++)
   605  0DE8  01A6               	clrf	?a_DisplayChar+2
   606  0DE9                     l24
   607  0DE9  0826               	movf	?a_DisplayChar+2,w
   608  0DEA  00F0               	movwf	btemp
   609  0DEB  01F1               	clrf	btemp+1
   610  0DEC  0828               	movf	?a_DisplayChar+4,w
   611  0DED  0271               	subwf	btemp+1,w
   612  0DEE  1D03               	btfss	3,2
   613  0DEF  2DF2               	goto	u225
   614  0DF0  0827               	movf	?a_DisplayChar+3,w
   615  0DF1  0270               	subwf	btemp,w
   616  0DF2                     u225
   617  0DF2  1803               	btfsc	3,0
   618  0DF3  0008               	return
   619                           ;lcd.c: 114: {
   620                           ;lcd.c: 115: if(str[i]<='Z' && str[i]>='A')
   621  0DF4  0826               	movf	?a_DisplayChar+2,w
   622  0DF5  0720               	addwf	?_DisplayChar,w
   623  0DF6  00C4               	movwf	code_ptr
   624  0DF7  0821               	movf	?_DisplayChar+1,w

⌨️ 快捷键说明

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