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

📄 m11_uart.txt

📁 CoreRiver MCU C语言程序集! 包括:ADC/POWER/PWM/UART/TIME0
💻 TXT
字号:
// File : m11_uart.c 

#include <gc80c510_so20i.h>
#include <stdio.h>

unsigned char	received_data;
unsigned char transmit_ready;
unsigned char response;

void initialize();

void putchar(char ch)
{
	while(transmit_ready == 0);
	transmit_ready = 0;
	SBUF = ch;
}

void delay()
{
	char temp;
	for(temp=0;temp<20;temp++);	
}

void uart_int(void) interrupt SIO_VECTOR
{
	if (TI) 
	{				
		// Transmit Mode
		TI = 0;
		transmit_ready = 1;
	} 
	else if (RI) 
	{		
		// Receive Mode
		received_data = SBUF;
		RI = 0;
		
		if(received_data=='T')
		{
			response = 1;
		}
		else
		{
			SBUF = received_data; // Resend to Serial Port
			while(!TI);
			delay();
			TI=0;
		}
	}
}

void use_external_clock()
{
	//
	// Wait Crystal Amplifier stable
	//
	
	while (!(STATUS & 0x10));
	
	//
	// Declare External Clock
	//
	
	EXIF |= XTRG_;
}

void init() 
{
	response = 0;
	transmit_ready = 1;
	
	use_external_clock();

	//
	// Use TX Port 	
	//
		
	ALTSEL |= 0x04;

	//
	// Timer1 Mode2
	//
	
	TMOD  = 0x20;
	
	//
	// *Fosc = 22.1284MHz 57600 bps	
	//
	
	PCON |= 0x80; // Timer1 baudrate double
	TH1 = 0xFE;

	//
	// Serial Reception enable
	//
			
	REN	  = 1;		// Reception Enable 
	
	//
	// UART Interrupt (Commnucation) Enable		  
	//
	
	ES    = 1;		
	
	//
	// All Interrupts Enable
	//
	
	EA =  1;		
	
	//
	// Timer1 Start
	//
	
	TR1 = 1;
}

void main()
{
	init();

	printf("hello\n");
		
	while(1)
	{
		if(response == 1)
		{
			response = 0;
		}
	};
}



⌨️ 快捷键说明

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