您好,欢迎来到微智科技网。
搜索
您的当前位置:首页简单的串口加中断的程序

简单的串口加中断的程序

来源:微智科技网


#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);

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务