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

📄 1213.lst

📁 超声波测距
💻 LST
📖 第 1 页 / 共 2 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-00000                            Mon Sep 17 14:14:25 2007

Licensed to: MITSOS FOREVER
     1                           	processor	16F873A
     2                           	opt	pw 79
     3                           	psect	__Z00000RS_,global,delta=1
     4                           	psect	text2,local,class=CODE,delta=2
     5                           	psect	text4,local,class=CODE,delta=2
     6                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
     7                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
     8  0000                     
     9  0000                     
    10  0000                     
    11  0000                     
    12  0000                     
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18                           
    19                           	psect	__Z00000RS_
    20  00A0                     
    21  00A0                     
    22                           
    23                           	psect	text2
    24  06AF                     _numberplay
    25                           ;	_nu assigned to ?a_numberplay+0
    26  0000                     _numberplay$nu	set	?a_numberplay
    27                           ;1213.c: 46: switch(k)
    28  06AF  2EC5               	goto	l11
    29  06B0                     l12
    30                           ;1213.c: 47: {
    31  06B0  30C0               	movlw	-64
    32  06B1  2EC3               	goto	L9
    33  06B2                     l13
    34                           ;1213.c: 49: case 0x01:nu=0xf9;break;
    35  06B2  30F9               	movlw	-7
    36  06B3  2EC3               	goto	L9
    37  06B4                     l14
    38                           ;1213.c: 50: case 0x02:nu=0xa4;break;
    39  06B4  30A4               	movlw	-92
    40  06B5  2EC3               	goto	L9
    41  06B6                     l15
    42                           ;1213.c: 51: case 0x03:nu=0xb0;break;
    43  06B6  30B0               	movlw	-80
    44  06B7  2EC3               	goto	L9
    45  06B8                     l16
    46                           ;1213.c: 52: case 0x04:nu=0x99;break;
    47  06B8  3099               	movlw	-103
    48  06B9  2EC3               	goto	L9
    49  06BA                     l17
    50                           ;1213.c: 53: case 0x05:nu=0x92;break;
    51  06BA  3092               	movlw	-110
    52  06BB  2EC3               	goto	L9
    53  06BC                     l18
    54                           ;1213.c: 54: case 0x06:nu=0x82;break;
    55  06BC  3082               	movlw	-126
    56  06BD  2EC3               	goto	L9
    57  06BE                     l19
    58                           ;1213.c: 55: case 0x07:nu=0xf8;break;
    59  06BE  30F8               	movlw	-8
    60  06BF  2EC3               	goto	L9
    61  06C0                     l20
    62                           ;1213.c: 56: case 0x08:nu=0x80;break;
    63  06C0  3080               	movlw	-128
    64  06C1  2EC3               	goto	L9
    65  06C2                     l21
    66                           ;1213.c: 57: case 0x09:nu=0x90;break;
    67  06C2  3090               	movlw	-112
    68  06C3                     L9
    69  06C3  00AA               	movwf	?a_numberplay
    70  06C4  2EEA               	goto	l10
    71  06C5                     l11
    72  06C5  1283               	bcf	3,5
    73  06C6  1303               	bcf	3,6	;carry unused
    74  06C7  0829               	movf	?_numberplay+1,w
    75  06C8  00AF               	movwf	btemp+3
    76  06C9  0828               	movf	?_numberplay,w
    77  06CA  00AE               	movwf	btemp+2
    78  06CB  2EE7               	goto	l30005
    79  06CC                     l30006
    80  06CC  082E               	movf	btemp+2,w
    81  06CD  00AC               	movwf	btemp
    82  06CE  3EF6               	addlw	-10
    83  06CF  1803               	btfsc	3,0
    84  06D0  2EEA               	goto	l10
    85  06D1  3E0A               	addlw	10
    86  06D2  1C03               	btfss	3,0
    87  06D3  2EEA               	goto	l10
    88  06D4  3000               	movlw	0
    89  06D5  02AC               	subwf	btemp
    90  06D6  3006               	movlw	S30008 shr (0+8)
    91  06D7  008A               	movwf	10
    92  06D8  30DD               	movlw	S30008& (0+255)
    93  06D9  072C               	addwf	btemp,w
    94  06DA  1803               	btfsc	3,0
    95  06DB  0A8A               	incf	10
    96  06DC  0082               	movwf	2
    97  06DD                     S30008
    98  06DD  2EB0               	goto	l12
    99  06DE  2EB2               	goto	l13
   100  06DF  2EB4               	goto	l14
   101  06E0  2EB6               	goto	l15
   102  06E1  2EB8               	goto	l16
   103  06E2  2EBA               	goto	l17
   104  06E3  2EBC               	goto	l18
   105  06E4  2EBE               	goto	l19
   106  06E5  2EC0               	goto	l20
   107  06E6  2EC2               	goto	l21
   108  06E7                     l30005
   109  06E7  082F               	movf	btemp+3,w
   110  06E8  1903               	btfsc	3,2
   111  06E9  2ECC               	goto	l30006
   112  06EA                     l10
   113                           ;1213.c: 60: return nu;
   114  06EA  082A               	movf	?a_numberplay,w
   115                           ;1213.c: 62: }
   116  06EB  0008               	return
   117  06EC                     _delay
   118                           ;	_t assigned to ?a_delay+0
   119  0000                     _delay$t	set	?a_delay
   120                           ;1213.c: 37: unsigned int t;
   121  06EC  0183               	clrf	3	;select bank 0
   122  06ED  0829               	movf	?_delay+1,w
   123  06EE  0428               	iorwf	?_delay,w
   124  06EF  1903               	btfsc	3,2
   125  06F0  0008               	return
   126  06F1                     l3
   127                           ;1213.c: 39: for(t=110;t!=0;t--);
   128  06F1  306E               	movlw	110
   129  06F2  00AA               	movwf	?a_delay
   130  06F3  01AB               	clrf	?a_delay+1
   131  06F4                     l6
   132  06F4  08AA               	movf	?a_delay
   133  06F5  1903               	btfsc	3,2
   134  06F6  03AB               	decf	?a_delay+1
   135  06F7  03AA               	decf	?a_delay
   136  06F8  082B               	movf	?a_delay+1,w
   137  06F9  042A               	iorwf	?a_delay,w
   138  06FA  1D03               	btfss	3,2
   139  06FB  2EF4               	goto	l6
   140  06FC  08A8               	movf	?_delay
   141  06FD  1903               	btfsc	3,2
   142  06FE  03A9               	decf	?_delay+1
   143  06FF  03A8               	decf	?_delay
   144  0700  0829               	movf	?_delay+1,w
   145  0701  0428               	iorwf	?_delay,w
   146  0702  1903               	btfsc	3,2
   147  0703  0008               	return
   148  0704  2EF1               	goto	l3
   149  0705                     _ioint
   150                           ;1213.c: 19: OPTION = 0xc8;
   151  0705  30C8               	movlw	-56
   152  0706  1683               	bsf	3,5
   153  0707  1303               	bcf	3,6	;carry unused
   154  0708  0081               	movwf	1
   155                           ;1213.c: 20: INTCON = 0xc0;
   156  0709  30C0               	movlw	-64
   157  070A  008B               	movwf	11	;volatile
   158                           ;1213.c: 21: TRISC = 0x00;
   159  070B  0187               	clrf	7	;volatile
   160                           ;1213.c: 22: TRISB = 0xc1;
   161  070C  30C1               	movlw	-63
   162  070D  0086               	movwf	6	;volatile
   163                           ;1213.c: 23: TRISA = 0x0f;
   164  070E  300F               	movlw	15
   165  070F  0085               	movwf	5	;volatile
   166                           ;1213.c: 24: PORTC = 0xff;
   167  0710  30FF               	movlw	-1
   168  0711  1283               	bcf	3,5
   169  0712  0087               	movwf	7	;volatile
   170                           ;1213.c: 29: }
   171  0713  0008               	return
   172                           ;1213.c: 67: main()
   173                           ;1213.c: 68: {
   174  0714                     _main
   175                           ;1213.c: 69: ioint();
   176  0714  2705               	fcall	_ioint
   177  0715                     l24
   178                           ;1213.c: 70: while(1)
   179                           ;1213.c: 71: {
   180  0715  01A1               	clrf	_x
   181                           ;1213.c: 73: delay(200);
   182  0716  30C8               	movlw	200
   183  0717  00A8               	movwf	?_delay
   184  0718  01A9               	clrf	?_delay+1
   185  0719  26EC               	fcall	_delay
   186                           ;1213.c: 74: RB4=1;
   187  071A  1606               	bsf	6,4
   188                           ;1213.c: 75: RB5=0;
   189  071B  1286               	bcf	6,5
   190                           ;1213.c: 76: delay(3);
   191  071C  3003               	movlw	3
   192  071D  00A8               	movwf	?_delay
   193  071E  01A9               	clrf	?_delay+1
   194  071F  26EC               	fcall	_delay
   195  0720  300F               	movlw	15	;#
   196  0721  00A0               	movwf	_i	;将15赋值给C中定义的变量i ;#
   197  0722                     delay1
   198  0722  1206               	bcf	6,4	;使RB4=0 ;#
   199  0723  1686               	bsf	6,5	;使RB5=1 ;#
   200  0724  0000               	nop	;#
   201  0725  0000               	nop	;#
   202  0726  0000               	nop	;#
   203  0727  0000               	nop	;#
   204  0728  0000               	nop	;#
   205  0729  0000               	nop	;#
   206  072A  0000               	nop	;#
   207  072B  0000               	nop	;#
   208  072C  0000               	nop	;#
   209  072D  0000               	nop	;#
   210  072E  1606               	bsf	6,4	;RB4=1 ;#
   211  072F  1286               	bcf	6,5	;RB5=0 ;#
   212  0730  0000               	nop	;#
   213  0731  0000               	nop	;#
   214  0732  0000               	nop	;#
   215  0733  0000               	nop	;#
   216  0734  0000               	nop	;#
   217  0735  0000               	nop	;#
   218  0736  0000               	nop	;#
   219  0737  0000               	nop	;#
   220  0738  0BA0               	decfsz	_i	;如i-1=0则跳过下一条指令 ;#
   221  0739  2F22               	goto	delay1	;#
   222  073A  1206               	bcf	6,4	;RB4=0 ;#
   223  073B  1286               	bcf	6,5	;RB5=0 ;#
   224  073C  0000               	nop	;#
   225                           ;1213.c: 109:     while(RB0==1){;}
   226  073D                     l26
   227  073D  1C06               	btfss	6,0
   228  073E  2F45               	goto	l29
   229  073F  2F3D               	goto	l26
   230                           ;1213.c: 110: while(RB0==0&&x<58)
   231  0740                     l30
   232                           ;1213.c: 111: {
   233  0740  3017               	movlw	23	;#
   234  0741  00A0               	movwf	_i	;将23赋值给C中定义的变量i ;#
   235  0742                     delay2
   236  0742  0BA0               	decfsz	_i	;i-1=0则跳过下一条指令 ;#
   237  0743  2F42               	goto	delay2	;#
   238                           ;1213.c: 118:     x=x+1;
   239  0744  0AA1               	incf	_x
   240  0745                     l29
   241                           ;1213.c: 119: }
   242  0745  1806               	btfsc	6,0
   243  0746  2F51               	goto	l32
   244  0747  303A               	movlw	58
   245  0748  0221               	subwf	_x,w
   246  0749  1C03               	btfss	3,0
   247  074A  2F40               	goto	l30
   248                           ;1213.c: 120: while(RB0==1&&x<58)
   249  074B  2F51               	goto	l32
   250  074C                     l33
   251                           ;1213.c: 121: {
   252  074C  3025               	movlw	37	;#
   253  074D  00A0               	movwf	_i	;将37赋值给C中定义的变量i ;#
   254  074E                     delay3
   255  074E  0BA0               	decfsz	_i	;i-1=0则跳过下一条指令 ;#
   256  074F  2F4E               	goto	delay3	;#
   257                           ;1213.c: 128:     x=x+1;
   258  0750  0AA1               	incf	_x
   259  0751                     l32
   260                           ;1213.c: 129: }
   261  0751  1C06               	btfss	6,0
   262  0752  2F57               	goto	l34
   263  0753  303A               	movlw	58
   264  0754  0221               	subwf	_x,w
   265  0755  1C03               	btfss	3,0
   266  0756  2F4C               	goto	l33
   267  0757                     l34
   268                           ;1213.c: 130: y=x*34/2;
   269  0757  3022               	movlw	34
   270  0758  00AE               	movwf	btemp+2
   271  0759  01AF               	clrf	btemp+3
   272  075A  0821               	movf	_x,w
   273  075B  00AC               	movwf	btemp
   274  075C  01AD               	clrf	btemp+1
   275  075D  118A  2698         	fcall	awmul
   276  075F  0830               	movf	btemp+4,w
   277  0760  00AC               	movwf	btemp
   278  0761  0831               	movf	btemp+5,w
   279  0762  00AD               	movwf	btemp+1
   280  0763  3002               	movlw	2
   281  0764  00AE               	movwf	btemp+2
   282  0765  3000               	movlw	0
   283  0766  01AF               	clrf	btemp+3
   284  0767  118A  27AD         	fcall	awdiv
   285  0769  0830               	movf	btemp+4,w
   286  076A  00A6               	movwf	_y
   287  076B  0831               	movf	btemp+5,w
   288  076C  00A7               	movwf	_y+1
   289                           ;1213.c: 131: m=y/100;
   290  076D  3064               	movlw	100
   291  076E  00AE               	movwf	btemp+2
   292  076F  01AF               	clrf	btemp+3
   293  0770  0827               	movf	_y+1,w
   294  0771  00AD               	movwf	btemp+1
   295  0772  0826               	movf	_y,w
   296  0773  00AC               	movwf	btemp
   297  0774  118A  27C4         	fcall	lwdiv
   298  0776  0830               	movf	btemp+4,w
   299  0777  00A2               	movwf	_m
   300  0778  0831               	movf	btemp+5,w
   301  0779  00A3               	movwf	_m+1
   302                           ;1213.c: 132: n=(y/10)%10;
   303  077A  300A               	movlw	10
   304  077B  00AE               	movwf	btemp+2
   305  077C  01AF               	clrf	btemp+3
   306  077D  0827               	movf	_y+1,w
   307  077E  00AD               	movwf	btemp+1
   308  077F  0826               	movf	_y,w
   309  0780  00AC               	movwf	btemp
   310  0781  118A  27C4         	fcall	lwdiv
   311  0783  0830               	movf	btemp+4,w
   312  0784  00AC               	movwf	btemp
   313  0785  0831               	movf	btemp+5,w
   314  0786  00AD               	movwf	btemp+1
   315  0787  300A               	movlw	10
   316  0788  00AE               	movwf	btemp+2
   317  0789  3000               	movlw	0
   318  078A  01AF               	clrf	btemp+3
   319  078B  118A  27C4  118A   	fcall	lwmod
   320  078E  082C               	movf	btemp,w

⌨️ 快捷键说明

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