📄 math.c
字号:
#include"my.h"
extern bit fSeri0_Send_Ok;
extern bit fSeri1_Send_Ok;
extern bit fSeri0_Reci_Ok;
extern bit fSeri1_Reci_Ok;
extern bit fSeri2_Send_Ok;
extern bit fSeri2_Reci_Ok;
/**************************************************
串口0队列 pc
**************************************************/
extern unsigned char xdata xBuf_0[];//130
extern unsigned char xdata *Seri0_ReadSendPoint;
extern unsigned char xdata *Seri0_WriteSendPoint;
extern unsigned char data Seri0_SendNum;
extern unsigned char data Seri0_ReciNum;
/**************************************************
//串口1队列
**************************************************/
extern unsigned char xdata xBuf_1[];//16
extern unsigned char xdata pagedata[];//128
extern unsigned char xdata *pagedataPoint;
extern unsigned char data Seri1_SendNum;
extern unsigned char data Seri1_ReciNum;
/**************************************************
//串口2队列
**************************************************/
extern unsigned char xdata xBuf_2[];//384
extern unsigned char xdata *Seri2_ReadPoint;
extern unsigned char xdata *Seri2_WritePoint;
extern unsigned int data Seri2_SendNum;
extern unsigned int data Seri2_ReciNum;
/************************************/
extern void puart_init(void);
extern void PSendChar(unsigned char inch);
extern Pc2eep2pc();//
G_id_my();//get本机卡号();
G_id_my_some();//get间接码();
G_id_my_some_show();//get显示码();
geteep32(unsigned char a);//get显示码()的子程序
geteep16(unsigned char a);//get显示码()的子程序
extern S2send(); //串寇2发送IOur.ct
extern unsigned char IRcvStr
( unsigned char Sla, unsigned int Address ,
unsigned char *RcvData ,unsigned char len);
extern unsigned char t;
math()
{
if((fSeri0_Reci_Ok==0)) {//串口0 (pc)要求处理
Seri0_ReciNum=0; //串口工作初始化
Seri0_SendNum=0; //&&(fSeri0_Send_Ok==0)
Pc2eep2pc(); //在I2C.c
//2。1)接受pc数据包,
//按存储页地址(双字节)对eep页写如入更新;
//2。2)按存储页地址 对eep页读出,向pc发送数据包
fSeri0_Reci_Ok=1;//允许中断处理
fSeri0_Send_Ok=1;
TI=1;//串口0发送
}
if((fSeri1_Reci_Ok==0)&&(fSeri1_Send_Ok==0))//容许程序处理
{
G_id_my(); //ok get本机卡号();在math.c
G_id_my_some(); //get间接码(); 在math.c
G_id_my_some_show();//get显示码(); 在math.c
fSeri2_Send_Ok=1;
S2send(); //led 显示 在IOuart.c
Seri1_ReciNum=0;
Seri1_SendNum=0;
fSeri1_Reci_Ok=1;//允许中断处理
fSeri1_Send_Ok=1;
TI_1=1;
}
}
union d{
INT16U u16;
INT8U u8[2];
}m,m1,m2,m3;
#define id m.u16
#define idH m.u8[0]
#define idL m.u8[1]
#define idm m1.u16
#define idmH m1.u8[0]
#define idmL m1.u8[1]
#define pageaddr m2.u16
#define pageaddrH m2.u8[0]
#define pageaddrL m2.u8[1]
#define idmix m3.u16
#define idmixH m3.u8[0]
#define idmixL m3.u8[1]
/*************************************************
功能: 读I2C
输入:
Sla: 芯片地址(A0:EEPROM1;A4:EEPROM2)
Address: 片内首地址
Send_Data: 数据地址
len: 长度(<=128)
输出: 0:正确; 1: 错误
注意:
**************************************************/
extern Set_Sla();
unsigned char card_char[10];
extern unsigned char tmp;
extern unsigned char Sla;
/*************************************************
功能: get本机卡号();
1。1)接受卡号,
1。2)从页=0x780处,读出页的数据,
最小卡号(双字节,高位在前)。存放在第0个到第1个字节,
1。3)本机卡号=卡号-最小卡
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -