OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4426|回复: 1

AVR128串口通信,自发自收,不知道哪里出了错,就是不行,烦请大神们指点

[复制链接]

8

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2014-12-13
在线时间
0 小时
发表于 2014-12-13 16:39:51 | 显示全部楼层 |阅读模式
5金钱
#include<iom128v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
uchar const table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar table1[]={0,0,0,0,0};
uchar temp=0x00;
uchar i=5;
//---------------
void display()//显示程序
{
table1[0]=temp/1000;
table1[1]=temp%1000/100;
table1[2]=temp%1000%100/10;
table1[3]=temp%1000%100%10;
table1[4]=i%10;
PORTA=table[table1[0]];
PORTB=0xfe;
delay(10);
PORTA=table[table1[1]];
PORTB=0xfd;
delay(10);
PORTA=table[table1[2]];
PORTB=0xfb;
delay(10);
PORTA=table[table1[3]];
PORTB=0xf7;
delay(10);
PORTA=table[table1[4]];
PORTB=0x7f;
delay(10);
}
//--------------------
void delay(uint ms)
{
uint m,n;
for(m=ms;m>0;m--)
for(n=1141;n>0;n--);
}
void port_init()
{
PORTA=0xff;
DDRA=0xff;
PORTB=0xff;
DDRB=0xff;
PORTE=0x00;
DDRE=0x20;
PORTD=0x00;
DDRD=0x00;
}
void USART0_init()
{
UCSR0B=0x00;
UCSR0A=0x00;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x05;
UCSR0B=0x48;
}
void USART1_init()
{
UCSR0B=0x00;
UCSR0A=0x00;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x05;
UCSR0B=0x90;
}
void putchar(uchar data)
{
while(!(UCSR0A&(1<<UDRE0)));
UDR0=data;
}
#pragma interrupt_handler USART0_T:21
void USART0_T()
{
putchar(++i);
delay(500);
}
#pragma interrupt_handler USART1_R:31
void USART1_R()
{
temp=UDR1;
}
void devices()
{
CLI();
port_init();
USART0_init();
USART1_init();
SEI();
}
void main()
{
devices();
while(1)
{
display();
}
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-14 11:40:28 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-28 00:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表