📄 adc.lst
字号:
C51 COMPILER V7.06 ADC 06/25/2008 15:44:08 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE ADC
OBJECT MODULE PLACED IN ADC.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe ADC.C DB OE
stmt level source
1 //********************************************************************************************************
-******************
2 #include <c8051F020.h>
3 #include <stdio.h>
4 #include "HEAD.H"
5 //********************************************************************************************************
-******************
6 void ADC_Init(void)
7 {
8 1 ADC0CN = 0xC0; // ADC0 Enable,正常跟踪模式, ,右对齐
9 1 REF0CN = 0x02; // 基准电压由外部提供(2.5V),
10 1 ADC0CF = (SYSCLK/2500000) << 3; // ADC转换时钟2.5MHz
11 1 ADC0CF &= ~0x07; // PGA增益 = 1
12 1 //EIE2 |= 0x02; // 使能ADC0中断
13 1 }
14 //********************************************************************************************************
-******************
15 unsigned int ADC_Average(unsigned char n) //返回采集n次ad的平均值,输入n为通道值,
16 {
17 1 xdata unsigned char i;
18 1 xdata unsigned long temp_sum=0;
19 1
20 1 if(n<10)
21 1 AMX0SL = n;
22 1 else
23 1 AMX0SL = 0;
24 1
25 1 AD0INT = 0; //软件置零
26 1 for(i = 0;i < 2;i++)
27 1 {
28 2 AD0BUSY = 1; //启动转换,抛弃前5个数据
29 2 while(AD0INT == 0);
30 2 AD0INT = 0;
31 2 }
32 1
33 1 for(i = 0;i < SAM_NUM; i++) //选用后20个数据
34 1 {
35 2 AD0BUSY = 1;
36 2 while(AD0INT == 0);
37 2 temp_sum += (ADC0H*256+ADC0L);
38 2 AD0INT = 0;
39 2
40 2 }
41 1
42 1 return temp_sum / SAM_NUM;
43 1 }
44 //********************************************************************************************************
-******************
45 void ADC_Work(void)
46 {
47 1 xdata unsigned char i;
48 1 xdata unsigned int ad[9];
49 1
50 1 LED3_ON;
51 1
C51 COMPILER V7.06 ADC 06/25/2008 15:44:08 PAGE 2
52 1 for(i=0;i<9;i++)
53 1 {
54 2 ad[i]=ADC_Average(i);
55 2 RTUaddress4[10+i*2]=ad[i]>>8;
56 2 RTUaddress4[10+i*2+1]=ad[i];
57 2 }
58 1
59 1 LED3_OFF;
60 1 }
61 //********************************************************************************************************
-******************
62 // The End
63 //********************************************************************************************************
-******************
64
65
66
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 267 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 24
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -