这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» DIY与开源设计» 电子DIY» AVR ATMEGA16 MCU DIY进程-串口显示

共2条 1/1 1 跳转至

AVR ATMEGA16 MCU DIY进程-串口显示

菜鸟
2011-12-22 10:00:41 打赏

马上到年终了,事情比较多。年终总结了,项目报告了,压的很多事情都顾不过来,也没太多的时间在DIY上了,但是为了不辜负EEPW对MCUDIY的初衷,还是适当的更新些内容,以利于大家知识分享吧。

时间紧,所以一切从简了,硬件功能我这里实现的不多,板子就焊了串口,按键,小液晶,led灯,蜂鸣器,晶振等常用的器件。这些都是以前板子上拆下的,都能用,没办法,工作中没工夫去购买器件啊。
针对串口写了点简单程序,可以使用,就给大家分享下。


#include
#include

//-----------------------------------------------------------
//串口初始化子程序
//字符长度:8位
//奇偶校验:禁止
//通讯模式:异步
//-----------------------------------------------------------
void Uart_Init(void)
{
UCSRB = 0x00; //disable while setting baud rate
UCSRA = 0x00; //Bit1为1则倍速发送
UCSRC = 0x86;
UBRRL = 0x33; //波特率:9600 Bps
UBRRH = 0x00; //误差率:0.156%
UCSRB = 0x18;
}

//-----------------------------------------------------------
//串口接收字节子程序
//-----------------------------------------------------------
unsigned char Getchar(void)
{
while(!(UCSRA& (1<return UDR;
}

//-----------------------------------------------------------
//串口发送字节子程序
//-----------------------------------------------------------
void Putchar(unsigned char c)
{
while (!(UCSRA&(1<UDR=c;
}

//-----------------------------------------------------------
//串口发送字符串子程序
//-----------------------------------------------------------
void Putstr(char *s)
{
while (*s)
{
Putchar(*s);
s++;
}
}

//-----------------------------------------------------------
//串口发送字符串子程序(带有换行符)
//-----------------------------------------------------------
void Puts(char *s)
{
while (*s)
{
Putchar(*s);
s++;
}
Putchar(0x0a); //回车换行
Putchar(0x0d);
}



//-----------------------------------------------------------
//主函数
//-----------------------------------------------------------
void main(void)
{
unsigned char i=0;

Uart_Init();

Puts("AVR-ARM RS232 TEST CODE");
Puts("Http://www.EEPW.com");
Puts("ATMega16 UART TEST");
Putchar(0x0a);
Putchar(0x0d);

while(1)
{
i=Getchar();
if (i!=0) //发送0x0F开始测试
{

Puts("AVR-ARM RS232 TEST CODE");
Puts("EEPW MCU DIY!");
Puts("ATMega16 UART TEST");
Putchar(0x0a);
Putchar(0x0d);
}
}
}

以上UART接收发送均采用查询方式,也可以采用中断方式,自己学习了。




关键词: ATMEGA16 进程 串口 显示 -------

菜鸟
2012-01-28 14:37:12 打赏
2楼

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]