📄 mylib.lst
字号:
C51 COMPILER V6.00i MYLIB 08/21/2007 12:22:11 PAGE 1
C51 COMPILER 6.00i, COMPILATION OF MODULE MYLIB
OBJECT MODULE PLACED IN E:\电表程序\GY8_17\MYLIB.OBJ
COMPILER INVOKED BY: C:\C516uv1\Bin\C51.EXE E:\电表程序\GY8_17\MYLIB.C DB SB OE
stmt level source
1 #include "mylib.h"
2
3 uchar code IC1_TB[10]= {0x0EB,0x60,0x0C7,0x0E5,0x6C,0x0AD,0x0AF,0x0E0,0x0EF,0x0ED}; //0-9 display code
4 uchar code IC2_TB[10]= {0x7D,0x60,0x3E,0x7A,0x63,0x5B,0x5F,0x70,0x7F,0x7B}; //0-9 display code
5 extern uchar Curtime[7];
6 extern uchar disnum[9];
7 bit SetTimeFlag; //used for set time
8 extern uchar idata FaultTime[6];
9 extern uint UaStartEeprom;
10 extern uint UbStartEeprom;
11 extern uint UcStartEeprom ;
12 extern uint IaStartEeprom;
13 extern uint IcStartEeprom;
14 extern uint IpStartEeprom;
15 extern bit send_flag;//发送标志
16 extern bit times_flag;//故障显示次数增加标志
17 extern bit swith_phase;//故障形式转换标志
18 extern bit error_flag;//校验故障标志,为1则表明手持机接到的数据不正确
19 extern uchar n;
20
21 uchar modified=0;
22 //新增变量
23
24 extern uchar IdNum;
25 extern bit ResetNum;
26 extern uchar m1;//地址加k1值提取下一个故障时间
27 extern uchar m2;//
28 extern uint Fault_adress;
29 extern uchar CountTimer;
30
31
32 //*********************1302******************/
33 /*******************************************/
34 /* clock 1302 */
35 /* write 1Byte data to DS1302;ucDa is the */
36 /* data to be writen */
37 /*******************************************/
38 //时钟-------------------------------------------------------------------------
39 void RTInputByte(uchar ucDa) //往DS1302写入1Byte数据;ucDa 写入的数据
40 {
41 1 uchar i;
42 1 ACC = ucDa;
43 1 for(i=8;i>0;i--)
44 1 {
45 2 T_IO = ACC_0;
46 2 T_CLK = 1;
47 2 T_CLK = 0;
48 2 ACC = ACC >> 1;
49 2 }
50 1 }
51
52 uchar RTOutputByte(void) //从DS1302读取1Byte数据
53 {
54 1 uchar i;
55 1 for(i=8;i>0;i--)
C51 COMPILER V6.00i MYLIB 08/21/2007 12:22:11 PAGE 2
56 1 {
57 2 ACC = ACC >>1; //相当于汇编中的 RRC
58 2 ACC_7 = T_IO;
59 2 T_CLK = 1;
60 2 T_CLK = 0;
61 2 }
62 1 return(ACC);
63 1 }
64
65 void W1302(uchar ucAddr, uchar ucDa)/*往DS1302写入数据;ucAddr: DS1302地址, ucDa: 要写的数据*/
66 {
67 1 T_RST = 0;
68 1 T_CLK = 0;
69 1 T_RST = 1;
70 1 RTInputByte(ucAddr); /* 地址,命令 */
71 1 RTInputByte(ucDa); /* 写1Byte数据*/
72 1 //T_CLK = 1;
73 1 T_RST =0;
74 1 KickDog();
75 1 }
76
77 uchar R1302(uchar ucAddr)//读取DS1302某地址的数据
78 {
79 1 uchar ucDa;
80 1 T_RST = 0;
81 1 T_CLK = 0;
82 1 T_RST = 1;
83 1 RTInputByte(ucAddr); // 地址,命令
84 1 ucDa = RTOutputByte(); // 读1Byte数据
85 1 //T_CLK = 1;
86 1 T_RST =0;
87 1 return(ucDa);
88 1 KickDog();
89 1 }
90
91
92
93
94 //*********************LCD************************/
95 /*************************************************/
96 /* */
97 /* The function write a bit to LCD */
98 /* Designed by xr.li */
99 /* Date 2007-3-21 */
100 /* */
101 /*************************************************/
102 void LCD_WriteBit(bit C_D)
103 {
104 1 DIPIN = C_D;
105 1 delay(1); //waiting for change
106 1 CLKPIN = 1;
107 1 delay(1);
108 1 CLKPIN = 0;
109 1 delay(1);
110 1 CLKPIN = 1;
111 1 }
112
113 /*********************************************************/
114 /* */
115 /* The function write control word to LCD ,for IC1 region*/
116 /* Designed by xr.li */
117 /* Date 2007-3-21 */
C51 COMPILER V6.00i MYLIB 08/21/2007 12:22:11 PAGE 3
118 /* */
119 /*********************************************************/
120 void LCD_WC1(uchar Ctrl_Byte)
121 {
122 1 bit C_C; //name?
123 1 uchar i,Ctrl_ByteA;
124 1 Ctrl_ByteA = Ctrl_Byte;
125 1 CS1PIN = 1;
126 1 CS1PIN = 0;
127 1 C_C = 1;
128 1 LCD_WriteBit(C_C);
129 1 C_C = 0;
130 1 LCD_WriteBit(C_C);
131 1 LCD_WriteBit(C_C);
132 1 for(i=8; i>0;i--)
133 1 {
134 2 if(Ctrl_ByteA & 0x80)
135 2 C_C = 1;
136 2 else
137 2 C_C = 0;
138 2 LCD_WriteBit(C_C);
139 2 Ctrl_ByteA <<= 1;
140 2 }
141 1 C_C = 0;
142 1 LCD_WriteBit(C_C);
143 1 DIPIN = 1;
144 1 CS1PIN = 1;
145 1 KickDog();
146 1 }
147
148
149 /*************************************************/
150 /* */
151 /* The function reset LCD,for IC1 and IC2 region */
152 /* Designed by xr.li */
153 /* Date 2007-3-21 */
154 /* */
155 /*************************************************/
156 void LCD_Reset(uchar region)
157 {
158 1 switch(region)
159 1 {
160 2 case 0x01: //for IC1 region
161 2 LCD_WC1(CMDOFF);
162 2 LCD_WC1(CMDLCDOFF);
163 2 LCD_WC1(CMDON);
164 2 LCD_WC1(CMDLCDON);
165 2 LCD_WC1(CMDB3C4);
166 2 break;
167 2 case 0x02: //for IC2 region
168 2 LCD_WC2(CMDOFF);
169 2 LCD_WC2(CMDLCDOFF);
170 2 LCD_WC2(CMDON);
171 2 LCD_WC2(CMDLCDON);
172 2 LCD_WC2(CMDB3C4);
173 2 break;
174 2 default:
175 2 break;
176 2 }
177 1 }
178 /*************************************************/
179 /* */
C51 COMPILER V6.00i MYLIB 08/21/2007 12:22:11 PAGE 4
180 /* The function write data to LCD */
181 /* Designed by xr.li */
182 /* Date 2007-3-21 */
183 /* */
184 /*************************************************/
185 void LCD_WD1(uchar data_byteB,uchar data_byteA)
186 {
187 1 bit C_A;
188 1 uchar i;
189 1 CS1PIN = 1;
190 1 CS1PIN = 0;
191 1 C_A = 1;
192 1 LCD_WriteBit(C_A);
193 1 C_A = 0;
194 1 LCD_WriteBit(C_A);
195 1 C_A = 1;
196 1 LCD_WriteBit(C_A);
197 1 data_byteB = (data_byteB << 2) & 0x0FC;
198 1 for(i = 6; i > 0; i--)
199 1 {
200 2 if(data_byteB & 0x80) C_A = 1;
201 2 else C_A = 0;
202 2 LCD_WriteBit(C_A);
203 2 data_byteB = data_byteB <<1;
204 2 }
205 1 for(i = 8; i > 0; i--)
206 1 {
207 2 if(data_byteA & 0x01) C_A = 1;
208 2 else C_A = 0;
209 2 LCD_WriteBit(C_A);
210 2 data_byteA = data_byteA >>1;
211 2 }
212 1 DIPIN = 1;
213 1 CS1PIN = 0;
214 1 CS1PIN = 1; // enable write
215 1 KickDog();
216 1 }
217 /*************************************************/
218 /* */
219 /* The function write control to LCD,for IC2 region */
220 /* Designed by xr.li */
221 /* Date 2007-3-22 */
222 /* */
223 /*************************************************/
224 void LCD_WC2(uchar Ctrl_Byte)
225 {
226 1 bit C_C; //name?
227 1 uchar i,Ctrl_ByteA;
228 1 Ctrl_ByteA = Ctrl_Byte;
229 1 CS2PIN = 1;
230 1 CS2PIN = 0;
231 1 C_C = 1;
232 1 LCD_WriteBit(C_C);
233 1 C_C = 0;
234 1 LCD_WriteBit(C_C);
235 1 LCD_WriteBit(C_C);
236 1 for(i=8; i>0;i--)
237 1 {
238 2 if(Ctrl_ByteA & 0x80) C_C = 1;
239 2 else C_C = 0;
240 2 LCD_WriteBit(C_C);
241 2 Ctrl_ByteA <<= 1;
C51 COMPILER V6.00i MYLIB 08/21/2007 12:22:11 PAGE 5
242 2 }
243 1 C_C = 0;
244 1 LCD_WriteBit(C_C);
245 1 DIPIN = 1;
246 1 CS2PIN = 1;
247 1 KickDog();
248 1 }
249 /*************************************************/
250 /* */
251 /* The function write data to LCD */
252 /*where,data_byteB is the LCD RAM address, */
253 /* data_byteA is data to send */
254 /* Designed by xr.li */
255 /* Date 2007-3-22 */
256 /*************************************************/
257 void LCD_WD2(uchar data_byteB,uchar data_byteA)
258 {
259 1 bit C_A;
260 1 uchar i;
261 1 CS2PIN = 1;
262 1 CS2PIN = 0;
263 1 C_A = 1; //101:write data to ram
264 1 LCD_WriteBit(C_A);
265 1 C_A = 0;
266 1 LCD_WriteBit(C_A);
267 1 C_A = 1;
268 1 LCD_WriteBit(C_A);
269 1 data_byteB = (data_byteB << 2) & 0x0FC;
270 1
271 1 for(i = 6; i > 0; i--)
272 1 {
273 2 if(data_byteB & 0x80)C_A = 1;
274 2 else C_A = 0;
275 2 LCD_WriteBit(C_A);
276 2 data_byteB = data_byteB <<1;
277 2 }
278 1 for(i = 8; i > 0; i--)
279 1 {
280 2 if(data_byteA & 0x01)C_A = 1;
281 2 else C_A = 0;
282 2 LCD_WriteBit(C_A);
283 2 data_byteA = data_byteA >>1;
284 2 }
285 1 DIPIN = 1;
286 1 CS2PIN = 0;
287 1
288 1 CS2PIN = 1; // enable write
289 1 KickDog();
290 1
291 1 }
292 /**************************************************/
293 /* */
294 /* The function send display number to IC1 region,*/
295 /* where Sx is the trouble type to display */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -