#include
#include
int k=0,i=0,j=0;
char s[4];
void usart0_init()
{
UCSR0A=0X00;
UCSR0B = 0x00;
UCSR0C=0X00;
UCSR0C=(1<
UBRR0L=51;//波特率 8MHZ下9600
UBRR0H=0;
UCSR0B=(1<
}
/*
*程序的作用是将电脑端发送过来的数据再发送回去
*/
int main(void)
{
DDRA=0XFF;
PORTA=0XFF;
DDRB=0XFF;
PORTB=0X00;
PORTE=0XFF;
DDRE=0X02; //单片机端口RX0与TX0要有作用,RX0对应的PE扣设为输入模式,且要上拉有效,TX0要设为输出模式
usart0_init();
sei();
while(1);
}
/*
*接收结束中断
*/
ISR(USART0_RX_vect)
{
cli();
if(i<4)
{
s[i]=UDR0;//每次接受4个字符
i++;
}
else
{
i=0;
UDR0=s[i];
}
sei();
}
/*
*发送结束中断
*/
ISR(USART0_TX_vect)
{
cli();
j++;
if(j<4)UDR0=s[j];//
else j=0;
sei();
}
串口的中断模式过程就是当电脑端或其他设备给单片机发送数据时,当接收到一个字符时(存到UDR0中),如果接收中断打开就会,进入中断程序.发送中断是你先给UDR0写数据,当发送完一个字符时,就会进入发送结束中断,如果还有其他数据要传送,就可以在中断里再次给UDR0赋值;
关键字:AVR单片机 中断模式 串口 发送与接收
引用地址:
AVR单片机中断模式的串口发送与接收
推荐阅读最新更新时间:2024-03-16 15:17
51单片机串口通信实验电路详解
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。 很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。 单片机的串口通信看起来是很复杂的,主要是因为他用到了更多的寄存器,与前面的知识相比他更具综合能力,写起来考虑的问题自然也变多了。而前面学习过的定时器
[单片机]
NRF24L01无线串口开发板程序详解
1.源程序开发环境建立 1.1程序编译软件 编译软件用keil C51,打开安装文件,一路点击下一步即可完成。 1.2程序下载软件 使用STC ISP下载软件。 2.源程序文件整体结构 工程中,只有一个main.c文件,所有程序都写在这个文件里面。Reg51.h是包含的头文件。是不是非常简单! 3.源程序执行流程 无线数据处理程序: 串口数据处理程序: 4.串口配置函数 void serial_open(void) { SCON = 0X50; AUXR |= 0X04; TL2 = 0Xc0; // 9600 TH2 = 0Xfd; AUXR|=0X10; } 此串口配置函数,利用单片机内部
[单片机]
AVR单片机基础知识及其特点
AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比具有一系列的优点: 1:在相同的系统时钟下AVR运行速度最快; 2: 芯片内部的Flsah、EEPROM、SRAM容量较大; 3:所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP); 4:多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作; 5:每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强; 6:内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口;丰富的中断源等。 目前支持AVR单片机编译器的语言主要有
[单片机]
基于AVR单片机多任务嵌入式Internet系统设计
1 引言
目前,嵌入式系统已经广泛渗透到人们的工作、生活中。从家用电器、信息终端、手持通信设备到仪器仪表、制造工业、过程控制等领域,嵌入式设备已随处可见。另一方面,近几年来Internet技术的飞速发展给嵌入式应用带来了新的契机,在未来嵌入式系统中应用Internet技术具有很大的优势。
目前嵌入式Internet技术的实现主要有下面三种方式 :
第一种方式是EMIT技术,采用支持TCP/IP协议的高性能服务器作为网关(emGateway), 嵌入式设备通过RS-232、RS-485或者CAN总线等与网关服务器连接,间接通过服务器网关连接Internet。经过多年的发展EMIT技术已经在工业设备的网络化中得到了广泛
[应用]
STM32串口一键下载电路
在做基于STM32的多功能MP3播放器的课题时,在程序下载这部分时借鉴了正点原子开发板上的一键下载电路,采用CH340G这款芯片设计。 在画PCB初期原理图部分,对采用CH340G设计的一键下载电路不甚了解,于是花了一些时间来研究一下这个电路。 引用正点原子的一键下载电路: CH340芯片版本: PL2303芯片版本: boot跳线帽: 我们通过RTS#和DTR#两个输出信号来控制STM32 IC的BOOT0和BOOT1两引脚来选择启动模式,如下表: 当烧写程序时,我们希望BOOT0=1,BOOT1=0。当烧写完成后我们希望BOOT0=0,BOOT1=0(这个模式BOOT1可以是0可以是1,这里我们让
[单片机]
单片机使用printf函数进行串口打印输出
以前在使用keil编写51单片机程序的时候,经常使用printf函数打印输出一些关键的过程数据到电脑,方便监控程序的运行状况。最近使用IAR for MSP430 调试 MSP430G2553 程序的时候,发现了一些小问题,MSP430G2553单片机并没有按照我的预期输出数据到电脑。 带着疑惑我查看了keil的帮助文件里面的printf函数说明,原来printf函数最终是调用putchar函数来实现打印输出字符的。 putchar,该函数将制定的表达式的值所对应的字符输出到标准输出终端上。表达式可以是字符型或整型,它每次只能输出一个字符。我们来看keil标准函数库里的putchar函数的函数体。 根据说明提示,我在D:Keil
[单片机]
基于AVR单片机及MODEM芯片的RTU无线电遥测应用研究
数字滤波是通过一定的算法程序对采集信号进行平滑加工,在此我们对每一数据进行四次采集,算法上采用去掉最高、最低值,其余数据取算术平均的办法,消除或减少干扰,保证了系统数据的真实性。通过使用上述抗干扰措施,大大提高了系统抗干扰能力,保证了系统的可靠运行。 二、设计思想 原有系统的使用中,主要存在以下几个问题:1. 无线通信波特率低(300bps),误码率高,巡测速度慢,最多带32个RTU终端;2. 当某一远程RTU端的无线电台一直处于长时间误发射状态时(简称“长发” )一直占用系统频点,由于系统共用一组无线电频点,这将使系统其他所有电台无法通信,整个系统瘫痪,处于故障的电台亦无法发送有效数据,因而无法确定故障点,测压点分布地域广且分散
[电源管理]
基于AVR单片机的高性能宽带直流放大器的设计
简介:本文结合现在一般放大器的设计方案及存在的问题,论述了程控宽带直流功率放大器各单元电路的详细设计方法,提出大动态范围、低失真的程控宽带直流放大器的设计方案和实现方法。 本文结合现在一般放大器的设计方案及存在的问题,论述了程控宽带直流功率放大器各单元电路的详细设计方法,提出大动态范围、低失真的程控宽带直流放大器的设计方案和实现方法。采用AVR单片机ATmegal28作为核心控制器,结合10位串行D/A芯片TLC5615、功率运放THS3092、可编程增益运放AD603以及其他相关电路,构成了可预置程控宽带直流功率放大电路。测试结果表明:该方案较好地解决了增益、直流宽带、功率等放大器关键参数的矛盾,实测的系统各项指标均达到设计
[单片机]