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

📄 main._c

📁 AVR单片机ATMEGA系列UART接口的驱动程序。
💻 _C
字号:
/*
实验九:

	UART接口实险。
	1、串口以查询方式接收数据,并分别将数据显示的PB口和返回。
	2、内部1 M晶振,程序采用单任务方式,软件延时。
	3、进行此实验请插上JP1的所有8个短路块,JP7(LED_EN)短路块。
	4、通过此实验,可以对串口通信有个初步认识。

	AVR  mega16学习板
	www.iccavr.com
	11:47 2007-4-8
*/

#include "iom16v.h"

/*串口初始化函数*/
void Uart_Init(void) {
	UCSRA = 0x02;		/*倍速*/
	UCSRB = 0x18;		/*允许接收和发送*/
	UCSRC = 0x06;		/*8位数据*/
	UBRRH = 0x00;
	UBRRL = 12;		/*9600*/
}

/*数据发送,查询方式*/
void Uart_Transmit(unsigned char i) {

	while (!(UCSRA & (1<<UDRE)));		/* 等待发送缓冲器为空*/
	UDR = i;				/* 发送数据*/
}

/*数据接收,查询方式*/
unsigned char Uart_Receive( void ) {

	while (!(UCSRA & (1<<RXC)));		/* 等待接收数据*/
	return UDR;				/* 获取并返回数据*/
}


/*主函数*/
void main(void) {

	unsigned char temp;

	DDRA = 0x00;				/*方向输入*/
	PORTA = 0xFF;				/*打开上拉*/
	DDRB = 0xFF;				/*方向输出*/
	PORTB = 0xFF;				/*电平设置*/
	DDRC = 0x00;
	PORTC = 0xFF;
	DDRD = 0x02;
	PORTD = 0xFF;
	Uart_Init();
	
	while (1) {
		temp = Uart_Receive();		/*等待接收数据*/
		PORTB = ~temp;				/*等待接收数据*/
		Uart_Transmit(temp);		/*发送收到的数据*/
		}
}

⌨️ 快捷键说明

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