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

📄 lcd.lst

📁 液晶显示例子,晶振频率Fosc=8MHz,内有仿真文件
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC Macro Assembler V9.60
                                                      Fri Nov 21 07:58:38 2008


     1                           	processor	16F917
     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	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
     9  0000                     
    10  0000                     
    11  0000                     
    12  0000                     
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19                           
    20                           	psect	const1
    21  000D  0782               	addwf	2
    22  000E                     _LCD_MODEL
    23  000E  3477               	retlw	119
    24  000F  3422               	retlw	34
    25  0010  345B               	retlw	91
    26  0011  346B               	retlw	107
    27  0012  342E               	retlw	46
    28  0013  346D               	retlw	109
    29  0014  347D               	retlw	125
    30  0015  3423               	retlw	35
    31  0016  347F               	retlw	127
    32  0017  346F               	retlw	111
    33  0018  3400               	retlw	0
    34                           
    35                           	psect	text0
    36  0696                     _Init_LCD
    37                           ;LCD.c: 6: void Init_LCD(void)
    38  0696  0183               	clrf	3	;select bank 0
    39  0697  0190               	clrf	16
    40                           ;LCD.c: 10: LCDDATA1=0x00;
    41  0698  0191               	clrf	17
    42                           ;LCD.c: 12: LCDDATA3=0x00;
    43  0699  0193               	clrf	19
    44                           ;LCD.c: 13: LCDDATA4=0x00;
    45  069A  0194               	clrf	20
    46                           ;LCD.c: 15: LCDDATA6=0x00;
    47  069B  0196               	clrf	22
    48                           ;LCD.c: 16: LCDDATA7=0x00;
    49  069C  0197               	clrf	23
    50                           ;LCD.c: 18: LCDDATA9=0x00;
    51  069D  0199               	clrf	25
    52                           ;LCD.c: 19: LCDDATA10=0x00;
    53  069E  019A               	clrf	26
    54                           ;LCD.c: 21: LCDSE0=0xff;
    55  069F  30FF               	movlw	-1
    56  06A0  009C               	movwf	28
    57                           ;LCD.c: 22: LCDSE1=0x03;
    58  06A1  3003               	movlw	3
    59  06A2  009D               	movwf	29
    60                           ;LCD.c: 25: LCDCON=0xd3;
    61  06A3  30D3               	movlw	-45
    62  06A4  1703               	bsf	3,6
    63  06A5  0087               	movwf	7	;volatile
    64                           ;LCD.c: 28: LCDPS=0xb3;
    65  06A6  30B3               	movlw	-77
    66  06A7  0088               	movwf	8	;volatile
    67                           ;LCD.c: 29: }
    68  06A8  1303               	bcf	3,6	;carry unused
    69  06A9  0008               	return	;W free
    70                           
    71                           	psect	text1
    72  06CA                     _LCDNUMI
    73                           ;	_g assigned to ?a_LCDNUMI+0
    74  0000                     _LCDNUMI$g	set	?a_LCDNUMI
    75                           ;	_b assigned to ?a_LCDNUMI+1
    76  0000                     _LCDNUMI$b	set	?a_LCDNUMI+1
    77                           ;	_s assigned to ?a_LCDNUMI+2
    78  0000                     _LCDNUMI$s	set	?a_LCDNUMI+2
    79                           ;LCD.c: 31: void LCDNUMI(int num)
    80  06CA  0183               	clrf	3	;select bank 0
    81  06CB  01A4               	clrf	?a_LCDNUMI
    82  06CC  01A6               	clrf	?a_LCDNUMI+2
    83  06CD  01A5               	clrf	?a_LCDNUMI+1
    84                           ;LCD.c: 35: if(num<0)
    85  06CE  1FA3               	btfss	?_LCDNUMI+1,7
    86  06CF  2ED7               	goto	l3
    87                           ;LCD.c: 36: {
    88  06D0  1416               	bsf	22,0
    89                           ;LCD.c: 39: num=~num;
    90  06D1  09A2               	comf	?_LCDNUMI
    91  06D2  09A3               	comf	?_LCDNUMI+1
    92                           ;LCD.c: 40: num++;
    93  06D3  0AA2               	incf	?_LCDNUMI
    94  06D4  1903               	btfsc	3,2
    95  06D5  0AA3               	incf	?_LCDNUMI+1
    96                           ;LCD.c: 41: }
    97  06D6  2ED8               	goto	l4
    98  06D7                     l3
    99                           ;LCD.c: 42: else
   100  06D7  1016               	bcf	22,0
   101  06D8                     l4
   102                           ;LCD.c: 45: }
   103  06D8  0823               	movf	?_LCDNUMI+1,w
   104  06D9  3A80               	xorlw	128
   105  06DA  00F9               	movwf	btemp
   106  06DB  3083               	movlw	131
   107  06DC  0279               	subwf	btemp,w
   108  06DD  30E8               	movlw	232
   109                           ;set	bank bits for (((?_LCDNUMI+0)))
   110  06DE  1903               	btfsc	3,2
   111  06DF  0222               	subwf	?_LCDNUMI,w
   112  06E0  1C03               	btfss	3,0
   113  06E1  2EEA               	goto	l5
   114                           ;LCD.c: 47: {
   115  06E2  1496               	bsf	22,1
   116                           ;LCD.c: 49: num-=1000;
   117  06E3  3018               	movlw	24
   118  06E4  07A2               	addwf	?_LCDNUMI
   119  06E5  1803               	btfsc	3,0
   120  06E6  0AA3               	incf	?_LCDNUMI+1
   121  06E7  30FC               	movlw	252
   122  06E8  07A3               	addwf	?_LCDNUMI+1
   123                           ;LCD.c: 50: }
   124  06E9  2EEB               	goto	l6
   125  06EA                     l5
   126                           ;LCD.c: 51: else
   127  06EA  1096               	bcf	22,1
   128  06EB                     l6
   129                           ;LCD.c: 54: }
   130  06EB  3064               	movlw	100
   131  06EC  00FB               	movwf	btemp+2
   132  06ED  01FC               	clrf	btemp+3
   133  06EE  0823               	movf	?_LCDNUMI+1,w
   134  06EF  00FA               	movwf	btemp+1
   135  06F0  0822               	movf	?_LCDNUMI,w
   136  06F1  00F9               	movwf	btemp
   137  06F2  27B1               	call	awdiv
   138  06F3  087D               	movf	btemp+4,w
   139  06F4  00A5               	movwf	?a_LCDNUMI+1
   140                           ;LCD.c: 56: num%=100;
   141  06F5  3064               	movlw	100
   142  06F6  00FB               	movwf	btemp+2
   143  06F7  01FC               	clrf	btemp+3
   144  06F8  0822               	movf	?_LCDNUMI,w
   145  06F9  00F9               	movwf	btemp
   146  06FA  0823               	movf	?_LCDNUMI+1,w
   147  06FB  00FA               	movwf	btemp+1
   148  06FC  27B1               	call	awmod
   149  06FD  0879               	movf	btemp,w
   150  06FE  00A2               	movwf	?_LCDNUMI
   151  06FF  087A               	movf	btemp+1,w
   152  0700  00A3               	movwf	?_LCDNUMI+1
   153                           ;LCD.c: 57: s=num/10;
   154  0701  300A               	movlw	10
   155  0702  00FB               	movwf	btemp+2
   156  0703  01FC               	clrf	btemp+3
   157  0704  0823               	movf	?_LCDNUMI+1,w
   158  0705  00FA               	movwf	btemp+1
   159  0706  0822               	movf	?_LCDNUMI,w
   160  0707  00F9               	movwf	btemp
   161  0708  27B1               	call	awdiv
   162  0709  087D               	movf	btemp+4,w
   163  070A  00A6               	movwf	?a_LCDNUMI+2
   164                           ;LCD.c: 58: g=num%10;
   165  070B  300A               	movlw	10
   166  070C  00FB               	movwf	btemp+2
   167  070D  01FC               	clrf	btemp+3
   168  070E  0823               	movf	?_LCDNUMI+1,w
   169  070F  00FA               	movwf	btemp+1
   170  0710  0822               	movf	?_LCDNUMI,w
   171  0711  00F9               	movwf	btemp
   172  0712  27B1               	call	awmod
   173  0713  0879               	movf	btemp,w
   174  0714  00A4               	movwf	?a_LCDNUMI
   175                           ;LCD.c: 59: if(SEG1COM2==0&&b==0)
   176  0715  1896               	btfsc	22,1
   177  0716  2F20               	goto	l7
   178  0717  08A5               	movf	?a_LCDNUMI+1
   179  0718  1D03               	btfss	3,2
   180  0719  2F20               	goto	l7
   181                           ;LCD.c: 60: {
   182  071A  08A6               	movf	?a_LCDNUMI+2
   183                           ;LCD.c: 62: {
   184  071B  300A               	movlw	10
   185  071C  1D03               	btfss	3,2
   186  071D  2F1F               	goto	L1
   187  071E  00A6               	movwf	?a_LCDNUMI+2
   188                           ;LCD.c: 64: }
   189  071F                     L1
   190  071F  00A5               	movwf	?a_LCDNUMI+1
   191  0720                     l7
   192                           ;LCD.c: 66: }
   193  0720  3000               	movlw	_LCD_MODEL shr (0+8)
   194  0721  008A               	movwf	10
   195  0722  0825               	movf	?a_LCDNUMI+1,w
   196  0723  200D               	call	((_LCD_MODEL+-1)& (0+2047))| (($)& (0+-20
      +                          48))
   197  0724  00A7               	movwf	?a_LCDNUMI+3
   198  0725  1003               	bcf	3,0
   199  0726  0DA7               	rlf	?a_LCDNUMI+3
   200  0727  1003               	bcf	3,0
   201  0728  0D27               	rlf	?a_LCDNUMI+3,w
   202  0729  390C               	andlw	12
   203  072A  00A8               	movwf	?a_LCDNUMI+4
   204  072B  3000               	movlw	_LCD_MODEL shr (0+8)
   205  072C  008A               	movwf	10
   206  072D  0826               	movf	?a_LCDNUMI+2,w
   207  072E  200D               	call	((_LCD_MODEL+-1)& (0+2047))| (($)& (0+-20
      +                          48))
   208  072F  00A9               	movwf	?a_LCDNUMI+5
   209  0730  0EA9               	swapf	?a_LCDNUMI+5
   210  0731  30F0               	movlw	240
   211  0732  05A9               	andwf	?a_LCDNUMI+5
   212  0733  0829               	movf	?a_LCDNUMI+5,w
   213  0734  3930               	andlw	48
   214  0735  00AA               	movwf	?a_LCDNUMI+6
   215  0736  3000               	movlw	_LCD_MODEL shr (0+8)
   216  0737  008A               	movwf	10
   217  0738  0824               	movf	?a_LCDNUMI,w
   218  0739  200D               	call	((_LCD_MODEL+-1)& (0+2047))| (($)& (0+-20
      +                          48))
   219  073A                     	pagesel	$
   220  073A  00AB               	movwf	?a_LCDNUMI+7
   221  073B  3006               	movlw	6
   222  073C  00F9               	movwf	btemp
   223  073D                     u75
   224  073D  1003               	bcf	3,0
   225  073E  0DAB               	rlf	?a_LCDNUMI+7
   226  073F  0BF9               	decfsz	btemp
   227  0740  2F3D               	goto	u75
   228  0741  082B               	movf	?a_LCDNUMI+7,w
   229  0742  39C0               	andlw	-64
   230  0743  00AC               	movwf	?a_LCDNUMI+8
   231  0744  0810               	movf	16,w
   232  0745  3903               	andlw	3
   233  0746  042C               	iorwf	?a_LCDNUMI+8,w
   234  0747  042A               	iorwf	?a_LCDNUMI+6,w
   235  0748  0428               	iorwf	?a_LCDNUMI+4,w
   236  0749  0090               	movwf	16
   237                           ;LCD.c: 68: LCDDATA3=(LCDDATA3&0x03)|((LCD_MODE
      +                          L[g]<<4)&0xc0)|((LCD_MODEL[s]<<2)&0x30)|((LCD_M
      +                          ODEL[b])&0x0c);
   238  074A  3000               	movlw	_LCD_MODEL shr (0+8)
   239  074B  008A               	movwf	10
   240  074C  0825               	movf	?a_LCDNUMI+1,w
   241  074D  200D               	call	((_LCD_MODEL+-1)& (0+2047))| (($)& (0+-20
      +                          48))
   242  074E  390C               	andlw	12
   243  074F  00A7               	movwf	?a_LCDNUMI+3
   244  0750  3000               	movlw	_LCD_MODEL shr (0+8)
   245  0751  008A               	movwf	10
   246  0752  0826               	movf	?a_LCDNUMI+2,w
   247  0753  200D               	call	((_LCD_MODEL+-1)& (0+2047))| (($)& (0+-20
      +                          48))
   248  0754  00A8               	movwf	?a_LCDNUMI+4
   249  0755  1003               	bcf	3,0
   250  0756  0DA8               	rlf	?a_LCDNUMI+4
   251  0757  1003               	bcf	3,0
   252  0758  0D28               	rlf	?a_LCDNUMI+4,w
   253  0759  3930               	andlw	48
   254  075A  00A9               	movwf	?a_LCDNUMI+5
   255  075B  3000               	movlw	_LCD_MODEL shr (0+8)
   256  075C  008A               	movwf	10
   257  075D  0824               	movf	?a_LCDNUMI,w
   258  075E  200D               	call	((_LCD_MODEL+-1)& (0+2047))| (($)& (0+-20
      +                          48))
   259  075F  00AA               	movwf	?a_LCDNUMI+6
   260  0760  0EAA               	swapf	?a_LCDNUMI+6
   261  0761  30F0               	movlw	240
   262  0762  05AA               	andwf	?a_LCDNUMI+6
   263  0763  082A               	movf	?a_LCDNUMI+6,w
   264  0764  39C0               	andlw	-64
   265  0765  00AB               	movwf	?a_LCDNUMI+7
   266  0766  0813               	movf	19,w
   267  0767  3903               	andlw	3
   268  0768  042B               	iorwf	?a_LCDNUMI+7,w
   269  0769  0429               	iorwf	?a_LCDNUMI+5,w
   270  076A  0427               	iorwf	?a_LCDNUMI+3,w
   271  076B  0093               	movwf	19

⌨️ 快捷键说明

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