/*********************************************
File name : USART.c
Chip type : ATmega16
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*********************************************/
#include <mega16.h>
#include <delay.h>
#define BAUD 1200 // 波特率采用1200bps
#define CRYSTAL 4000000 // 系统时钟4MHz
//计算和定义波特率设置参数
#define BAUD_SETTING (unsigned int)((unsigned long)CRYSTAL/(16*(unsigned long)BAUD)-1) // 波特率计算
#define BAUD_H (unsigned char)(BAUD_SETTING>>8) // 高8位
#define BAUD_L (unsigned char)(BAUD_SETTING) // 低8位
// USART控制和状态寄存器的标志位定义
#define UDRE 5 // 数据寄存器空 (UCSRA)
#define RXCIE 7 // 接收完成中断允许 (UCSRB)
#define RXEN 4 // 接收允许 (UCSRB)
#define TXEN 3 // 发送允许 (UCSRB)