📄 main.c
字号:
/*****************************************************************************
|*
|* Copyright (c) 2001 TASKING, Inc.
|*
|* Description:
|*
|* This module shows an example of how to initialize
|* and use the serial port.
|*
****************************************************************************/
#pragma romstring
#include "serial.h"
#include "reg51.sfr"
_rom char *str_prompt = ">>";
_rom char *str_startup = "Compal communication inc.\n";
_rom char *str_version = "Charles_Wu RF station ver 1.40 xxon xxoff r00-03 alloff fxx? rst_fk pass bad clear side\n";
_rom char *str_f4press = "f04press\n";
_rom char *str_f5press = "f05press\n";
_rom char *str_f8press = "f08press\n";
_rom char *str_rst_f_k = "reset_fk\n";
_rom char *str_nokeypress = "nokeyprs\n";
_rom char *str_unknown_cmd = "unknwcmd\n";
_rom char *str_ok_cmd = "cmdexeok\n";
_rom char *str_right_side = "right_sd\n";
_rom char *str_left_side = "left_sid\n";
unsigned char flag_TI = 0;
unsigned char flag_xoff_sent = 0;
unsigned char flag_stopped = 0;
unsigned char flag_send_xoff = 0;
unsigned char flag_ctrlC = 0;
unsigned char key_f4_prs = 0;
unsigned char key_f5_prs = 0;
unsigned char key_f8_prs = 0;
unsigned char se_buf[INPUT_BUFFER_SIZE+1];
char se_buf_in;
char se_buf_out;
unsigned char cmdline[COMMAND_LINE_SIZE];
unsigned char *cmdline_ptr;
char cmdindex;
/*****************************************************************************
|*
|* Function: romstrcmp
|*
|* Description:
|*
|* This special version of strcmp compares a string in data with a
|* string located in ROM.
|*
*/
int
romstrcmp( const char *s1, _rom const char *s2 )
{
register char res;
while( !(res = (*s1 - *s2++)) && *s1++ )
;
return( res );
}
/*****************************************************************************
|*
|* Function: main
|*
|* Description:
|*
|* Main function, initializes serial port and starts command sequence.
|*
*/
void
main( void )
{
key_f4_prs = 0;
key_f5_prs = 0;
key_f8_prs = 0;
P2 = 1;
P0 = 0;
EA = 1; /* globally enable serial interrupts */
se_initialize_port(); /* initialize the serial port */
se_print( str_startup ); /* Print the startup message */
while ( 1 )
{
se_print( str_prompt ); /* print the prompt */
se_getline(); /* and read a command */
/* check which command has being entered */
/*
if ( !romstrcmp( (const char *)cmdline, "00on" ) )
{ P2_0 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "00off" ) )
{ P2_0 = 0;
se_print( str_ok_cmd );
}
else
*/
if ( !romstrcmp( (const char *)cmdline, "01on" ) )
{ P2_1 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "01off" ) )
{ P2_1 = 0;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "02on" ) )
{ P2_2 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "02off" ) )
{ P2_2 = 0;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "03on" ) )
{ P2_3 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "03off" ) )
{ P2_3 = 0;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "04on" ) )
{ P2_4 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "04off" ) )
{ P2_4 = 0;
se_print( str_ok_cmd );
}
else
/*
if ( !romstrcmp( (const char *)cmdline, "05on" ) )
{ P2_5 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "05off" ) )
{ P2_5 = 0;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "06on" ) )
{ P2_6 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "06off" ) )
{ P2_6 = 0;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "07on" ) )
{ P2_7 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "07off" ) )
{ P2_7 = 0;
se_print( str_ok_cmd );
}
else
//
if ( !romstrcmp( (const char *)cmdline, "08on" ) )
{ P0_0 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "08off" ) )
{ P0_0 = 0;
se_print( str_ok_cmd );
}
else
//
if ( !romstrcmp( (const char *)cmdline, "09on" ) )
{ P0_1 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "09off" ) )
{ P0_1 = 0;
se_print( str_ok_cmd );
}
else
//
if ( !romstrcmp( (const char *)cmdline, "10on" ) )
{ P0_2 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "10off" ) )
{ P0_2 = 0;
se_print( str_ok_cmd );
}
else
//
if ( !romstrcmp( (const char *)cmdline, "11on" ) )
{ P0_3 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "11off" ) )
{ P0_3 = 0;
se_print( str_ok_cmd );
}
else
*/
//
/*
if ( !romstrcmp( (const char *)cmdline, "12on" ) )
{ P0_4 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "12off" ) )
{ P0_4 = 0;
se_print( str_ok_cmd );
}
else
//
if ( !romstrcmp( (const char *)cmdline, "13on" ) )
{ P0_5 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "13off" ) )
{ P0_5 = 0;
se_print( str_ok_cmd );
}
else
//
if ( !romstrcmp( (const char *)cmdline, "14on" ) )
{ P0_6 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "14off" ) )
{ P0_6 = 0;
se_print( str_ok_cmd );
}
else
//
if ( !romstrcmp( (const char *)cmdline, "15on" ) )
{ P0_7 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "15off" ) )
{ P0_7 = 0;
se_print( str_ok_cmd );
}
else
//
*/
if ( !romstrcmp( (const char *)cmdline, "alloff" ) )
{
P2 = 1;
P0 = 0;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "clear" ) )
{
P0_0 = 1;
P0_1 = 1;
P0_3 = 0;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "pass" ) )
{
P0_0 = 1;
P0_1 = 0;
P0_3 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "bad" ) )
{
P0_0 = 0;
P0_1 = 1;
P0_3 = 1;
se_print( str_ok_cmd );
}
else
if ( !romstrcmp( (const char *)cmdline, "f04?" ) )
{
if(key_f4_prs == 1)
{
se_print( str_f4press );
P1_5 = 1;
}
else
{
se_print( str_nokeypress );
}
}
else
if ( !romstrcmp( (const char *)cmdline, "f05?" ) )
{
if(key_f5_prs == 1)
{
se_print( str_f5press );
P1_4 = 1;
}
else
{
se_print( str_nokeypress );
}
}
else
if ( !romstrcmp( (const char *)cmdline, "f08?" ) )
{
if(key_f8_prs == 1)
{
se_print( str_f8press );
P1_3 = 1;
}
else
{
se_print( str_nokeypress );
}
}
else
if ( !romstrcmp( (const char *)cmdline, "rst_fk" ) )
{
se_print( str_rst_f_k );
key_f4_prs = 0;
key_f5_prs = 0;
key_f8_prs = 0;
}
else
if ( !romstrcmp( (const char *)cmdline, "ver?" ) )
{
se_print( str_version );
}
else
if ( !romstrcmp( (const char *)cmdline, "side?" ) )
{
if(P1_6 == 0)
{
se_print( str_right_side );
}
else
{
se_print( str_left_side );
}
}
else
{
se_print( str_unknown_cmd );
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -