📄 main.c
字号:
// EasyStudy51-II 综合测试程序
// 编写:wolfe
// 日期:2008.10
#include "ES51_II.h"
unsigned char SIO_BUFF[16];
unsigned char BUFF[4];
#define TEST_24C '1'
#define TEST_UART '2'
#define TEST_BUZZ '3'
#define TEST_LED '4'
#define TEST_INT0KEY '6'
#define TEST_COUNTKEY '5'
// 初始化
void ES51_II_Init(void);
// KEY1~KEY4处理函数
void Key_Poll(void);
void Uncall(void)
{
unsigned char i;
LoopLEDON(LEDMIDDLELOOP,7);
LoopLEDOFF();
INT0_Init_KeyINT0();
INT1_Init_KeyShare();
DelayS(1);
for( i=0;i<8;i++)
SIO_BUFF[i] = i+'0';
PutData_(8,&SIO_BUFF);
while( bTxDone != TRUE);
GetData_(1,&SIO_BUFF);
while( bRxDone != TRUE);
PutStr_("Hello,World!");
while( bTxDone != TRUE);
GetStr_(&SIO_BUFF);
while( bRxDone != TRUE);
GetStr_(&SIO_BUFF);
while( bRxDone != TRUE);
GetStr(&SIO_BUFF);
PutStr("123");
TurnOnLED(1);
TurnOffLED(1);
SMGDisplayOFF();
}
void main()
{
bit none=0;
ES51_II_Init();
EA = 1; // 允许中断
SMGBuffWrite(1,4,0,"8888"); // 数码管全部显示:8888
SMGDisplayON(); // 打开数码管显示
if( none == 1)
Uncall();
while(1)
{
Key_Poll(); // 按键处理
}
}
// 初始化
void ES51_II_Init(void)
{
unsigned char i;
for(i=0; i<4;i++)
BUFF[i] = 0; // 缓冲区初始化
//INT0_Init_KeyINT0(); // 中断0初始化
//INT1_Init_KeyShare(); // 中断1初始化
InitSerialPort(); // 串行口初始化
}
//
void Key_Poll(void)
{
unsigned char keyval,tmp;
static unsigned char ledtype = 0; //
static unsigned int count_keyint0 = 0; // INT0键计数
static unsigned int count_keycount = 0; // COUNT键计数
static unsigned int count_Txd = 0; // 字符串发送计数
static unsigned int count_WR24 = 0; //
static unsigned int count_Bell = 0;
keyval = GetKeyVal();
if( keyval != VAL_KEYNULL ) // 是否有键按下
{
switch( keyval )
{
case VAL_KEY4: // 执行流水灯
BUFF[0] = TEST_LED;
LoopLEDON(ledtype,5);
BUFF[1] = BUFF[2] = '0';
BUFF[3] = ledtype+'0'; // 最低位显示跑马灯样式
if( ++ledtype > 3 )
ledtype = 0;
break;
case VAL_KEY3: // 执行蜂鸣器
BUFF[0] = TEST_BUZZ;
if( ++count_Bell == 999 ) // 计数加1
count_Bell = 0;
tmp = count_Bell/100;
BUFF[1] = tmp+'0'; // 百
BUFF[2] = (count_Bell-tmp*100)/10+'0';// 十
BUFF[3] = count_Bell%10+'0'; // 个
SMGBuffWrite(1,4,0,&BUFF); //
SMGBuffWrite(1,1,1,&BUFF);
Buzzer(1,2);
break;
case VAL_KEY2: // 执行串行口发送数据
BUFF[0] = TEST_UART; //
if( bTxDone == TRUE ) // 判断前一字符串是否发送完毕
{
count_Txd++; // 发送次数加1;
PutStr_("Welcome to EasyStudy51-II!\n\r");
}
tmp = count_Txd/100;
BUFF[1] = tmp+'0'; // 百
BUFF[2] = (count_Txd-tmp*100)/10+'0';// 十
BUFF[3] = count_Txd%10+'0'; // 个
break;
case VAL_KEY1: // 执行24C01读写程序
BUFF[0] = TEST_24C;
EA = 0; // 关闭中断,在读写24时若被中断会引起读写不正常
WriteEEPROM_OneByte(ADDR_24,0x00,0x55);
DelayMS(10);
tmp = ReadEEPROM_OneByte(ADDR_24,0x00);
EA = 1; //
if( tmp == 0x55)
{
count_WR24++;
tmp = count_WR24/100;
BUFF[1] = tmp+'0'; // 百
BUFF[2] = (count_WR24-tmp*100)/10+'0';// 十
BUFF[3] = count_WR24%10+'0'; // 个
}
else // 错误
BUFF[1] = BUFF[2]= BUFF[3] = '0';
break;
case VAL_KEYINT0:
if( ++count_keyint0 == 999 ) // 计数加1
count_keyint0 = 0;
BUFF[0] = TEST_INT0KEY;
tmp = count_keyint0/100;
BUFF[1] = tmp+'0'; // 百
BUFF[2] = (count_keyint0-tmp*100)/10+'0';// 十
BUFF[3] = count_keyint0%10+'0'; // 个
break;
case VAL_KEYCOUNT:
if( ++count_keycount == 999 ) // 计数加1
count_keycount = 0;
BUFF[0] = TEST_INT0KEY;
tmp = count_keycount/100;
BUFF[1] = tmp+'0'; // 百
BUFF[2] = (count_keycount-tmp*100)/10+'0';// 十
BUFF[3] = count_keycount%10+'0';// 个
break;
default:
break;
}
SMGBuffWrite(1,4,0,&BUFF); //
SMGBuffWrite(1,1,1,&BUFF); //
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -