📄 yibiao1.c
字号:
#pragma large
//#include "reg52.h"
#include <intrins.h>
#include <absacc.h>
#include <string.h>
#include <ctype.h>
#include <comm.H>
typedef unsigned int uint;
typedef unsigned long ulong;
typedef unsigned char uchar;
/*液晶控制申明*/
#define E XBYTE[0xc002]
#define RW XBYTE[0xc003]
#define RS XBYTE[0xc004]
#define CS1 XBYTE[0xc000]
#define CS2 XBYTE[0xc001]
#define KEY_CLK XBYTE[0xc005]
#define KEY_SDA XBYTE[0xc006]
#define DIRECTION XBYTE[0xc013] // 数据传送方向控制寄存器,最低位控制方向,发送:1,接收:0
#define USE_RESET XBYTE[0xc014] //=0:复位
#define USE_CLK_EA XBYTE[0xc00F] //=1:开
#define IO_SEL XBYTE[0xc012] //=0:USE; 1:PSAM1; 2:PSAM2; 3:PSAM3; 4:OIL
#define USE_POWER XBYTE[0xc00E] //=0:复位
#define PSAM1_RESET XBYTE[0xc015] //=1:开
#define DOG_BIT XBYTE[0xc009] //=1:开
#define CARD_POP XBYTE[0xc008] //弹卡
#define FLASH_WP P10 /*写控制*/
#define FLASH_RB P11 /*FLASH忙检测*/
#define FLASH_CLK P12 /*时钟信号*/
#define FLASH_DI P13 /*数据输入*/
#define FLASH_DO P14 /*数据输出*/
#define FLASH_CS1 P15 /*FLASH 1 选择*/
#define FLASH_CS2 P16 /*FLASH 2 选择*/
/*时钟控制申明*/
#define TIME_CLK XBYTE[0xc00B]
#define TIME_SDA P17
#define TIME_WR XBYTE[0xc00D]
#define TIME_CE XBYTE[0xc00C]
#define ZK_CS P34
/*函数说明*/
uint code JYWC[]={0xBCD3,0xD3CD,0xCDEA,0xB3C9,0xA3A1,0};/*加油完成!*/
uint code DJ[]={0xB5A5,0xBCDB,0xA3BA,0};/*单价:*/
uint code DQJYL[]={0xB5B1,0xC7B0,0xC1BF,0xA3BA,0};/*当前量:*/
uint code YZL[]={0xD4A4,0xD6C3,0xC1BF,0xA3BA,0};/*预置量:*/
uint code HYHG[]={0xBBB6,0xD3AD,0xBBDD,0xB9CB,0};/*欢迎惠顾*/
uint code XTCSH1[]={0xCFB5,0xCDB3,0xB3F5,0xCABC,0xBBAF,0xA3AC,0xC7EB,0xC9D4,0}; /*系统初始化,请稍侯*/
uint code XTCSH2[]={0xBAEE,0xA1A3,0xA1A3,0xA1A3,0};
uint code XTZJ1[]={0xCFB5,0xCDB3,0xD7D4,0xBCEC,0xA3AC,0xC7EB,0xC9D4,0xBAEE,0};/*系统自检,请稍侯*/
uint code XTZJ2[]={0xA1A3,0xA1A3,0xA1A3,0};
uint code XTLW1[]={0xCFB5,0xCDB3,0xC1AA,0xCDF8,0xA3AC,0xC7EB,0xC9D4,0xBAEE,0};/*系统联网,请稍侯*/
uint code XTLW2[]={0xA1A3,0xA1A3,0xA1A3,0};
uint code GN_1[]={0xC9E8,0xD6C3,0xB1BE,0xB5D8,0xCAB1,0xBCE4,0};/*设置本地时间*/
uint code GN_2[]={0xD0B4,0xC3DC,0xB6C8,0};/*写密度*/
uint code GN_3[]={0xD0B4,0xCCE1,0xC7B0,0xB9D8,0xB7A7,0xC1BF,0};/*写提前关阀量*/
uint code GN_4[]={0xD0B4,0xB5A5,0xBCDB,0};/*写单价*/
uint code GN_5[]={0xB6C1,0xB5A5,0xBCDB,0};/*读单价*/
uint code GN_6[]={0xB6C1,0xCCE1,0xC7B0,0xB9D8,0xB7A7,0xC1BF,0};/*读提前关阀量*/
uint code GN_7[]={0xB6C1,0xC3DC,0xB6C8,0};/*读密度*/
uint code GN_8[]={0xB6C1,0xB0E0,0xC0DB,0};/*读班累*/
uint code GN_9[]={0xB6C1,0xBDF0,0xB6EE,0xB0E0,0xC0DB,0};/*读金额班累*/
uint code GN_10[]={0xB6C1,0xBCD3,0xD3CD,0xC1BF,0xD7DC,0xC0DB,0};/*读加油量总累*/
uint code GN_11[]={0xB6C1,0xBDF0,0xB6EE,0xD7DC,0xC0DB,0};/*读金额总累*/
uint code GN_12[]={0xB2E9,0xCBB0,0xBFD8,0xC3F7,0xCFB8,0};/*查税控明细*/
uint code GN_13[]={0xB2E9,0xCBB0,0xBFD8,0xC8D5,0xD6BE,0};/*查税控日志*/
uint code GN_14[]={0xB2E9,0xCBB0,0xBFD8,0xD4C2,0xC0DB,0xBCC6,0};/*查税控月累计*/
uint code GN_15[]={0xC9E8,0xD6C3,0xCBB0,0xBFD8,0xCAB1,0xD6D3,0};/*设置税控时钟*/
uint code GN_16[]={0xCBB0,0xBFD8,0xBCEC,0xB6A8,0xC8B7,0xC8CF,0};/*税控检定确认*/
uint code GN_17[]={0xB2E9,0xCBB0,0xBFD8,0xCAB1,0xD6D3,0};/*查税控时钟*/
uint code GN_18[]={0xB2E9,0xCBB0,0xBFD8,0xD7DC,0xC0DB,0xBCC6,0};/*查税控总累计*/
uint code SRYHKMM[]={0xCAE4,0xC8EB,0xD3C3,0xBBA7,0xBFA8,0xC3DC,0xC2EB,0xA3BA,0};/*输入用户卡密码:*/
uint code JRYY[]={0xA3B3,0xA3AD,0xBDF0,0xC8DA,0xD3A6,0xD3C3,0};/*金融应用*/
uint code JFYY[]={0xA3B2,0xA3AD,0xBBFD,0xB7D6,0xD3A6,0xD3C3,0};/*积分应用*/
uint code DZYP[]={0xA3B1,0xA3AD,0xB5E7,0xD7D3,0xD3CD,0xC6B1,0};/*电子油票*/
uint code SRYHMM[]={0xCAE4,0xC8EB,0xD3C3,0xBBA7,0xC3DC,0xC2EB,0xA3BA,0};/*输入用户密码:*/
uint code XB[]={0xCFC2,0xB0E0,0xA3BF,0};/*下班?*/
uint code FJYK[]={0xB7C7,0xBCD3,0xD3CD,0xBFA8,0};/*非加油卡*/
uint code YGK[]={0xD4B1,0xB9A4,0xBFA8,0};/*员工卡*/
uint code YGH1[]={0xD4B1,0xB9A4,0xBAC5,0};/*员工号*/
uint code QCRICK[]={0xC7EB,0xB2E5,0xC8EB,0xA3C9,0xA3C3,0xBFA8,0};/*请插入IC卡*/
uint code YPJY[]={0xD3CD,0xC6B1,0xBCD3,0xD3CD,0};/*油票加油*/
uint code TYPZ[]={0xCCE1,0xD3CD,0xC6BE,0xD6A4,0};/*提油凭证*/
uint code YHK[]={0xD2F8,0xD0D0,0xBFA8,0};/*银行卡*/
uint code QT1[]={0xC6E4,0xCBFC,0xD2BB,0};/*其它一*/
uint code QT2[]={0xC6E4,0xCBFC,0xB6FE,0};/*其它二*/
uint code XJJY[]={0xCFD6,0xBDF0,0xBCD3,0xD3CD,0};/*现金加油*/
uint code JYFS1[]={0xB7BD,0xCABD,0};/*方式:*/
uint code ARYJJX[]={0xB0B4,0xC8CE,0xD2E2,0xBCFC,0xBCCC,0xD0F8,0};/*按任意键继续*/
uint code KYGQ[]={0xD2D1,0xB9FD,0xC6DA,0xBFA8,0xA3A1,0};/*已过期卡*/
uint code QSRSS[]={0xC7EB,0xCAE4,0xC8EB,0xC9FD,0xCAFD,0xA3BA,0};/*请输入升数:*/
uint code QSRJE[]={0xC7EB,0xCAE4,0xC8EB,0xBDF0,0xB6EE,0xA3BA,0};/*请输入金额*/
uint code NXZDS[]={0xC4FA,0xD1A1,0xD4F1,0xB5C4,0xCAC7,0xA3BA,0};/*您选择的是*/
uint code QXZJYFS[]={0xC7EB,0xD1A1,0xD4F1,0xBCD3,0xD3CD,0xB7BD,0xCABD,0};/*请选择加油方式*/
uint code CHDS1[]={0xC3DC,0xC2EB,0xC8FD,0xB4CE,0xB4ED,0xCEF3,0xA3AC,0xBFA8,0};
uint code CHDS2[]={0xD2D1,0xCBF8,0xD7A1,0xA3AC,0xC7EB,0xBDE2,0xCBF8,0xA3A1,0};
/*密码三次错误,卡已锁住,请解锁!*/
uint code FYGK[]={0xB7C7,0xD4B1,0xB9A4,0xBFA8,0xA3A1,0};/*非员工卡!*/
uint code JYS[]={0xBDAD,0xD2F5,0xCAD0,0};/*江阴市*/
uint code MMZQ[]={0xC3DC,0xC2EB,0xD5FD,0xC8B7,0xA3A1,0};/*密码正确!*/
uint code FR[]={0xB8BB,0xC8CA,0xB8DF,0xBFC6,0xD3D0,0xCFDE,0xB9AB,0xCBBE,0};/*富仁高科有限公司*/
uint code ICK[]={0xA3C9,0xA3C3,0xBFA8,0xBCD3,0xD3CD,0xBBFA,0};/*IC卡加油机*/
uint code SRYGKMM[]={0xCAE4,0xC8EB,0xD4B1,0xB9A4,0xBFA8,0xC3DC,0xC2EB,0xA3BA,0};/*输入员工卡密码*/
uint code ZAXZBMD[]={0xD5FD,0xD4DA,0xD1E9,0xD6A4,0xB0D7,0xC3FB,0xB5A5,0};/*正在查找白名单*/
uint code ZAXZHMD[]={0xD5FD,0xD4DA,0xD1E9,0xD6A4,0xBADA,0xC3FB,0xB5A5,0};/*正在查找黑名单*/
uint code QSD[]={0xC7EB,0xC9D4,0xB5C8,0xA3AE,0xA3AE,0xA3AE,0};/*请稍等。。。*/
uint code MMCWQCS[]={0xc3dc,0xc2eb,0xb4ed,0xcef3,0xc7eb,0xd6d8,0xcae4,0xa3ba,0};
/*密码错误请从输C3 DC C2 EB B4 ED CE F3-C7 EB B4 D3 CA E4 A3 BA*/
uint code DL[]={0xb6a8,0xc1bf,0xbcd3,0xd3cd,0};/*定量B6 A8 C1 BF*/
uint code DJE[]={0xb6a8,0xb6ee,0xbcd3,0xd3cd,0};/*定金额B6 A8 BD F0-B6 EE*/
uint code SY[]={0xcbe6,0xd2e2,0xbcd3,0xd3cd,0};/*随意CB E6 D2 E2*/
uint code JYJXB[]={0xbcd3,0xd3cd,0xbbfa,0xcfc2,0xb0e0,0};/*加油机下班BC D3 D3 CD BB FA CF C2-B0 E0*/
uint code JYJSB[]={0xbcd3,0xd3cd,0xbbfa,0xc9cf,0xb0e0,0};/*加油机下班BC D3 D3 CD BB FA CF C2-B0 E0*/
uint code SFZDXB[]={0xcac7,0xb7f1,0xd5e6,0xb5c4,0xcfc2,0xb0e0,0xc2f0,0xa3bf,0};
/*是否真的下班吗?CA C7 B7 F1 D5 E6 B5 C4-CF C2 B0 E0 C2 F0 A3 BF*/
uint code SBDR[]={0xc9cf,0xb0e0,0xb5c7,0xc8eb,0};/*上班登入C9 CF B0 E0 B5 C7 C8 EB*/
uint code QSRYGMM[]={0xC7EB, 0xCAE4 ,0xC8EB, 0xD4B1, 0xB9A4, 0xC3DC, 0xC2EB, 0xA3BA,0};/*请输入员工密码*/
/*C7 EB CA E4 C8 EB D4 B1-B9 A4 C3 DC C2 EB A3 BA*/
uint code YPYE[]={0xB5E7,0xD7D3,0xD3CD,0xC6B1,0xD3E0,0xB6EE,0xA3BA,0};/*邮票余额:*/
uint code JFYE[]={0xBBFD,0xB7D6,0xD3E0,0xB6EE,0xA3BA,0};/*积分余额:*/
uint code XH[]={0xa3aa,0};/***/
uint code yuan[]={0xD4AA,0};/*元*/
uint code sheng[]={0xC9FD,0};/*升*/
uint code jf_dian[]={0xB5E3,0};/*点*/
uint code jian_xia[]={0x00,0x00,0x00,0x00,0x08,0x38,0xf8,0xf8,0xf8,0xf8,0xf8,0x38,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,};/*尖头*/
uint code jian_shang[]={0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xe0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x10,0x1c,0x1f,0x1f,0x1f,0x1f,0x1f,0x1c,0x10,0x00,0x00,0x00,0x00,
}; /*尖头*/
uint code SHUZI[12]={0xA3B0,0xA3B1,0xA3B2,0xA3B3,0xA3B4,0xA3B5,0xA3B6,0xA3B7,0xA3B8,0xA3B9,0xD4AA,0xa3ae};/*数字+元*/
unsigned char code yi_1[96]={
0x00,0x00,0x3e,0x41,0x41,0x3e,0x00,0x00,
0x00,0x00,0x00,0x42,0x7f,0x40,0x00,0x00,
0x00,0x00,0x62,0x51,0x49,0x46,0x00,0x00,
0x00,0x00,0x22,0x49,0x49,0x36,0x00,0x00,
0x00,0x00,0x18,0x14,0x12,0x7f,0x10,0x00,
0x00,0x00,0x27,0x45,0x45,0x39,0x00,0x00,
0x00,0x00,0x3e,0x49,0x49,0x49,0x30,0x00,
0x00,0x00,0x01,0x79,0x07,0x01,0x00,0x00,
0x00,0x00,0x36,0x49,0x49,0x36,0x00,0x00,
0x00,0x00,0x06,0x49,0x49,0x3e,0x00,0x00,
0,0,0,0x24,0,0,0,0,
0,0,0,96,96,0,0,0,
};
unsigned char code clr[8]={0,0,0,0,0,0,0,0};
unsigned char code ff[8]={0,0,0xff,0xff,0xff,0xff,0,0};
unsigned char code xin[8]={72,48,252,48,72,0,0,0};
unsigned char code hs[]={0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,
0x70,0x30,0xb8,0xc8,0xec,0xf4,0xf8,0xfc,
0xfc,0xfc,0xfc,0xfc,0xf8,0xf0,0xf0,0xc0,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0xf0,0xfc,0xff,0xff,0xff,0xf8,
0xf0,0xf0,0xe1,0xe3,0xe7,0xe7,0xc7,0xc7,
0x0f,0x0f,0x9f,0xff,0xff,0xff,0xff,0xff,
0xff,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x1f,0xff,0xff,0xff,0xff,0x7f,0x0f,
0x07,0x9f,0xcf,0x01,0x00,0xf3,0xf9,0xfc,
0xfe,0xff,0xff,0xff,0xff,0xff,0x3f,0x1f,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x03,0x01,0x06,0x0f,0x00,
0x00,0x1f,0x1f,0x00,0x00,0x1f,0x0f,0x0f,
0x07,0x07,0x03,0x03,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
unsigned char code fr1[]={0x00,0x00,0x00,0x00,0xc0,0xe0,0xf0,0xf0,
0xf8,0xfc,0xfc,0xfc,0xfe,0xfe,0xfe,0xfe,
0xfe,0xfe,0xfe,0xfe,0xfc,0xfc,0xfc,0xf8,
0xf0,0xe0,0xc0,0x00,0x00,0x00,0x00,0x00,
0x00,0xe0,0xfc,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0x3f,0x1f,0x0f,
0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x81,0xc1,0xe1,0xf8,0xe0,0x00,
0x00,0x07,0x3f,0xfc,0x02,0x00,0xc0,0x61,
0x17,0x0f,0xc7,0x21,0x18,0x0c,0x02,0x02,
0x01,0x01,0x01,0x01,0x81,0xc1,0xe1,0xf9,
0xfd,0xff,0xff,0xff,0xff,0x3f,0x07,0x00,
0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x0c,
0x06,0x01,0x38,0x3c,0x3e,0x7f,0x7f,0x7f,
0x7f,0x7f,0x7f,0x3f,0x3f,0x3f,0x1f,0x1f,
0x0f,0x07,0x03,0x01,0x00,0x00,0x00,0x00,
};
/*卡操作函数*/
unsigned char xdata data_count; //
unsigned char xdata unit_2s; // 2秒计时器
unsigned char sendcard();
unsigned char sendcard1();
unsigned char sendcard2();
unsigned char getcard_data();
unsigned char use_reset();
unsigned char select_pse(); //adf 的名字放在use_sel_adf_name[0]..use_sel_adf_name[0x0b]
unsigned char ver_pin();/*需要用户输入卡密码验证*/
unsigned char get_lock_state();/*取绘状态*/
unsigned char get_balance();/*读余额*/
unsigned char psam1_reset();
unsigned char rd_terminal();
unsigned char select_psam_pse();
unsigned char clr_gray_tag();
unsigned char use_lock();
unsigned char use_unlock();
unsigned char ver_pin1(); /*默认卡密码*/
unsigned char read_use_0016_file();
unsigned char read_use_001b_file();
unsigned char read_use_001c_file();
unsigned char read_use_0018_file(unsigned char recorder_id);
unsigned char read_psam_0015_file();
unsigned char off_use_unlock();
unsigned char gray_test();
unsigned char get_t_mac(unsigned char data_len);// 数据放在send_buf[5+8]..send_buf[data_len+4+8]
unsigned char read_use_list(unsigned char recorder_id);
void dog();
void init();
void de100u();
void de30ms();
/***************************************************/
bit yhkjycz_1(uchar xdata ffs);/*用户卡加油操作*/
bit yhkjycz();/*用户卡加油操作*/
bit ygkjycz(unsigned char jy_num);/*员工卡加油操作*/
void select_menu(unsigned char select_num);
void out_card();
void dl(uint xdata t);
void xscs1();
void xscs2();
void write_control(unsigned char con);
void write_data(unsigned char d);
unsigned char read_data();
void init_xs();
void clr_hang(unsigned char hang);
void clear();
void xs_zi(unsigned char hh,unsigned char ll,uint p);
void xs_zi_1(unsigned char hh,unsigned char ll,uint *p);
unsigned char getkey();
uint dw_zk(uint qw);
void dlu();
void key_dlu();
void xs_hs();/*hs*/
void xs_hhz(unsigned char hh,unsigned char ll, uint *p);
void xs_shu(unsigned char hh,unsigned char ll,unsigned char *p);
bit strcomp(unsigned char *p1,unsigned char *p2,unsigned char num);/*字符串比较*/
void astobcd(unsigned char n);/*变成压缩BCD码*/
ulong astohex();/*变成HEX*/
void jezh1();/*油票余额转换*/
void jezh2(ulong xdata num1,uchar xdata num2);/*显示单价,当前量,预置量*/
void xs_key_buf(unsigned char num);
unsigned char menu_1();
unsigned char menu_2();
//char send(unsigned char len,unsigned char xdata *pt);
//char receive(unsigned char len);
//void send_k_msg();
void gettime();/*读时钟*/
void settime();/*写时钟*/
void huakuang(unsigned char hang,unsigned char num,unsigned char lie_ge);/*在液晶上画框*/
void xs_time();
unsigned char password(bit aa); /*aa=0 员工密码 aa=1 用户密码*/
unsigned char pass_card();
void jycz(uchar xdata js,uchar xdata yuanyong);/*加油操作 num---升数或者金额 js----(0:升数,1:金额)*/
uchar pd_xian();/*判断用户卡的限制*/
void change_time();/*修改时间*/
/*成交记录*/
void trade_record(uchar xdata type);/*type:记录类型*/
void cuorse(uchar xdata cu);/*进程条控制*/
/**********************************通讯函数**************************************/
void main_comm();/*通讯主子程序*/
void common();/*处理PC对加油机的普通查询命令*/
void sq_download();/*申请下载各种文件*/
void download_file();/*下载各种文件*/
void send_record(uchar xdata *sr,uint xdata send_num);/*形成发送记录*/
unsigned int get_CRC(unsigned char xdata *buffer,unsigned char length);
void downloatd_to_at45d021();/*处理PC机发送下载数据命令,并把数据存入FLASH*/
void search_black();/*黑卡验证*/
void search_white();/*白卡验证*/
/********************************************************************************/
/*FLASH 读写*/ /*pa----->页 0-2048 ba------>页中的偏移量 0-263*/
void flash_cs_1(uint xdata p_cs);
void flash_cs_0(uint xdata p_cs);
char at45d021_so(void);
void at45d021_si(unsigned char abyte);
void at45d021_cmd(char cmd,uint pa,uint ba);
void at45d021_xxx(unsigned charn);
char at45d021_rb(uint pa,uint ba);
char at45d021_wb(unsigned char dat,uint pa,uint ba);
uint at45d021_wr(char xdata *wrbuf,uint size,uint pa,uint ba);
uint at45d021_rd(char xdata *rdbuf,uint size,uint pa,uint ba);
/**********************************通讯变量**************************************/
unsigned char xdata rxd_buf[300]; // 数据接收缓冲区
unsigned char xdata txd_buf[300]; // 数据发送缓冲区
unsigned char xdata comm_status; /* 串口通信状态标志
0:空闲
1:收到通信头(0xfa),进入通信接收状态
2:收到有效数据长度(2字节)
3:接收完毕,等待处理
4:发送状态 */
unsigned char xdata comm_ptr; // 串口通信缓冲区指针
unsigned char xdata ver[10];/*加油机的各种版本号
0-1:基础黑名单版本号
2:新增黑名单版本号
3:新删黑名单版本号
4:白名单版本号
5:油品油价版本号
6:加油站通用信息版本号
*/
unsigned char xdata ver_change=0;/*PC机和加油机不同的状态变量
0:无变化
1:基础黑名单版本号不同
2:新增黑名单版本号不同
4:新删黑名单版本号不同
8:白名单版本号不同
16:油品油价版本号不同
32:加油站通用信息版本号不同
*/
unsigned char xdata now_download_ver=0;/*正在下载版本好的状态变量
0:无下载
1:下载基础黑名单
2:下载新增黑名单
3:下载新删黑名单
4:下载白名单
5:下载油品油价
6:下载加油站通用信息
*/
unsigned char xdata txd_num=0x40;/*桢号*/
union{
ulong len_long;
uchar len_char[4];
}xdata download_file_len,now_file_len;/*记录下载数据的总长度*/
unsigned char xdata start_download=0;/*接收到长度,开始下载*/
union{
uint seg_int;
uchar seg_char[2];
}s_offset;/*下载数据是的段便移*/
unsigned char xdata flag_seg_ok=1;/*判断申请的数据是否已经下载0--未下载,1--已下载*/
unsigned char xdata search_result=0xff;/*查找黑名单结果
0xff:正在查找
0:黑卡
1:不是黑卡*/
/********************************************************************************/
unsigned char xdata key_buf[20];
unsigned char xdata ygmm[2];/*员工密码*/
unsigned char xdata ygkmm[6]={0x11,0x22,0x33,0x00,0x00,0x00};/*员工卡密码*/
unsigned char xdata yhmm[2];/*用户密码*/
unsigned char xdata ygh;/*员工号*/
unsigned char xdata je[4]={0x0,0x0,0x00,0x11};/*油票余额*/
/*定义卡的外部RAM*/
unsigned char xdata gray_state_data[0x1e]; //
unsigned char xdata balance[0x04]; //
unsigned char xdata terminal[0x06]; //
unsigned char xdata psam_pse_inf[0x19]; ///**/
unsigned char xdata use_pse_inf[0x1e]; //
unsigned char xdata init_gray_inf[0x0f]; //
unsigned char xdata gray_lock_time[0x07]; //
unsigned char xdata gray_mac1[0x0c]; //
unsigned char xdata gray_mac2[0x08]; //
unsigned char xdata gray_amn[0x04]; // 解扣时的交易金额
unsigned char xdata gmac[0x08]; //
unsigned char xdata tac[0x08]; //
unsigned char xdata pin_dat[0x08]; // 1字节口令长度 + 2..6字节口令
unsigned char xdata use_0016_file[0x29]; //
unsigned char xdata use_001b_file[0x20]; //
unsigned char xdata use_001c_file[0x60]; //
unsigned char xdata use_0018_file[0x17]; //
unsigned char xdata psam_0015_file[0x0f]; //
unsigned char xdata use_list_file[0x12]; //
unsigned char xdata use_sel_adf_name[0x12]; // 用户选择的名字
unsigned char xdata t_mac[4]; //
unsigned char xdata check_gray_list[24]; // asn10+bal4+amn3+ctc2+ds1+gmac4
//unsigned char xdata data_count; //
//unsigned char xdata unit_2s; // 2秒计时器
/*************************************************************/
//98967F
uint xdata je_xs[9];/*余额*/
//bit ygsb;/*员工是否上班 1---上班 0----下班*/
unsigned char xdata key_buf_p;/*键盘缓冲区指针*/
unsigned char xdata key;
//unsigned char xdata send_buf[100];
unsigned char xdata second=0,minutes=0,hour=0,week=0,day=0,month=0,year=0;
unsigned char xdata second1=0,minutes1=0,hour1=0,week1=0,day1=0,month1=0,year1=0;
unsigned int xdata cursor_num=0;
//bit cursor_f=0;
//unsigned char xdata cursor_lie=0;
unsigned char xdata in_password_n=0;
unsigned char xdata now_time[4];
unsigned char xdata card_time[4];
bit card_in_out=0;/*判断卡是否插入 1-->插入,2-->弹出*/
ulong xdata POS_TTC;/*终端交易序号,每笔交易自动加一*/
unsigned char xdata card_err_state;
bit dian_f=0;
unsigned char xdata kk=0;/*小数点后的位数*/
main()
{
/*********主程序开始**********/
bit debug=0;
char xdata *p;
unsigned char xdata dey,pd=0,i;
ZK_CS=1;
XBYTE[0xc007]=1;
// day=at45d021_wb(0x21,0,0);
dey=at45d021_wr(yi_1,256,1024,0);
at45d021_rd(p,256,0,0);
dey=at45d021_wb(25,1,0);
dey=at45d021_rb(1,4);
dey=at45d021_rb(1,5);
/* minutes=0x3;
hour=0x14;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -