📄 adc.lst
字号:
RC51 COMPILER V03.03.35, ADC 07/26/05 15:18:49 PAGE 1
QCW(0x00002F32)
WIN32 RC51 COMPILER V03.03.35, COMPILATION OF MODULE ADC
OBJECT MODULE PLACED IN c:\allmyfiles\msc products\cd-rom\cd next version\exampl
-e programs\msc120x examples\msc1200 a2d\adc.obj
COMPILER INVOKED BY: RC51.EXE C:\ALLMYFILES\MSC PRODUCTS\CD-ROM\CD NEXT VERSION\
-EXAMPLE PROGRAMS\MSC120X EXAMPLES\MSC1200 A2D\ADC.C OBJECT(C:\ALLMY
-FILES\MSC PRODUCTS\CD-ROM\CD NEXT VERSION\EXAMPLE PROGRAMS\MSC120X
-EXAMPLES\MSC1200 A2D\ADC.OBJ) PIN(C:\RIDE\INC;C:\RIDE\INC\51) PIN(C
-:\RIDE\INC\51\TI\) NOAM PR(C:\ALLMYFILES\MSC PRODUCTS\CD-ROM\CD NEX
-T VERSION\EXAMPLE PROGRAMS\MSC120X EXAMPLES\MSC1200 A2D\ADC.LST) CD
- SB OE(1) SM FP(NOFLOAT) PW(80) DF(XTAL=11059200) NOIS UNSIGNEDCHAR
- ET(CHAR)
stmt level source
1 //****************************************************************
-****
2 // File name: adc.c
3 //
4 // Copyright 2003 Texas Instruments Inc as an unpublished work.
- 5 //
6 // Version 1.0
7 //
8 // Compiler Version (Keil V2.38), (Raisonance V6.10.13)
9 //
10 // Module Description:
11 // ADC Example Program
12 //
13 //****************************************************************
-****
14 #include "legal.c" //Texas Instruments, Inc. copyright and
- liability
15 #include <REG1200.H> // The header file with the MSC registe
-r definitions
16 #include <stdio.h> // Standard I/O so we can use the print
-f function
17
18 extern signed long bipolar(void);
19 #define autobaud() ((void (code *) (void)) 0xFBFA) () // MSC120
-0
20 #define LSB 298e-9
21 #ifndef XTAL // if no XTAL compiler variable defined use:
#define XTAL 11059200 // XTAL frequency 11.0592 MHz
#endif
24
25 Main(void) {
26 1 char i,j;
27 1 float result;
28 1
29 1 PDCON = 0x75; // Turn on the A/D
30 1 ACLK = XTAL/1000000; // ACLK freq. = XTAL Freq./(ACLK +1) =
-0.9216 MHz
31 1 // 0.9216 Mhz/64 = 14,400 Hz
32 1 DECIMATION = 1440; // Data Rate = 14,400/1,440 = 10 Hz
33 1 ADMUX = 0x88; // AINP = AIN7, AINN = AIN6
34 1 ADCON0 = 0x30; // Vref On, 2.5V, Buffer Off, PGA=1
35 1
36 1 CKCON = 0x10; // MSC1200 Timer1 div 4
37 1 TCON = 0; // MSC1200 Stop TR1
38 1 autobaud();
39 1 ADCON1 = 0x01; // bipolar, auto, self calibration, off
-set, gain
40 1 printf("ADC Test, ACLK=%d\n",ACLK);
41 1 //wait for the calibration to take place
42 1 for (i=0;i<3;i++){ // dump 3 conversions
43 2 while(!(AIPOL&0x20)) {}
44 2 j=ADRESL;
45 2 }
46 1
47 1 j=1;
48 1 while(1){
49 2 while(!(AIPOL&0x20)) {} // Waiting for conversion
50 2 result=bipolar(); // Save Results
51 2 printf ("%10.8f\t", result*LSB);
52 2 if (!(j++%5)) printf("\n"); // Print 2 lines each second
-
53 2 }
54 1 }
WARNING C096 IN LINE 54 OF adc.c : Function 'Main' should return a value
55
56
57
RC51 COMPILER V03.03.35, ADC 07/26/05 15:18:49 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION Main (BEGIN)
; SOURCE LINE # 29
0000 75F175 MOV PDCON,#075H
; SOURCE LINE # 30
0003 75F60B MOV ACLK,#00BH
; SOURCE LINE # 32
0006 75DF05 MOV DECIMATION+01H,#005H
0009 75DEA0 MOV DECIMATION,#0A0H
; SOURCE LINE # 33
000C 75D788 MOV ADMUX,#088H
; SOURCE LINE # 34
000F 75DC30 MOV ADCON0,#030H
; SOURCE LINE # 36
0012 758E10 MOV CKCON,#010H
; SOURCE LINE # 37
0015 758800 MOV TCON,#000H
; SOURCE LINE # 38
0018 90FBFA MOV DPTR,#0FBFAH
001B 120000 R LCALL ?C_INDCALL
; SOURCE LINE # 39
001E 75DD01 MOV ADCON1,#001H
; SOURCE LINE # 40
0021 E5F6 MOV A,ACLK
0023 FD MOV R5,A
0024 E4 CLR A
0025 C0E0 PUSH ACC
0027 C005 PUSH AR5
0029 7B05 MOV R3,#005H
002B 7A00 R MOV R2,#HIGH(?STR?ADC?BASE)
002D 7900 R MOV R1,#LOW(?STR?ADC?BASE)
002F 120000 R LCALL ?printf
0032 1581 DEC SP
0034 1581 DEC SP
; R7 is assigned to i
; R6 is assigned to j
; SOURCE LINE # 42
0036 7F00 MOV R7,#000H
0038 ?WHILE3:
; SOURCE LINE # 43
0038 E5A4 MOV A,AIPOL
003A 20E502 JB ACC.5,?NXT9
003D 80F9 SJMP ?WHILE3
003F ?NXT9:
; SOURCE LINE # 44
003F AED9 MOV R6,ADRESL
; SOURCE LINE # 42
0041 0F INC R7
0042 BF03F3 CJNE R7,#003H,?WHILE3
; SOURCE LINE # 47
0045 750001 R MOV j,#001H
0048 ?WHILE4:
0048 ?WHILE5:
; SOURCE LINE # 49
0048 E5A4 MOV A,AIPOL
004A 20E502 JB ACC.5,?NXT11
004D 80F9 SJMP ?WHILE5
004F ?NXT11:
; SOURCE LINE # 50
004F 120000 R LCALL bipolar
0052 120000 R LCALL ?CV_LS_IEEE
0055 8C00 R MOV result,R4
0057 8D00 R MOV result+01H,R5
0059 8E00 R MOV result+02H,R6
005B 8F00 R MOV result+03H,R7
; SOURCE LINE # 51
005D C000 R PUSH result
005F C000 R PUSH result+01H
0061 C000 R PUSH result+02H
0063 C000 R PUSH result+03H
0065 7CCF MOV R4,#0CFH
0067 7DFC MOV R5,#0FCH
0069 7E9F MOV R6,#09FH
006B 7F34 MOV R7,#034H
006D 120000 R LCALL ?MULTIEEE
0070 C004 PUSH AR4
0072 C005 PUSH AR5
0074 C006 PUSH AR6
0076 C007 PUSH AR7
0078 7B05 MOV R3,#005H
007A 7A00 R MOV R2,#HIGH(?STR?ADC?BASE + 013H)
007C 7900 R MOV R1,#LOW(?STR?ADC?BASE + 013H)
007E 120000 R LCALL ?printf
0081 74FC MOV A,#0FCH
0083 2581 ADD A,SP
0085 F581 MOV SP,A
; SOURCE LINE # 52
0087 E500 R MOV A,j
0089 0500 R INC j
008B 75F005 MOV B,#005H
008E 84 DIV AB
008F E5F0 MOV A,B
0091 70B5 JNZ ?WHILE4
0093 7B05 MOV R3,#005H
0095 7A00 R MOV R2,#HIGH(?STR?ADC?BASE + 01BH)
0097 7900 R MOV R1,#LOW(?STR?ADC?BASE + 01BH)
0099 120000 R LCALL ?printf
009C 80AA SJMP ?WHILE5
; FUNCTION Main (END)
RC51 COMPILER V03.03.35, ADC 07/26/05 15:18:49 PAGE 3
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
Main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
i?065. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
j?066. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
result?067 . . . . . . . . . . . . . . AUTO DATA FLOAT 0001H 4
printf . . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
bipolar. . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
RC51 COMPILER V03.03.35, ADC 07/26/05 15:18:49 PAGE 4
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 158 ----
CONSTANT SIZE = 29 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
RC51 COMPILATION COMPLETE. 1 WARNING, 0 ERROR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -