⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sample.c

📁 lpc2368 source files
💻 C
📖 第 1 页 / 共 2 页
字号:
/**********     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 + -