📄 adc.lst
字号:
C51 COMPILER V7.09 ADC 08/24/2007 09:37:08 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE ADC
OBJECT MODULE PLACED IN ADC.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ADC.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include"Config.h"
3 #include"IOCfg.c"
4 #include"TimeDLY.h"
5 #include"ADC.h"
6
7 //从SPI总线读2字节(16bits)数据函数:
8 // SPI_Read_Two()
9 INT16 SPI_Read_Two(void)
10 {
11 1 INT16 temp;
12 1 INT8U i;
13 1 ADCSetSCLK(0);
14 1 for(i=0;i<16;i++)
15 1 {
16 2 ADCSetSCLK(1);
17 2 nNop(2);
18 2 temp <<= 1;
19 2 if(ADCDATA) temp++;
20 2 ADCSetSCLK(0);
21 2 nNop(2);
22 2 }
23 1 return(temp);
24 1 }
25
26 //外部非连续数据时钟,读取上一次转换数据且无同步信号模式函数:
27 // EXCLKSample_Pre()
28 INT16 EXCLKSample_Pre(void)
29 {
30 1 INT16 temp;
31 1 ADCSetEXINT(1);
32 1 ADCSetRC(1);
33 1 ADCSetRC(0);
34 1 while(ADCBUSY);
35 1 nNop(2);
36 1 ADCSetRC(1);
37 1 temp = SPI_Read_Two();
38 1 return(temp);
39 1 }
40
41 //外部非连续数据时钟,读取当前次转换数据且无同步信号模式函数:
42 // EXCLKSample_Now()
43 INT16 EXCLKSample_Now(void)
44 {
45 1 INT16 temp;
46 1 ADCSetEXINT(1);
47 1 ADCSetRC(1);
48 1 ADCSetRC(0);
49 1 while(ADCBUSY);
50 1 nNop(1);
51 1 ADCSetRC(1);
52 1 while(!ADCBUSY);
53 1 temp = SPI_Read_Two();
54 1 return(temp);
55 1 }
C51 COMPILER V7.09 ADC 08/24/2007 09:37:08 PAGE 2
56
57 //外部非连续数据时钟,读取上一次转换数据且有同步信号模式函数:
58 // EXCLKSample_Pre_Syn()
59 INT16 EXCLKSample_Pre_Syn(void)
60 {
61 1 INT16 temp;
62 1 ADCSetEXINT(1);
63 1 ADCSetSCLK(0);
64 1 ADCSetRC(1);
65 1 ADCSetRC(0);
66 1 ADCSetSCLK(1);
67 1 while(ADCBUSY);
68 1 ADCSetSCLK(0);
69 1 nNop(1);
70 1 ADCSetRC(1);
71 1 ADCSetSCLK(1);
72 1 while(!ADCSYN);
73 1 ADCSetSCLK(0);
74 1 temp = SPI_Read_Two();
75 1 return(temp);
76 1 }
77
78 //外部非连续数据时钟,读取当前次转换数据且有同步信号模式函数:
79 // EXCLKSample_Now_Syn()
80 INT16 EXCLKSample_Now_Syn(void)
81 {
82 1 INT16 temp;
83 1 ADCSetEXINT(1);
84 1 ADCSetSCLK(0);
85 1 ADCSetRC(1);
86 1 ADCSetRC(0);
87 1 ADCSetSCLK(1);
88 1 while(ADCBUSY);
89 1 ADCSetSCLK(0);
90 1 nNop(1);
91 1 ADCSetRC(1);
92 1 while(!ADCBUSY);
93 1 ADCSetSCLK(1);
94 1 while(!ADCSYN);
95 1 ADCSetSCLK(0);
96 1 temp = SPI_Read_Two();
97 1 return(temp);
98 1 }
99
100 //指定方式采样以及读取数据函数:nSample()
101 INT16 nSample(INT8U smode, INT8U sbtc)
102 {
103 1 INT16 temp;
104 1 ADCSetPWRD(PWOP);
105 1 switch(sbtc)
106 1 {
107 2 case BTC : ADCSetSBTC(BTC); break;
108 2 case SBIN : ADCSetSBTC(SBIN); break;
109 2 default : break;
110 2 }
111 1 switch(smode)
112 1 {
113 2 case EXDCLK_RDPRE : temp = EXCLKSample_Pre(); break;
114 2 case EXDCLK_RDNOW : temp = EXCLKSample_Now(); break;
115 2 case EXDCLK_RDPRE_SYN : temp = EXCLKSample_Pre_Syn(); break;
116 2 case EXDCLK_RDNOW_SYN : temp = EXCLKSample_Now_Syn(); break;
117 2 default : break;
C51 COMPILER V7.09 ADC 08/24/2007 09:37:08 PAGE 3
118 2 }
119 1 return(temp);
120 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 221 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 5
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 + -