?? ad7705.lst
字號:
C51 COMPILER V8.02 AD7705 02/22/2009 11:38:18 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE AD7705
OBJECT MODULE PLACED IN AD7705.OBJ
COMPILER INVOKED BY: E:\Proteus_keil\Keil\C51\BIN\C51.EXE AD7705.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<intrins.h>
3 #define uchar unsigned char
4
5 uchar datah,datal;
6
7 sbit cs_7705=P1^0; //AD7705片選
8 sbit din_7705=P1^1; //數據輸入口
9 sbit dout_7705=P1^2; //數據輸出口
10 sbit clk_7705=P1^3; //同步時鐘
11 sbit drdy_7705=P1^4; //轉換結束標志位
12
13
14
15 void delay_7705(uchar count_7705)
16 {
17 1 uchar i;
18 1 for(;count_7705>0;count_7705--)
19 1 for(i=0;i<200;i++) //1ms
20 1 {
21 2 _nop_();_nop_();_nop_();_nop_();_nop_();
22 2 }
23 1 }
24
25 void write_7705(uchar dat) //寫入一個字節
26 {
27 1 uchar i;
28 1 clk_7705=1;
29 1 cs_7705=0;
30 1 for(i=0;i<8;i++)
31 1 {
32 2 dat=dat<<1;
33 2 din_7705=CY;
34 2 clk_7705=0;
35 2 clk_7705=1;
36 2 }
37 1 clk_7705=1;
38 1 din_7705=1;
39 1 cs_7705=1;
40 1 }
41
42
43 void init_7705() //初始化
44 {
45 1 uchar i;
46 1 clk_7705=1; //
47 1 din_7705=1; //
48 1 for(i=0;i<40;i++) // 防止接口迷失 (011數據)
49 1 { // STBY寫1進入等待 (010時鐘)
50 2 clk_7705=0; // (001設置)
51 2 clk_7705=1; // (000通信) (0:正常)
52 2 } // (0)(先寄存器)(0寫) (1:等待) (通道選擇)
53 1 write_7705(0x20); //通道1,下一個寫時鐘 DRDY RS2 RS1 RS0 R/W STBY CH1 CH0
54 1 write_7705(0x06); //設置時鐘
55 1 write_7705(0x10); //通道1,下一個寫設置
C51 COMPILER V8.02 AD7705 02/22/2009 11:38:18 PAGE 2
56 1 write_7705(0x44); //寫設置
57 1 delay_7705(50); //延時50ms
58 1 }
59
60 uchar read_byte()
61 {
62 1 uchar i,temp;
63 1 temp=0;
64 1 for(i=0;i<8;i++)
65 1 {
66 2 temp=temp<<1;
67 2 clk_7705=0;
68 2 if(dout_7705)temp=temp|0x01;
69 2 clk_7705=1;
70 2 }
71 1 return temp;
72 1 }
73
74
75 void read_7705(uchar channel)
76 {
77 1 write_7705(0x38|channel);
78 1 while(drdy_7705==1);
79 1 clk_7705=1;
80 1 cs_7705=0;
81 1 datal=read_byte();
82 1 datah=read_byte();
83 1 clk_7705=1;
84 1 din_7705=1;
85 1 cs_7705=1;
86 1 }
87
88
89 void main()
90 {
91 1 init_7705();
92 1
93 1 read_7705(0); //0:通道1 1:通道2 讀通道1的16位數據到datah,datal
94 1
95 1 }
96
97
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 148 ----
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 + -