?? ad7705.lst
字號:
C51 COMPILER V8.08 AD7705 11/16/2007 18:23:56 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 COMPACT BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<STC12C5410AD.H>
2 #include<MATH.H>
3 #define byte unsigned char
4
5 //函數(shù)聲明
6 void initspi(void);
7 void send(byte s);
8 void reset7705(void);
9 long zero(void);
10 unsigned int get(unsigned char chanNo); //讀取AD7705的采樣值
11 void delay();
12 void adInit(void); //AD轉(zhuǎn)換初始化
13 void selectChan0(void); //選擇通道0
14 void selectChan1(void); //選擇通道1
15
16 //管腳定義
17 sbit cs=P1^4; //AD7705片選
18 sbit dr=P3^3; //AD7705轉(zhuǎn)換標志
19
20
21
22 //AD轉(zhuǎn)換初始化
23 void adInit(void)
24 {
25 1 initspi();
26 1 reset7705();//連續(xù)40個串行周期寫入1,復(fù)位7705的數(shù)據(jù)接口
27 1 send(0x20);
28 1 send(0x0C);
29 1 send(0x21);
30 1 send(0x0C);
31 1 send(0x10);
32 1 send(0x44);
33 1 send(0x11);
34 1 send(0x44);
35 1 }
36 //選擇通道0
37 void selectChan0(void)
38 {
39 1 send(0x20);
40 1 send(0x0C);
41 1 send(0x10);
42 1 send(0x44);
43 1 }
44 //選擇通道1
45 void selectChan1(void)
46 {
47 1 send(0x21);
48 1 send(0x0C);
49 1 send(0x11);
50 1 send(0x44);
51 1 }
52 void initspi(void)
53 {
54 1 SPCTL=0xDE;//主機,先傳MSB,允許工作 ,時鐘頻率(1/64)CPUclock)
55 1 SPSTAT=0xC0;//清零
C51 COMPILER V8.08 AD7705 11/16/2007 18:23:56 PAGE 2
56 1 P1M0=P1M0&(0xEF); //CS(P1.4)設(shè)置為輸出
57 1 P1M1=P1M1|(0x10);
58 1 P3M0=P3M0|(0x08); //DRDY(P3.3)設(shè)置為輸入
59 1 P3M1=P3M1&(0xF7);
60 1 }
61 void send(byte s)
62 {
63 1 cs=0;
64 1 SPDAT=s;
65 1 while(!(SPSTAT&0x80))
66 1 {;}
67 1 SPSTAT=0xC0;
68 1 cs=1;
69 1 }
70 unsigned int get(unsigned char chanNo)
71 {
72 1 byte a1,b1;
73 1 while(!dr)
74 1 {;}
75 1 while(dr)
76 1 {;}
77 1
78 1 switch(chanNo)
79 1 {
80 2 case 0: send(0x38);break;
81 2 case 1: send(0x39);break;
82 2 }
83 1 cs=0;
84 1 SPDAT=0;
85 1 while(!(SPSTAT&0x80))
86 1 {;}
87 1 a1=SPDAT;
88 1 SPSTAT=0xC0;
89 1 SPDAT=0;
90 1 while(!(SPSTAT&0x80))
91 1 {;}
92 1 b1=SPDAT;
93 1 SPSTAT=0xC0;
94 1 cs=1;
95 1 return(a1*256+b1);
96 1 }
97 void reset7705(void)
98 {
99 1 cs=0;
100 1 SPDAT=0xFF;
101 1 while(!(SPSTAT&0x80))
102 1 {;}
103 1 SPSTAT=0xC0;
104 1 SPDAT=0xFF;
105 1 while(!(SPSTAT&0x80))
106 1 {;}
107 1 SPSTAT=0xC0;
108 1 SPDAT=0xFF;
109 1 while(!(SPSTAT&0x80))
110 1 {;}
111 1 SPSTAT=0xC0;
112 1 SPDAT=0xFF;
113 1 while(!(SPSTAT&0x80))
114 1 {;}
115 1 SPSTAT=0xC0;
116 1 SPDAT=0xFF;
117 1 while(!(SPSTAT&0x80))
C51 COMPILER V8.08 AD7705 11/16/2007 18:23:56 PAGE 3
118 1 {;}
119 1 SPSTAT=0xC0;
120 1 cs=1;
121 1 }
122
123
124
125
126
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 243 ----
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)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -