📄 adc0832.lst
字号:
C51 COMPILER V8.02 ADC0832 08/08/2010 09:56:12 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE ADC0832
OBJECT MODULE PLACED IN ADC0832.OBJ
COMPILER INVOKED BY: D:\Program Files\keilc51\C51\BIN\C51.EXE ADC0832.c ROM(COMPACT) OPTIMIZE(SIZE) DEBUG OBJECTEXTEND
line level source
1 /************************
2 ADC0832实验
3 proteus仿真论坛:http://proteus.5d6d.com/
4 ************************/
5 #include <intrins.h>
6 #include <at89x52.h>
7
8 #define ulong unsigned long
9 #define uint unsigned int
10 #define uchar unsigned char
11
12 sbit ADCS =P1^3; //ADC0832 chip seclect
13 sbit ADDI =P1^1; //ADC0832 data in
14 sbit ADDO =P1^1; //ADC0832 data out
15 sbit ADCLK =P1^0; //ADC0832 clock signal
16
17 unsigned int Adc0832(unsigned char channel);
18
19 /************
20 读ADC0832函数
21 ************/
22
23 //采集并返回
24 unsigned int Adc0832(unsigned char channel)
25 {
26 1 uchar i=0;
27 1 uchar j;
28 1 uint dat=0;
29 1 uchar ndat=0;
30 1
31 1 if(channel==0)channel=2;
32 1 if(channel==1)channel=3;
33 1 ADDI=1;
34 1 _nop_();
35 1 _nop_();
36 1 ADCS=0;//拉低CS端
37 1 _nop_();
38 1 _nop_();
39 1 ADCLK=1;//拉高CLK端
40 1 _nop_();
41 1 _nop_();
42 1 ADCLK=0;//拉低CLK端,形成下降沿1
43 1 _nop_();
44 1 _nop_();
45 1 ADCLK=1;//拉高CLK端
46 1 ADDI=channel&0x1;
47 1 _nop_();
48 1 _nop_();
49 1 ADCLK=0;//拉低CLK端,形成下降沿2
50 1 _nop_();
51 1 _nop_();
52 1 ADCLK=1;//拉高CLK端
53 1 ADDI=(channel>>1)&0x1;
54 1 _nop_();
55 1 _nop_();
C51 COMPILER V8.02 ADC0832 08/08/2010 09:56:12 PAGE 2
56 1 ADCLK=0;//拉低CLK端,形成下降沿3
57 1 ADDI=1;//控制命令结束
58 1 _nop_();
59 1 _nop_();
60 1 dat=0;
61 1 for(i=0;i<8;i++)
62 1 {
63 2 dat|=ADDO;//收数据
64 2 ADCLK=1;
65 2 _nop_();
66 2 _nop_();
67 2 ADCLK=0;//形成一次时钟脉冲
68 2 _nop_();
69 2 _nop_();
70 2 dat<<=1;
71 2 if(i==7)dat|=ADDO;
72 2 }
73 1 for(i=0;i<8;i++)
74 1 {
75 2 j=0;
76 2 j=j|ADDO;//收数据
77 2 ADCLK=1;
78 2 _nop_();
79 2 _nop_();
80 2 ADCLK=0;//形成一次时钟脉冲
81 2 _nop_();
82 2 _nop_();
83 2 j=j<<7;
84 2 ndat=ndat|j;
85 2 if(i<7)ndat>>=1;
86 2 }
87 1 ADCS=1;//拉低CS端
88 1 ADCLK=0;//拉低CLK端
89 1 ADDO=1;//拉高数据端,回到初始状态
90 1 dat<<=8;
91 1 dat|=ndat;
92 1 return(dat); //return ad data
93 1 }
94
95
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 145 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
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 + -