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

📄 harve.lst

📁 6探头液晶显示倒车雷达系统 方位指示
💻 LST
📖 第 1 页 / 共 3 页
字号:
.................... 	  //   {  
.................... 	    // flag=RCIF;  
.................... 	 //    }  
.................... 	     if(RCIF)  
.................... 	       {   
016D:  BTFSS  0C.5
016E:  GOTO   176
....................              sum=RCREG;  
016F:  MOVF   1A,W
0170:  MOVWF  45
.................... 		     data[i]=sum;  
0171:  MOVLW  2B
0172:  ADDWF  44,W
0173:  MOVWF  04
0174:  MOVF   45,W
0175:  MOVWF  00
.................... 	       }  
....................          new_rx_data=data[7];  
0176:  MOVF   32,W
0177:  MOVWF  40
....................        }  
0178:  INCF   44,F
0179:  GOTO   15A
....................     
....................        CREN=0;	               //get 6 bite  data from serial                				  
017A:  BCF    18.4
....................   sum=0x47;  
017B:  MOVLW  47
017C:  MOVWF  45
....................   sum+=data[0];  
017D:  MOVF   2B,W
017E:  ADDWF  45,F
....................   if(C)  
....................     sum++;  
017F:  BTFSC  03.0
0180:  INCF   45,F
....................   sum+=data[1];  
0181:  MOVF   2C,W
0182:  ADDWF  45,F
....................   if(C)  
....................     sum++;  
0183:  BTFSC  03.0
0184:  INCF   45,F
....................   sum+=data[2];  
0185:  MOVF   2D,W
0186:  ADDWF  45,F
....................   if(C)  
....................     sum++;  
0187:  BTFSC  03.0
0188:  INCF   45,F
....................   sum+=data[3];  
0189:  MOVF   2E,W
018A:  ADDWF  45,F
....................   if(C)  
....................     sum++;  
018B:  BTFSC  03.0
018C:  INCF   45,F
....................   sum+=data[4];  
018D:  MOVF   2F,W
018E:  ADDWF  45,F
....................   if(C)  
....................     sum++;  
018F:  BTFSC  03.0
0190:  INCF   45,F
....................   sum+=data[5];  
0191:  MOVF   30,W
0192:  ADDWF  45,F
....................   if(C)  
....................     sum++;     
0193:  BTFSC  03.0
0194:  INCF   45,F
....................   sum+=data[7];  
0195:  MOVF   32,W
0196:  ADDWF  45,F
....................   if(C)  
....................   	sum++;  
0197:  BTFSC  03.0
0198:  INCF   45,F
....................   sum+=data[6];  
0199:  MOVF   31,W
019A:  ADDWF  45,F
....................   if(C)  
....................     sum++;     
019B:  BTFSC  03.0
019C:  INCF   45,F
....................     
....................     
....................                   //caculate   
....................   if(data[8]==(0xFF^sum))   
....................     {  
019D:  MOVF   45,W
019E:  XORLW  FF
019F:  SUBWF  33,W
01A0:  BTFSS  03.2
01A1:  GOTO   1B7
....................        for(i=0;i<6;i++)  
01A2:  CLRF   44
01A3:  MOVF   44,W
01A4:  SUBLW  05
01A5:  BTFSS  03.0
01A6:  GOTO   1B5
....................        show[i]=data[i];      //if no bite bad agree it  
01A7:  MOVLW  25
01A8:  ADDWF  44,W
01A9:  MOVWF  48
01AA:  MOVLW  2B
01AB:  ADDWF  44,W
01AC:  MOVWF  04
01AD:  MOVF   00,W
01AE:  MOVWF  49
01AF:  MOVF   48,W
01B0:  MOVWF  04
01B1:  MOVF   49,W
01B2:  MOVWF  00
01B3:  INCF   44,F
01B4:  GOTO   1A3
....................       // new_rx_data=data[7];  
....................        getdatatimeout=0;  
01B5:  CLRF   3E
....................     }  
....................  else  
....................     {  
01B6:  GOTO   1BB
....................      if(getdatatimeout<200)  
....................      getdatatimeout++;  
01B7:  MOVF   3E,W
01B8:  SUBLW  C7
01B9:  BTFSC  03.0
01BA:  INCF   3E,F
.................... //      delay_us(20);  
....................     }  
.................... //delay_us(300);  
.................... TXREG=0x02;  
01BB:  MOVLW  02
01BC:  MOVWF  19
.................... }  
01BD:  BCF    0A.3
01BE:  GOTO   28E (RETURN)
.................... ///////////////////////////  
.................... //       RTError         //  
.................... ///////////////////////////  
.................... void RTError(void)  
.................... {  
....................   unsigned char ErrorData;  
....................   if(OERR)  
....................   {  
*
0120:  BTFSS  18.1
0121:  GOTO   12B
....................     ErrorData=RCREG;  
0122:  MOVF   1A,W
0123:  MOVWF  48
....................     ErrorData=RCREG;  
0124:  MOVF   1A,W
0125:  MOVWF  48
....................     CREN=0;  
0126:  BCF    18.4
....................     delay_cycles(3);  
0127:  NOP
0128:  NOP
0129:  NOP
....................     CREN=1;  
012A:  BSF    18.4
....................   }  
....................   if(FERR)  
....................   {  
012B:  BTFSS  18.2
012C:  GOTO   132
....................     C=RX9D;  
012D:  BCF    03.0
012E:  BTFSC  18.0
012F:  BSF    03.0
....................     ErrorData=RCREG;  
0130:  MOVF   1A,W
0131:  MOVWF  48
....................   }  
.................... }  
0132:  RETLW  00
....................   
.................... ///////////////////////////  
.................... //       intlzation      //  
.................... ///////////////////////////  
.................... void intlzation(void)  
.................... {  
....................    POTC=0xFF;  
*
0058:  MOVLW  FF
0059:  MOVWF  07
....................    POTB=0x00;  
005A:  CLRF   06
....................       
....................    delay_ms(50);  
005B:  MOVLW  32
005C:  MOVWF  47
005D:  CALL   004
....................    setup_adc_ports(NO_ANALOGS);  
005E:  MOVLW  06
005F:  BSF    03.5
0060:  MOVWF  1F
....................    setup_adc(ADC_OFF);  
0061:  BCF    03.5
0062:  MOVF   1F,W
0063:  ANDLW  38
0064:  MOVWF  1F
....................    setup_counters(RTCC_INTERNAL,RTCC_DIV_32);//2.5ms=156.25 time0  
0065:  MOVLW  04
0066:  MOVWF  20
0067:  BTFSS  20.3
0068:  GOTO   071
0069:  MOVLW  07
006A:  CLRF   01
006B:  MOVLW  81
006C:  MOVWF  04
006D:  MOVF   00,W
006E:  ANDLW  C0
006F:  IORLW  0F
0070:  MOVWF  00
0071:  CLRWDT
0072:  MOVLW  81
0073:  MOVWF  04
0074:  MOVF   00,W
0075:  ANDLW  C0
0076:  IORWF  20,W
0077:  MOVWF  00
....................    setup_timer_1(T1_INTERNAL | T1_DIV_BY_4);  
0078:  MOVLW  A5
0079:  MOVWF  10
....................    setup_timer_2(T2_DISABLED,0,1);  
007A:  MOVLW  00
007B:  MOVWF  21
007C:  MOVWF  12
007D:  MOVLW  00
007E:  BSF    03.5
007F:  MOVWF  12
....................    //TRISB=0x00;  
....................     
....................    //LinEN=1;  
....................    INTCON=0x00;  
0080:  BCF    03.5
0081:  CLRF   0B
....................    PIE1  =0x00;  
0082:  BSF    03.5
0083:  CLRF   0C
....................    CREN=0;  
0084:  BCF    03.5
0085:  BCF    18.4
....................    SPBRG=25;  
0086:  MOVLW  19
0087:  BSF    03.5
0088:  MOVWF  19
....................    SYNC=0;  
0089:  BCF    18.4
....................    SPEN=1;  
008A:  BCF    03.5
008B:  BSF    18.7
....................    TX9 =0;  
008C:  BSF    03.5
008D:  BCF    18.6
....................    TXEN=1;  
008E:  BSF    18.5
....................    BRGH=1;  
008F:  BSF    18.2
....................    RX9 =0;   //for sireal  
0090:  BCF    03.5
0091:  BCF    18.6
....................   
.................... 	HT1621_CS=1;  
0092:  BSF    06.5
.................... 	HT1621_WR=0;  
0093:  BCF    06.3
.................... 	HT1621_DAT=1;  
0094:  BSF    06.2
.................... 	delay_ms(100);       //延时使LCD工作电压稳定  
0095:  MOVLW  64
0096:  MOVWF  47
0097:  CALL   004
.................... 	Ht1621WrCmd(BIAS);  
0098:  MOVLW  52
0099:  MOVWF  44
009A:  CALL   017
.................... //    Ht1621WrCmd(BIAS2);  
.................... 	Ht1621WrCmd(RC256);   //使用内部振荡器  
009B:  MOVLW  30
009C:  MOVWF  44
009D:  CALL   017
.................... 	Ht1621WrCmd(SYSDIS);  
009E:  CLRF   44
009F:  CALL   017
.................... 	Ht1621WrCmd(WDTDIS);  
00A0:  MOVLW  0A
00A1:  MOVWF  44
00A2:  CALL   017
.................... 	Ht1621WrCmd(SYSEN);  
00A3:  MOVLW  02
00A4:  MOVWF  44
00A5:  CALL   017
.................... 	Ht1621WrCmd(LCDON);  
00A6:  MOVLW  06
00A7:  MOVWF  44
00A8:  CALL   017
.................... }  
00A9:  BCF    0A.3
00AA:  GOTO   26D (RETURN)
....................   
....................   
.................... ///////////////////////////  
.................... //       A command       //  
.................... ///////////////////////////  
.................... void Ht1621WrCmd(unsigned char ucTmpCmd)  
.................... {  
.................... unsigned char i,ucCmdByte=0x80;  
*
0017:  MOVLW  80
0018:  MOVWF  46
.................... HT1621_CS=0;  
0019:  BCF    06.5
.................... delay_cycles(8);  
001A:  MOVLW  02
001B:  MOVWF  20
001C:  DECFSZ 20,F
001D:  GOTO   01C
001E:  NOP
.................... for (i=0;i<4;i++)  
001F:  CLRF   45
0020:  MOVF   45,W
0021:  SUBLW  03
0022:  BTFSS  03.0
0023:  GOTO   038
.................... {  
....................  if (ucCmdByte&0x80)   
....................    HT1621_DAT=1;  
0024:  BTFSS  46.7
0025:  GOTO   028
0026:  BSF    06.2
....................  else  
....................    HT1621_DAT=0;  
0027:  GOTO   029
0028:  BCF    06.2
....................  HT1621_WR=0;  
0029:  BCF    06.3
....................  delay_cycles(8);  
002A:  MOVLW  02
002B:  MOVWF  20
002C:  DECFSZ 20,F
002D:  GOTO   02C
002E:  NOP
....................  HT1621_WR=1;  
002F:  BSF    06.3
....................  delay_cycles(4);  
0030:  NOP
0031:  NOP
0032:  NOP
0033:  NOP
....................  ucCmdByte<<=1;  
0034:  BCF    03.0
0035:  RLF    46,F
.................... }  
0036:  INCF   45,F
0037:  GOTO   020
.................... for (i=0;i<8;i++)  
0038:  CLRF   45
0039:  MOVF   45,W
003A:  SUBLW  07
003B:  BTFSS  03.0
003C:  GOTO   051
.................... {  
....................  if (ucTmpCmd&0x80) HT1621_DAT=1;  
003D:  BTFSS  44.7
003E:  GOTO   041
003F:  BSF    06.2
....................  else HT1621_DAT=0;  
0040:  GOTO   042
0041:  BCF    06.2
....................  HT1621_WR=0;  
0042:  BCF    06.3
....................  delay_cycles(8);  
0043:  MOVLW  02
0044:  MOVWF  20
0045:  DECFSZ 20,F
0046:  GOTO   045
0047:  NOP
....................  HT1621_WR=1;  

⌨️ 快捷键说明

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