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

📄 test_api.c

📁 基于atmel公司带USB2.0控制器、51内核的单片机AT89C5131F和K9F5608U的U盘读写源程序(keilC uversion3环境)
💻 C
📖 第 1 页 / 共 2 页
字号:
/*C**************************************************************************
* NAME:         test_api.c
*----------------------------------------------------------------------------
* Copyright (c) 2003 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      c5131-usb-flash-api-1_0_5      
* REVISION:     1.2     
*----------------------------------------------------------------------------
* PURPOSE: 
* 
*****************************************************************************/

/*_____ I N C L U D E S ____________________________________________________*/
#include "stdio.h"
#include "config.h"

/*_____ M A C R O S ________________________________________________________*/

/*_____ D E F I N I T I O N ________________________________________________*/
Uchar	xdata tab[256];
/*_____ D E C L A R A T I O N ______________________________________________*/

/*F**************************************************************************
* NAME: uart_init 
*----------------------------------------------------------------------------
* PARAMS:
*----------------------------------------------------------------------------
* PURPOSE: 
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
void uart_init (void)
{
  SCON = 0x50;
  TMOD = TMOD | 0x20 ;      /*  Timer1 in mode 2 & not gated */
//  TH1 = 0xF3;               /*  2400 bauds at 12 MHZ */
//  TL1 = 0xF3; 

  TH1 = 0xEE;               /*  2400 bauds at 16 MHZ */
  TL1 = 0xEE; 


  PCON = PCON & 0X80;
  TCON |= 0x40;         
  TI=1;
}

/*F**************************************************************************
* NAME: bin_to_asc 
*----------------------------------------------------------------------------
* PARAMS:
* to_convert: byte to parse in ascii
*----------------------------------------------------------------------------
* PURPOSE: 
* This function return the ascii value
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
Uchar bin_to_ascii (Uchar to_convert)
{
  Uchar convert;

  if ((to_convert >= 0) &&
      (to_convert <= 9)   )
  {
    convert = to_convert + 0x30;
  }
  else
  {
    convert = to_convert + 0x37;
  }
  return (convert);
}

/*F**************************************************************************
* NAME: tx_data 
*----------------------------------------------------------------------------
* PARAMS:
* data_to_tx: byte to transmit on the line
*----------------------------------------------------------------------------
* PURPOSE: 
* This function send on UART the value
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
void tx_data (Uchar data_to_tx)
{
  while(!TI);
  TI = 0;
  SBUF = data_to_tx;
}

/*F**************************************************************************
* NAME: send_byte_ascii 
*----------------------------------------------------------------------------
* PARAMS:
* byte_to_tx: byte to send on UART in ascii
*----------------------------------------------------------------------------
* PURPOSE: 
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
void send_byte_ascii(Uchar byte_to_tx)
{
  Uchar data_to_tx;

  data_to_tx = bin_to_ascii( byte_to_tx >> 4);
  tx_data(data_to_tx);
  data_to_tx = bin_to_ascii( byte_to_tx & 0x0F);
  tx_data(data_to_tx);
}

/*F**************************************************************************
* NAME: send_cr_lf 
*----------------------------------------------------------------------------
* PARAMS:
*----------------------------------------------------------------------------
* PURPOSE: 
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
void send_cr_lf(void)
{
  tx_data(0x0D);
  tx_data(0x0A);
}
/*F**************************************************************************
* NAME: main 
*----------------------------------------------------------------------------
* PARAMS:
*----------------------------------------------------------------------------
* PURPOSE: 
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
void main (void)
{
	Uint16 cpt;
  Uchar	value;
  Uchar error;
  
	uart_init();

  error = 0;
	send_cr_lf();
	send_cr_lf();

  printf("       ****************************");
	send_cr_lf();
  printf("       * c5131 USB Flash API Test *");
	send_cr_lf();
  printf("       ****************************");
	send_cr_lf();
	send_cr_lf();

/*---- Test BSB ------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/


  printf("BSB test:");
	send_cr_lf();
  printf("---------");
	send_cr_lf();

// Read BSB
	printf("BSB initial value = ");	
	value = __api_rd_BSB ();
	send_byte_ascii(value);
	send_cr_lf();
  send_cr_lf();

// Write BSB
	printf("Write BSB = 0x55");	
	value = __api_wr_BSB (0x55);
	send_cr_lf();
// Read BSB
	printf("BSB = ");	
	value = __api_rd_BSB ();
	send_byte_ascii(value);
  if (value != 0x55)
    {
     printf(" - ERROR WRITE BSB");
     error = 1;
    }
	send_cr_lf();
// Write BSB
	printf("Write BSB = 0xFF");	
	value = __api_wr_BSB (0xFF);
	send_cr_lf();
// Read BSB
	printf("BSB = ");	
	value = __api_rd_BSB ();
	send_byte_ascii(value);
  if (value != 0xFF)
    {
     printf(" - ERROR WRITE BSB");
     error = 1;
    }
	send_cr_lf();
	send_cr_lf();

/*---- Test SBV ------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/

  printf("SBV test:");
	send_cr_lf();
  printf("---------");
	send_cr_lf();


// Read SBV
	printf("SBV initial value = ");	
	value = __api_rd_SBV ();
	send_byte_ascii(value);
	send_cr_lf();
	send_cr_lf();

// Write SBV
	printf("Write SBV = 0xAA");	
	value = __api_wr_SBV (0xAA);
	send_cr_lf();
// Read SBV
	printf("SBV = ");	
	value = __api_rd_SBV ();
  if (value != 0xAA)
    {
     printf(" - ERROR WRITE SBV");
     error = 1;
    }

	send_byte_ascii(value);
	send_cr_lf();
// Erase SBV
	printf("Erase SBV");	
	value = __api_erase_SBV ();
	send_cr_lf();
// Read SBV
	printf("SBV = ");	
	value = __api_rd_SBV ();
  if (value != 0xFF)
    {
     printf(" - ERROR ERASE SBV");
     error = 1;
    }

	send_byte_ascii(value);
	send_cr_lf();
	send_cr_lf();

/*---- Test SSB ------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/

  printf("SSB test:");
	send_cr_lf();
  printf("---------");
	send_cr_lf();


// Read SSB
	printf("SSB initial value = ");	
	value = __api_rd_SSB ();
	send_byte_ascii(value);
	send_cr_lf();
	send_cr_lf();

// Write SSB
	printf("Write SSB = no_security");	
	value = __api_wr_SSB (NO_SECURITY);
	send_cr_lf();
// Read SSB
	printf("SSB = ");	
	value = __api_rd_SSB ();
	send_byte_ascii(value);
  if (value != NO_SECURITY)
    {
     printf(" - ERROR WRITE SSB no security");
     error = 1;
    }
	send_cr_lf();
// Write SSB
	printf("Write SSB = wr_security");	
	value = __api_wr_SSB (WR_SECURITY);
	send_cr_lf();
// Read SSB
	printf("SSB = ");	
	value = __api_rd_SSB ();
	send_byte_ascii(value);
  if (value != WR_SECURITY)
    {
     printf(" - ERROR WRITE SSB write security");
     error = 1;
    }
	send_cr_lf();
// Write SSB
	printf("Write SSB = rd_wr_security");	
	value = __api_wr_SSB (RD_WR_SECURITY);
	send_cr_lf();
// Read SSB
	printf("SSB = ");	
	value = __api_rd_SSB ();
	send_byte_ascii(value);
  if (value != RD_WR_SECURITY)
    {
     printf(" - ERROR WRITE SSB read-write security");
     error = 1;
    }
	send_cr_lf();
// Write SSB
	printf("Write SSB = no_security");	
	value = __api_wr_SSB (NO_SECURITY);
	send_cr_lf();
// Read SSB
	printf("SSB = ");	
	value = __api_rd_SSB ();
	send_byte_ascii(value);
  if (value != NO_SECURITY)
    {
     printf(" - ERROR WRITE SSB no security");
     error = 1;
    }
	send_cr_lf();
	send_cr_lf();


/*---- Test EB ------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/

  printf("EB test:");
	send_cr_lf();
  printf("--------");
	send_cr_lf();

// Read EB
	printf("EB initial value = ");	
	value = __api_rd_EB ();
	send_byte_ascii(value);
	send_cr_lf();
	send_cr_lf();

// Write EB
	printf("Write EB = 5A");	
	value = __api_wr_EB (0x5A);
	send_cr_lf();
// Read EB
	printf("EB = ");	
	value = __api_rd_EB ();
	send_byte_ascii(value);
  if (value != 0x5A)
    {
     printf(" - ERROR WRITE EB");
     error = 1;
    }
	send_cr_lf();
// Write EB
	printf("Write EB = FF");	
	value = __api_wr_EB (0xFF);
	send_cr_lf();
// Read EB
	printf("EB = ");	
	value = __api_rd_EB ();
	send_byte_ascii(value);
  if (value != 0xFF)
    {
     printf(" - ERROR WRITE EB");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -