📄 ads7822.lst
字号:
C51 COMPILER V7.06 ADS7822 05/31/2007 05:03:25 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE ADS7822
OBJECT MODULE PLACED IN ADS7822.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ADS7822.C LARGE
stmt level source
1
2 #include <reg52.h>
3 #include "string.h"
4 #include <stdio.h>
5 char buffer[2]={0x00,0x00};
6 bit tempbit;
7 sbit cs = P2^7;
8 sbit dout= P2^6;
9 sbit dclk =P2^5;
10 typedef unsigned short int u_int;
11 typedef unsigned char u_char;
12 void delayms(u_int sec)
13 {
14 1 u_int j;
15 1 for(j=0;j<sec;j++)
16 1 {
17 2 j=j;
18 2 j=j;
19 2 }
20 1
21 1 }
22 void delayUs(char n)
23 {
24 1 n*=8;
25 1 for(;n>0;n--);
26 1 }
27 void wputs(char s[]);
28 xdata char s[20];
29 xdata int value_bak;
30 xdata long tt;
31 int GetAdc(void)
32 {
33 1 int value=0;
34 1 long int rt;
35 1 long int tx;
36 1 long k;
37 1 u_char i,j,num;
38 1 delayUs(100);
39 1 dout=1; //设置DOUT端口为输入
40 1
41 1 buffer[1]=0x00;
42 1 buffer[0]=0x00;
43 1 value=0;
44 1 cs=1;
45 1
46 1 num=0;
47 1 dclk=0;
48 1 delayUs(10);
49 1 cs=0;
50 1
51 1 for(j=0;j<2;j++)
52 1 {
53 2 dclk=0;
54 2 delayUs(10);
55 2 dclk=1;
C51 COMPILER V7.06 ADS7822 05/31/2007 05:03:25 PAGE 2
56 2 delayUs(10);
57 2 dclk=0;
58 2 }
59 1 delayUs(10);
60 1 //wputs("\n\rA/D : ");
61 1 //若DOUT值不是0,则AD出错
62 1 if(dout!=0)
63 1 {
64 2 dclk=0;
65 2 strcpy(s,"AdcErr");
66 2 return(0);
67 2 }
68 1
69 1 //wputs("::");
70 1
71 1 for(j=0;j<12;j++)
72 1 {
73 2 dclk=1;
74 2 delayUs(20);
75 2 dclk=0;
76 2 delayUs(10);
77 2
78 2 value=value<<1;
79 2 if(dout) value |= 1;
80 2 delayUs(10);
81 2 }
82 1 value &=0xfff;
83 1 value_bak =(value_bak*5 + value)/6;
84 1
85 1 sprintf(s,"%d ",value_bak);
86 1 return(value_bak);
87 1 }
*** WARNING C280 IN LINE 34 OF ADS7822.C: 'rt': unreferenced local variable
*** WARNING C280 IN LINE 35 OF ADS7822.C: 'tx': unreferenced local variable
*** WARNING C280 IN LINE 36 OF ADS7822.C: 'k': unreferenced local variable
*** WARNING C280 IN LINE 37 OF ADS7822.C: 'i': unreferenced local variable
88
89 int Get_R_Str(void)
90 {
91 1 long int rt;
92 1 long k;
93 1 char sng=0;
94 1 rt=((long)(value_bak-82)*194L)/40L;
95 1 if( rt<0)
96 1 {
97 2 rt=-rt;
98 2 //sprintf(s,"-%d.%d ",(int)(rt/100L),(int)(rt%100L));
99 2 }
100 1 else ;//sprintf(s,"%d.%d ",(int)(rt/100L),(int)(rt%100L));
101 1 return(0);
102 1 }
*** WARNING C280 IN LINE 92 OF ADS7822.C: 'k': unreferenced local variable
103
104 struct t_R_table
105 {
106 int t;
107 long int R; //R=Rt X 100
108 } RtTab[15]=
109 {
110 -100,-390,
111 000,0,
112 100,390,
C51 COMPILER V7.06 ADS7822 05/31/2007 05:03:25 PAGE 3
113 500,1950,
114 1000,3900,
115 1500,5840,
116 2000,7780,
117 2500,9730,
118 3000,11680,
119 3500,13610,
120 4000,15540,
121 4500,17470,
122 5000,19400,
123 6500,25150,
124 8000,30900
125 };
126
127
128
129 int Get_t_Str(void)
130 {
131 1 long int rt;
132 1 long k;
133 1 char i;
134 1 char sng=0;
135 1 rt=((long)(value_bak-82)*194L)/40L;
136 1 for(i=1;i<15;i++)
137 1 {
138 2 if( RtTab[i].R < rt ) continue;
139 2 else break;
140 2 }
141 1 if(i==14)
142 1 {
143 2 sprintf(s,"xxxxxx");
144 2 return(0);
145 2 }
146 1 k=(RtTab[i].t-RtTab[i-1].t)*1000L/(RtTab[i].R-RtTab[i-1].R);
147 1 tt=RtTab[i-1].t+( (rt-RtTab[i-1].R)*k)/1000L;
148 1 if(tt<0)
149 1 {
150 2 tt=-tt;
151 2 tt +=5;
152 2 sprintf(s,"-%d.%d",(int)(tt/100L),(int)((tt/10)%10L));
153 2 }
154 1 else
155 1 {
156 2 tt+=5;
157 2 sprintf(s,"%d.%d",(int)(tt/100L),(int)((tt/10)%10));
158 2 }
159 1 return(0);
160 1 }
161
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1044 ----
CONSTANT SIZE = 31 ----
XDATA SIZE = 118 32
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 5 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -