📄 hn.bak
字号:
/***************************************************************************************
在554的几个口中预留了几个功能:
1、通过554D设置时钟正值。 格式为:ff SECOND MINUTE HOUR DAY MONTH YEAR 例如:ff 00 22 21 29 01 04表示04-01-29 21:22:00
2、通过554D设置出口入口里程和费率。格式为:
3、应缴费额的计算方法要改正
4、到上位机的通讯协议要校准
要解决的问题:
1、我认为tempb和tempd可以合并成一个,当时因为是晚上没有试验环境而没能尝试。
********************************************************************************************/
#include <absacc.h>
#include <reg52_p.h>
#include <INTRINS.H>
#include <AddCrc16.h>
#define ezai1 6
#define ezai2 10
#define ezai3 18
#define ezai4 14
#define ezai5 18
#define ezai6 12
#define ezai7 22
#define ezai8 13
#define t_x_feeb (t_x_fee/100)
#define t_x_fees ((t_x_fee%100)/10)
#define t_x_feeg ((t_x_fee%100)%10)
#define chaoxianlvg (chaoxianlv%10)
#define chaoxianlvs ((chaoxianlv%100)/10)
#define chaoxianlvb (chaoxianlv/100)
#define CS_IN0 P15
#define CS_IN1 P16
#define CS_IN2 P17
#define PUSH DBIAOP15=P15;DBIAOP16=P16;DBIAOP17=P17
#define POP P15=DBIAOP15;P16=DBIAOP16;P17=DBIAOP17
#define ST554A CS_IN0=1;CS_IN1=0;CS_IN2=1
#define ST554B CS_IN0=0;CS_IN1=0;CS_IN2=1
#define ST554C CS_IN0=1;CS_IN1=1;CS_IN2=0
#define ST554D CS_IN0=0;CS_IN1=1;CS_IN2=0
#define reset554 CS_IN0=1;CS_IN1=0;CS_IN2=0
#define CS256 CS_IN0=0;CS_IN1=0;CS_IN2=0
#define CS512A CS_IN0=1;CS_IN1=1;CS_IN2=1
#define CS512B CS_IN0=0;CS_IN1=1;CS_IN2=1
#define flashreset 0xf0
#define flashaddress5555 0x5555
#define flashaddress2AAA 0x2AAA
#define RBR XBYTE[0x0000]
#define ST01 XBYTE[0x0001]
#define ST02 XBYTE[0x0002]
#define ST03 XBYTE[0x0003]
#define ST04 XBYTE[0x0004]
#define ST05 XBYTE[0x0005]
#define ST06 XBYTE[0x0006]
#define ST07 XBYTE[0x0007]
/*时钟的变量*/
sbit I2C_SDA=P3^4;
sbit I2C_SCK=P3^5;
#define SECOND 0
#define MINUTE 1
#define HOUR 2
#define DAY 3
#define MONTH 4
#define YEAR 5
unsigned char counttime;
//bit k_x_send;
bit upreceivok=1;
bit shishi,danji;
//unsigned char i;
unsigned char g8563_Store[6];
unsigned char xuhao=1,chedaoh;
unsigned char d_p_modi;
/*时间默认值*/
//unsigned char g8563_Store[6]; /*01-10-07 21:22:00*/
/*时钟的变量end*/
unsigned char k_x_jishi;
unsigned int savednum,sendnum;
unsigned char g_p_js;
/*********040的变量******************************/
unsigned long address;
unsigned int lowaddress;
unsigned char page;
sbit A18=P1^2;
sbit A17=P1^1;
sbit A16=P1^0;
/**********end of 040的变量*****************************/
unsigned char bcd(unsigned int y1,unsigned char px);
unsigned char tempa,tempb,tempc,tempd,numd;
unsigned char tolcd[5];
unsigned char xdata subcom[58];
unsigned char xdata toupcom[10][58];
unsigned char todaping[8]={0xa0,0,0,0,0,0,0,0};
unsigned char xdata beilv;
unsigned char subnum=0,txtolcdnum;
unsigned char receipt[8];
unsigned char chexing;
unsigned char cheing=0,cheshu=0,cheshutemp;
unsigned int glcglc;
bit DBIAOP15;
bit DBIAOP16;
bit DBIAOP17;
bit shizhong=0;
bit chexorchk,keyfinish,lcdok;
bit rukoufinish,chukoufinish,chexingfinish;
sbit sda= P1^3; /*键盘数据线*/
unsigned char dat=0;
unsigned char dat2=0;
//unsigned char enter=0;
unsigned char key,key0;//,cursor;
unsigned char count=0,time=0;
/***************************************/
bit feefinish=0;
bit subrecok;
bit txtolcd;
bit receivefull,candispnext;
bit receiv554b=0;
sbit ACC0=ACC^0;
sbit ACC1=ACC^1;
sbit ACC2=ACC^2;
sbit ACC3=ACC^3;
sbit ACC4=ACC^4;
sbit ACC5=ACC^5;
sbit ACC6=ACC^6;
sbit ACC7=ACC^7;
/*****************************/
void shishichuli(void);
void delay_time(unsigned int delay); /* 延时子程序 */
void initial(void);
void init554(void); /* 初始化子程序 */
void Check0_Txd_ST554(unsigned char mTxd);
//void Crc16( unsigned char *ptr,unsigned char len);
void jieshou(void);
void lcdinit(void);
void cursorpo(void);
void init554(void);
void In1uSDelay(void);
void InI2C_Start(void);
void InI2C_Stop(void);
void InI2C_ReadACK(void);
void InI2C_WriteACK(void);
void InI2C_Write(void);
void InI2C_Read(void);
void I2C_WriteData(unsigned char mLocation,unsigned char mData);
unsigned char I2C_ReadData(unsigned char mLocation);
void P8563_ReadDay(void);
void InP8563_Read(void);
void P8563_ReadTime(void);
void P8563_WriteTime(void);
void P8563_Init(void);
void modifytime(void);
void dispclk(void);
void bendichuli(void);
void gunping(void);
void tongbudata(void);
void initchedaohao(void);
void modifyclk(void);
void modchedaohao(void);
void lcddisp(unsigned char i,unsigned char j,unsigned char m,unsigned char n);
void sendidel(void);
void tobuff(void);
void his_del(void);
void help(void);
/******************************040的函数声明*******************/
void F29040reset(void);
void selectpage(void); /*给出一个地址,自动送出页面地址,且返回页内偏移地址*/
unsigned char F29040write(unsigned char byte) ;
unsigned char F29040read(void); /*向flash读一个字节,写入之前请调用F29040_reset*/
/******************************end of 040的函数声明*******************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -