📄 harve.lst
字号:
CCS PCM C Compiler, Version 3.187, 16465
Filename: harve.LST
ROM used: 662 (16%)
Largest free fragment is 2048
RAM used: 37 (19%) at main() level
42 (22%) worst case
Stack: 2 locations
*
0000: MOVLW 00
0001: MOVWF 0A
0002: GOTO 234
0003: NOP
.................... #include "harve.h"
.................... #include <16F73.h>
.................... //////// Standard Header file for the PIC16F73 device ////////////////
.................... #device PIC16F73
.................... #list
....................
.................... //#include <stdio.h>
.................... #device adc=8
.................... #use delay(clock=8000000)
0004: MOVLW 47
0005: MOVWF 04
0006: MOVF 00,W
0007: BTFSC 03.2
0008: GOTO 016
0009: MOVLW 02
000A: MOVWF 21
000B: CLRF 20
000C: DECFSZ 20,F
000D: GOTO 00C
000E: DECFSZ 21,F
000F: GOTO 00B
0010: MOVLW 97
0011: MOVWF 20
0012: DECFSZ 20,F
0013: GOTO 012
0014: DECFSZ 00,F
0015: GOTO 009
0016: RETLW 00
.................... #fuses NOWDT,HS, NOPUT, NOPROTECT, NOBROWNOUT
.................... //#use rs232(baud=9600, parity=N,xmit=PIN_C6,rcv=PIN_C7,stream=,bits=8)
....................
.................... #byte STATUS=0x03
.................... #bit C=STATUS.0
.................... #byte SPBRG=0x99
.................... #byte TXSTA=0x98
.................... #byte RCSTA=0x18
.................... #byte TXREG=0x19
.................... #byte RCREG=0x1A
.................... #bit RX9 =RCSTA.6
.................... #bit CREN=RCSTA.4
.................... #bit FERR=RCSTA.2
.................... #bit RX9D=RCSTA.0
.................... #bit OERR=RCSTA.1
.................... #bit SPEN=RCSTA.7
.................... #bit CSRC=TXSTA.7
.................... #bit TXEN=TXSTA.5
.................... #bit SYNC=TXSTA.4
.................... #bit BRGH=TXSTA.2
.................... #bit TRMT=TXSTA.1
.................... #bit TX9 =TXSTA.6 //for serial
.................... #byte PIR1=0x0C
.................... #bit RCIF=PIR1.5
.................... #bit TXIF=PIR1.4
.................... #byte TRISA=0x85
.................... #byte TRISB=0x86
.................... #byte TRISC=0x87
.................... #byte POTA=0x05
.................... #byte POTB=0x06
.................... #byte POTC=0x07
.................... //#byte POTD=0x08
.................... //#byte POTE=0x09 //define port
....................
.................... #byte INTCON=0x0B
.................... #byte OPTION=0x81
.................... #byte PIE1 =0x8C
.................... #byte PIR1 =0x0C
.................... #byte TMR1L = 0x0e
.................... #byte TMR1H = 0x0f
.................... #byte T1CON = 0x10
.................... #byte TMR0 = 0x01
.................... #bit TMR1ON=T1CON.0
.................... #bit TMR1IF=PIR1.0
.................... #bit T0IF=INTCON.2 //use for time
....................
.................... #bit LinEN=POTA.0
.................... #bit testbit1=POTA.1
.................... #bit testbit2=POTA.2
.................... #bit testbit3=POTA.3
.................... #bit testbit4=POTA.4
.................... #bit testbit5=POTA.5
.................... #bit A1=POTC.0
.................... #bit A2=POTC.1
.................... #bit A3=POTC.2
.................... #bit A4=POTC.3
.................... #bit A5=POTC.4
.................... #bit CAR1=POTC.5
.................... #bit TXD=POTC.6
.................... #bit RXD=POTC.7
....................
.................... //#bit P02=POTC.1
.................... //#bit P03=POTC.2
.................... //#bit P07=POTC.3
.................... #bit P00=POTC.2
.................... #bit P01=POTC.4
.................... #bit P02=POTC.3
.................... #bit red=POTA.2
.................... //HT1621控制位(液晶模块接口定义)
.................... #bit HT1621_DAT=POTB.2
.................... #bit HT1621_CS=POTB.5 //lower enable
.................... #bit HT1621_WR=POTB.3 //rising edge
.................... #bit LED=POTB.0 //LED
....................
.................... #define BIAS 0x52 //0b1000 0101 0010 1/3duty 4com
.................... #define BIAS2 0x50 //0b1000 0101 0000 1/2duty 4com
.................... #define SYSDIS 0x00 //0b1000 0000 0000 关振系统荡器和LCD偏压发生器
.................... #define LCDOFF 0x04 //0b1000 0000 0100 关LCD偏压
.................... #define LCDON 0x06 //0b1000 0000 0110 打开LCD偏压
.................... #define SYSEN 0x02 //0b1000 0000 0010 打开系统振荡器
.................... #define XTAL 0x28 //0b1000 0010 1000 外部接时钟
.................... #define RC256 0x30 //0b1000 0011 0000 内部时钟
.................... #define TONEON 0x12 //0b1000 0001 0010 打开声音输出
.................... #define TONEOFF 0x10 //0b1000 0001 0000 关闭声音输出
.................... #define WDTDIS 0x0A //0b1000 0000 1010 禁止看门狗
....................
....................
.................... unsigned char show[6]=0x00,0x00,0x00,0x00,0x00,0x00;
*
023A: BCF 03.5
023B: CLRF 25
023C: CLRF 26
023D: CLRF 27
023E: CLRF 28
023F: CLRF 29
0240: CLRF 2A
.................... unsigned char data[11]=0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00;
0241: MOVLW FF
0242: MOVWF 2B
0243: MOVWF 2C
0244: MOVWF 2D
0245: MOVWF 2E
0246: MOVWF 2F
0247: CLRF 30
0248: CLRF 31
0249: CLRF 32
024A: CLRF 33
024B: CLRF 34
024C: CLRF 35
.................... unsigned char sound[8]=0x0E,0x36,0x4E,0x76,0x8E,0xB6,0xCE,0xF6;
024D: MOVLW 0E
024E: MOVWF 36
024F: MOVLW 36
0250: MOVWF 37
0251: MOVLW 4E
0252: MOVWF 38
0253: MOVLW 76
0254: MOVWF 39
0255: MOVLW 8E
0256: MOVWF 3A
0257: MOVLW B6
0258: MOVWF 3B
0259: MOVLW CE
025A: MOVWF 3C
025B: MOVLW F6
025C: MOVWF 3D
.................... unsigned char getdatatimeout=0;
025D: CLRF 3E
.................... unsigned char olddata=9;
025E: MOVLW 09
025F: MOVWF 3F
.................... unsigned char new_rx_data=0xFF;
0260: MOVLW FF
0261: MOVWF 40
.................... #use fixed_io(a_outputs=PIN_A0,PIN_A1,PIN_A2,PIN_A3,PIN_A4,PIN_A5)
.................... #use fixed_io(b_outputs=PIN_B0,PIN_B2,PIN_B3,PIN_B4,PIN_B5,PIN_B6,PIN_B7)
.................... //#use fixed_io(c_outputs=PIN_C0,PIN_C2,PIN_C3,PIN_C4,PIN_C5) //harve070314
.................... #use fixed_io(c_outputs=PIN_C0,PIN_C2,PIN_C3,PIN_C5)
.................... void show0(void);
.................... void show1(void);
.................... void show2(void);
.................... void show3(void);
.................... void show4(void);
.................... void getdata(void);
.................... void RTError(void);
.................... void getword(void);
.................... void getbit(unsigned char i);
.................... void intlzation(void);
.................... void Ht1621WrByte(unsigned char ucTmpData);
.................... void Ht1621WrDataCmd(unsigned char ucAddr);
.................... void Ht1621WrCmd(unsigned char ucTmpCmd);
.................... void soundout(void);
.................... void main()
.................... {
*
0234: CLRF 04
0235: MOVLW 1F
0236: ANDWF 03,F
0237: MOVLW 06
0238: BSF 03.5
0239: MOVWF 1F
.................... unsigned char i,j,now;
.................... //sleep();
.................... output_a(0x00);
*
0262: MOVLW C0
0263: TRIS 5
0264: CLRF 05
.................... output_b(0x00);
0265: MOVLW 02
0266: TRIS 6
0267: CLRF 06
.................... output_c(0x00);
0268: MOVLW D2
0269: TRIS 7
026A: CLRF 07
.................... P02=1;
026B: BSF 07.3
.................... intlzation();
026C: GOTO 058
....................
.................... LED=1;
026D: BSF 06.0
....................
....................
.................... while(1)
.................... {
.................... TMR1H=10;
026E: MOVLW 0A
026F: MOVWF 0F
.................... TMR1L=0;
0270: CLRF 0E
.................... TMR1ON=1;
0271: BSF 10.0
.................... TMR1IF=0;
0272: BCF 0C.0
.................... i++;
0273: INCF 41,F
.................... //if (i%15==0)
.................... {
.................... HT1621_CS=0;
0274: BCF 06.5
.................... Ht1621WrDataCmd(0);
0275: CLRF 44
0276: GOTO 0AB
.................... for(j=0;j<6;j++)
0277: CLRF 42
0278: MOVF 42,W
0279: SUBLW 05
027A: BTFSS 03.0
027B: GOTO 28C
.................... {
.................... if(getdatatimeout<70)
.................... Ht1621WrByte(show[j]);
027C: MOVF 3E,W
027D: SUBLW 45
027E: BTFSS 03.0
027F: GOTO 288
0280: MOVLW 25
0281: ADDWF 42,W
0282: MOVWF 04
0283: MOVF 00,W
0284: MOVWF 44
0285: MOVWF 45
0286: CALL 0E9
.................... else
.................... Ht1621WrByte(0x00);
0287: GOTO 28A
0288: CLRF 45
0289: CALL 0E9
.................... }
028A: INCF 42,F
028B: GOTO 278
.................... HT1621_CS=1;
028C: BSF 06.5
.................... }
.................... getdata();
028D: GOTO 133
.................... soundout();
028E: GOTO 1BF
.................... while(TMR1H<0x80);
028F: MOVF 0F,W
0290: SUBLW 7F
0291: BTFSC 03.0
0292: GOTO 28F
....................
.................... i++;
0293: INCF 41,F
.................... }
0294: GOTO 26E
.................... }
....................
.................... /////////////////////////
.................... // get-data //
.................... /////////////////////////
.................... void getdata(void)
.................... {
0295: SLEEP
.................... unsigned char i,sum,ErrorData;
.................... int1 flag;
.................... TXREG=0x00; //out put 00H
*
0133: CLRF 19
.................... delay_us(250);
0134: MOVLW A6
0135: MOVWF 20
0136: DECFSZ 20,F
0137: GOTO 136
0138: NOP
.................... delay_us(250);
0139: MOVLW A6
013A: MOVWF 20
013B: DECFSZ 20,F
013C: GOTO 13B
013D: NOP
.................... TXREG=0x55; //out put 55H
013E: MOVLW 55
013F: MOVWF 19
.................... sum=RCREG;
0140: MOVF 1A,W
0141: MOVWF 45
.................... delay_us(250);
0142: MOVLW A6
0143: MOVWF 20
0144: DECFSZ 20,F
0145: GOTO 144
0146: NOP
.................... delay_us(250);
0147: MOVLW A6
0148: MOVWF 20
0149: DECFSZ 20,F
014A: GOTO 149
014B: NOP
.................... TXREG=0x47;//0x47;//0100-0111 //out put ID
014C: MOVLW 47
014D: MOVWF 19
.................... while(!TRMT);
014E: BSF 03.5
014F: BTFSC 18.1
0150: GOTO 153
0151: BCF 03.5
0152: GOTO 14E
.................... delay_cycles(4);
0153: NOP
0154: NOP
0155: NOP
0156: NOP
.................... CREN=1; //open recive
0157: BCF 03.5
0158: BSF 18.4
.................... for(i=0;i<9;i++) //修改后
0159: CLRF 44
015A: MOVF 44,W
015B: SUBLW 08
015C: BTFSS 03.0
015D: GOTO 17A
.................... //for(i=0;i<8;i++)
.................... {
.................... TMR0=0;
015E: CLRF 01
.................... delay_cycles(20);
015F: MOVLW 06
0160: MOVWF 20
0161: DECFSZ 20,F
0162: GOTO 161
0163: NOP
.................... RTError();
0164: CALL 120
.................... if(OERR)
.................... RTError();
0165: BTFSC 18.1
0166: CALL 120
.................... while(!RCIF&&TMR0<60);
0167: BTFSC 0C.5
0168: GOTO 16D
0169: MOVF 01,W
016A: SUBLW 3B
016B: BTFSC 03.0
016C: GOTO 167
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -