📄 ccc.lst
字号:
C51 COMPILER V7.50 CCC 11/27/2005 19:02:35 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE CCC
OBJECT MODULE PLACED IN ccc.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ccc.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <c8051f020.h> // SFR declarations
2 #include <stdio.h>
3 #include <INTRINS.H>
4 #include <math.h>
5 xdata unsigned char zhi[4096];
6 void SYSCLK_Init (void);
7 void PORT_Init (void);
8 void ADC1_Init(void);
9 void UART0_Init (void);
10 void Timer3_Init (int counts);
11 void ADC1_ISR (void);
12 sfr16 DP = 0x82; // data pointer
13 sfr16 TMR3RL = 0x92; // Timer3 reload value
14 sfr16 TMR3 = 0x94; // Timer3 counter
15 sfr16 ADC0 = 0xbe; // ADC0 data
16 sfr16 ADC0GT = 0xc4; // ADC0 greater than window
17 sfr16 ADC0LT = 0xc6; // ADC0 less than window
18 sfr16 RCAP2 = 0xca; // Timer2 capture/reload
19 sfr16 T2 = 0xcc; // Timer2
20 sfr16 RCAP4 = 0xe4; // Timer4 capture/reload
21 sfr16 T4 = 0xf4; // Timer4
22 sfr16 DAC0 = 0xd2; // DAC0 data
23 sfr16 DAC1 = 0xd5; // DAC1 data
24 void delay(unsigned char T)
25 {
26 1 while(T)
27 1 {
28 2 _nop_();
29 2 T--;
30 2 }
31 1 }
32
33 #define SYSCLK 22118400 // SYSCLK frequency in Hz
34 #define BAUDRATE 115200 // Baud rate of UART in bps
35 #define SAMPLE_RATE 500000 // ADC1 Sample frequency in Hz
36 #define VREF1 3300 // Mv
37 #define AV+ 3300 // Mv
38 sbit LED = P1^6; // LED='1' means ON
39 sbit SW1 = P3^7;
40 unsigned int j=0;// SW1='0' means switch pressed
41 void main(void)
42 {
43 1 unsigned char MUXSLECT=0;
44 1 int ii,jk,kj;
45 1 int i;
46 1 float jj;
47 1 float PI=3.141516*2;
48 1 WDTCN = 0xDE;
49 1 WDTCN = 0xAD;
50 1 EMI0CF=0x00;
51 1 SYSCLK_Init();
52 1 PORT_Init();
53 1 UART0_Init();
54 1 ADC1_Init();
55 1 Timer3_Init (SYSCLK/SAMPLE_RATE);
C51 COMPILER V7.50 CCC 11/27/2005 19:02:35 PAGE 2
56 1 EA = 1;
57 1 for(kj=0;kj<3555;kj++)
58 1 for(jk=0;jk<3566;jk++);
59 1 while (1)
60 1 {
61 2 EA = 0; // disable interrupts
62 2 zhi[i]=ADC1;
63 2 i=i+1;
64 2 if(i==4096)
65 2 {
66 3 i=0;
67 3 EA=0;
68 3 for(kj=0;kj<3555;kj++)
69 3 for(jk=0;jk<3566;jk++);
70 3 for(i;i<4096;i++)
71 3 {
72 4 SBUF0=zhi[i];
73 4 while(TI0==0);
74 4 TI0=0;
75 4 }
76 3 while(1);
77 3 }
78 2 EA = 1;
79 2 while(j==0);
80 2 j=0;
81 2 }
82 1 }
*** WARNING C280 IN LINE 44 OF CCC.C: 'ii': unreferenced local variable
*** WARNING C280 IN LINE 46 OF CCC.C: 'jj': unreferenced local variable
83 void SYSCLK_Init (void)
84 {
85 1 int i; // delay counter
86 1 OSCXCN = 0x67; // start external oscillator with, 22.1184MHz crystal
-
87 1 for (i=0; i < 256; i++); // XTLVLD blanking interval (>1ms)
88 1 while (!(OSCXCN & 0x80)); // Wait for crystal osc. to settle
89 1 OSCICN = 0x88; // select external oscillator as SYSCLK
90 1 } // source and enable missing clock
91 // detector
92
93 void PORT_Init (void)
94 {
95 1 XBR0 = 0x04; // Enable UART0
96 1 XBR1 = 0x00;
97 1 XBR2 = 0x40; // Enable crossbar and weak pull-ups
98 1 P0MDOUT |= 0x01; // enable TX0 as a push-pull output
99 1 P1MDOUT |= 0x40; // enable P1.6 (LED) as push-pull output
100 1 }
101
102
103 void UART0_Init (void)
104 {
105 1 SCON0 = 0x50; // SCON0: mode 1, 8-bit UART, enable RX
106 1 TMOD = 0x20; // TMOD: timer 1, mode 2, 8-bit reload
107 1 TH1 = -(SYSCLK/BAUDRATE/16); // set Timer1 reload value for baudrate
108 1 TR1 = 1; // start Timer1
109 1 CKCON |= 0x10; // Timer1 uses SYSCLK as time base
110 1 PCON |= 0x80; // SMOD00 = 1
111 1 TI0 = 0; // Indicate TX0 ready
112 1 RI0=0;
113 1 }
114
C51 COMPILER V7.50 CCC 11/27/2005 19:02:35 PAGE 3
115 void ADC1_Init(void)
116 {
117 1 ADC1CF = 0x19; // SAR转换时间<=6MHz,取5.5,放大增益为0.5
118 1 AMX1SL = 0x00; // 暂时为AIN1.0,八路中可任选
119 1 P1MDIN = 0x00; // P1口为模拟输入
120 1 REF0CN = 0x0a; // ADC0电压取于DAC0,ADC1取于AV+,TEMPE关闭,内部偏压器工作,内部电压
-基准缓冲器关闭
121 1 ADC1CN = 0x82; // ADC1允许,一般工作方式,向ADC1BUSY写‘1’开始工作
122 1 EIE2 |= 0x08;
123 1 }
124 void Timer3_Init (int counts)
125 {
126 1 TMR3CN = 0x02; // Stop Timer3; Clear TF3;
127 1 // use SYSCLK as timebase
128 1 TMR3RL = -counts; // Init reload values
129 1 TMR3 = 0xffff; // set to reload immediately
130 1 EIE2 &= ~0x01; // disable Timer3 interrupts
131 1 TMR3CN |= 0x04; // start Timer3
132 1 }
133 void ADC1_ISR (void) interrupt 17
134 {
135 1 EA = 0;
136 1 j=1;
137 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 336 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 4096 ----
PDATA SIZE = ---- ----
DATA SIZE = 2 15
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -