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

📄 main.c

📁 proteus仿真实例大全
💻 C
字号:
#include <intrins.h>
#include <string.h>
#include "at89x52.H"
#include "experiment.h"
#include "main.h"
#define LEDNULL 1
#define LEDADD 1
/*************************************************************
*  FUNCTION NAME:Main(void)
*  PARAMETERS:
*  DESCRIPTION:main function
*  RETURNS:
*  CREATED: XiongHui 2006-3-18 
*  HISTORY OF CHANGE: 
*************************************************************/
void main(void)
{
	EA = 0;
	MCUInit();				//initialize the SFR of MCU 
	SYSInit();				//read the Variables of system
	EA = 1;					//enable the global interrupt flag
	UartProFlag = TRUEFLAG;
	while(1)
	{
		Time500ms();
		KeyPro();
		UartRecePro();
		UartPro();
	}
}
/********************************************************************************
*  FUNCTION NAME:Time500ms(void)
*  PARAMETERS:key
*  DESCRIPTION:time delay  		  
*  RETURNS:
*  CREATED: XiongHui 2006-3-18 
*  HISTORY OF CHANGE: 
*********************************************************************************/
void Time500ms(void)
{
	
	if(Timer10msFlag == TRUEFLAG)
	{
		Timer10msFlag = FALSEFLAG;
		if(++counter >= 50)
		{
			LED = !LED;
			counter = 0;  
		
		}
		
	}
}
/********************************************************************************
*  FUNCTION NAME:KeyPro(void)
*  PARAMETERS:key
*  DESCRIPTION:time delay  		  
*  RETURNS:
*  CREATED: XiongHui 2006-3-18 
*  HISTORY OF CHANGE: 
*********************************************************************************/
void KeyPro(void)
{
	if(Keyflag == TRUEFLAG)
	{
		Keyflag = FALSEFLAG;
		#ifndef LEDADD
		if(++Leddata[0] >= 10)
		{
			Leddata[0] = 0x0;	
		}
		if(++Leddata[1] >= 10)
		{
			Leddata[1] = 0x0;	
		}
		#else
		
		if(++Leddata[5] >= 10)
		{
			Leddata[5] = 0x0;
			if(++Leddata[4] >= 10)
			{
				Leddata[4] = 0x0;
				if(++Leddata[3] >= 10)
				{
					Leddata[3] = 0x0;
					if(++Leddata[2] >= 10)
					{
						Leddata[2] = 0x0;
						if(++Leddata[1] >= 10)
						{
							Leddata[1] = 0x0;
							if(++Leddata[0] >= 10)
							{
								Leddata[0] = 0x0;
								
									
							}	
						}
							
					}	
				}
					
			}	
		}

		#endif
	}
}
/********************************************************************************
*  FUNCTION NAME:UartRecePro(void)
*  PARAMETERS:key
*  DESCRIPTION:time delay  		  
*  RETURNS:
*  CREATED: XiongHui 2006-3-18 
*  HISTORY OF CHANGE: 
*********************************************************************************/
void UartRecePro(void)
{
	unsigned char data *codeptr;
	unsigned char data *dataptr;
	unsigned char data i,buf[6];
	codeptr = &UartReceBuf[0];
	dataptr	= &buf[0];
	if(UartReceFlag == TRUEFLAG)
	{
		UartReceFlag = FALSEFLAG;
		switch(screenno)
		{
			case 0:
				UartSendPtr = 0;
				//UartSendBuf[UartSendPtr++] = 'O';
				//UartSendBuf[UartSendPtr++] = 'K';
				UartSendBuf[UartSendPtr++] = '\r';
				UartSendBuf[UartSendPtr++] = '\n';
				strcpy(dataptr,codeptr);
				for(i=0;i<6;i++)
				{
					Leddata[i]= buf[i]-0x30;
				}

				UartSendTempPtr = 0x00;
				UartSendFlag = TRUEFLAG; 
				screenno=0;
				while(TI==0);
				SBUF = UartSendBuf[UartSendTempPtr++];						//intiates the sending
				break;
			case 1:
				UartSendPtr = 0;
				UartSendBuf[UartSendPtr++] = 'g';
				UartSendBuf[UartSendPtr++] = 'o';
				UartSendBuf[UartSendPtr++] = 'o';
				UartSendBuf[UartSendPtr++] = 'd';
				UartSendBuf[UartSendPtr++] = '\r';
				UartSendBuf[UartSendPtr++] = '\n';
				UartSendTempPtr = 0x00;
				UartSendFlag = TRUEFLAG;
				screenno=0;
				TI = 1;						//intiates the sending
				break;
			 default:
			 	;
	
		}
		UartRecePtr =0x00;
	}
}
/********************************************************************************
*  FUNCTION NAME:UartRecePro(void)
*  PARAMETERS:key
*  DESCRIPTION:time delay  		  
*  RETURNS:
*  CREATED: XiongHui 2006-3-18 
*  HISTORY OF CHANGE: 
*********************************************************************************/
void UartPro(void)
{
    unsigned char code *codeptr;
	unsigned char data *dataptr;
	if(UartProFlag == TRUEFLAG)
	{
		UartProFlag = FALSEFLAG;
		codeptr = &welcome[0];
		dataptr	= &UartSendBuf[0];
		strcpy(dataptr,codeptr);
		UartSendTempPtr = 0x00;
		UartSendFlag = TRUEFLAG;
		screenno = 0;
		TI = 1;						//intiates the sending
	}
}

⌨️ 快捷键说明

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