📄 daqevm.lst
字号:
RC51 COMPILER V03.03.26, DAQEVM 08/05/02 09:12:54 PAGE 1
QCW(0x00002F32)
WIN32 RC51 COMPILER V03.03.26, COMPILATION OF MODULE DAQEVM
OBJECT MODULE PLACED IN d:\data\msc1210\msc1210 daq evm\ride\daqevm\daqevm.obj
COMPILER INVOKED BY: RC51.EXE D:\DATA\MSC1210\MSC1210 DAQ EVM\RIDE\DAQEVM\DAQEVM
-.C OBJECT(D:\DATA\MSC1210\MSC1210 DAQ EVM\RIDE\DAQEVM\DAQEVM.OBJ) P
-IN(D:\RIDE\INC) NOAM PR(D:\DATA\MSC1210\MSC1210 DAQ EVM\RIDE\DAQEVM
-\DAQEVM.LST) CD SB OE(1) SM MODAMD(DP2) FP(NOFLOAT) PW(80) NOIS UNS
-IGNEDCHAR ET(CHAR)
stmt level source
1 // Texas Instruments
2 // Name: DaqEvm.c
3 // Revision: 1.0
4 // Description: MSC1210 DAQEMV Demo
5 #include "reg1210.h"
6 #include <stdio.h>
7 extern char March_C_Plus_Sysram(void);
8 extern void ROM_Checksum(void);
9 extern void autobaud(void);
10 extern void tx_hex(char);
11 extern void tx_byte(char);
12 extern char rx_byte_echo(void);
13 extern char rx_hex_echo(void);
14 extern void putcr(void);
15 extern signed long summer(void);
16 extern signed long bipolar(void);
17 sbit TP1 = P1^2;
18 sbit TP2 = P1^3;
19 sbit TP3 = P1^4;
20 sbit TP4 = P1^5;
21 sbit TP5 = P1^6;
22 sbit TP6 = P1^7;
23
24 void portio(void)
25 {
26 1 while(RI==0){
27 2 printf("\x1b[5;1HTP123456:%c%c%c%c%c%c",
28 2 (char)TP1|0x30,(char)TP2|0x30,(char)TP3|0x30,
29 2 (char)TP4|0x30,(char)TP5|0x30,(char)TP6|0x30);
30 2 P1= (P1 | 0x04)+8;
31 2 }
32 1 }
33 void greeting(void)
34 {
35 1 T2CON = 0x34; // T2 as baudrate generator
36 1 RCAP2 = 65535; // 57600 Baud @ 1.8432MHz
37 1 SCON = 0x52; // Async mode 1, 8-bit UART, enable rcvr, TI=1
-, RI=0
38 1 printf("\x1b[1;34;46m\x1b[2J\x1b[12CMSC1210 DAQ-EVM\nSelect Funct
-ion:");
39 1 }
40 void acquire(void)
41 { // Measure Ainx to AinCom voltage
42 1 signed long int data adres;
43 1 char j, ain;
44 1 DECIMATION = 144; // Data Rate = ACLK/64/144 = 100.00Hz
45 1 ADCON0 = 0x30; // Vref on 2.5V, Buff on, BOD off, PGA 1
46 1 printf("\x1b[8;1HAin0\tAin1\tAin2\tAin3\tAin4\tAin5\tAin6\tAin7\n
-");
47 1 while(RI==0){
48 2 printf("\x1b[9;1H");
49 2 for (ain=8;ain<0x88;ain+=0x10) {
50 3 ADMUX=ain;
51 3 ADCON1 = 0x01; // bipolar, auto, self calibration, offset, ga
-in
52 3 for (j=0;j<5;j++)adres=bipolar(); // discard initial 5 conversi
-ons
53 3 adres=bipolar();
54 3 printf(" \x1b[7D%ld\t",adres);
55 3 }
56 2 }
57 1 RI=0;
58 1 }
59 void MinMax(char key)
60 { // Measure Ain0 to Ain0 voltage
61 1 signed long int data adres, min, max, n=0;
62 1 char j, ain, start=0;
63 1 DECIMATION = 1440; // Data Rate = ACLK/64/1440 = 10.00Hz
64 1 ADCON0 = 0x30; // Vref on 2.5V, Buff on, BOD off, PGA 1
65 1 if (key=='5') ADMUX=0;
66 1 if (key=='6') ADMUX=1;
67 1 ADCON1 = 0x01; // bipolar, auto, self calibration, offset, gain
68 1 for (j=0;j<5;j++)adres=bipolar(); // discard initial 5 conversion
-s
69 1 printf("\x1b[11;1HMin\tNew\tMax\tP-P\tN");
70 1 while(RI==0){
71 2 SSCON = 0; // Clear Summation Registers
72 2 SSCON = 0xE4; // acc shift enable, accum 32x, right shift = div
-32
73 2 adres = summer();
74 2 if (start==0){ start=1; min=adres; max=adres; }
75 2 else {
76 3 if (adres>max) max=adres;
77 3 if (adres<min) min=adres;
78 3 }
79 2 printf("\x1b[12;1H\x1b[K");
80 2 printf("%ld\t%ld\t%ld\t%ld\t%ld",min,adres,max,max-min,++n);
81 2 }
82 1 RI=0;
83 1 }
WARNING C092 IN LINE 62 OF daqevm.c : 'ain' is declared but not used
84 void main(void)
85 { char key;
86 1 greeting();
87 1 PDCON &= 0x0f7; //turn on adc
88 1 ACLK = 1; // ACLK = 1.8432MHz/(1+1)= 0.9216MHz
89 1 while(1) {
90 2 // prompt i/p
91 2 printf("\x1b[37m\x1b[3;1H1)Port I/O 2)ROM CheckSum 3)XData 4)ADC
- 5)MinMax0-0 6)MinMax0-1: \x1b[1D");
92 2 key=rx_byte_echo();
93 2 if (key=='1') portio();
94 2 if (key=='2') { printf("\x1b[6;1HROM CheckSum: \x1b[4D"); R
-OM_Checksum();}
95 2 if (key=='3') {
96 3 printf("\x1b[7;1HXdata Test: \x1b[4D");
97 3 if (March_C_Plus_Sysram()) printf("Pass");
98 3 else printf("Fail");
99 3 }
100 2 if (key=='4') acquire();
101 2 if (key=='5') MinMax(key);
102 2 if (key=='6') MinMax(key);
103 2 }
104 1 }
105
RC51 COMPILER V03.03.26, DAQEVM 08/05/02 09:12:54 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION portio (BEGIN)
0000 ?WHILE1:
; SOURCE LINE # 26
0000 20985C JB RI,?NXT1
; SOURCE LINE # 29
0003 A297 MOV C,TP6
0005 E4 CLR A
0006 33 RLC A
0007 4430 ORL A,#030H
0009 FD MOV R5,A
000A E4 CLR A
000B C0E0 PUSH ACC
000D C005 PUSH AR5
000F A296 MOV C,TP5
0011 33 RLC A
0012 4430 ORL A,#030H
0014 FB MOV R3,A
0015 E4 CLR A
0016 C0E0 PUSH ACC
0018 C003 PUSH AR3
001A A295 MOV C,TP4
001C 33 RLC A
001D 4430 ORL A,#030H
001F FB MOV R3,A
0020 E4 CLR A
0021 C0E0 PUSH ACC
0023 C003 PUSH AR3
0025 A294 MOV C,TP3
0027 33 RLC A
0028 4430 ORL A,#030H
002A FB MOV R3,A
002B E4 CLR A
002C C0E0 PUSH ACC
002E C003 PUSH AR3
0030 A293 MOV C,TP2
0032 33 RLC A
0033 4430 ORL A,#030H
0035 FB MOV R3,A
0036 E4 CLR A
0037 C0E0 PUSH ACC
0039 C003 PUSH AR3
003B A292 MOV C,TP1
003D 33 RLC A
003E 4430 ORL A,#030H
0040 FB MOV R3,A
0041 E4 CLR A
0042 C0E0 PUSH ACC
0044 C003 PUSH AR3
0046 7B05 MOV R3,#005H
0048 7A00 R MOV R2,#HIGH(?STR?DAQEVM?BASE)
004A 7900 R MOV R1,#LOW(?STR?DAQEVM?BASE)
004C 120000 R LCALL ?printf
004F 74F4 MOV A,#0F4H
0051 2581 ADD A,SP
0053 F581 MOV SP,A
; SOURCE LINE # 30
0055 E590 MOV A,P1
0057 4404 ORL A,#004H
0059 2408 ADD A,#008H
005B F590 MOV P1,A
005D 80A1 SJMP ?WHILE1
005F ?NXT1:
005F 22 RET
; FUNCTION portio (END)
; FUNCTION greeting (BEGIN)
; SOURCE LINE # 35
0000 75C834 MOV T2CON,#034H
; SOURCE LINE # 36
0003 74FF MOV A,#0FFH
0005 F5CB MOV RCAP2+01H,A
0007 F5CA MOV RCAP2,A
; SOURCE LINE # 37
0009 759852 MOV SCON,#052H
; SOURCE LINE # 38
000C 7B05 MOV R3,#005H
000E 7A00 R MOV R2,#HIGH(?STR?DAQEVM?BASE + 01CH)
0010 7900 R MOV R1,#LOW(?STR?DAQEVM?BASE + 01CH)
0012 120000 R LCALL ?printf
0015 22 RET
; FUNCTION greeting (END)
; FUNCTION acquire (BEGIN)
; SOURCE LINE # 44
0000 E4 CLR A
0001 F5DF MOV DECIMATION+01H,A
0003 75DE90 MOV DECIMATION,#090H
; SOURCE LINE # 45
0006 75DC30 MOV ADCON0,#030H
; SOURCE LINE # 46
0009 7B05 MOV R3,#005H
000B 7A00 R MOV R2,#HIGH(?STR?DAQEVM?BASE + 050H)
000D 7900 R MOV R1,#LOW(?STR?DAQEVM?BASE + 050H)
000F 120000 R LCALL ?printf
0012 ?WHILE3:
; SOURCE LINE # 47
0012 209858 JB RI,?NXT7
; SOURCE LINE # 48
0015 7B05 MOV R3,#005H
0017 7A00 R MOV R2,#HIGH(?STR?DAQEVM?BASE + 07FH)
0019 7900 R MOV R1,#LOW(?STR?DAQEVM?BASE + 07FH)
001B 120000 R LCALL ?printf
; SOURCE LINE # 49
001E 750008 R MOV ain,#008H
0021 ?FOR2:
0021 E500 R MOV A,ain
0023 B48800 CJNE A,#088H,?LAB9
0026 ?LAB9:
0026 50EA JNC ?WHILE3
; SOURCE LINE # 50
0028 8500D7 R MOV ADMUX,ain
; SOURCE LINE # 51
002B 75DD01 MOV ADCON1,#001H
; SOURCE LINE # 52
002E 750000 R MOV j,#000H
0031 ?FOR3:
0031 120000 R LCALL bipolar
0034 8C00 R MOV adres,R4
0036 8D00 R MOV adres+01H,R5
0038 8E00 R MOV adres+02H,R6
003A 8F00 R MOV adres+03H,R7
003C 0500 R INC j
003E E500 R MOV A,j
0040 B405EE CJNE A,#005H,?FOR3
; SOURCE LINE # 53
0043 120000 R LCALL bipolar
0046 8C00 R MOV adres,R4
0048 8D00 R MOV adres+01H,R5
004A 8E00 R MOV adres+02H,R6
004C 8F00 R MOV adres+03H,R7
; SOURCE LINE # 54
004E C000 R PUSH adres
0050 C000 R PUSH adres+01H
0052 C000 R PUSH adres+02H
0054 C000 R PUSH adres+03H
0056 7B05 MOV R3,#005H
0058 7A00 R MOV R2,#HIGH(?STR?DAQEVM?BASE + 086H)
005A 7900 R MOV R1,#LOW(?STR?DAQEVM?BASE + 086H)
005C 120000 R LCALL ?printf
005F 74FC MOV A,#0FCH
0061 2581 ADD A,SP
0063 F581 MOV SP,A
; SOURCE LINE # 49
0065 E500 R MOV A,ain
0067 2410 ADD A,#010H
0069 F500 R MOV ain,A
006B 80B4 SJMP ?FOR2
006D ?NXT7:
; SOURCE LINE # 57
006D C298 CLR RI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -