#include<iom128v.h>
#include<macros.h>
#include"delay.h"
#define uchar unsigned char //定义无符号字符为 uchar
#define uint unsigned int //定义无符号整型
#define Crystal 8000000 //晶振8MHZ
#define Baud 9600 //波特率
/**********************函数声明******************************/
void port_init(void);
void usart0_init(void);
void init_devices(void);
void usart0_char_send(uchar i);
/****************发送一个字符******************************/
void usart0_char_send(uchar i)
{
while(!(UCSR0A&(1<<UDRE0)));
UDR0=i;
}
/*端口初始化*/
void port_init(void)
{
PORTA = 0xFF;
DDRA = 0x00;
PORTB = 0xFF;
DDRB = 0xFF;
PORTC = 0xFF;
DDRC = 0x00;
PORTE = 0xFF; //设置RXD0和TXD0
DDRE = 0x02;
PORTD = 0x00;
DDRD = 0xFF;
PORTF = 0xFF;
DDRF = 0x00;
PORTG = 0xFF;
DDRG = 0xFF;
}
/*串口初始化*/
void usart0_init(void)
{
UCSR0B = 0x00; //禁止发送和接收
UCSR0A = 0x02; //倍速异步模式USX0=1
UCSR0C = 0x06; //0000 0110,UCSZ01=1,UCSZ00=1;8位字符,1位停止位?
UBRR0L=(Crystal/8/(Baud+1))%256; //若为正常异步模式USX0=0则位(Crystal/16/(Baud+1))%256
UBRR0H=(Crystal/8/(Baud+1))/256; //参见ATMEGA128使用手册
UCSR0B=0x08 ; //允许发送和接收,接收结束中断使能
}
/*器件初始化*/
void init_devices(void)
{
port_init();
usart0_init();
}
/*********************中断发送服务处理子程序**************************/
#pragma interrupt_handler usart0_TX_interrupt:iv_USART0_TX // 21
void usart0_TX_interrupt(void)
{
uchar i=0;
_NOP();
UCSR0A |= (1<<6); //发送结束清零
UDR0=i;
i++;
if(i>=10)
{
i=0;
}
}
void main(void)
{
uchar i=0;
CLI();
init_devices();
SEI();
usart0_char_send(0x9F);
while(1)
{
//UCSR0A=(UCSR0A&(1<<TXC0));
usart0_char_send(i);//+0x30);
i++;
if(i>=10)
{
i=0;
}
Delay_nms(100);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
串口通信中断方式ATmega128
共73个文件
o:3个
lis:3个
c:3个
5星 · 超过95%的资源 需积分: 35 61 下载量 4 浏览量
2011-09-29
13:10:25
上传
评论 1
收藏 92KB RAR 举报
温馨提示
通过中断方式接收数据,可以有效提高单片机的效率。本程序采用中断方式接收数据,并通过数码管显示出来,很简单,仅仅是对初学者知道中断的基本操作,带原理图
资源推荐
资源详情
资源评论
收起资源包目录
串口通信中断方式.rar (73个子文件)
串口通信中断方式
delay.c 1KB
TESTRECEIVE.lk 25B
test-send.o 2KB
test-receive.lis 11KB
TESTRECEIVE.dbg 1KB
TESTRECEIVE.hex 967B
test-send.c 2KB
delay.lis 6KB
TESTSEND.SRC 64B
TESTRECEIVE.lst 10KB
TESTRECEIVE.SRC 67B
TESTRECEIVE.cof 3KB
test-receive.o 3KB
delay.o 1KB
testsend.prj 1KB
TESTRECEIVE.mp 2KB
test.DSN 92KB
TESTSEND.cof 3KB
Last Loaded test.DBK 93KB
TESTSEND.mp 1KB
BACKUP
test-send.c.110929102400 2KB
test-receive.c.110929115618 2KB
test-receive.c.110929112548 2KB
test-send.c.110929112426 2KB
test-send.c.110929112050 2KB
test-send._c 2KB
test-receive.c.110929113918 2KB
test-receive.c.110929114310 2KB
test-receive.c.110929112706 2KB
test-receive.c.110929112724 2KB
test-receive.c.110929113532 2KB
test-receive.c.110929112522 2KB
test-receive.c.110929101130 1KB
test-receive.c.110929101338 2KB
test-send.c.110929095726 2KB
test-send.c.110929112256 2KB
test-receive.c.110929130234 2KB
test-send.c.110929112234 2KB
test-send.c.110929104042 2KB
test-send.c.110929112356 2KB
test-send.c.110929105110 2KB
test-receive.c.110929115034 2KB
test-receive._c 2KB
test-receive.c.110929101036 1KB
test-send.c.110929112434 2KB
test-receive.c.110929101556 2KB
test-receive.c.110929100450 0B
test-receive.c.110929113722 2KB
test-send.c.110929112112 2KB
test-receive.c.110929130312 2KB
test-receive.c.110929115342 2KB
test-receive.c.110929101824 2KB
test-receive.c.110929105842 2KB
test-send.c.110929112808 2KB
test-receive.c.110929113858 2KB
test-send.c.110929101032 2KB
test-send.c.110929112936 2KB
test-receive.c.110929101116 1KB
test-send.c.110929112340 2KB
test-send.c.110929102424 2KB
test-receive.c.110929114104 2KB
test-send.c.110929103808 2KB
testreceive.prj 1KB
TESTSEND.lst 10KB
TESTSEND.lk 22B
delay.h 192B
TESTSEND.mak 678B
test-send.lis 11KB
test-receive.c 2KB
test.PWI 2KB
TESTSEND.dbg 2KB
TESTSEND.hex 871B
TESTRECEIVE.mak 702B
共 73 条
- 1
资源评论
- www_zhuimengren2014-02-13入门学习,很有用
- sdlaikt2013-07-17编译通过 值得一看
- 方成19882015-02-02还行,暂时没调
- liwb01202015-03-04还行,值得一看
- lanlanzhilian2012-12-05不错,值得学习
jianghufuping
- 粉丝: 0
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功