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

📄 main.lst

📁 使用Microchip公司16F648实现4*6键盘程序. 在PICC环境下编译通过,包含RS485通讯. 代码完整,可供参考.
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-90508                            Sat Nov 10 13:01:05 2007

Licensed to: ONE
     1                           	processor	16F648A
     2                           	opt	pw 79
     3                           	psect	__Z90508RS_,global,delta=1
     4                           	psect	text0,local,class=CODE,delta=2
     5                           	psect	text1,local,class=CODE,delta=2
     6                           	psect	intcode,global,class=CODE,delta=2
     7                           	psect	intsave_0,global,ovrld,class=COMBANK,spa
      +                          ce=1,delta=1
     8                           	psect	intret,global,class=CODE,delta=2
     9                           	psect	intentry,global,class=CODE,delta=2
    10                           	psect	intsave,global,class=BANK0,space=1,delta
      +                          =1
    11                           	psect	text3,local,class=CODE,delta=2
    12                           	psect	text4,local,class=CODE,delta=2
    13                           	psect	text5,local,class=CODE,delta=2
    14                           	psect	text6,local,class=CODE,delta=2
    15                           	psect	text7,local,class=CODE,delta=2
    16                           	psect	text8,local,class=CODE,delta=2
    17                           	psect	rbit_0,global,bit,class=BANK0,space=1,de
      +                          lta=1
    18                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    19                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    20  0000                     
    21  0000                     
    22  0000                     
    23  0000                     
    24  0000                     
    25  0000                     
    26  0000                     
    27  0000                     
    28  0000                     
    29  0000                     
    30                           
    31                           	psect	__Z90508RS_
    32  0145                     
    33  0145                     
    34                           
    35                           	psect	text0
    36  0C1E                     _test
    37                           ;main.c: 30: }
    38  0C1E  0183               	clrf	3	;select bank 0
    39  0C1F  0008               	return
    40                           
    41                           	psect	intcode
    42  002B                     _isr
    43  002B                     int_func
    44                           ;main.c: 37: if(T0IE & T0IF)
    45  002B  190B               	btfsc	11,2
    46  002C  1E8B               	btfss	11,5
    47  002D  283C               	goto	l17
    48                           ;main.c: 38: {
    49  002E  110B               	bcf	11,2
    50                           ;main.c: 41: TMR0 = 0x85;
    51  002F  3085               	movlw	-123
    52  0030  1283               	bcf	3,5
    53  0031  1303               	bcf	3,6	;carry unused
    54  0032  0081               	movwf	1	;volatile
    55                           ;main.c: 42: TimeCnt++;
    56  0033  0AA9               	incf	_TimeCnt	;volatile
    57  0034  1903               	btfsc	3,2
    58  0035  0AAA               	incf	_TimeCnt+1	;volatile
    59                           ;main.c: 43: timeflag = 0xff;
    60  0036  30FF               	movlw	-1
    61  0037  00A4               	movwf	_timeflag	;volatile
    62                           ;main.c: 44: TimeBase.alltimes = TimeCnt;
    63  0038  0829               	movf	_TimeCnt,w	;volatile
    64  0039  00A7               	movwf	_TimeBase	;volatile
    65  003A  082A               	movf	_TimeCnt+1,w	;volatile
    66  003B  00A8               	movwf	_TimeBase+1	;volatile
    67  003C                     l17
    68                           ;main.c: 45: }
    69  003C  1283               	bcf	3,5
    70  003D  1303               	bcf	3,6	;carry unused
    71  003E  1E0C               	btfss	12,4
    72  003F  286D               	goto	l18
    73  0040  1683               	bsf	3,5
    74  0041  1E0C               	btfss	12,4
    75  0042  286D               	goto	l18
    76                           ;main.c: 48: {
    77  0043  0824               	movf	_UartStruct^(0+128),w	;volatile
    78  0044  3903               	andlw	3
    79  0045  3A02               	xorlw	2
    80  0046  1D03               	btfss	3,2
    81  0047  286D               	goto	l18
    82                           ;main.c: 50: {
    83  0048  0822               	movf	_sendCount^(0+128),w	;volatile
    84  0049  0223               	subwf	_sendPosi^(0+128),w	;volatile
    85  004A  1803               	btfsc	3,0
    86  004B  2868               	goto	l20
    87                           ;main.c: 52: {
    88  004C  0AA3               	incf	_sendPosi^(0+128)	;volatile
    89                           ;main.c: 55: TX9D = ParityBit(&sendBuf[sendPosi
      +                          ]);
    90  004D  0823               	movf	_sendPosi^(0+128),w	;volatile
    91  004E  3EB6               	addlw	_sendBuf
    92  004F  1283               	bcf	3,5
    93  0050  00D1               	movwf	?_ParityBit
    94  0051  3080               	movlw	128
    95  0052  00D2               	movwf	?_ParityBit+1
    96  0053  118A  2324  118A   	fcall	_ParityBit
    97  0056  00F0               	movwf	btemp
    98  0057  0C70               	rrf	btemp,w
    99  0058  1683               	bsf	3,5
   100  0059  1C03               	btfss	3,0
   101  005A  285D               	goto	L2
   102  005B  1418               	bsf	24,0
   103  005C  285E               	goto	u104
   104  005D                     L2
   105  005D  1018               	bcf	24,0
   106  005E                     u104
   107                           ;main.c: 56: TXREG = sendBuf[sendPosi];
   108  005E  1683               	bsf	3,5
   109  005F  1303               	bcf	3,6	;carry unused
   110  0060  0823               	movf	_sendPosi^(0+128),w	;volatile
   111  0061  3EB6               	addlw	_sendBuf
   112  0062  0084               	movwf	4
   113  0063  1383               	bcf	3,7
   114  0064  0800               	movf	0,w
   115  0065  1283               	bcf	3,5
   116  0066  0099               	movwf	25	;volatile
   117                           ;main.c: 57: }
   118  0067  286D               	goto	l18
   119  0068                     l20
   120                           ;main.c: 59: {
   121  0068  1C98               	btfss	24,1
   122  0069  286D               	goto	l18
   123                           ;main.c: 61: {
   124  006A  16A4               	bsf	_UartStruct^(0+128),5	;volatile
   125                           ;main.c: 64: TXEN = 0;
   126  006B  1298               	bcf	24,5
   127                           ;main.c: 65: TXIE = 0;
   128  006C  120C               	bcf	12,4
   129                           ;main.c: 66: }
   130                           ;main.c: 68: }
   131  006D                     l18
   132                           ;main.c: 71: if(RCIE & RCIF)
   133  006D  1283               	bcf	3,5
   134  006E  1303               	bcf	3,6	;carry unused
   135  006F  1E8C               	btfss	12,5
   136  0070  28B6               	goto	l16
   137  0071  1683               	bsf	3,5
   138  0072  1E8C               	btfss	12,5
   139  0073  28B6               	goto	l16
   140                           ;main.c: 72: {
   141  0074  1283               	bcf	3,5
   142  0075  1703               	bsf	3,6
   143  0076  0820               	movf	_FrameOverCou^(0+256),w
   144  0077  1683               	bsf	3,5
   145  0078  1303               	bcf	3,6	;carry unused
   146  0079  00A1               	movwf	_receTimeOut^(0+128)	;volatile
   147                           ;main.c: 75: if(FERR==1)
   148  007A  1283               	bcf	3,5
   149  007B  1D18               	btfss	24,2
   150  007C  2880               	goto	l24
   151                           ;main.c: 76: {
   152  007D  1218               	bcf	24,4
   153                           ;main.c: 82: FERR = 0;
   154  007E  1118               	bcf	24,2
   155  007F  2884               	goto	L1
   156                           ;main.c: 83: CREN = 1;
   157                           ;main.c: 84: tmp = RCREG;
   158                           ;main.c: 86: }
   159  0080                     l24
   160  0080  1C98               	btfss	24,1
   161  0081  2888               	goto	l26
   162                           ;main.c: 88: {
   163  0082  1218               	bcf	24,4
   164                           ;main.c: 97: OERR = 0;
   165  0083  1098               	bcf	24,1
   166  0084                     L1
   167                           ;main.c: 98: CREN = 1;
   168  0084  1618               	bsf	24,4
   169                           ;main.c: 99: tmp = RCREG;
   170  0085  081A               	movf	26,w	;volatile
   171  0086  00A2               	movwf	_tmp
   172                           ;main.c: 100: }
   173  0087  28B6               	goto	l16
   174  0088                     l26
   175                           ;main.c: 102: if(UartStruct.bits.HostStatus == 
      +                          1)
   176  0088  1683               	bsf	3,5
   177  0089  0824               	movf	_UartStruct^(0+128),w	;volatile
   178  008A  3903               	andlw	3
   179  008B  3A01               	xorlw	1
   180  008C  1D03               	btfss	3,2
   181  008D  28B6               	goto	l16
   182                           ;main.c: 103: {
   183  008E  3000               	movlw	0
   184  008F  1283               	bcf	3,5
   185  0090  1818               	btfsc	24,0
   186  0091  3001               	movlw	1
   187  0092  00A3               	movwf	_tmp2
   188                           ;main.c: 105: receBuf[receCount] = RCREG;
   189  0093  1683               	bsf	3,5
   190  0094  0820               	movf	_receCount^(0+128),w	;volatile
   191  0095  3EA6               	addlw	_receBuf
   192  0096  0084               	movwf	4
   193  0097  1383               	bcf	3,7
   194  0098  1283               	bcf	3,5
   195  0099  081A               	movf	26,w	;volatile
   196  009A  0080               	movwf	0
   197                           ;main.c: 106: if(tmp2 != ParityBitThree(&receBu
      +                          f[receCount]))
   198  009B  1683               	bsf	3,5
   199  009C  0820               	movf	_receCount^(0+128),w	;volatile
   200  009D  3EA6               	addlw	_receBuf
   201  009E  1283               	bcf	3,5
   202  009F  00D1               	movwf	?_ParityBitThree
   203  00A0  3080               	movlw	128
   204  00A1  00D2               	movwf	?_ParityBitThree+1
   205  00A2  158A  24B8  118A   	fcall	_ParityBitThree
   206  00A5  00F2               	movwf	btemp+2
   207  00A6  01F3               	clrf	btemp+3
   208  00A7  0823               	movf	_tmp2,w
   209  00A8  00F0               	movwf	btemp
   210  00A9  01F1               	clrf	btemp+1
   211  00AA  0873               	movf	btemp+3,w
   212  00AB  0671               	xorwf	btemp+1,w
   213  00AC  1D03               	btfss	3,2
   214  00AD  28B0               	goto	u185
   215  00AE  0872               	movf	btemp+2,w
   216  00AF  0670               	xorwf	btemp,w
   217  00B0                     u185
   218  00B0  1D03               	btfss	3,2
   219                           ;main.c: 107: errorCheckout = 1;
   220  00B1  1420               	bsf	_errorCheckout/(0+8),_errorCheckout& (0+7)
   221                           ;main.c: 109: receCount++;
   222  00B2  1683               	bsf	3,5
   223  00B3  0AA0               	incf	_receCount^(0+128)	;volatile
   224                           ;main.c: 110: receCount &= 0x0f;
   225  00B4  300F               	movlw	15
   226  00B5  05A0               	andwf	_receCount^(0+128)	;volatile
   227                           ;main.c: 111: }
   228                           ;main.c: 114: return;
   229                           ;main.c: 115: }
   230  00B6                     l16
   231  00B6  1303               	bcf	3,6	;carry unused
   232  00B7  1283               	bcf	3,5
   233                           
   234                           	psect	intsave_0
   235  007C                     saved_w
   236  007C                     	ds	1
   237                           
   238                           	psect	intret
   239  00D6  0858               	movf	saved_fsr,w
   240  00D7  0084               	movwf	4	;restore FSR
   241  00D8  0859               	movf	saved_pclath,w
   242  00D9  008A               	movwf	10
   243  00DA                     int_restore
   244  00DA  0857               	movf	saved_status,w
   245  00DB  0083               	movwf	3
   246  00DC  0EFC               	swapf	saved_w

⌨️ 快捷键说明

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