📄 manage.lst
字号:
C51 COMPILER V8.01 MANAGE 03/28/2006 09:49:23 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE MANAGE
OBJECT MODULE PLACED IN Manage.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Manage.C LARGE OPTIMIZE(9,SIZE) BROWSE DEBUG OBJECTEXTEND CODE
line level source
1 /*
2 * Copyright (c) 2004,成都港顺科技发展有限公司
3 * All rights reserved.
4 *
5 * 编 译 器:Keil:C Compiler:7.20;Assembler:7.10
6 * 工程名称:POS-Test.UV2
7 * 文件名称:Manage.C
8 * 摘 要:商品信息管理
9 *
10 * 单 片 机:uPSD3254
11 * 当前版本:0.4
12 * 作 者:李凯,雍继兵
13 * 完成日期:2004-12-7 14:45
14 */
15
16 #include "Main.h"
17 #include "Report.h"
18
19 #define write 1 // write = 1 no write = 0
20 #define Erasetest 1 // Erase = 1 no Erase = 0
21 #define Debug 1
22
23 #define LinkER 0x50
24 #define Overtime 0x52
25 #define CrCEr 0x51
26 #define ComandEr 0x53
27 #define ReceiveOver 0x54
28
29 #define SPDown 0x30
30 #define XMDown 0x31
31 #define DSPDown 0x32
32 #define DXMDown 0x33
33 #define ZKXW 0x34
34 #define ZKZW 0x35
35 #define DownTC 0x36
36 #define BaudrateSet 0x37
37
38 #define Com0 0x1b
39 #define Com1 0x10
40
41
42 #define Bps9600 1
43 #define Bps19200 2
44
45 #define SPlen 39
46 #define XMlen 33
47
48 #define xWStartadr 0
49 #define zWStartadr 0x10000
50
51 uchar BautRateFg;
52 uchar StartDown(uchar type,ulong address,uchar *EraseFlag,uchar len);
53
54 uchar InputTime(uchar row,uchar col,uchar *dat,uchar mode)
55 {
C51 COMPILER V8.01 MANAGE 03/28/2006 09:49:23 PAGE 2
56 1 uchar i,val,count,tp[3];
57 1 uint cnt,time=0;
58 1 uchar const str[]={K_0,K_1,K_2,K_3,K_4,K_5,K_6,K_7,K_8,K_9,
59 1 K_RIGHT,K_DOWN,K_UP,K_LEFT,K_HJ,K_TC,K_QC};
60 1
61 1 cnt=CursorTime;
62 1 while(1)
63 1 {
64 2 if(mode)
65 2 {//输入两位数
66 3 tp[0]=(*dat>>4)+'0';
67 3 tp[1]=(*dat&0x0F)+'0';
68 3 tp[2]=0;
69 3 }
70 2 else
71 2 {//输入一位数
72 3 tp[0]=*dat+'0';
73 3 tp[1]=0;
74 3 }
75 2 i=0xF0;
76 2 val=0xFF;
77 2 count=0;
78 2 while(val==0xFF)
79 2 {
80 3 val = GetKey();
81 3 if(val!=0xFF)break;
82 3 time++;
83 3 if(time>cnt)
84 3 {
85 4 time = 0;
86 4 LcdDisplay(row,col,tp,i);
87 4 if(i==0)i=0xF0;
88 4 else i=0;
89 4 }
90 3 }
91 2 for(i=0;i<10;i++)
92 2 {
93 3 if(val==str[i])
94 3 {
95 4 if(mode)
96 4 {
97 5 *dat<<=4;
98 5 *dat|=i;
99 5 }
100 4 else *dat=i;
101 4 }
102 3 }
103 2 if(val==K_QC)
104 2 {
105 3 *dat=0;
106 3 continue;
107 3 }
108 2 for(i=10;i<16;i++)
109 2 {
110 3 if(val==str[i])
111 3 {
112 4 LcdDisplay(row,col,tp,0);
113 4 return val;
114 4 }
115 3 }
116 2 }
117 1 }
C51 COMPILER V8.01 MANAGE 03/28/2006 09:49:23 PAGE 3
118
119 uchar ShowTime(uchar mode)
120 {
121 1 uchar str1[7]={"2000年"};
122 1 uchar str2[17]={"00月00日 星期0"};
123 1 uchar str3[13]={"00时00分00秒"};
124 1 uchar k;
125 1 uint time,cnt;
126 1
127 1 cnt=CursorTime;
128 1 if(mode==0)
129 1 LcdDisplay(0,56,"当 前 时 间",3);
130 1 else
131 1 LcdDisplay(0,56,"时 间 设 置",3);
132 1 while(1)
133 1 {
134 2 ReadDate();
135 2
136 2 str1[2]=(InvoDate[1]>>4)+'0';
137 2 str1[3]=(InvoDate[1]&0x0F)+'0'; //年
138 2 LcdDisplay(16,72,str1,1);
139 2
140 2 str2[0]=(InvoDate[2]>>4)+'0';
141 2 str2[1]=(InvoDate[2]&0x0F)+'0'; //月
142 2 str2[4]=(InvoDate[3]>>4)+'0';
143 2 str2[5]=(InvoDate[3]&0x0F)+'0'; //日
144 2 str2[13]=(InvoDate[4]&0x0F)+'0';//星期
145 2 LcdDisplay(32,40,str2,1);
146 2
147 2 str3[0]=(InvoDate[5]>>4)+'0';
148 2 str3[1]=(InvoDate[5]&0x0F)+'0'; //时
149 2 str3[4]=(InvoDate[6]>>4)+'0';
150 2 str3[5]=(InvoDate[6]&0x0F)+'0'; //分
151 2 str3[8]=(InvoDate[7]>>4)+'0';
152 2 str3[9]=(InvoDate[7]&0x0F)+'0'; //秒
153 2 LcdDisplay(48,48,str3,1);
154 2
155 2 if(mode!=0)return 1;
156 2 else
157 2 {
158 3 k=0xFF;
159 3 time=0;
160 3 while(k==0xFF)
161 3 {
162 4 time++;
163 4 if(time>cnt)break;
164 4 k = GetKey();
165 4 if(k==K_HJ || k==K_TC)
166 4 return 0;
167 4 }
168 3 }
169 2 }
170 1 }
171
172 void TimeSetup(uchar mode)
173 {//mode=2:只能修改时.分.秒;mode=1: 修改全部;mode=0: 只显示时间不修改时间
174 1 uchar i,j,k,f,m;
175 1 struct coordinate
176 1 {
177 1 uchar row;
178 1 uchar col;
179 1 };
C51 COMPILER V8.01 MANAGE 03/28/2006 09:49:23 PAGE 4
180 1 struct coordinate tp[7]={{16,88},{32,40},{32,72},{32,144},{48,48},{48,80},{48,112}};
181 1
182 1 while(1)
183 1 {
184 2 if(ShowTime(mode)==0)return;
185 2
186 2 if(mode==1)
187 2 m=0;
188 2 // if(mode==2)
189 2 else
190 2 m=4;
191 2 i=m;
192 2 while(1)
193 2 {
194 3 if(i!=3)j=1;
195 3 else j=0;
196 3 k=InputTime(tp[i].row,tp[i].col,&InvoDate[i+1],j);
197 3 if(k==K_TC)return;
198 3 if(k==K_HJ)
199 3 {
200 4 f=1;
201 4 InvoDate[0]=0x20;
202 4 if(Verdict(InvoDate)==0)f=0;
203 4 if(InvoDate[4]>7 || InvoDate[4]==0)f=0;
204 4 if(InvoDate[5]>0x23 || InvoDate[6]>0x59 || InvoDate[7]>0x59)f=0;
205 4 if(f==1)break;
206 4 else
207 4 {
208 5 Hint(16,16,"时间格式错误!",3);
209 5 f=0;
210 5 break;
211 5 }
212 4 }
213 3 if(k==K_DOWN || k==K_RIGHT)
214 3 {
215 4 if(i<6)i++;
216 4 else i=m;
217 4 }
218 3 if(k==K_UP || k==K_LEFT)
219 3 {
220 4 if(i>m)i--;
221 4 else i=6;
222 4 }
223 3 }
224 2 if(f==1)break;
225 2 }
226 1 SetTime(&InvoDate[1]);
227 1 }
228
229 void StrToBar(uchar *str,uchar *bar)
230 {
231 1 gyt2 *xp;
232 1 gyt4 *tp;
233 1 ulong n;
234 1 uint m;
235 1 uchar i;
236 1
237 1 for(m=0,i=0;i<4;i++)
238 1 m=m*10+str[i]-'0';
239 1 for(n=0,i=4;i<13;i++)
240 1 n=n*10+str[i]-'0';
241 1 xp = bar;
C51 COMPILER V8.01 MANAGE 03/28/2006 09:49:23 PAGE 5
*** WARNING C182 IN LINE 241 OF MANAGE.C: pointer to different objects
242 1 xp->dat = m;
243 1 tp = &bar[2];
*** WARNING C182 IN LINE 243 OF MANAGE.C: pointer to different objects
244 1 tp->dat = n;
245 1 }
246
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -