📄 tlv5618.lst
字号:
C51 COMPILER V7.06 TLV5618 08/18/2008 16:05:07 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TLV5618
OBJECT MODULE PLACED IN TLV5618.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TLV5618.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <at89x51.h>
2
3 #define uchar unsigned char
4 #define uint unsigned int
5 #define ulint unsigned long int
6
7 sbit DIN=P3^4;//串行输入
8 sbit CLK=P3^3;//工作时钟
9 sbit CS=P3^2;//片选信号 低电平有效
10
11 sbit key1=P2^0;
12 sbit key2=P2^1;
13 sbit key3=P2^2;
14 sbit key4=P2^3;
15
16 unsigned char code table_duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,
17 0x88,0x83,0xc6,0xa1,0x86,0x8e,
18 0xff,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
19 0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x18,
20 };
21
22 unsigned char code table_wei[]={0x1f,0x9f,0x5f,0xdf,
23 0x4f,0xcf,0x2f,0xaf,0x6f
24 };
25 uchar x1,x2,x3,x4;
26 uchar y1,y2,y3,y4,y5;
27 uint xianshi_MV;
28 ulint xianshi_MA;
29
30 void delay(unsigned int z)
31 {
32 1 uchar i,j;
33 1 for(i=0;i<z;i++)
34 1 for(j=0;j<110;j++);
35 1 }
36
37 void display(void)
38 {
39 1 P2=table_wei[0];
40 1 P0=table_duan[x1+0x20];
41 1 delay(1);
42 1 P0=table_duan[0x10];
43 1
44 1 P2=table_wei[1];
45 1 P0=table_duan[x2];
46 1 delay(1);
47 1 P0=table_duan[0x10];
48 1
49 1 P2=table_wei[2];
50 1 P0=table_duan[x3];
51 1 delay(1);
52 1 P0=table_duan[0x10];
53 1
54 1 P2=table_wei[3];
55 1 P0=table_duan[x4];
C51 COMPILER V7.06 TLV5618 08/18/2008 16:05:07 PAGE 2
56 1 delay(1);
57 1 P0=table_duan[0x10];
58 1
59 1 P2=table_wei[4];
60 1 P0=table_duan[y1];
61 1 delay(1);
62 1 P0=table_duan[0x10];
63 1
64 1 P2=table_wei[5];
65 1 P0=table_duan[y2+0x20];
66 1 delay(1);
67 1 P0=table_duan[0x10];
68 1
69 1 P2=table_wei[6];
70 1 P0=table_duan[y3];
71 1 delay(1);
72 1 P0=table_duan[0x10];
73 1
74 1 P2=table_wei[7];
75 1 P0=table_duan[y4];
76 1 delay(1);
77 1 P0=table_duan[0x10];
78 1
79 1 P2=table_wei[8];
80 1 P0=table_duan[y5];
81 1 delay(1);
82 1 P0=table_duan[0x10];
83 1
84 1 P2=0xef;
85 1 P0=table_duan[0x11];
86 1 delay(1);
87 1 P0=table_duan[0x10];
88 1
89 1 P2=0x8f;
90 1 P0=table_duan[0x0a];
91 1 delay(1);
92 1 P0=table_duan[0x10];
93 1 }
94
95 void DA_init(uint data1)//data1 待转换的数据
96 {
97 1 uchar i;
98 1 CS=1;
99 1 DIN=0;
100 1 CLK=0;
101 1 CS=0;
102 1 for(i=0;i<16;i++)
103 1 {
104 2 if((data1&0x8000)!=0) //0x0400==0001,0000,0000,0000 B
105 2 DIN=1;//数据输出
106 2 else
107 2 DIN=0;//数据输出
108 2 CLK=1; //发生时钟
109 2 CLK=0; //发生时钟
110 2 data1<<=1;//逻辑左移
111 2 }
112 1 CLK=1; //发生时钟
113 1 CLK=0; //发生时钟
114 1 CS=1;
115 1 DIN=0;
116 1 CLK=0;
117 1 }
C51 COMPILER V7.06 TLV5618 08/18/2008 16:05:07 PAGE 3
118
119 void shuju_fenli(void)
120 {
121 1 x1=xianshi_MV/1000;
122 1 x2=(xianshi_MV%1000)/100;
123 1 x3=(xianshi_MV%100)/10;
124 1 x4=xianshi_MV%10;
125 1
126 1 y1=xianshi_MA/10000;
127 1 y2=(xianshi_MA%10000)/1000;
128 1 y3=(xianshi_MA%1000)/100;
129 1 y4=(xianshi_MA%100)/10;
130 1 y5=xianshi_MA%10;
131 1 }
132 char code dx516[3] _at_ 0x003b;
133 void main()
134 {
135 1 uint a=0xc800,b=0x4800,c;
136 1 float d,shang;
137 1
138 1 while(1)
139 1 {
140 2 P2=0x4f;
141 2 if(key1==0)
142 2 {
143 3 delay(20);
144 3 if(key1==0)
145 3 {
146 4 a=a+0x0333;
147 4 if(a>0xcfff)
148 4 {
149 5 a=a-0x0fff;
150 5 }
151 4 while(key1==0)
152 4 {;}
153 4 }
154 3 }
155 2 if(key2==0)
156 2 {
157 3 delay(20);
158 3 if(key2==0)
159 3 {
160 4 a=a+0x0052;
161 4 if(a>0xcfff)
162 4 {
163 5 a=a-0x0fff;
164 5 }
165 4 while(key2==0)
166 4 {;}
167 4 }
168 3 }
169 2 if(key3==0)
170 2 {
171 3 delay(20);
172 3 if(key3==0)
173 3 {
174 4 a=a+0x0008;
175 4 if(a>0xcfff)
176 4 {
177 5 a=a-0x0fff;
178 5 }
179 4 while(key3==0)
C51 COMPILER V7.06 TLV5618 08/18/2008 16:05:07 PAGE 4
180 4 {;}
181 4 }
182 3 }
183 2
184 2 if(key4==0)
185 2 {
186 3 delay(20);
187 3 if(key4==0)
188 3 {
189 4 a=a+0x0001;
190 4 if(a>0xcfff)
191 4 {
192 5 a=a-0x0fff;
193 5 }
194 4 while(key4==0)
195 4 {;}
196 4 }
197 3 }
198 2
199 2 DA_init(a);
200 2 delay(10);
201 2 DA_init(b);
202 2 delay(10);
203 2
204 2 c=a;
205 2 c=c&0x0fff;
206 2 d=c;
207 2 shang=d/0x1000;
208 2 xianshi_MV=2*2492.3*shang;
209 2 xianshi_MV=xianshi_MV+2;
210 2
211 2 xianshi_MA=xianshi_MV*10;
212 2 xianshi_MA=xianshi_MA*10;
213 2 xianshi_MA=xianshi_MA*10;
214 2
215 2 if(xianshi_MV>0&xianshi_MV<10000)
216 2 xianshi_MA=xianshi_MA/237.8;
217 2 else if(xianshi_MV>10000&xianshi_MV<20000)
218 2 xianshi_MA=xianshi_MA/238.5;
219 2 else if(xianshi_MV>20000&xianshi_MV<30000)
220 2 xianshi_MA=xianshi_MA/238.8;
221 2 else if(xianshi_MV>30000&xianshi_MV<40000)
222 2 xianshi_MA=xianshi_MA/239;
223 2 else if(xianshi_MV>40000&xianshi_MV<50000)
224 2 xianshi_MA=xianshi_MA/239.1;
225 2
226 2 shuju_fenli();
227 2 display();
228 2 }
229 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1236 ----
CONSTANT SIZE = 51 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 15 8
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 + -