📄 check.lst
字号:
C51 COMPILER V8.01 CHECK 03/28/2006 09:49:25 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE CHECK
OBJECT MODULE PLACED IN Check.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Check.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 * 文件名称:Check.C
8 * 摘 要:税控机自检
9 *
10 * 单 片 机:uPSD3254
11 * 当前版本:0.4
12 * 作 者:林云
13 * 完成日期:2004-10-25 14:45
14 */
15 #include "Main.h"
16
17 //显示方格
18 void LcdDisBlock(void)
19 {
20 1 unsigned char i,j,k,val = 0xff,val1=0;
21 1
22 1 LcdWriteCommand(0x3f,LcdChip1);
23 1 LcdWriteCommand(0x3f,LcdChip2);
24 1 LcdWriteCommand(0x3f,LcdChip3);
25 1 for(i=0;i<8;i++)
26 1 {
27 2 LcdWriteCommand(i|0xb8,LcdChip1);
28 2 LcdWriteCommand(i|0xb8,LcdChip2);
29 2 LcdWriteCommand(i|0xb8,LcdChip3);
30 2 LcdWriteCommand(0x40,LcdChip1); //列地址设置指令 左半屏
31 2 LcdWriteCommand(0x40,LcdChip2); //列地址设置指令 右半屏
32 2 LcdWriteCommand(0x40,LcdChip3); //列地址设置指令 右半屏
33 2
34 2 for(j=0;j<4;j++)
35 2 {
36 3 for(k=0;k<16;k++)
37 3 LcdWriteData(val,LcdChip1);
38 3 val=~val;
39 3 }
40 2 for(j=0;j<4;j++)
41 2 {
42 3 for(k=0;k<16;k++)
43 3 LcdWriteData(val,LcdChip2);
44 3 val=~val;
45 3 }
46 2 for(j=0;j<4;j++)
47 2 {
48 3 for(k=0;k<16;k++)
49 3 LcdWriteData(val,LcdChip3);
50 3 val=~val;
51 3 }
52 2 val = val1;
53 2 val1 = ~val1;
54 2 }
55 1 }
C51 COMPILER V8.01 CHECK 03/28/2006 09:49:25 PAGE 2
56
57 //LCD测试
58 void CheckLcd(void)
59 { uchar val;
60 1 uint i;
61 1
62 1 LcdDisplay(0,0," 以下测试您应可以在显",4);
63 1 LcdDisplay(16,0,"示屏上看见一些黑白方块",4);
64 1 LcdDisplay(32,16,"按[确认]键继续",4);
65 1 LcdDisplay(48,16,"按[退出]键退出",4);
66 1 while(1)
67 1 {
68 2 val = GetKey();
69 2 if(val==0xff) continue;
70 2 if(val==K_HJ) //确认
71 2 {
72 3 LcdDisBlock(); //显示黑白方块
73 3 for(i=0;i<35000;i++)
74 3 if(GetKey()==K_HJ) break; //延时
75 3 LcdClear(192);
76 3 LcdDisplay(8,24,"你看见黑白方块了吗?",4);
77 3 LcdDisplay(32,16,"看见了请按[1]键",4);
78 3 LcdDisplay(48,16,"没看见请按[0]键",4);
79 3 while(1)
80 3 { val = GetKey();
81 4 if(val!=0xff)
82 4 { if(val==K_0) //0键
83 5 { LcdDisplay(0,0," ",4); //清除本行内容
84 6 LcdDisplay(16,56,"LCD有故障!",4);
85 6 LcdDisplay(32,0," ",4);
86 6 LcdDisplay(48,16,"按[退出]键退出",4);
87 6 i = 0;
88 6 while(i<25000) //如果没有按键, 延时退出
89 6 { val = GetKey();
90 7 if(val==K_TC) return;
91 7 i++;
92 7 }
93 6 return;
94 6 }
95 5 if(val==K_1) //1键
96 5 { LcdDisplay(0,0," ",4); //清除本行内容
97 6 LcdDisplay(16,56,"LCD完好无损!",4);
98 6 LcdDisplay(32,0," ",4);
99 6 LcdDisplay(48,16,"按[退出]键退出",4);
100 6 i = 0;
101 6 while(i<25000) //如果没有按键, 延时退出
102 6 { val = GetKey();
103 7 if(val==K_TC) return;
104 7 i++;
105 7 }
106 6 return;
107 6 }
108 5 }
109 4 }
110 3 }
111 2 if(val==K_TC) //退出
112 2 {
113 3 return;
114 3 }
115 2 }
116 1 }
117
C51 COMPILER V8.01 CHECK 03/28/2006 09:49:25 PAGE 3
118 struct KeyIndex
119 { uchar KeyVal;
120 uchar *KeyChina;
121 };
122 //键盘测试
123 void CheckKey(void)
124 {
125 1 uchar i,val,str[10],num;
126 1 const struct KeyIndex InputIndex[] =
127 1 {
128 1 {K_0,"数字0"},{K_1,"数字1"},{K_2,"数字2"},
129 1 {K_3,"数字3"},{K_4,"数字4"},{K_5,"数字5"},
130 1 {K_6,"数字6"},{K_7,"数字7"},{K_8,"数字8"},
131 1 {K_9,"数字9"},{K_00,"数字00"},{K_DOT,"小数点"},
132 1 {K_SL,"数量/乘号"},{K_BF,"百分比%"},{K_PLU,"PLU"},
133 1 {K_XM1,"项目1"},{K_XM2,"项目2"},{K_XM3,"项目3"},
134 1 {K_XM4,"项目4"},{K_XM5,"项目5"},{K_XM6,"项目6"},
135 1 {K_XM7,"项目7"},{K_XM8,"项目8"},{K_XM9,"项目9"},
136 1 {K_XM10,"项目10"},{K_XM11,"项目11"},{K_XM12,"项目12"},
137 1 {K_XM13,"项目13"},{K_XM14,"项目14"},{K_XM15,"项目15"},
138 1 {K_XM16,"项目16"},{K_XM17,"项目17"},{K_XM18,"项目18"},
139 1 {K_XM19,"项目19"},{K_XM20,"项目20"},{K_XM21,"项目21"},
140 1 {K_XM22,"项目22"},{K_XM23,"项目23"},{ K_XM24,"项目24"},
141 1 {K_XM25,"项目25"},{K_HD,"换档"},{K_JZ,"进纸"},{K_TZ,"退纸"},
142 1 {K_QC,"清除"},{K_LJ,"订正"},{K_SJ,"时间"},
143 1 {K_DZ,"打折"},{K_JF,"加费"},{K_XJ,"小计"},{K_BZ,"帮助"},
144 1 {K_TH,"退票/废票"}, {K_SR,"输入切换"},{K_TC,"退出/注销"},
145 1 {K_DL,"签到/登陆"},{K_CX,"销售查询"},{K_SK,"刷卡消费"},
146 1 {K_GN,"系统功能"},{K_TM,"手工条码"}, {K_HJ,"合计/确认"},
147 1 {K_UP,"向上"},{K_DOWN,"向下"},{K_LEFT,"向左"},{K_RIGHT,"向右"}
148 1 };
149 1
150 1 num=0;
151 1 LcdDisplay(0, 0," 本程序在您按键时会将对",4);
152 1 LcdDisplay(16,0,"应的键显示出来; 连续按两",4);
153 1 LcdDisplay(32,0,"次<退出>键退出本测试程序",4);
154 1 LcdDisplay(48,0,"--按<确认>键开始测试",4);
155 1 while(1)
156 1 {
157 2 val = KeyScan();
158 2 if(val==K_HJ) //确认
159 2 {
160 3 LcdDisplay(8, 16,"请按键:",3);
161 3 DisplayFullRec(6,74,26,172,1);
162 3 LcdDisplay(40, 24,"按键数:0 共63个键",4);
163 3 while(1)
164 3 {
165 4 val = KeyScan();
166 4 for(i=0;i<63;i++)
167 4 {
168 5 if(val == InputIndex[i].KeyVal) //找到键
169 5 {
170 6 LcdDisplay(8, 76," ",0); //清除键值
171 6 LcdDisplay(8, 76,InputIndex[i].KeyChina,0); //显示键值
172 6 if(val==K_TC)num++;
173 6 if(num>1)return;
174 6 }
175 5 }
176 4 NumToStr(num,str,SwitchInt); //转换成字符串
177 4 LcdDisplay(40,80,str,0);
178 4 }
179 3 }
C51 COMPILER V8.01 CHECK 03/28/2006 09:49:25 PAGE 4
180 2
181 2 }
182 1 }
183 //打印机测试
184 void CheckPrint(void)
185 { uchar val,str[10];
186 1
187 1 //BlackOrientation();
188 1 LcdClear(192);
189 1 LcdDisplay(8,8,"确实要打印测试页吗?",4);
190 1 LcdDisplay(32,16,"按[确认]键打印",4);
191 1 LcdDisplay(48,16,"按[退出]键退出",4);
192 1 while(1)
193 1 { val = GetKey();
194 2 if(val == K_HJ) //确认
195 2 { LcdClear(192);
196 3 LcdDisplay(8,0," 如果测试页已打印请按确",0);
197 3 LcdDisplay(24,0,"认键,否则打印机有故障!",0);
198 3 LcdDisplay(48,16," [确认] [退出]",4);
199 3 str[0] = 0x1c; str[1] = 0x57; str[2] = 1;
200 3 UartTxdPrinter(3,str);
201 3 PrintStr("成都港顺科技发展有限公司");
202 3 PrintStr(" 扫印机测试页");
203 3 str[2] = 0;
204 3 UartTxdPrinter(3,str);
205 3 PrintStr("恭喜!");
206 3 PrintStr("如果您可以读取这个信息,则说明这台税控机上的打印机没有问题!");
207 3 PrintStr("以下信息是本机的一些参数:");
208 3 PrintStr("税控机型号: GS-800");
209 3 PrintStr("操作系统: GS-OS");
210 3 PrintStr("打印机驱动程序: PrintStr");
211 3 PrintStr("CPU: 24MHz");
212 3 PrintStr("RAM: 32K");
213 3 PrintStr("ROM: 256K+32K");
214 3 PrintStr("这是打印测试页的结尾.\n\n");
215 3 while(1)
216 3 { val = GetKey();
217 4 if((val == K_HJ)||(val==K_TC)) return;
218 4 }
219 3 }
220 2 if(val == K_TC) return;
221 2 }
222 1 }
223 void CheckBox(void)
224 { uchar val;
225 1
226 1 LcdClear(192);
227 1 LcdDisplay(0,64,"钱箱测试",0);
228 1 LcdDisplay(24,10,"请按[1]键打开钱箱!",0);
229 1 LcdDisplay(48,16," [确认] [退出]",4);
230 1 while(1)
231 1 { val = GetKey();
232 2 if((val==K_HJ)||(val==K_TC)) return;
233 2 if(val==K_1)
234 2 {
235 3 //开钱箱
236 3 }
237 2 }
238 1 }
239 //通信测试
240 void CheckCom(void)
241 { uchar val;
C51 COMPILER V8.01 CHECK 03/28/2006 09:49:25 PAGE 5
242 1 ulong SendNum=0,RecvNum=0,TryNum=0,ErrorNum=0;
243 1
244 1 LcdDisplay(0,64,"通信测试",4);
245 1 LcdDisplay(16,16," 请连接好通讯线并打开管",4);
246 1 LcdDisplay(32,0,"理软件,你连接好了吗?",4);
247 1 LcdDisplay(48,16," [确认] [退出]",4);
248 1 while(1)
249 1 { val = GetKey();
250 2 if(val == K_TC) return;
251 2 if(val == K_HJ)
252 2 {
253 3 LcdClear(192);
254 3 LcdDisplay(8,0, " 发送:0 接收:0 ",4);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -