?? ad7705.lst
字號:
C51 COMPILER V8.08 AD7705 11/20/2008 22:02:46 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE AD7705
OBJECT MODULE PLACED IN AD7705.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE AD7705.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"reg52.h"
2 #include"IOCfg.c"
3 #include"delay.h"
4 #include"Config.h"
5 #include"AD7705.h"
6 #include "intrins.h"
7
8
9 /************************************************************************************
10 復位AD7705
11 ************************************************************************************/
12 void rst_ad()
13 {
14 1 AD_DRDY = 1;
15 1 AD_CLK = 1;
16 1 AD_DIN = 1;
17 1 AD_DOUT = 1;
18 1 //AD_RST = 0;
19 1 delay(300);
20 1 AD_RST = 1;
21 1 write_ad(0xff);
22 1 write_ad(0xff);
23 1 write_ad(0xff);
24 1 write_ad(0xff);
25 1 write_ad(0xff);
26 1 delay(500);
27 1 }
28
29 /************************************************************************************
30 寫1字節到AD7705
31 ************************************************************************************/
32 write_ad(uchar i)
33 {
34 1 uchar a;
35 1 for(a = 8;a > 0;a--)
36 1 {
37 2
38 2 if((i & 0x80) == 0)
39 2 {
40 3 AD_DIN = 0;
41 3 }
42 2 else
43 2 {
44 3 AD_DIN = 1;
45 3 }
46 2 i <<= 1;
47 2 AD_CLK = 0;
48 2 _nop_();
49 2 _nop_();
50 2 _nop_();
51 2 AD_CLK = 1;
52 2 }
53 1 }
54
55 /************************************************************************************
C51 COMPILER V8.08 AD7705 11/20/2008 22:02:46 PAGE 2
56 設置AD7705通道
57 * 0 為第一通道
58 * 1 為第二通道
59
60 //MD1(0) 工 作 模 式
61 //MD0(0) 工 作 模 式
62 //G2(0) 增益選擇 0 0 0 0 1 1 1 1
63 //G1(0) 增益選擇 0 0 1 1 0 0 1 1
64 //G0(0) 增益選擇 0 1 0 1 0 1 0 1
65 // 1 2 4 8 16 32 64 128
66 //B/U(0) 單極性/雙極性工作。“0”表示選擇雙極性操作,“1”表示選擇單極性工作
67 //BUF(0) 緩沖器控制。“0”表示片內緩沖器短路,緩沖器短路后,電源電流降低
68 // 此位處于高電平時,緩沖器與模擬輸入串聯,輸入端允許處理高阻抗源
69 //FSYNC(1) 濾波器同步
70
71 //設置40H 雙極性方式 44H 單極性方式
72 //-----短路濾波器后線性也好了
73 ************************************************************************************/
74
75 void set_7705_ch(bit a)
76 {
77 1 if(a == 0)
78 1 {
79 2 write_ad(0x20);//write_ad(0x20);
80 2 write_ad(0x05);
81 2 write_ad(0x10);//write_ad(0x10);
82 2 write_ad(0x44);//write_ad(0x46);
83 2 }
84 1 else
85 1 {
86 2 write_ad(0x20);//write_ad(0x20);
87 2 write_ad(0x05);
88 2 write_ad(0x10);//write_ad(0x10);
89 2 write_ad(0x44);//write_ad(0x46);
90 2 }
91 1 }
92
93
94 /************************************************************************************
95 讀1字節到AD7705
96 ************************************************************************************/
97 uchar read_ad()
98 {
99 1 uchar temp2;
100 1 uchar a;
101 1 for(a = 8;a > 0;a--)
102 1 {
103 2 AD_CLK = 0;
104 2 _nop_();
105 2 _nop_();
106 2 _nop_();
107 2 AD_CLK = 1;
108 2 _nop_();
109 2 _nop_();
110 2 _nop_();
111 2 temp2 <<= 1;
112 2 if(AD_DOUT == 0)
113 2 {
114 3 temp2 &= 0xfe;
115 3 }
116 2 else
117 2 {
C51 COMPILER V8.08 AD7705 11/20/2008 22:02:46 PAGE 3
118 3 temp2 |= 0x01;
119 3 }
120 2 }
121 1 return temp2;
122 1 }
123
124 /************************************************************************************
125
126 讀AD7705轉換后的數據 ,不檢測DRDY
127
128 ************************************************************************************/
129
130 uint readAD_data()
131 {
132 1 uint temp;
133 1 uchar i;
134 1 for(i = 16;i > 0;i--)
135 1 {
136 2 AD_CLK = 0;
137 2 _nop_();
138 2 _nop_();
139 2 _nop_();
140 2 AD_CLK = 1;
141 2 _nop_();
142 2 _nop_();
143 2 _nop_();
144 2 temp <<= 1;
145 2 if(AD_DOUT == 0)
146 2 {
147 3 temp &= 0xfffe;
148 3 }
149 2 else
150 2 {
151 3 temp |= 0x0001;
152 3 }
153 2 }
154 1 return temp;
155 1 }
156
157 /************************************************************************************
158 AD的16位整形數轉換成浮點電壓或電流值
159 ************************************************************************************/
160 float adjisuan_U(uint x)
161 {
162 1 idata float temp1;
163 1 temp1 = 11.990 / 0x5e1f;
164 1 temp1 = x * temp1;
165 1 return temp1;
166 1 }
167
168 float adjisuan_I(uint x) //
169 {
170 1 idata float temp1;
171 1 temp1 = (1.059 + 0.009) / 0x2c03;
172 1 //temp1 = (x * temp1) - 0.0039;
173 1 temp1 = (x * temp1) - 0.0069 ;
174 1 return temp1;
175 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 262 ----
C51 COMPILER V8.08 AD7705 11/20/2008 22:02:46 PAGE 4
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- 8
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -