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

📄 main.c

📁 外部中断INT0模拟1200bps串口通讯。一次MCU可以可以接收并通过MCU向下位机发送30个字节。
💻 C
字号:
#include<uart1200.h>

void main()
{	
//	uchar c ;
	uchar i ;
	Init_Timer0();
	Iint_Uart1200();
	IT0=1;				//INT0 负跳变触发
	PT0=1;				//set timer0 high 
	EA=1;				//enable all interrupt
	for(i=0;i<Buffer_len;i++)
	{
		BUFFER[i]=0;
	}
//	printf("\n*\n");
//	printf("Input A or a choose RX input mode! \n");
//	printf("Input B or b choose I/O input mode! \n");
//	Put_char(0x55);
//	Put_char(0xaa);
//	ET1=1;
//	TR1=1;
	ET0=1;
	EX0=1;				//enable INT0 interrupt
	ENABLE_T0;          //TIMER0 turn
	while(1)
	{
//		ET0=1;
//		IE=0x93;						//enable timer0 and INTO interrupt
		while(Overlow_counter<400)  ;
		Overlow_counter=0;
		if(BUFFER[0]!=0x00)
		{
			TI=0;
			IE=0x00;					//disable all interrupt
			for(i=0;i<Data_toal;i++)
			{
				SBUF = BUFFER[i] ;		//发送缓冲区的数据
				while(!TI);	    	//发送完一个数据后TI==1,往下执行,否则等待
		   			TI=0;				//软件清除标志位
				BUFFER[i] = 0x00;		//清缓冲*/
//`				printf("\n?");
			}
			IE=0x93;					//enable timer0 INT0 interrupt
		}
		Data_toal=0;
	}
}


//		else
//		{
//			Receive_data();	
//			printf("\n-");
//		}
/*		
		if(timer_overlow)
		{
			EX0=0;
			DISABLE_T1;
			if(BUFFER[0]!=0x00)
			{
				for(i=0;i<Data_toal;i++)
				{
					Put_char(BUFFER[i]);
					BUFFER[i]=0x00;
				}
				Data_toal=0;
			}
//			Overlow_counter1=0;
//			Overlow_counter2=0;
			Data_toal=0;
			timer_overlow=0;
			ENABLE_T1;
			EX0=1;
		}
*/
//		Overlow_counter1++;
		

/*

void Send_char(uchar inch)
{
	uchar i=0;
	BIT_SEN=0;
	delay_flag=0;
	ENABLE_T0;
	while(!delay_flag);
	while(i<8)
	{
		if(inch&0x01)
		{
			BIT_SEN=1;
		}
		else
		{
			BIT_SEN=0;
		}
		delay_flag=0;
		while(!delay_flag);
		inch>>=1;
	}
	BIT_SEN=1;
	delay_flag=0;
	while(!delay_flag);
	DISABLE_T0;

}

/*********************P1_6模拟串口发送波特率1200********************************/
/*
void Send_data()
{
	for(;Data_toal--;Data_toal>0)
	{
		Send_char(BUFFER[Data_toal]);	
	}		
}
*/

⌨️ 快捷键说明

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