ATmega16L串口通信程序
/**************************************************************
實(shí)驗(yàn)名稱:串口通信演示實(shí)驗(yàn)
晶振:內(nèi)部 8M
接線方法:
1.PD0接RXD,PD1接TXD
2.打開串口調(diào)試助手
使用說明:
1.本程序能夠測(cè)試串口數(shù)據(jù)發(fā)送與接收。發(fā)送采用
查詢方式,接收采用中斷方式,通信波特率為19200。
2.當(dāng)上位機(jī)軟件發(fā)送一串?dāng)?shù)據(jù)時(shí),單片機(jī)收到后回送相同
的數(shù)據(jù)。
*****************************************************************/
#include
#include
#pragma interrupt_handler uart_getchar:12//開啟串口接收中斷
void uart_init(void)
{
UCSRB|=(1<
UBRRH=0x00;
UCSRC|=(1<
}
void uart_putchar(char x)
{
while (!(UCSRA&0x20))//查詢發(fā)送區(qū)是否為空
;
UDR=x; //發(fā)送數(shù)據(jù)
}
void uart_getchar(void)//接收數(shù)據(jù)
{
char y;
y=UDR;
uart_putchar(y);//把接收到的數(shù)據(jù)返回給上位機(jī)
}
void main()
{
DDRD=0x03;//打開串口端口
uart_init();//串口初始化
}