📄 ad.lst
字号:
C51 COMPILER V8.05a AD 11/26/2007 12:48:21 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE AD
OBJECT MODULE PLACED IN AD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE AD.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /****************************LPC935AD.C*******************************
2 *程序功能:测试LPC935 AD转换功能
3 *转换模式:单次转换
4 *启动方式:定时器0触发
5 **************************************************************************/
6 /* 对于AD 转换程序的编写,主要需要注意的有5点:
7 1. 管脚的控制(选为AD 转换器输入的管脚,均应设置
8 为仅为输入状态,禁止数字功能)。
9 2. AD转换工作模式的设置,LPC935 具有6 种模式,
10 可通过设置ADMODA 获得相应的转换模式。
11 3. AD转换工作频率(500KHz—3.3MHz)
12 及附加功能(DAC 或边界检测)的选择。
13 4. AD转换触发、启动方式的选择
14 (通过设置ADCONx 获得相应的触发方式)。
15 5. 每一次AD 转换完成,注意将AD 转换完成标志位清0。
16
17 //***************************************************************************/
18
19 #include"reg935.h"
20 #include"UserDef.h"
21
22 uchar data lineVolt[3]; //[0] 保存A line volt,[1] 保存B line volt ,[3] 保存C line volt
23 uchar data lineCurrent[3]; //[0] 保存A line current,[1] 保存B line current ,[3] 保存C line current
24
25 /*漏电信息
26 [0]--漏电情况,1 : 有漏电;0 : 无漏电
27 [1]--漏电电流值
28 [2]--漏电线路,1: 表示A相漏电;2: 表示B相漏电; 3:表示C相漏电
29 */
30
31 uchar data leakageCurrentMsg[3];
32
33 void ADConvert(void)
34 {
35 1 //AD0 转换器
36 1 ADINS = 0x01; //选择00 通道
37 1 ADCON0 = START_ADC;
38 1 while(!(ADCON0&0x08)); //采样结束判断
39 1 lineCurrent[0] = AD0DAT0;
40 1 ADCON0 &= 0xF7; //清除AD 转换完成标志
41 1
42 1 ADINS = 0x02; //选择01 通道
43 1 ADCON0 = START_ADC;
44 1 while(!(ADCON0&0x08));
45 1 lineCurrent[1] = AD0DAT1;
46 1 ADCON0 &= 0xF7; //清除AD 转换完成标志
47 1
48 1 ADINS = 0x04; //选择02 通道
49 1 ADCON0 = START_ADC;
50 1 while(!(ADCON0&0x08));
51 1 lineCurrent[2] = AD0DAT2;
52 1 ADCON0 &= 0xF7; //清除AD 转换完成标志
53 1
54 1 //AD1 转换器
55 1 ADINS = 0x10; //选择00 通道
C51 COMPILER V8.05a AD 11/26/2007 12:48:21 PAGE 2
56 1 ADCON1 = START_ADC;
57 1 while(!(ADCON1&0x08));
58 1 lineVolt[0] = AD1DAT0;
59 1 ADCON1 &= 0xF7; //清除AD 转换完成标志
60 1
61 1 ADINS = 0x20; //选择01 通道
62 1 ADCON1 = START_ADC;
63 1 while(!(ADCON1&0x08));
64 1 lineVolt[1] = AD1DAT1;
65 1 ADCON1 &= 0xF7; //清除AD 转换完成标志
66 1
67 1 ADINS = 0x40; //选择02 通道
68 1 ADCON1 = START_ADC;
69 1 while(!(ADCON1&0x08));
70 1 lineVolt[2] = AD1DAT2;
71 1 ADCON1 &= 0xF7; //清除AD 转换完成标志
72 1
73 1 ADINS = 0x80; //选择03 通道
74 1 ADCON1 = START_ADC;
75 1 while(!(ADCON1&0x08));
76 1 leakageCurrentMsg[1] = AD1DAT3; //漏电流数值
77 1 ADCON1 &= 0x00; //清除AD 转换完成标志
78 1
79 1 }
80
81
82
83
84
85
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 120 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 ----
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 + -