📄 earkey.c
字号:
/*********************************Sheena************************************/
//#include <stdio.h>
//#include <string.h>
//#include "stdlib\stdlib.h"
#include "delay\delay.h"
//#include "string\string.h"
#include "keyboard\keyboard.h"
//#include "date\date.h"
//#include "time\time.h"
//#include "2x16lcd\2x16lcd.h"
#include "128x64\128x64.h"
#include "bmps\JBB.h"
//#include "bmps\common.h"
//#include "bmps\clock.h"
//#include "bmps\calender.h"
sbit COM_SELECT = 0xB3;
sbit BUZZER = 0x95;
#define kbhit() (RI)
#define RESET_DATABASE 'R'
#define RECORD_COUNTS 'C'
#define ATTENDANCE_RECORDS 'A'
#define FAIL_SAFE_ATTENDANCE_RECORDS 'S'
#define SET_DATE 'D'
#define SET_TIME 'T'
#define GET_DATE 'G'
#define GET_TIME 'H'
#define REGISTER 'E'
#define RUN 'F'
#define RTE_RESET_COUNTS 'X'
#define SET_RTE 'N'
#define RTE_INFO 'K'
/*Application specific code*/
#define BARCODE_LENGTH 10
#define MAX_RECORD_COUNTS 3000
/*xdata char cr[] = {'\n', 13, 0};
typedef struct
{
char barcode[14]; //14 bytes
struct date d; //4 bytes
struct time t; //4 bytes
}AttendanceRecord; //22 bytes
AttendanceRecord xdata attendance_records[MAX_RECORD_COUNTS];
int xdata record_counts;
int xdata fail_safe_record_counts;
sbit P1_1 = 0x91;
char xdata _data[15];
int xdata index = 0;
xdata char rte_employees[50][14];
int xdata rte_counts;
char xdata date_str[10];
char xdata time_str[10];
int xdata counter = 0;
char fim10mode = 0;
char xdata command;
char xdata param1, param2;
char xdata data_size;
char xdata error;
char xdata header_checksum;
char xdata packet_data[25];
char xdata data_checksum;
char xdata master_mode = 0;
*/
void inittimer0();
void __transmit(char *str);
void transmit(char *str);
/*void transmitpacket( char port,
char command,
char param1,
char param2,
char data_size,
char error,
char header_checksum,
char *packet_data,
char data_checksum);
void receivepacket( char port,
char *command,
char *param1,
char *param2,
char *data_size,
char *error,
char *header_checksum,
char *packet_data,
char *data_checksum);*/
/*char *readbarcode(char *barcode, int counts)
{
int i;
for(i = 0; i < counts; i++)
{
*(barcode + i) = getkey();
}
*(barcode + i) = '\0';
return barcode;
} */
/*void processdata()
{
char command = _data[0];
char str[10];
int i;
struct date d;
struct time t;
ET0 = 0;
if(command == REGISTER) //Register new FP
{
fim10mode = 2; //Enter master mode
}
if(command == RUN)
{
fim10mode = 0; //Exit master mode
}
if(command == GET_DATE)
{
datetostr(&today, str);
__transmit("Date : ");
__transmit(str);
__transmit(cr);
}
if(command == SET_DATE)
{
if(_data[1] != 0)
{
__transmit(&_data[1]);
__transmit(cr);
strtodate(&_data[1], &d);
datesetdate(&d);
}
}
if(command == GET_TIME)
{
timetostr(&now, str);
__transmit("Time : ");
__transmit(str);
__transmit(cr);
}
if(command == SET_TIME)
{
if(_data[1] != 0)
{
//__transmit(&_data[1]);
//__transmit(cr);
strtotime(&_data[1], &t);
timesettime(&t);
}
}
if(command == RESET_DATABASE)
{
__transmit("Resetting database");
__transmit(cr);
record_counts = 0;
fail_safe_record_counts = 0;
}
if(command == RECORD_COUNTS)
{
__itoa(record_counts, str, 10);
// *gotoxy(1, 2);
// *____puts("RC - ");
// *____puts(str);
__transmit("Record counts : ");
__transmit(str);
__transmit(cr);
}
if(command == ATTENDANCE_RECORDS)
{
for(i = 0; i < record_counts; i++)
{
//delay(20000);
__itoa(i + 1, str, 10);
__transmit("["); //01
__transmit(attendance_records[i].barcode); //10
__transmit(" "); //05
datetostr(&attendance_records[i].d, str);
str[2] = '/';
__transmit(str); //05
__transmit(" "); //05
timetostr(&attendance_records[i].t, str);
str[2] = ':';
__transmit(str); //05
__transmit("]"); //01
}
}
if(command == FAIL_SAFE_ATTENDANCE_RECORDS)
{
for(i = 0; i < fail_safe_record_counts; i++)
{
delay(20000);
__itoa(i + 1, str, 10);
__transmit("["); //01
__transmit(attendance_records[i].barcode); //10
__transmit(" "); //05
datetostr(&attendance_records[i].d, str);
str[2] = '/';
__transmit(str); //05
__transmit(" "); //05
timetostr(&attendance_records[i].t, str);
str[2] = ':';
__transmit(str); //05
__transmit("]"); //01
}
}
if(command == SET_RTE)
{
__strstrcpy(rte_employees[rte_counts], &_data[1]);
rte_counts++;
}
if(command == RTE_RESET_COUNTS)
{
rte_counts = 0;
}
if(command == RTE_INFO)
{
__itoa(rte_counts-1, str, 10);
__transmit("RTE Record counts : ");
__transmit(str);
__transmit(cr);
__transmit("RTE Records : \n");
for(i = 0 ; i < rte_counts ; i++)
{
__transmit("[");
__transmit(rte_employees[i]);
__transmit("]");
}
}
inittimer0();
} */
/*void timer0() interrupt 1
{
xdata char str[10];
if(counter >= 25)
{
//lcddisplaysstr(0 * 8, 0, " EAR - 2022 ", INVERTED_MODE);
lcddisplaysstr(0 * 8, 0, " E A R 2 0 2 2 ", INVERTED_MODE);
lcddisplaysstr(0 * 8, 1, " Swap your card ", INVERTED_MODE);
//lcddisplaysstr(3 * 8, 3, "----------", NORMAL_MODE);
lcddisplaysstr(1 * 8, 3, " ", NORMAL_MODE);
lcddisplaysstr(1 * 8, 4, " ", NORMAL_MODE);
dategetdate(&today);
__datetostr(&today, date_str);
// Older code
/*
__lcddisplaybmp(14 , 5, calender, CALENDER_BMP_COLS, CALENDER_BMP_ROWS, NORMAL_MODE);
date_str[2] = '-';
lcddisplaysstr(3 * 8, 5, date_str, NORMAL_MODE);
lcddisplaysstr(8 * 8, 5, "-2005", NORMAL_MODE);
*/
/*__lcddisplaybmp(7 , 6, calender, CALENDER_BMP_COLS, CALENDER_BMP_ROWS, NORMAL_MODE);
date_str[2] = '-';
lcddisplaysstr(2 * 8, 6, date_str, NORMAL_MODE);
// *gotoxy(1, 1);
// *__puts("D-");
// *__puts(str);
timegettime(&now);
__timetostr(&now, time_str);
__lcddisplaybmp(71, 6, clock, CLOCK_BMP_COLS, CLOCK_BMP_ROWS, NORMAL_MODE);
lcddisplaysstr(10 * 8, 6, time_str, NORMAL_MODE);
// *gotoxy(10, 1);
// *__puts("T-");
// *__puts(str);
counter = 0;
}
counter++;
} */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -