📄 harve.lst
字号:
.................... // {
.................... // 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 + -