📄 progm.lst
字号:
C51 COMPILER V7.06 PROGM 03/05/2009 08:55:15 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE PROGM
OBJECT MODULE PLACED IN E:\设计与~1\科发回路\通用接~1\PROGM.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE E:\设计与~1\科发回路\通用接~1\PROGM.C DB SB OE
stmt level source
1 #include "mdefine.h"
2 #include "IIC_Soft.h"
3 #include "Key_Dispose.h"
4 #include "Ziku.h"
5 #include "Lcd12864.h"
6 //#include "PCF8563.h"
7 #include "Ad2543.h"
8 //#include "Tlc5615.h"
9 #include "24c64.h"
10
11 const float code RB = 0.001 ;//标准电阻为100A/100mV,即1000uΩ
12 const float code VB = 20.000 ; //电流回路放大器的电阻R20=2.600K
13 float idata SHUAIJIAN = 1.00; //信号衰减倍数,此处不衰减
14 float idata DIANLIUXIAO = 1.000;//电流校正因子
15 float idata DIANZUXIAO3=1.000;//400uΩ以下修正,即VX=100时
16 float idata DIANZUXIAO2=1.000;//4000uΩ以下大于400uΩ修正,即VX=10时
17 float idata DIANZUXIAO1=1.000;//40000uΩ以下大于4000uΩ修正,即VX=1时
18 float idata xiao=1.000;//程序调用到的修正系数
19 uchar xiaozhen[20];//读入的系数值
20
21 uchar idata UiBuffer[8]={0,0,0,0,0,0,0,0};//电流电阻显示缓冲区,前4位电流
22 float idata VX = 1.0; //电压初始档位,放大倍数=1
23 ulong idata iZHENGSHU=0;
24 ulong idata iXIAOSHU=0; /*保存浮点数的整数和小数*/
25 uchar idata dian_bit=0;//结果共4位显示,小数点位置=0无小数点,=1小数点后1位,=2后两位,=3后三位
26
27 uchar mod_10000( uint* ulTmp) /*分离出万位数并返回,保留余下的部分*/
28 {
29 1 uint ult1;
30 1 ult1 = *ulTmp / 10000;
31 1 *ulTmp = *ulTmp % 10000;
32 1 return ult1;
33 1 }
34
35
36 uchar mod_1000( uint* ulTmp) /*分离出千位数并返回,保留余下的部分*/
37 {
38 1 uint ult1;
39 1 ult1 = *ulTmp / 1000;
40 1 *ulTmp = *ulTmp % 1000;
41 1 return ult1;
42 1 }
43
44 uchar mod_100( uint* ulTmp) /*分离出百位数并返回,保留余下的部分*/
45 {
46 1 uint ult1;
47 1 ult1 = *ulTmp / 100;
48 1 *ulTmp = *ulTmp % 100;
49 1 return ult1;
50 1 }
51
52 uchar mod_10( uint* ulTmp) /*分离出十位数并返回,保留余下的部分*/
53 {
54 1 uint ult1;
55 1 ult1 = *ulTmp / 10;
C51 COMPILER V7.06 PROGM 03/05/2009 08:55:15 PAGE 2
56 1 *ulTmp = *ulTmp % 10;
57 1 return ult1;
58 1 }
59
60 void div_u_shuzi(uint ucTmp) //分离电压数字
61 {
62 1 uint uctmp;
63 1 uctmp = ucTmp;
64 1 UiBuffer[0] = mod_1000(&uctmp);
65 1 UiBuffer[1] = mod_100(&uctmp);
66 1 UiBuffer[2] = mod_10(&uctmp);
67 1 UiBuffer[3] = uctmp;
68 1 }
69
70 void div_i_shuzi(uint ucTmp) //分离电流数字
71 {
72 1 uint uctmp;
73 1 uctmp = ucTmp;
74 1 UiBuffer[0] = mod_1000(&uctmp);
75 1 UiBuffer[1] = mod_100(&uctmp);
76 1 UiBuffer[2] = mod_10(&uctmp);
77 1 UiBuffer[3] = uctmp;
78 1 }
79
80 void Shipin_U_dispose() //处理电压读数 显示
81 {
82 1 uint uiDianya;
83 1 uiDianya = (uint)(Read2543(1) * 2.5/4096*1000);//读出的值放大10倍
84 1 uiDianya = (uint)(Read2543(1) * 2.5/4096*1000);
85 1 div_u_shuzi(uiDianya);
86 1 }
87
88 void Shipin_I_dispose() //处理电流读数 显示
89 {
90 1 uint uiDianliu;
91 1 uiDianliu = (uint)(Read2543(0) *2.5/4096*1000*10);//读出的值放大10倍
92 1 uiDianliu = (uint)(Read2543(0) *2.5/4096*1000*10);
93 1 div_i_shuzi(uiDianliu);
94 1 }
95
96 void diyiping()
97 {
98 1 df(0,28,13,0);
99 1 df(0,36,14,0);
100 1 df(0,44,16,0);
101 1 df(0,52,6,0);
102 1 df(0,60,1,0);
103 1 df(0,68,0,0);
104 1 df(0,76,4,0);
105 1 dh(0,84,4,0);
106 1
107 1 dh(3,8,5,0);
108 1 dh(3,24,6,0);
109 1 dh(3,40,7,0);
110 1 dh(3,56,8,0);
111 1 dh(3,72,9,0);
112 1 dh(3,88,10,0);
113 1 dh(3,104,11,0);
114 1
115 1 dh(6,8,12,0);
116 1 dh(6,24,13,0);
117 1 dh(6,40,14,0);
C51 COMPILER V7.06 PROGM 03/05/2009 08:55:15 PAGE 3
118 1 dh(6,56,15,0);
119 1 dh(6,72,16,0);
120 1 dh(6,88,17,0);
121 1 dh(6,104,18,0);
122 1
123 1 }
124
125 void dierping()
126 {
127 1 dh(0,0,9,0);
128 1 dh(0,16,10,0);
129 1 dh(0,32,17,0);
130 1 dh(0,48,20,0);
131 1 df(0,64,17,0);
132 1
133 1 xs12(2,40,0,0);
134 1 xs12(2,52,1,0);
135 1 xs12(2,64,1,0);
136 1 xs12(2,76,2,0);
137 1
138 1 dh(6,24,25,0);//请
139 1 dh(6,40,26,0);//按
140 1 dh(6,56,9,0);//测
141 1 dh(6,72,10,0);//试
142 1 dh(6,88,27,0);//键
143 1
144 1 }
145
146 void disanping()
147 {
148 1 dh(0,0,21,0);//显示正在测试中
149 1 dh(0,16,22,0);
150 1 dh(0,32,9,0);
151 1 dh(0,48,10,0);
152 1 dh(0,64,28,0);
153 1
154 1 dh(2,0,25,0);//请稍侯
155 1 dh(2,16,29,0);
156 1 dh(2,32,30,0);
157 1
158 1 dh(2,48,31,0);
159 1 dh(2,64,31,0);
160 1 dh(2,80,31,0);
161 1 dh(2,96,31,0);
162 1 dh(2,112,31,0);
163 1 }
164
165 void xsdianzu(uchar flag)//根据小数点的位置显示结果
166 {
167 1 df(flag,34,19,0);//R=xxx.xmΩ
168 1 df(flag,42,20,0);
169 1 df(flag,86,15,0);
170 1 dh(flag,94,19,0);
171 1 switch(dian_bit)
172 1 {
173 2 case 0:
174 2 df(flag,50,UiBuffer[4],0);
175 2 df(flag,58,UiBuffer[5],0);
176 2 df(flag,66,UiBuffer[6],0);
177 2 df(flag,74,UiBuffer[7],0);
178 2 break;
179 2 case 1:
C51 COMPILER V7.06 PROGM 03/05/2009 08:55:15 PAGE 4
180 2 df(flag,50,UiBuffer[4],0);
181 2 df(flag,58,UiBuffer[5],0);
182 2 df(flag,66,UiBuffer[6],0);
183 2 df(flag,74,21,0);
184 2 df(flag,78,UiBuffer[7],0);
185 2 break;
186 2 case 2:
187 2 df(flag,50,UiBuffer[4],0);
188 2 df(flag,58,UiBuffer[5],0);
189 2 df(flag,66,21,0);
190 2 df(flag,70,UiBuffer[6],0);
191 2 df(flag,78,UiBuffer[7],0);
192 2 break;
193 2 case 3:
194 2 df(flag,50,UiBuffer[4],0);
195 2 df(flag,58,21,0);
196 2 df(flag,62,UiBuffer[5],0);
197 2 df(flag,70,UiBuffer[6],0);
198 2 df(flag,78,UiBuffer[7],0);
199 2 break;
200 2 }
201 1 }
202
203 void showdianliu(uchar flag)//显示电流
204 {
205 1 df(flag,34,18,0);//I=xxx.xA
206 1 df(flag,42,20,0);
207 1 df(flag,50,UiBuffer[0],0);
208 1 df(flag,58,UiBuffer[1],0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -