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

📄 main.c

📁 mega128_usart源码
💻 C
字号:
/***************************************
              串口测试
              ICC-AVR
              hushunlin
              2008-4-22
***************************************/
#include<iom128v.h>
#include<macros.h>
//***************************************
#define uchar unsigned char
#define uint unsigned int
#define foce 8000000
#define baud 9600
//***************************************
void    usart_init(void);
void    putchar(uchar c);
void    putstring(uchar *s);
uchar   getchar(void);
//***************************************
uchar   temp;
//***************************************
void    main(void)
{
    CLI();
    usart_init();
    SEI();
    putstring("author:hushunlin");
    putstring("QQ:250025437");
    putstring("MAIL:shunlinhu@163.com");
    while(1);
}
//***************************************
void    usart_init()
{
    UCSR0A=0X00;
    UCSR0B=((1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0)|(1<<TXCIE0));
    UCSR0C=((1<<UCSZ01)|(1<<UCSZ00));
    UBRR0L=(foce/16/baud-1)%256;
    UBRR0H=(foce/16/baud-1)/256;
}
//***************************************
void    putchar(uchar c)
{
    while(!(UCSR0A&(1<<UDRE0)));
    UDR0=c;
}
//***************************************
void    putstring(uchar *s)
{
    while(*s)
    {
        putchar(*s);
        s++;
    }
    putchar(0x0a);
    putchar(0x0d);
}
//***************************************
uchar   getchar(void)
{
    while(!(UCSR0A&(1<<RXC0)));
        return UDR0;
}
//***************************************
#pragma interrupt_handler usart0_rx:19
void    usart0_rx(void)
{
    temp=UDR0;
}
//***************************************
#pragma interrupt_handler usart0_tx:21
void    usart0_tx(void)
{
    if(temp!=0)
    {
        UDR0=temp;
        temp=0;
    }
}

⌨️ 快捷键说明

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