?? ad7705.lst
字號:
C51 COMPILER V7.06 AD7705 09/18/2007 10:26:10 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE AD7705
OBJECT MODULE PLACED IN AD7705.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE AD7705.c LARGE BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <AT898252.H>
2 #include <intrins.h>
3
4 #define uchar unsigned char
5 #define uint unsigned int
6
7 sbit DIN7705=P3^4; /*數據輸入輸出為同一端口*/
8 sbit DOUT7705=P3^4;
9 sbit CLK7705=P3^5;
10 sbit AD7705_DRDY=P1^5;
11
12 /*全局變量定義*/
13 extern uchar ADH_1;
14 extern uchar ADL_1;
15 extern uchar ADH_2;
16 extern uchar ADL_2;
17
18 /*寫AD7705函數*/
19 void writetoreg7705(uchar dat)
20 {
21 1 uchar i;
22 1 for(i=0;i<8;i++)
23 1 {
24 2 CLK7705=0;
25 2 DOUT7705=(bit)(dat&0x80);
26 2 dat<<=1;
27 2
28 2 _nop_();
29 2
30 2 CLK7705=1;
31 2 _nop_();
32 2 _nop_();
33 2 }
34 1 }
35
36 /*讀AD7705函數,參數ff=0表示讀寫1通道,1表示讀寫2通道*/
37
38 void readfromda7705(bit ff)
39 {
40 1 uchar i,tmp,tt;
41 1 bit cc;
42 1 tmp=0;
43 1 if(!ff)
44 1 {
45 2 writetoreg7705(0x38); /*寫通信寄存器,下一次為讀數據寄存器通道1*/
46 2 AD7705_DRDY=1;
47 2 while(AD7705_DRDY);
48 2 for(i=0;i<8;i++)
49 2 {
50 3 tmp<<=1;
51 3 DIN7705=1;
52 3 _nop_();
53 3 _nop_();
54 3 _nop_();
55 3 CLK7705=0;
C51 COMPILER V7.06 AD7705 09/18/2007 10:26:10 PAGE 2
56 3 _nop_();
57 3 _nop_();
59 3 CLK7705=1;
60 3 _nop_();
61 3 cc=DIN7705;
62 3 tt=(uchar )cc;
63 3 tmp=tmp|tt;
64 3 }
65 2
66 2 ADH_1=tmp;
67 2 tmp=0;
68 2 for(i=0;i<8;i++)
69 2 {
70 3 tmp<<=1;
71 3 DIN7705=1;
72 3 _nop_();
73 3 _nop_();
74 3 _nop_();
75 3 CLK7705=0;
76 3 _nop_();
77 3 _nop_();
78 3 _nop_();
79 3 CLK7705=1;
80 3 _nop_();
81 3 cc=DIN7705;
82 3 tt=(uchar )cc;
83 3 tmp=tmp|tt;
84 3 }
85 2 ADL_1=tmp;
86 2 }
87 1 else
88 1 {
89 2 writetoreg7705(0x39); /*寫通信寄存器,下一次為讀數據寄存器通道1*/
90 2 AD7705_DRDY=1;
91 2 while(AD7705_DRDY);
92 2 for(i=0;i<8;i++)
93 2 {
94 3 tmp<<=1;
95 3 DIN7705=1;
96 3 _nop_();
97 3 _nop_();
98 3 _nop_();
99 3 CLK7705=0;
100 3 _nop_();
101 3 _nop_();
102 3 _nop_();
103 3 CLK7705=1;
104 3 _nop_();
105 3 cc=DIN7705;
106 3 tt=(uchar )cc;
107 3 tmp=tmp|tt;
108 3 }
109 2
110 2 ADH_2=tmp;
111 2 tmp=0;
112 2 for(i=0;i<8;i++)
113 2 {
114 3 tmp<<=1;
115 3 DIN7705=1;
116 3 _nop_();
117 3 _nop_();
C51 COMPILER V7.06 AD7705 09/18/2007 10:26:10 PAGE 3
118 3 _nop_();
119 3 CLK7705=0;
120 3 _nop_();
121 3 _nop_();
122 3 _nop_();
123 3 CLK7705=1;
124 3 _nop_();
125 3 cc=DIN7705;
126 3 tt=(uchar )cc;
127 3 tmp=tmp|tt;
128 3 }
129 2 ADL_2=tmp;
130 2 }
131 1 }
132
133 /*AD7705初始化*/
134 void AD7705_init(bit ff)
135 {
136 1 uchar i;
137 1 CLK7705=1;
138 1 DIN7705=1; /*數據拉高,為復位做準備*/
139 1 for(i=0;i<40;i++)
140 1 {
141 2 CLK7705=0;
142 2 CLK7705=0; /*32周期以上的寫1,保證通信寄存器回等待狀態*/
143 2 }
144 1
145 1 if(!ff)
146 1 {
147 2 writetoreg7705(0x20);
148 2 writetoreg7705(0x04);
149 2 writetoreg7705(0x10);
150 2 writetoreg7705(0x44);
151 2 }
152 1 else
153 1 {
154 2 writetoreg7705(0x21);
155 2 writetoreg7705(0x04);
156 2 writetoreg7705(0x11);
157 2 writetoreg7705(0x44);
158 2 }
159 1 AD7705_DRDY=1;
160 1 while(AD7705_DRDY);
161 1 }
162
163
164
165
166
167
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 270 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -