📄 das1210.lst
字号:
RC51 COMPILER V03.03.26, DAS1210 08/05/02 11:11:00 PAGE 1
QCW(0x00002F32)
WIN32 RC51 COMPILER V03.03.26, COMPILATION OF MODULE DAS1210
OBJECT MODULE PLACED IN d:\data\msc1210\msc1210 daq evm\ride\das1210\das1210.obj
-
COMPILER INVOKED BY: RC51.EXE D:\DATA\MSC1210\MSC1210 DAQ EVM\RIDE\DAS1210\DAS12
-10.C OBJECT(D:\DATA\MSC1210\MSC1210 DAQ EVM\RIDE\DAS1210\DAS1210.OB
-J) PIN(D:\RIDE\INC) NOAM PR(D:\DATA\MSC1210\MSC1210 DAQ EVM\RIDE\DA
-S1210\DAS1210.LST) CD SB OE(1) SM MODAMD(DP2) FP(NOFLOAT) PW(80) NO
-IS UNSIGNEDCHAR ET(CHAR)
stmt level source
1 // Texas Instruments
2 // Name: DAS1210.c
3 // Revision: 1.0
4 // Description: MSC1210 DAQ-EVM Demo
5 #include <REG1210.H>
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include <math.h>
9 extern signed long bipolar(void);
10 extern void put_string(char code *string);
11 extern char rx_byte(void);
12 extern void putspace1(void);
13 extern void putspace2(void);
14 extern void putspace3(void);
15 extern void putspace4(void);
16 extern void putcr(void);
17 extern void tx_hex(char);
18 extern void tx_byte(char);
19 extern char rx_byte_echo(void);
20 extern unsigned int rx_hex_double_echo(void);
21 extern void autobaud(void);
22 sbit TP3 = P1^4;
23 sbit TP4 = P1^5;
24 sbit TP5 = P1^6;
25 sbit TP6 = P1^7;
26 data char ROM_temp0 _at_ 0x000a; // For put_string function
27 data char ROM_temp1 _at_ 0x000b;
28 unsigned int n; // number of ADC conversion per ENOB calculation
29 unsigned char odac_temp;
30 // recursive digit display routine
31 void prt_digit(unsigned long int i, signed char d) reentrant
32 { unsigned long int j; char c;
33 1 j=i/10; c=i-j*10; d--;
34 1 if (j!=0 || !(d &0x80)) prt_digit(j,d);
35 1 if (d==0) tx_byte('.');
36 1 tx_byte(c+48);
37 1 }
38 // Display long integer number with sign and decimal
39 void print(signed long int i, unsigned char d)
40 {
41 1 if (i<0) { tx_byte('-'); i*=-1;}
42 1 prt_digit(i,d); putspace4();
43 1 }
44 void acquire()
45 {
46 1 signed long int data adres, ienob, iu;
47 1 float x,u,sd ; unsigned char j; int i;
WARNING C215 IN LINE 47 OF das1210.c : 'float' found with NOFLOAT option, IEEE
-std assumed
48 1 for (j=0;j<5;j++)adres=bipolar(); // discard initial 5 conversion
-s
49 1 ODAC=odac_temp;
50 1 adres=bipolar();
51 1 while(1){
52 2 put_string("\x1b[37m\x1b[5;1HTP3="); tx_byte(TP3 | 0x30);
WARNING C176 IN LINE 52 OF das1210.c : '|' : only one operand have bit type
53 2 put_string("\tTP4=");tx_byte(TP4 | 0x30);
WARNING C176 IN LINE 53 OF das1210.c : '|' : only one operand have bit type
54 2 put_string("\tTP5=");tx_byte(TP5 | 0x30);
WARNING C176 IN LINE 54 OF das1210.c : '|' : only one operand have bit type
55 2 put_string("\tTP6=");tx_byte(TP6 | 0x30);
WARNING C176 IN LINE 55 OF das1210.c : '|' : only one operand have bit type
56 2 u=0;x=0; i=0; putcr();
57 2 while (i<n){ // acquire n points
58 3 putcr();
59 3 for (j=0;j<4;j++){
60 4 adres=bipolar();
61 4 u+=adres; x+= adres*adres; print(adres,0);
62 4 tx_byte('\t'); tx_byte('\t');
63 4 if(i<n) i++; else break;
64 4 }
65 3 }
66 2 u=u/n; sd=sqrt(x/n-u*u);
67 2 put_string("\nENOB="); print((24-log(sd)/log(2))*100.0,2);
68 2 put_string("\nAve="); print(u*100,2);
69 2 put_string("\nSD="); print(sd*100,2);
70 2 putspace4();
71 2 }
72 1 }
WARNING C092 IN LINE 46 OF das1210.c : 'ienob' is declared but not used
WARNING C092 IN LINE 46 OF das1210.c : 'iu' is declared but not used
73 int settings(void)
74 {
75 1 PDCON &= 0x0f7; //turn on adc
76 1 ACLK = 0; // ACLK = 1.8432MHz/(1+1)= 0.9216MHz
77 1 if(rx_byte_echo()!='N'){
78 2 n=32;
79 2 DECIMATION = 1440; // Data Rate = ACLK/64/1440 = 10.000Hz
80 2 ADMUX = 0x033; // Select AIN3-AIN3
81 2 ADCON0 = 0x30; // Vref on 2.5V, Buff on, BOD off, PGA 1
82 2 ADCON1 = 0x01; // bipolar, auto, self calibration, offset, gai
-n
83 2 } else {
84 2 put_string("\n4 hex#: #Samp?"); n=rx_hex_double_echo();
85 2 put_string("\tDECIMATION?"); DECIMATION = rx_hex_double_echo();
- 86 2 put_string("\n2 hex#: ADMUX?"); ADMUX = rx_hex_echo
-();
WARNING C090 IN LINE 86 OF das1210.c : Call to function 'rx_hex_echo' without p
-rototype
87 2 put_string("\tADCON0?"); ADCON0 = rx_hex_echo();
88 2 put_string("\tODAC?"); odac_temp = rx_hex_echo();
89 2 put_string("\tADCON1?"); ADCON1 = rx_hex_echo();
90 2 }
91 1 return(n);
92 1 }
93 void greeting(void)
94 {
95 1 TH1 = 255; // 4800 Baud @ 1.8432MHz
96 1 SCON = 0x52; // Async mode 1, 8-bit UART, enable rcvr, TI=1, RI=
-0
97 1 TMOD = 0x20; // T1 at 8 bit counter with auto reload
98 1 TR1 = 1; // Run T1
99 1 put_string("\x1b[1;34;46m\x1b[2J\x1b[12CDAS1210\nDefault Y/N?");
- 100 1 }
101 void main(void)
102 {
103 1 greeting();
104 1 n=settings();
105 1 acquire();
106 1 }
107
RC51 COMPILER V03.03.26, DAS1210 08/05/02 11:11:01 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION ?prt_digit (BEGIN)
; Register-parameter i (R4_R7) is stacked
; SOURCE LINE # 31
0000 7405 MOV A,#005H
0002 2581 ADD A,SP
0004 F581 MOV SP,A
0006 120000 R LCALL MV4_RG2SK?C
; SOURCE LINE # 33
0009 74FD MOV A,#0FDH
000B 2581 ADD A,SP
000D F9 MOV R1,A
000E E7 MOV A,@R1 ; @ i
000F C0E0 PUSH ACC
0011 09 INC R1
0012 E7 MOV A,@R1 ; @ i
0013 C0E0 PUSH ACC
0015 09 INC R1
0016 E7 MOV A,@R1 ; @ i
0017 C0E0 PUSH ACC
0019 09 INC R1
001A E7 MOV A,@R1 ; @ i
001B C0E0 PUSH ACC
001D E4 CLR A
001E FE MOV R6,A
001F FC MOV R4,A
0020 FD MOV R5,A
0021 7F0A MOV R7,#00AH
0023 120000 R LCALL ?C_ULDIV_SP
0026 74FB MOV A,#0FBH
0028 2581 ADD A,SP
002A F8 MOV R0,A
002B 18 DEC R0
002C 18 DEC R0
002D 18 DEC R0
002E 120000 R LCALL MV4_RG2I0?C
0031 A981 MOV R1,SP
0033 74FB MOV A,#0FBH
0035 2581 ADD A,SP
0037 F8 MOV R0,A
0038 E6 MOV A,@R0 ; @ j
0039 75F00A MOV B,#00AH
003C A4 MUL AB
003D FA MOV R2,A
003E E7 MOV A,@R1 ; @ i
003F C3 CLR C
0040 9A SUBB A,R2
0041 FA MOV R2,A
0042 74FC MOV A,#0FCH
0044 2581 ADD A,SP
0046 F9 MOV R1,A
0047 A702 MOV @R1,AR2 ; @ c
0049 74F5 MOV A,#0F5H
004B 2581 ADD A,SP
004D F9 MOV R1,A
004E 17 DEC @R1 ; @ d
; SOURCE LINE # 34
004F 74F8 MOV A,#0F8H
0051 2581 ADD A,SP
0053 F9 MOV R1,A
0054 E7 MOV A,@R1 ; @ j
0055 09 INC R1
0056 47 ORL A,@R1 ; @ j
0057 09 INC R1
0058 47 ORL A,@R1 ; @ j
0059 09 INC R1
005A 47 ORL A,@R1 ; @ j
005B 700C JNZ ?LAB2
005D 74F5 MOV A,#0F5H
005F 2581 ADD A,SP
0061 F9 MOV R1,A
0062 E7 MOV A,@R1 ; @ d
0063 FB MOV R3,A
0064 33 RLC A
0065 EB MOV A,R3
0066 20E715 JB ACC.7,?NXT2
0069 ?LAB2:
0069 74F5 MOV A,#0F5H
006B 2581 ADD A,SP
006D F9 MOV R1,A
006E E7 MOV A,@R1 ; @ d
006F C0E0 PUSH ACC
0071 74F7 MOV A,#0F7H
0073 2581 ADD A,SP
0075 F9 MOV R1,A
0076 120000 R LCALL MV4_I12RG?C
0079 120000 R LCALL ?prt_digit
007C 1581 DEC SP
007E ?NXT2:
; SOURCE LINE # 35
007E 74F5 MOV A,#0F5H
0080 2581 ADD A,SP
0082 F9 MOV R1,A
0083 E7 MOV A,@R1 ; @ d
0084 7005 JNZ ?NXT3
0086 7F2E MOV R7,#02EH
0088 120000 R LCALL _tx_byte
008B ?NXT3:
; SOURCE LINE # 36
008B 74FC MOV A,#0FCH
008D 2581 ADD A,SP
008F F9 MOV R1,A
0090 E7 MOV A,@R1 ; @ c
0091 2430 ADD A,#030H
0093 FF MOV R7,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -