#include#include#define mclk 12000000
#pragma interrupt_handler rupt:2
unsigned int i=0;
void uart_init(unsigned int baud)
{
UCSRB=0x00;
UCSRA=0x00; 控制寄存器清零
UCSRC=(1< 8位数据位//
//选择UCSRC,异步模式, // 校验,1位停止位,
baud=mclk/16/baud-1; 波特率最大为65K
//
UBRRL=baud;
UBRRH=baud>>8; //设置波
UCSRB=(1< 断使能SREG=BIT(7); //全局中断开放
DDRD|=0X02; }
void uart_sendB(unsigned char data)
{
while(!(UCSRA&(BIT(UDRE))));
UDR=data;
//接收、发送使能,接收中
//配置TX为
while(!(UCSRA&(BIT(TXC))));
UCSRA|=BIT(TXC);
}
void main()
{
MCUCR&=0XF0;
GICR|=BIT(6);
GIFR|=BIT(6);
uart_init(2400);
DDRD&=~BIT(2);
PORTD|=BIT(2);
SREG|=BIT(7);
while(1);
}
void rupt()
{
GICR&=~BIT(6);
SREG&=~BIT(7);
DDRB=0XFF;
PORTB=~BIT(i);
i++;
if(i==7)
{i=0;}
SREG|=BIT(7);
// URD=i;
uart_sendB(i);
GICR|=BIT(6);
}