标题:
串口通信一
[打印本页]
作者:
wxg1988
时间:
2011-12-1 18:35
标题:
串口通信一
/*********************************************************
程序实现功能:单片机向串口调试助手连续发送256个数,范围
0-255,串口调试助手以16进制的形式显示在接收区。
注:波特率要设定为4800,选择COM1,以16进制的形式显示
**********************************************************/
#include <iom16v.h>
#include <macros.h>
/**********************************************
延时函数
**********************************************/
void delay_us(unsigned int delay_counter)//延时1us
{
do
{
delay_counter--;
}
while(delay_counter>1);
}
void delay_ms(unsigned int delay_counter)//延时1ms
{
while(delay_counter!=0)
{
delay_us(1000);
delay_counter--;
}
}
/***********************************************
串口初始化子程序
***********************************************/
void INIT_USART(void)
{
UCSRB = 0x00; //disable while setting baud rate
UCSRA = 0x00;
UCSRC = BIT(URSEL) | 0x06;//设置帧格式: 8个数据位, 1个停止位,无奇偶校验位
UBRRL = 0xcf; //波特率=4800
UBRRH = 0x00; //波特率=4800
UCSRB = 0x18; // /*接收、发送器使能*/
}
/***********************************************
发送一个字符子程序
***********************************************/
void send_char(unsigned char input_char)
{
UDR="input"_char;
while ((UCSRA&0x40)!=0x40);//没有发送完就等待
}
/***********************************************
初始化MCU
***********************************************/
void INIT_MCU(void)
{
MCUCR=0x00;
}
/************************************************
主程序
/************************************************/
void main(void)
{
unsigned int i;
INIT_MCU();//初始化单片机
INIT_USART();//初始化串口
for(i=0;i<=255;i++)
{
send_char(i);
delay_ms(5);//延时一下,可以减少误码率
}
while(1);
}
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0