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

📄 main.c

📁 EasyStudy51-II单片机开发系统的库函数源代码.包含了EasyStudy51-II硬件的全部驱动.
💻 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 + -