📄 check.c.bak
字号:
/*
* Copyright (c) 2004,成都港顺科技发展有限公司
* All rights reserved.
*
* 编 译 器:Keil:C Compiler:7.20;Assembler:7.10
* 工程名称:POS-Test.UV2
* 文件名称:Check.C
* 摘 要:税控机自检
*
* 单 片 机:uPSD3254
* 当前版本:0.4
* 作 者:林云
* 完成日期:2004-10-25 14:45
*/
#include "Main.h"
//显示方格
void LcdDisBlock(void)
{
unsigned char i,j,k,val = 0xff,val1=0;
LcdWriteCommand(0x3f,LcdChip1);
LcdWriteCommand(0x3f,LcdChip2);
LcdWriteCommand(0x3f,LcdChip3);
for(i=0;i<8;i++)
{
LcdWriteCommand(i|0xb8,LcdChip1);
LcdWriteCommand(i|0xb8,LcdChip2);
LcdWriteCommand(i|0xb8,LcdChip3);
LcdWriteCommand(0x40,LcdChip1); //列地址设置指令 左半屏
LcdWriteCommand(0x40,LcdChip2); //列地址设置指令 右半屏
LcdWriteCommand(0x40,LcdChip3); //列地址设置指令 右半屏
for(j=0;j<4;j++)
{
for(k=0;k<16;k++)
LcdWriteData(val,LcdChip1);
val=~val;
}
for(j=0;j<4;j++)
{
for(k=0;k<16;k++)
LcdWriteData(val,LcdChip2);
val=~val;
}
for(j=0;j<4;j++)
{
for(k=0;k<16;k++)
LcdWriteData(val,LcdChip3);
val=~val;
}
val = val1;
val1 = ~val1;
}
}
//LCD测试
void CheckLcd(void)
{ uchar val;
uint i;
LcdDisplay(0,0," 以下测试您应可以在显",4);
LcdDisplay(16,0,"示屏上看见一些黑白方块",4);
LcdDisplay(32,16,"按[确认]键继续",4);
LcdDisplay(48,16,"按[退出]键退出",4);
while(1)
{
val = GetKey();
if(val==0xff) continue;
if(val==K_HJ) //确认
{
LcdDisBlock(); //显示黑白方块
for(i=0;i<35000;i++)
if(GetKey()==K_HJ) break; //延时
LcdClear(192);
LcdDisplay(8,24,"你看见黑白方块了吗?",4);
LcdDisplay(32,16,"看见了请按[1]键",4);
LcdDisplay(48,16,"没看见请按[0]键",4);
while(1)
{ val = GetKey();
if(val!=0xff)
{ if(val==K_0) //0键
{ LcdDisplay(0,0," ",4); //清除本行内容
LcdDisplay(16,56,"LCD有故障!",4);
LcdDisplay(32,0," ",4);
LcdDisplay(48,16,"按[退出]键退出",4);
i = 0;
while(i<25000) //如果没有按键, 延时退出
{ val = GetKey();
if(val==K_TC) return;
i++;
}
return;
}
if(val==K_1) //1键
{ LcdDisplay(0,0," ",4); //清除本行内容
LcdDisplay(16,56,"LCD完好无损!",4);
LcdDisplay(32,0," ",4);
LcdDisplay(48,16,"按[退出]键退出",4);
i = 0;
while(i<25000) //如果没有按键, 延时退出
{ val = GetKey();
if(val==K_TC) return;
i++;
}
return;
}
}
}
}
if(val==K_TC) //退出
{
return;
}
}
}
struct KeyIndex
{ uchar KeyVal;
uchar *KeyChina;
};
//键盘测试
void CheckKey(void)
{
uchar i,val,str[10],num;
const struct KeyIndex InputIndex[] =
{
{K_0,"数字0"},{K_1,"数字1"},{K_2,"数字2"},
{K_3,"数字3"},{K_4,"数字4"},{K_5,"数字5"},
{K_6,"数字6"},{K_7,"数字7"},{K_8,"数字8"},
{K_9,"数字9"},{K_00,"数字00"},{K_DOT,"小数点"},
{K_SL,"数量/乘号"},{K_BF,"百分比%"},{K_PLU,"PLU"},
{K_XM1,"项目1"},{K_XM2,"项目2"},{K_XM3,"项目3"},
{K_XM4,"项目4"},{K_XM5,"项目5"},{K_XM6,"项目6"},
{K_XM7,"项目7"},{K_XM8,"项目8"},{K_XM9,"项目9"},
{K_XM10,"项目10"},{K_XM11,"项目11"},{K_XM12,"项目12"},
{K_XM13,"项目13"},{K_XM14,"项目14"},{K_XM15,"项目15"},
{K_XM16,"项目16"},{K_XM17,"项目17"},{K_XM18,"项目18"},
{K_XM19,"项目19"},{K_XM20,"项目20"},{K_XM21,"项目21"},
{K_XM22,"项目22"},{K_XM23,"项目23"},{ K_XM24,"项目24"},
{K_XM25,"项目25"},{K_HD,"换档"},{K_JZ,"进纸"},{K_TZ,"退纸"},
{K_QC,"清除"},{K_LJ,"订正"},{K_SJ,"时间"},
{K_DZ,"打折"},{K_JF,"加费"},{K_XJ,"小计"},{K_BZ,"帮助"},
{K_TH,"退票/废票"}, {K_SR,"输入切换"},{K_TC,"退出/注销"},
{K_DL,"签到/登陆"},{K_CX,"销售查询"},{K_SK,"刷卡消费"},
{K_GN,"系统功能"},{K_TM,"手工条码"}, {K_HJ,"合计/确认"},
{K_UP,"向上"},{K_DOWN,"向下"},{K_LEFT,"向左"},{K_RIGHT,"向右"}
};
num=0;
LcdDisplay(0, 0," 本程序在您按键时会将对",4);
LcdDisplay(16,0,"应的键显示出来; 连续按两",4);
LcdDisplay(32,0,"次<退出>键退出本测试程序",4);
LcdDisplay(48,0,"--按<确认>键开始测试",4);
while(1)
{
val = KeyScan();
if(val==K_HJ) //确认
{
LcdDisplay(8, 16,"请按键:",3);
DisplayFullRec(6,74,26,172,1);
LcdDisplay(40, 24,"按键数:0 共63个键",4);
while(1)
{
val = KeyScan();
for(i=0;i<63;i++)
{
if(val == InputIndex[i].KeyVal) //找到键
{
LcdDisplay(8, 76," ",0); //清除键值
LcdDisplay(8, 76,InputIndex[i].KeyChina,0); //显示键值
if(val==K_TC)num++;
if(num>1)return;
}
}
NumToStr(num,str,SwitchInt); //转换成字符串
LcdDisplay(40,80,str,0);
}
}
}
}
//打印机测试
void CheckPrint(void)
{ uchar val,str[10];
//BlackOrientation();
LcdClear(192);
LcdDisplay(8,8,"确实要打印测试页吗?",4);
LcdDisplay(32,16,"按[确认]键打印",4);
LcdDisplay(48,16,"按[退出]键退出",4);
while(1)
{ val = GetKey();
if(val == K_HJ) //确认
{ LcdClear(192);
LcdDisplay(8,0," 如果测试页已打印请按确",0);
LcdDisplay(24,0,"认键,否则打印机有故障!",0);
LcdDisplay(48,16," [确认] [退出]",4);
str[0] = 0x1c; str[1] = 0x57; str[2] = 1;
UartTxdPrinter(3,str);
PrintStr("成都港顺科技发展有限公司");
PrintStr(" 扫印机测试页");
str[2] = 0;
UartTxdPrinter(3,str);
PrintStr("恭喜!");
PrintStr("如果您可以读取这个信息,则说明这台税控机上的打印机没有问题!");
PrintStr("以下信息是本机的一些参数:");
PrintStr("税控机型号: GS-800");
PrintStr("操作系统: GS-OS");
PrintStr("打印机驱动程序: PrintStr");
PrintStr("CPU: 24MHz");
PrintStr("RAM: 32K");
PrintStr("ROM: 256K+32K");
PrintStr("这是打印测试页的结尾.\n\n");
while(1)
{ val = GetKey();
if((val == K_HJ)||(val==K_TC)) return;
}
}
if(val == K_TC) return;
}
}
void CheckBox(void)
{ uchar val;
LcdClear(192);
LcdDisplay(0,64,"钱箱测试",0);
LcdDisplay(24,10,"请按[1]键打开钱箱!",0);
LcdDisplay(48,16," [确认] [退出]",4);
while(1)
{ val = GetKey();
if((val==K_HJ)||(val==K_TC)) return;
if(val==K_1)
{
//开钱箱
}
}
}
//通信测试
void CheckCom(void)
{ uchar val;
ulong SendNum=0,RecvNum=0,TryNum=0,ErrorNum=0;
LcdDisplay(0,64,"通信测试",4);
LcdDisplay(16,16," 请连接好通讯线并打开管",4);
LcdDisplay(32,0,"理软件,你连接好了吗?",4);
LcdDisplay(48,16," [确认] [退出]",4);
while(1)
{ val = GetKey();
if(val == K_TC) return;
if(val == K_HJ)
{
LcdClear(192);
LcdDisplay(8,0, " 发送:0 接收:0 ",4);
LcdDisplay(24,0," 重试:0 错误:0 ",4);
LcdDisplay(48,16," [确认] [退出]",4);
while(1)
{ //UartRxd(6,"888888");
val = GetKey();
if((val==K_HJ)||(val==K_TC)) return;
}
}
}
}
/*
////////////////////////////////////////////////////////////////////
//Mode = 1 : 单字节编码
//Mode = 2 : 双字节编码
//Mode = 4 : 四字节编码
////////////////////////////////////////////////////////////////////
void CodingDisplay(uchar mode)
{
uchar i,CodeDis[10],dat[2];
uchar str1[]={"1字节编码"},str2[25];
// ulong Bm;
switch(mode)
{
case 1:
strcpy(str2,"20<=编码<=7F");
break;
case 2:
str1[0]='2';
strcpy(str2,"8140<=编码<=F7FE");
break;
case 4:
str1[0]='4';
strcpy(str2,"8139EE39--82358738");
break;
default:return;
}
LcdDisplay(0,0,str1,3);
LcdDisplay(16,0,str2,0);
i=mode;
mode<<=1;
while(1)
{
LcdDisplay(32,0,"输入编码: ",0);
LcdDisplay(48,0,"对应字符:",0);
dat[0]=0;
memset(CodeDis,0,sizeof(CodeDis));
GetBcd(32,72,CodeDis,mode,dat);
if(dat[0] == K_TC)return;
CodeDis[i]=0;
LcdDisplay(48,72,CodeDis,0);
}
}
void CheckGB18030()
{
uchar Ln=1,Hov=1,InitKey[3];
while(1)
{
WindowsSet(3);
strcpy(&WinHint[0][1],"1.单字节编码");
strcpy(&WinHint[1][1],"2.双字节编码");
strcpy(&WinHint[2][1],"3.四字节编码");
InitKey[0]=K_HJ;
InitKey[1]=K_TC;
InitKey[2]=0;
Ln = Windows(Ln,0,InitKey);
if(*InitKey == K_TC) return;
switch(Ln)
{
case 1:
CodingDisplay(1);
break;
case 2:
CodingDisplay(2);
break;
case 3:
CodingDisplay(4);
break;
default:break;
}
}
}
*/
void CheckSystem(void)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -