⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.h

📁 用keil开发的.单片机税控器程序.单片机用的是AT公司的.upsd3245
💻 H
📖 第 1 页 / 共 3 页
字号:
extern uchar xdata SalerNo;						//收款员编号

extern uchar xdata WinHint[12][26],WinDat[12][26];//WinVfd[12][3],窗体函数参数


//-----------------------------------函数声明-----------------------------------------------------------

// ------------------------- Others--------------------------------------------------------
ulong CalculateTime(ulong time,uchar x);
void  PowerOffHint(uchar *str,uchar *dat,uchar flg);
void  ErrorHint(uchar *str,uint num);
void  Hint(uchar x,uchar y,uchar *str,uchar mode);
void  Beep(ulong n);
uchar Windows(uchar no,uchar mode,uchar *key);
void  WindowsSet(uchar x);
uchar ScanNumber(uchar row,uchar col,uchar dat,uchar mode);
void  SalerManage();
void  ManageSet();

uint  CRC16(uchar *ptr, uint len);
void  Report();
void  AmendPrice(uchar f,uchar t,ulong price);
void  WareDown();

void  FlashTest();//?????????????????????


void  CheckSystem(void);//????????????????


void  PosTest();//?????????????????????


// ------------------------- Convert---------------------------
void  BcdToBar(uchar *bcd,uchar *bar);
void  BarToBcd(uchar *bar,uchar *bcd);
void  StrToBar(uchar *str,uchar *bar);
void  StrToBcd(uchar len,uchar *str,uchar *bcd);
void  BcdToStr(uchar len,uchar *bcd,uchar *str,uchar mode);
void  NumToStr(ulong dat, uchar *str, uchar mode);


//-------------------- Sale------------------------------------------------------------//
void  PowerDispose(uint no,uchar len,uchar *str);

void  SysIni();

uchar InvoiceCheck(uchar x);
void  Sale();
void  GetPlu(uchar n);
uchar VerifyBossPwd();
uchar Login();
void  DeclareAddUp();
void  DailySign(uchar mode);

//-------------------- USB------------------------------------------------------------//
void  InitUSB(void);
uchar Receive(uint Len,uchar *Dat);
void  UsbSend(uint Len,uchar *Dat);


//--------------------UART------------------------------------------------------------//
void  UartSet(uchar ch,uchar timer,uchar mode,uchar net,uint baudrate);
void  UartTxd(uint Len,uchar *str);
void  UartRxd(uint Len,uchar *str);
void  UartTxd_Down(uchar flag,uint Len,uchar *str);
uchar UartRxd_Down(uchar flag,uint Len,uchar *str);

void  PcCom();

void  RS485Rxd(uint Len,uchar *str);
void  RS485Txd(uint Len,uchar *str);


//--------------------ScanerIni----------------------------------------------------------//
void  ScanerIni();


//------------------SIM---------------------------------------------------------------//

void  SimIni(uchar ch);
void  SimDeactive(uchar ch);
void  SimInt();
uchar SimRstCold(uchar ch);
uint  SimBpsSet(uint bps,uchar card);
uchar SimDetect(uchar x);
uint  SimCmd(uchar tlen,uchar no);
void  ReadBinary(uchar xp1,uchar xp2,uchar le,uchar card);
void  VerifyFiscalPin();
void  VerifyPin(uchar xp2,uchar lc,uchar *dat,uchar card);
void  FiscalCashRegisterIni();
void  SelectFile(uchar xp1,uchar xp2,uchar lc,uchar *dat,uchar card);
void  GetChallenge(uchar le,uchar *dat,uchar card);
uint  GetResponse(uchar le,uchar card);
void  IssueInvoice(uchar *dat);
void  Distribute_Invoice_NB();
void  InternalAtuhntication(uchar xp2,uchar *dat,uchar card);
void  ExternalAuthentication(uchar xp2,uchar *dat,uchar card);
uchar UpdateControls();
uchar AutoDailySign();
void  DeclareDuty(ulong time,uchar mode);
void  DailyCollectSign(uchar xp2,uchar *dat,uchar *str);
uint  ReadRecord(uchar m,uchar xp1,uchar xp2,uchar le,uchar card);
void  UpdateRecord(uchar xp1,uchar lc,uchar *dat,uchar card);
uchar DistributeInvoice(uchar x);
uchar InputInvoice(uchar *dat);
void  InvoTomeWrite();
uchar FiscalIdentify(uchar x);
uchar UserIdentify(uchar x);
uchar ImportInvoice();
uchar ManagementIdentify();
uchar CheckDeclareDat(uchar *dat,uchar mode);
uchar CheckDailyDat(uchar *dat,uchar mode);
uchar CheckInvoiceDat(uchar *dat,uchar mode);
uchar DeclareFlgQuery();
void  WriteCheckDat();
void  TaxCom();
void  TaxManage();


//-----------------------Printer----------------------------------------------------------------//

void  PrinterIni();
void  PrintStr(uchar *str); //打印字符串
void  PrintItem(uchar *str,ulong num,ulong price);//打印项目,PLU
// *str:项目名称;rice:价格;Num:数量;
void  PrintStrNum(uchar *str,ulong dat,uchar mode);
//打印一个字符串*str,后面紧跟一个数字dat,flag=0:打印为整数,flag=1:打印为浮点数
void  PrintTimeNo(uchar no);
//time:时间(BCD码);no:收款员编号
void  PaperControl(bit direction,uchar num);
//direction=0:退纸,direction=1:进纸;num:走纸的长度(1/144英寸)
void  PaperSet(uchar direction,uchar n);
void  UartTxdPrinter(uchar len,uchar *str);

void  PrintCodeNum(uchar *str,bit flag,uchar *Invoice_CN,uchar n);
//税控码与发票代码功能函数
//str:打印字符串   Invoice_CN:打印数据
//flag=1打印发票代码(BCD格式)	flag=0打印税控码(HEX格式)
//n:长度(BCD格式有效)
void  BlackOrientation();

void  PrintHome();

void  BlackSetup();//黑标设置

void  PtintInvoTome(uchar *str);//???????????????????????????????????????????????????????
void  PrintStartToEnd(uchar *time);

//-------------LCD--宏定义------------------------------------------------------------------//
///////////////////////////////////////////////////////////////////////////////

//#define LcdChip1    0x8000		//第四版
//#define LcdChip2    0x8004
//#define LcdChip3    0x8008

//#define LcdChip1    0x8400		//第五版
//#define LcdChip2    0x8800
//#define LcdChip3    0x9000

//#define  InstructionSetAdr  0x00	//第四版
//#define  WriteDataAdr       0x01
//#define  StatusReadAdr      0x02
//#define  ReadDataAdr        0x03

//#define  InstructionSetAdr  0x0000	//第五版
//#define  WriteDataAdr       0x0100
//#define  StatusReadAdr      0x0200
//#define  ReadDataAdr        0x0300
//-----------------------第六版---------------------
#define LcdChip1    0xa400		
#define LcdChip2    0xa800
#define LcdChip3    0xb000

#define  InstructionSetAdr  0x2000	
#define  WriteDataAdr       0x2100
#define  StatusReadAdr      0x2200
#define  ReadDataAdr        0x2300





//-----------------LCD-函数声明--------------------------------
///////////////////////////////////////////////////////////////////////////////


void  LcdDisplay(uchar x,uchar y,uchar *str,uchar mode);
//DisStr为汉字内码或ASCII码,DisX为行地址(0~63) DisX为列地址(0~191)
void  LcdTurnOn();
void  DisplayFullRec(uchar Dot_y1,uchar Dot_x1,uchar Dot_y2,uchar Dot_x2,uchar DisON);
void  DisplayRectangle(uchar Dot_y1,uchar Dot_x1,uchar Dot_y2,uchar Dot_x2,uchar DisON);
void  LcdDisplayDot(uchar Dot_X,uchar Dot_Y,uchar DisON);
void  LcdDisBlock();
void  LcdClear(uchar LastCol);		//清屏
//CursorX,CursorY为光标位置;DisTime(单位:10ms)光标闪烁时间,DisShow光标外观(0~4):	0:关光标;  1:1*8点阵光标;  2: 2*8点阵光标;  3:4*8点阵光标;

void  LcdClearLine(uchar Line,uchar LastCol);
void  LCD_Float_Display(uchar Ln,uchar Col,uchar *IntNum,uchar *DecimalNum);
void  LcdPicture(uchar StartLn, uchar EndLn, uchar StartCol, uchar LnLen, uchar *p);
void  ShowPicture(uchar startrow,uchar startcol,uchar endrow,uchar endcol,uchar *dat);
void  ScrollBar(uchar CurrentRow, uchar FullRow);//lcd光标条
void  LcdShowLineX(uchar row,uchar start,uchar end);
void  LcdShowLineY(uchar column,uchar start,uchar end);
void  LcdWriteCommand(uchar Command,uint CS);
void  LcdWriteData(uchar WriteData,uint CS);

//-------------VFD--------------------------------------------------------------------//
void  VfdDisplay(uchar DisBuff[],uint Cursor,uint Dot);
//DisBuff显示缓冲区(非压缩BCD码)  Cursor光标显示 和 Dot小数点显示 对应位为1则该点亮 最高位对应最左边位
void  VfdBright(uchar Quantity);	//亮度控制
//Quantity=低三位为0~7级亮度调节 0为最暗  7为最亮 如果第四位为0关显示;为1开显示
void  Vfd_Dis(uchar x0,uchar x1,uchar x2);
void  VfdDisStr(uchar *str);
void  VfdDisplayInt(uchar *str,uchar MaxNum,uchar Pwd);
void  VfdClear();

//-------------KEY--------------------------------------------------------------------//
ulong GetInt(uchar row, uchar col, ulong dat, uchar len,uchar flg,uchar *key);
ulong GetFloat(uchar row, uchar col, ulong dat,uchar len,uchar *key);
uchar GetBcd(uchar row, uchar col, uchar *bcd,uchar len,uchar *key);
uchar GetKey();

//得到一个按键值,没有显示提示
uchar KeyScan();
void  OpenBox();
uchar GetLock();

//-------------Time-------------------------------------------------------------------//
void  SetTime(uchar *time);
//注:time为BCD码格式,time[0]=秒-分-时-星期-(世纪)日-月-年=time[6]

void  TimeSetup(uchar val);
void  Readtime(uchar *time);
void  ReadDate();
//返回的值是BCD码格式:

uchar Verdict(uchar *bcdtime);

uchar Tamper(uchar *time);//侵入
void  M41st87Ini();


//-------------25P80------------------------------------------------------------------//

void  SpiSendChar(uchar Dat);
uchar SpiReceiveChar();
void  SpiReceiveData();
void  SpiSendData();
void  FlashWriteEnable(uchar x);

uchar SerialFlashWrite(uchar chip,ulong address,uint Len,uchar *Dat);
//ch:  选择操作芯片    address: 写入地址   len:  写入长度    dat[]: 写入数组
//      返回  1  操作成功   返回   0  操作失败

void  SerialFlashRead(uchar chip,ulong address,uint Len,uchar *Dat);
//读某个25P80的num个字节数:chip: 选择芯片  add:  读起始地址  len: 读取长度  dat[]:  读取存放数据

uchar SerialFlashSectorErase(uchar chip,uchar Sector);
//se:	sector value  form 0 to 15

uchar SerialFlashBulkErase(uchar chip);
//chip:  选择芯片

void  Modify(uchar cs,ulong WrDatStAdd,uint len,uchar *dat);

//-------------24C64------------------------------------------------------------------//

void  I2cStop(void);
void  I2cStart(void);
uchar I2cRead(uint adr,uint len,uchar *dat);
uchar I2cWrite(uint adr,uint len,uchar *dat);
uchar I2cRd(uchar device,uint adr,uint len, uchar *dat);
uchar I2cWr(uchar device,uint adr,uint len,uchar *dat);
uchar RfidRd(uint adr,uint len, uchar *dat);
uchar RfidWr(uint adr,uint len,uchar *dat);

//-------------手写板-----------------------------------------------------------------//

uchar ImeInput(uchar *outbuff);
uchar ManuscriptInput(uchar disstartln, uchar disstartcol, uchar *outbuff);
char  *ImeQuery(char *imestr);
uint  ImeKeyScan(uchar ln,uchar col);
void  LcdDisNum(uchar ln, uchar col, uchar *str,uchar flg);
uchar QuWeiInput(uchar disstartln, uchar disstartcol,uchar *charout);
uchar EnglishInput(uchar disstartln, uchar disstartcol,uchar *charout);
uchar Gb18030Input(uchar *buf);

//---------------------------------USBHOST-----------------------------------------------//
void  UsbDiskstatus(void);
void  UsbOperationFinish(void);
uchar USBWriteReadTest(bit file);
void  UsbByteWrite(uchar *filesname, uchar len,uchar *str);
void  UsbFilesWrite(uchar *filesname,ulong Sectorlen ,uchar *str);
void  UsbByteRead(uchar *filesname,ulong startaddress ,uchar readBytelen,uchar *str);
void  UsbFilesRead(uchar *filesname,ulong startSector ,uchar readsectorlen,uchar *str);
void  USBHOSTWrite(void);

//--------------------RFID------------------------
void  RfidTest(void);
void  ClearRam();


//--------------------LED------------------------
void  CH452_Init(void);

uchar StatusREG_Read(void);
uchar Memory_Read(ulong adr,ulong len,uchar *dat);
uchar Memory_Page_Write(ulong adr,ulong len, uchar *dat);
uchar Memory_Write(ulong adr,ulong len,uchar *dat);
void Memory_Erase_All_Page();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -