Download presentation
Presentation is loading. Please wait.
1
AVR单片机软硬件设计教程-入门篇 ——学单片机就要学AVR!
主 讲: 尹延辉 策 划:张 勇 学习板:LT-Mini-M16 力天电子版权所有 技术交流QQ群: 2008年 9月
2
第七讲 异步串行口UART 本讲内容: 串行通讯技术概述 异步串行通讯原理 UART与电脑的通讯 M16的USART
3
串行通讯技术概述 串行通讯的通俗定义: 串行通讯的分类: 无线通信一般均为异步串行通信 一次发送一位 同步串行通讯
时钟线、数据线,通过时钟保持数据同步 SPI,IIC 异步串行通讯 只有一根数据线,通过波特率保证数据同步 UART 无线通信一般均为异步串行通信
4
异步串行通讯原理 波特率 帧格式 接线图 每秒发送码元的位数,单位bps 9600bps:每个码元时间宽度为(1/9600)S
发送方按照波特率发出数据 接收方按照波特率确定的码元时间宽度对数据进行采样 帧格式 8位数据格式 接线图 发送端:TXD 接收端:RXD 交叉连接
5
串口与PC机的通讯 RS232电平标准 DB9接口定义 逻辑1:-15V 逻辑0:+15V
TXD、RXD、GND三根线即可满足绝大多数应用场合
6
M16的USART 特点 USART寄存器 全双工操作( 独立的串行接收和发送寄存器) UDR UCSRA 异步或同步操作 UCSRB
支持5,6,7,8,或9个数据位和1个或2个停止位 硬件支持的奇偶校验操作 三个独立的中断源 噪声滤波,包括错误的起始位检测,以及数字低通滤波器 USART寄存器 UDR UCSRA UCSRB UCSRC UBRRL与 UBRRH
7
中断方式使用USART步骤 第1步:设置波特率 #define F_CPU 16000000 #define BAUD 9600
UBRRH = (F_CPU /BAUD/16-1)/256; UBRRL = (F_CPU /BAUD/16-1)%256; 第2步:使能发送、接收、接收完成中断 UCSRB |= (1 << RXEN )|(1 << TXEN)|(1 << RXCIE); 第3步: 使能全局中断 sei(); 第4步:查询方式发送、中断方式接收 发送:while( !(UCSRA & (1<<UDRE)) ); UDR=c; 接收中断:c = UDR;
Similar presentations