📄 sample.c
字号:
/********** VERSION 1.00V *************/
/********** DEVELOPED BY RAVINDRANATH G *************/
/********** DATED : 30/01/08 *************/
//******************************************************************************/
#include "LPC23xx.h" /* LPC23xx/24xx definitions */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//#include <intrins.h>
#include "type.h"
#include "irq.h"
#include "timer.h"
#include "type.h"
#include "rtc.h"
#include "adc.h"
#include "spi.h"
#include "uart.h"
#include "KeyBoard.h"
#include "display_4x20.h"
#include "impact.h"
#include "mifare.h"
#include "math.h"
#include "ctype.h"
#include "target.h"
/*****************************************************************************
Main Function main()
*****************************************************************************/
//***********RFID*********************
void rfid_test(void);
void tsrdelay(void);
void rdrfid_card_det(void);
int call_req(void);
int init_reading_card(void);
int read_pass_card(unsigned char,unsigned int);
int wrt_crd(unsigned char ,char *);
void write_card_rfid(void );
void rdrfid_card_det(void);
void calculate(void);
void write_renew(void);
void show(void);
int input(unsigned char* ,unsigned int );
void irda_test(void) ;
void display_time(void);
extern void prt_date(void);
extern void prt_time(void);
extern void count(void);
extern void prt_msgb1(int prt_msg_data);
void gotonext(void);
struct rfid_details
{
unsigned char card_id[10];
unsigned char vh_type[10];
unsigned char vh_id[10];
unsigned char vh_type_id[2];
float amount;
};
struct rfid_details rfid;
unsigned char vectors[64] __at 0x40000000; // reserve space for IRQ vectors
unsigned long i,j,x,l;
unsigned char addr1,cnt1,cnt3,intrpt_flag,key_temp,key_temp1;
unsigned char ptmp[20],memptr[30],rd_data1[20],main_buff[30],phone[11];
unsigned char default_keyA[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
unsigned char mode_keyA = 0x00;
unsigned char mode_keyB = 0x04;
unsigned char temp_pass;
//************************************
void mainmenu(void);
void disp_test(void);
void key_test(void);
void print_test(void);
void gsm_test(void);
void flashtest(void);
void date_time(void);
void serial_test(void);
void gotonext(void);
unsigned char _getkey(void);
char prt_lfeed[1] = {0x0A};
char buff[1];
char buffer[15],resp;
void date_time1(void);
void battery_test(void);
unsigned char const key_map[] = {0x00,0x01,0x02,0x03,0x04,
'/','(','1','2','3',
'*',')','4','5','6',
'-','#','7','8','9',
'+',',','=','0','.',
0x00,0x00,BKSP,ESC,ENTER,
'A','B','C','D','E',
'F','G','H','I','J',
'K','L','M','N','O',
'P','Q','R','S','T',
'U','V','W','X','Y',
0x00,0x00,' ','Z',ENTER};
//------------------------------------------------------------------
void copy_vectors (void) {
memcpy (vectors, 0, 64); // copy original IRQ vectors to RAM
MEMMAP = 2; // fetch vectors from RAM
}
unsigned char _getkey(void)
{
unsigned char key_temp,key_val;
while(1)
{
key_temp = get_key();
if(key_temp == 27)
{
key_val = SHIFT;
if(shift_flag == 0)
{
shift_flag = 1;
//shiftled_on();
}
else
{
shift_flag = 0;
//shiftled_off();
}
}
else
{
key_temp--;
if(shift_flag == 0)
{
key_val = key_map[key_temp];
}
else
{
key_val = key_map[30+ key_temp];
}
//if (key_val == 0x08)
//Disp_cur_rev();
return key_val;
}
}
}
void Disp_date(void)
{
printf("%02u",date[0]);
printf("/");
printf("%02u",date[1]);
printf("/");
//date[2] = date[2];// + 2000;
printf("%04u",date[2]);
printf(" ");
}
void Disp_time(void)
{
printf("%02u",time[0]);
printf(":");
printf("%02u",time[1]);
printf(":");
printf("%02u",time[2]);
}
//------------------------------------------------------------------
int main (void)
{
//int cnt,send_cnt;
BYTE ch1[1];
//DWORD j,i = 0;
//BYTE ch;
//char s1 [] = "My House is small";
//char s2 [] = "My Car is green";
//char *s;
copy_vectors();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Disp_initial();
serial_open(0,115200);
serial_open(1,9600);
serial_open(2,19200);
serial_open(3,9600);
clrscr();
printf("ANALOGICS TECH INDIA LTD NACHARAM");
printf("ANALOGICS TECH INDIA LTD NACHARAM");
// gotoxy(1,1);
// printf("F1-IRDA TEST");
// gotoxy(2,1);
// printf("F2-DATE & TIME");
// gotoxy(3,1);
// printf("F3-KEYPAD TEST");
// gotoxy(4,1);
// printf("F4-PRINTER TEST");
while(1)
{
ch1[0]=_getkey();
//serial_send(0,ch1[0]);
printf("%s",ch1);
//Disp_msg(ch1,1);
}
//gsm_enable();
//Init_RTC();
//init_ADC(1);
//init_IrDA();
//cgram_load();
//prn_pow_init();
//init_ssp(0);
//rfid_init();
prt_dw_flag = 0;
prt_dh_flag = 0;
blon();
for(i=0;i<20;i++)
for(j=0;j<90000;j++);
delay_Ms(20);
// time[0] = 4; //HH
// time[1] = 24; //MM
// time[2] = 30; //SS
// date[0] = 12; //DD
// date[1] = 1; //MM
// date[2] = 2009; //YY
// timedate_Write();
// s = strstr (s1, "is");
// if(s!=0x00)
// printf ("substr (s1, \"House\") returns %s\n", s);
// else
// printf ("string not found");
//
//
// get_key();
// clrscr();
// printf("/*");
// sprintf(buffer,"AT");
// resp=AT_response("AT");
// if(resp=='O')printf("OK");
// if(resp=='E')printf("ERROR");
// printf("*/");
// while(1);
/* mif_seq_no = 0x00;
for(i=0;i<16;i++)
{
{
temp_pass = mif_load_key(mode_keyA, i, default_keyA);// cust_keyA);//
if(!(temp_pass))
{
clrscr();
printf("FAILED AT(DA)");
get_key();
}
temp_pass = mif_load_key(mode_keyB, i, default_keyA);// cust_keyB);//
if(!(temp_pass))
{
clrscr();
printf("FAILED AT(DB)");
get_key();
}
}
}
*/
while(1)
mainmenu();
// return 0;
}
void mainmenu(void)
{
unsigned char key_temp;
Disp_erase();
gotoxy(1,1);
Disp_msg("F1-IRDA TEST",13);
gotoxy(2,1);
Disp_msg("F2-DATE & TIME",14);
gotoxy(3,1);
Disp_msg("F3-KEYPAD TEST ",14);
gotoxy(4,1);
Disp_msg("F4-PRINTER TEST ",15);
key_temp = _getkey();
switch(key_temp)
{
case F1: irda_test(); break;
case F2: date_time(); break;
case F3: key_test(); break;
case F4: print_test(); break;
case F5: rfid_test(); break;
case ENTER: gotonext();
default: break;
}
return;
}
void gotonext(void)
{
unsigned char key_temp;
Disp_erase();
gotoxy(1,1);
while(1)
{
Disp_erase();
Disp_msg("F1-FLASH TEST",13);
gotoxy(2,1);
Disp_msg("F2-SERIAL TEST ",14);
gotoxy(3,1);
Disp_msg("F3-BATTERY TEST",15);
gotoxy(4,1);
Disp_msg("F4-GSM TEST",11);
key_temp = _getkey();
switch(key_temp)
{
case F1: flashtest(); break;
case F2: serial_test(); break;
case F3: battery_test(); break;
case F4: gsm_test(); break;
case F5: disp_test(); break;
case ESC: return;
}
}
}
void battery_test(void)
{
unsigned char key;
key=0;
Disp_erase();
// cgram_load();
while(key!=ESC)
{
bat_chk();
delay_Ms(2000);
key=_getkey();
}
}
void flashtest(void)
{
char buffer[25],i;
Disp_erase();
gotoxy(1,1);
Disp_msg("flash test",10);
sprintf(buffer,"analogics tech india ltd");
ram2flash(12345,&buffer[0],24);
for(i=0;i<24;i++)
serial_send(0,buffer[i]);
serial_send(0,'~');
for(i=0;i<24;buffer[i++]=' ');
flash2ram(&buffer[0],12345,24);
for(i=0;i<24;i++)
serial_send(0,buffer[i]);
serial_send(0,'.');
}
///CHANGE TIME
void change_time(unsigned int t )
{ unsigned char ROW;
int key;
int j,i;
key=0;
ROW=1;
while(key!=ENT)
{
for(j=1,i=15;j>=0;j--)
{
gotoxy(ROW,i);
key=_getkey();
gotoxy(4,1);
printf(" ");
if(key==ENT) break;
if(key==BKSP)
{
if(i==15&&ROW==3)
{
time[1]=0;
t=1;
ROW=2;
continue;
}
if(i==15&&ROW==2)
{
time[0]=0;
t=0;
ROW=1;
continue;
}
if(i==16&&ROW==3)
{
time[2]=0;
t=2;
ROW=3;
continue;
}
else
i--;
continue;
}
key=key-48;
if(key>=0&&key<=9)
{
gotoxy(ROW,i);
printf("%d",key);
i+=1;
time[t]+=(key)*(pow(10,j));
}
else
{
j++;
gotoxy(4,1);
printf("invalid enter nums");
}
if(ROW==1&&i==17)
{
t=1;
ROW=2;
continue;
}
if(ROW==2&&i==17)
{
t=2;
ROW=3;
continue;
}
if(ROW==3&&i==17)
{
if(time[2]<59)
{
gotoxy(4,1);
printf("press ENT to next");
gotoxy(4,20);
while(1)
{
key=_getkey();
if(key==ENT)
break;
}
}
}
}
if(time[0]>23)
{
time[0]=0;
gotoxy(4,1);
printf("invalid enter HH");
t=0;
ROW--;
continue;
}
if(time[1]>59)
{
time[1]=0;
gotoxy(4,1);
printf("invalid enter MM");
t=1;
ROW--;
continue;
}
if(time[2]>59)
{
time[2]=0;
gotoxy(4,1);
printf("invalid enter SS");
t=2;
continue;
}
}
}
////////////////////////////////////
///DATE-MONTH-YEAR /////////////////////
//////////////////////////////////////
///////////////////////////////////////
void change_date(unsigned int t )
{
unsigned char ROW;
int key;
int j,i;
key=0;
ROW=1;
while(key!=ENT)
{ if(t==0||t==1)
{
for(j=1,i=15;j>=0;j--)
{
gotoxy(ROW,i);
key=_getkey();
gotoxy(4,1);
printf(" ");
if(key==ENT) break;
if(key==BKSP)
{
if(i==15&&ROW==3)
{
date[1]=0;
t=1;
ROW=2;
continue;
}
if(i==15&&ROW==2)
{
date[0]=0;
t=0;
ROW=1;
continue;
}
if(i==18&&ROW==3)
{
time[2]=0;
t=2;
ROW=3;
continue;
}
else
{
i--;
continue;
}
}
key=key-48;
if(key>=0&&key<=9)
{
gotoxy(ROW,i);
printf("%d",key);
i+=1;
date[t]+=(key)*(pow(10,j));
}
else
{
j++;
gotoxy(4,1);
printf("invalid enter nums");
}
if(ROW==1&&i==17)
{
t=1;
ROW=2;
continue;
}
if(ROW==2&&i==17)
{
t=2;
ROW=3;
continue;
}
}
}
else
{
for(j=3,i=15;j>=0;j--)
{ gotoxy(ROW,i);
key=_getkey();
gotoxy(4,1);
printf(" ");
if(key==ENT) break;
if(key==BKSP)
{
if(((i==18)||(i==17)||(i==16))&&ROW==3)
{
time[2]=0;
t=2;
ROW=3;
i--;
continue;
}
if(i==15&&ROW==3)
{ time[1]=0 ;
ROW=2;
t=1;
continue;
}
}
key=key-48;
if(key>=0&&key<=9)
{
gotoxy(ROW,i);
printf("%d",key);
i+=1;
date[t]+=(key)*(pow(10,j));
}
else
{
j++;
gotoxy(4,1);
printf("invalid enter nums");
}
if(ROW==3&&i==19)
{
if(date[2]<9999)
{ gotoxy(4,1);
printf("press ENT to next");
gotoxy(4,20);
while(1)
{
key=_getkey();
if(key==ENT)
break;
}
}
}
}
}
if(date[0]>31)
{
date[0]=0;
gotoxy(4,1);
printf(" invalid enter DD");
t=0;
ROW--;
continue;
}
if(date[1]>12)
{
date[1]=0;
gotoxy(4,1);
printf(" invalid enter MM");
t=1;
ROW--;
continue;
}
if(date[2]>9999)
{
date[2]=0;
gotoxy(4,1);
printf("invalid enter YYYY");
t=2;
continue;
}
}
}
void change_rtc(void)
{
unsigned char key;
Disp_erase();
for(i=0;i<3;i++)
{
time[i]=0;
date[i]=0;
}
Disp_erase();
gotoxy(1,1);
printf("HOURS IN HH:");
gotoxy(2,1);
printf("MINUTES IN MM:");
gotoxy(3,1);
printf("SECONDS IN SS:");
change_time(0);
Disp_erase();
gotoxy(1,1);
printf("DATE IN DD :") ;
gotoxy(2,1);
printf("MONTH IN MM :") ;
gotoxy(3,1);
printf("YEAR IN YYYY:");
change_date(0);
Disp_erase();
Disp_erase();
key=0;
while(key!=ESC)
{ gotoxy(1,1);
Disp_msg("DATE:",5);
Disp_date();
gotoxy(2,1);
Disp_msg("TIME:",5);
Disp_time();
gotoxy(4,1);
printf("PRESS ENT TO STORE");
key=_getkey();
if(key==ENT)
{timedate_Write();
timedate_Read(); break;}
}
}
///SAMPLE
void date_time(void)
{
unsigned char key;
Disp_erase();
gotoxy(1,1);
Disp_msg("F1-DISPLAY THE TIME",19);
gotoxy(2,1);
Disp_msg("F2-SET THE TIME ",16);
key = _getkey();
switch(key)
{
case F1: display_time() ;break;
case F2: change_rtc();
}
}
void serial_test(void)
{
unsigned char key,ch;
Disp_erase();
gotoxy(1,1);
Disp_msg("F1-UPLOAD TO PC",15);
gotoxy(2,1);
Disp_msg("F2-DOWNLOAD FROM PC",19);
gotoxy(3,1);
key = _getkey();
Disp_erase();
gotoxy(1,1);
ch = 0;
switch(key)
{
case F1: Disp_msg("Sending Data To PC",18);
while(ch!=ESC)
{
ch = _getkey();
serial_send(0,ch);
}
break;
case F2: Disp_msg("Receiving Data Fr PC",20);
while(ch!='z')
{
ch = serial_receive(0,0);
buff[0]=ch;
// Disp_msg(buff,ch);
Disp_msg(buff,1);
}
break;
default: break;
}
}
void irda_test(void)
{
unsigned char key,ch;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -