📄 trans.c
字号:
#include <absacc.h>
#include <reg52.h>
extern unsigned char WaitKey(unsigned int count);
extern void DisplayCOM(int i);
extern bit FL_RUN;
extern bit FL_RECORDER;
//标志位;
extern unsigned char xdata OLD_YEAR;
extern unsigned char xdata OLD_MONTH;
extern unsigned char xdata OLD_DAY;
extern unsigned char xdata OLD_HOUR;
extern unsigned char xdata OLD_MIN;
extern unsigned char xdata OLD_SEC;
unsigned char xdata flag_trans _at_ 0x6500;
extern unsigned long int xdata usbclk_cnt;
extern unsigned long int xdata clk_cnt;
extern unsigned char xdata down_time[10][5];
extern unsigned char xdata index_dw_tm;
extern unsigned char GetKey();
extern void rs232(void);
void connect(void);
extern void trs_usb(void);
void D12_SetMode(unsigned char bConfig, unsigned char bClkDiv);
extern void Clr_WDog();
Wr_downtime()
{
Clr_WDog(); //清w-dog
index_dw_tm=(index_dw_tm+1)%10;
down_time[index_dw_tm][0]=OLD_YEAR;
down_time[index_dw_tm][1]=OLD_MONTH;
down_time[index_dw_tm][2]=OLD_DAY;
down_time[index_dw_tm][3]=OLD_HOUR;
down_time[index_dw_tm][4]=OLD_MIN;
}
void init_serial(void)
{
// stxd=0;
Clr_WDog(); //清w-dog
T2CON=0X34;
RCAP2H=0XFF; //18.432MHz?9600??
RCAP2L=0XC4;
SCON=0XD0;
ES=1;
}
void init_usb()
{
Clr_WDog(); //清w-dog
D12_SetMode(0x10,0x05);
IT1=0;
EX1=1;
}
void connect(void)
{
unsigned char xdata key_trs,wdog_cnt;
Clr_WDog(); //清w-dog
DisplayCOM(0); //显示“等待……”
// Get_Dis();
clk_cnt=0; //为何清0两次???????????????????????????????????????????????????????/
usbclk_cnt=0; //为何清0两次???????????????????????????????????????????????????????/
init_serial();
init_usb();
clk_cnt=0; //为何清0两次???????????????????????????????????????????????????????/
usbclk_cnt=0; //为何清0两次???????????????????????????????????????????????????????/
wdog_cnt=0;
flag_trans=0x00;
while(1)
{
DisplayCOM(0); //显示“等待……”
GetKey(); //背光键
wdog_cnt++;
key_trs=WaitKey(10);
if(key_trs==0x10||FL_RUN||wdog_cnt>=150) break; //收到“功能”键退出
switch(flag_trans)
{
case 0x00:
break;
case 0x01:
Clr_WDog();
FL_RECORDER=0; // FL_RECORDER为0,未上传过流水记录
DisplayCOM(1); //显示“USB通信中”
trs_usb();
DisplayCOM(3); //显示“通信结束”
wdog_cnt=0;
while(1)
{
wdog_cnt++;
key_trs=WaitKey(10);
if(key_trs==0x10||FL_RUN||wdog_cnt>=40) //收到“功能”键,则退出
{
flag_trans=0X00;
Wr_downtime();
wdog_cnt=0;
init_serial();
break;
}
}
FL_RECORDER=0; // FL_RECORDER恢复为0
break;
case 0x02:
Clr_WDog();
FL_RECORDER=0; // FL_RECORDER为0,未上传过流水记录
DisplayCOM(2); //显示“RS232通信中”
rs232();
DisplayCOM(3); //显示“通信结束”
wdog_cnt=0;
while(1)
{
wdog_cnt++;
key_trs=WaitKey(100);
if(key_trs==0x10||FL_RUN||wdog_cnt>=40) //收到“功能”键,则退出
{
flag_trans=0X00;
Wr_downtime(); //记下通信时间
wdog_cnt=0;
break;
}
}
FL_RECORDER=0; // FL_RECORDER恢复为0
break;
default:
break;
}
}
ES=0;
EX1=0;
// stxd=1;
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -