📄 ad7705c.lst
字号:
C51 COMPILER V8.02 AD7705C 08/19/2007 16:20:24 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE AD7705C
OBJECT MODULE PLACED IN ad7705C.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ad7705C.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************************************/
2 /* 这是用C51语言编的双通道16位A/D转换器AD7705驱动程序,文件名 */
3 /* 为AD7705C.C */
4 /* 功能:本程序主要是读出AD7705芯片输入通道CH0(CH1)的模数转换值, */
5 /* 转换值放在变量a中,AD7705芯片的2个通道可编程为单极性/双极性 */
6 /* 和差动/单端工作,这里采用单端\单极性输入。本例中AD7705连接的 */
7 /* 晶振为4MHZ,参考电压为5V,选择通道增益为1,采用自校准方式 。 */
8 /*******************************************************************/
9 #include<reg52.h>
10 #define uchar unsigned char
11 #define uint unsigned int
12
13 sbit DRDY=P1^3;
14 sbit CS=P1^4;
15 sbit SO=P1^5;
16 sbit SCK=P1^6;
17 sbit SI=P1^7;
18
19 void delay(uint z) //延时
20 {
21 1 uchar p;
22 1 while(z-->0)
23 1 {for(p=0;p<125;p++);}
24 1 }
25
26
27 void write(uchar x) //写一个字节子程序
28 {
29 1 uchar i;
30 1 CS=0;
31 1 SCK=1;
32 1 for (i=0;i<8;i++)
33 1 {
34 2 SCK=0;
35 2 delay(1);
36 2 SI=(bit)(x&0x80);
37 2 delay(1);
38 2 SCK=1;
39 2 delay(1);
40 2 x<<=1;
41 2 };
42 1 SI=0;
43 1 CS=1;
44 1 }
45
46 uint read(void) //读转换数据子程序
47 {
48 1 uchar i;
49 1 uint w ;
50 1 w=0;
51 1 CS=0;
52 1 SCK=1 ;
53 1 for(i=0;i<16;i++)
54 1 {
55 2 SCK=0;
C51 COMPILER V8.02 AD7705C 08/19/2007 16:20:24 PAGE 2
56 2 delay(2);
57 2 w<<=1;
58 2 if(SO==1)
59 2 w|=0x01;
60 2 SCK=1;
61 2 delay(2);
62 2 };
63 1 CS=1;
64 1 return w;
65 1 }
66
67
68 void main() //主程序
69 {
70 1 uint a;
71 1 write(0x20); //AD7705初始化-读第1通道A/D转换值
72 1 write(0x04);
73 1 write(0x10);
74 1 write(0x44);
75 1 delay(3);
76 1 while(1)
77 1 {
78 2 if(DRDY==0) //等待DRDY变低
79 2 {
80 3 write(0x38);
81 3 if(DRDY==0)
82 3 {
83 4 a=read(); //把A/D转换值送给变量a
84 4 }
85 3 }
86 2 }
87 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 171 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -