Atmega16单片机串口通信
Atmega16单片机串口通信
- Atmega16单片机串口通信
- 串口通信需要使用到的内部寄存器
- 程序代码
Atmega16单片机串口通信
本篇文章参考自叶大鹏老师于2008年4月5日完成的UART通信PPT制作而成。
串口通信需要使用到的内部寄存器
在进行程序编写前需要对16单片机中的寄存器的作用和使用方法有所了解,下面为16单片机串口通信使用到的几个寄存器:
- USART I/O 数据寄存器 - UDR (UDR寄存器用于数据在传输中的存储):
- USART控制和状态寄存器A - UCSRA :
void uart_sendB(uchar data) /*发送函数*/
{while(!(UCSRA&(BIT(UDRE)))); //等待发送缓冲器为空UDR=data; //将数据存入UDR寄存器
}
- USART控制和状态寄存器B - UCSRB :
void uart_rx(void) /*串口接收函数*/
{UCSRB&=~BIT(RXCIE); //校验数据是否传输完成,关闭接收中断rdata=UDR; //将接收到的数据存入rdataflag=1; //标志位至1UCSRB|=BIT(RXCIE); //接收完毕,开启中断
}
- USART控制和状态寄存器C - UCSRC :
- USART波特率寄存器 - UBRRL和UBRRH :
#define mclk 8000000baud=mclk/16/baud-1; //程序片段UBRRL=baud; //设置波特率,先写低位再写高位UBRRH=baud>>8; //设置波特率,先写低位再写高位
程序代码
本段程序编译环境为ICCAVR7 for AVR。
#include<iom16v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
#define mclk 8000000
#pragma interrupt_handler uart_rx:12
uchar rdata,flag=0;
void uart_init(uint baud) //串口初始化
{UCSRB=0x00;UCSRA=0x00;UCSRC=(1<<URSEL)|(0<<UPM0)|(3<<UCSZ0);baud=mclk/16/baud-1;UBRRL=baud;UBRRH=baud>>8;UCSRB=(1<<TXEN)|(1<<RXEN)|(1<<RXCIE);SREG=BIT(7); //开中断DDRD|=0x02; //设计发送口(TX)为输出,这很重要
}
void uart_rx(void) //串口接收函数
{UCSRB&=~BIT(RXCIE); //校验数据是否传输完成,关闭接收中断rdata=UDR; //将接收到的数据存入rdataflag=1; //标志位至1UCSRB|=BIT(RXCIE); //接收完毕,开启接收中断
}void uart_sendB(uchar data) //发送函数
{while(!(UCSRA&(BIT(UDRE)))); //等待发送缓冲器为空UDR=data; //将数据存入UDRwhile(!(UCSRA&(BIT(TXC))));UCSRA|=BIT(TXC);
}void main(void)
{uchar i=4;uart_init(19200);while(1){if(flag){uart_sendB(i);flag=0;}}
}
Atmega16单片机串口通信相关推荐
- 基于PC与单片机串口通信的温度监控系统程序设计
基于PC与单片机串口通信的温度监控系统程序设计 1.系统介绍 1)本系统主要讲解基于PC与单片机串口通信的温度监控系统程序设计(如图1),上位机采用常用的PC机,下位机使用的是STC89C52单片机, ...
- 51单片机-串口通信
目录 1.什么是通信 1.1.通信的概念 1.2.传送方式 1.3.同步方式 1.4.传送方向 1.5.校验方式 2.单片机串口介绍 2.1.硬件电路 2.2.电平标准 2.3.常见接口 2.4.内部 ...
- 蓝桥杯单片机串口通信学习提升笔记
今日得以继续蓝桥杯国赛备赛之旅: 有道是 "不知何事萦怀抱,醒也无聊,醉也无聊,梦也何曾到谢桥." 那我们该如何 让这位诗人纳兰 "再听乐府曲 ,畅解相思苦"呢 ...
- 51单片机串口通信模板_深入理解51单片机串口通信及通信实例
串口通信的原理 串口通信(SerialCommunications)的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一 ...
- 普中单片机--串口通信(2)---通过串口助手发送数据点LED
普中单片机–串口通信(2) 通过串口助手发送数据 点亮LED 软件部分 #include <reg52.h> #define jingzhen 12000000UL /*使用12.0M晶体 ...
- 51单片机串口通信原理、相关寄存器配置与简单串口收发程序代码
目录 1. 串口通信原理 2. 51单片机串口通信 2.1 串口简要模式图 2.2 相关寄存器 (1)PCON.SCON.SBUF (2)IE.IPH.IP (3)配置T1定时器 2.3 波特率和系统 ...
- 51单片机串口通信模板_51单片机串口通信
51 单片机串口通信 51 单片机串口通信(转载) 2009-03-03 18:22 一.串口通信原理 串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计 算机端,而且也能实现计算机对单 ...
- 51单片机~串口通信(讲解+代码)
51单片机~串口通信 (一)计算机串行通信原理: 综上:所以在设置的时候,经常将SCON设置为0X50==0101 0000 ,使用方式1. (二)工作: 中断控制 led灯,每发送一条指令灯亮或灭( ...
- stc12串口收发计算机,半双工串口通信实例36:STC12单片机和STC12单片机串口通信...
半双工串口通信实例36:STC12单片机和STC12单片机串口通信 一.串口通信实例目的: STC12单片机主站数字量输入DI01~DI08控制STC12单片机从站数字量输出DO01~DO08: ST ...
最新文章
- 玩心马宗骥:游戏持续“霸榜”幕后的数据真相
- Python-OpenCV 笔记5 -- 几何变换(Geometric Transformations)
- 相机参数设置程序_自定义拍摄模式怎么设置?教你学会相机设置。
- c语言 fgets函数 去除换行符_C语言文件的打开和关闭
- 基本数据类型与String之间的转换
- 爱因斯坦一生最伟大的问候
- 雅马哈AI系统能自动为舞蹈配乐,跟节奏跳舞时代已不再
- 用户空间与内核空间数据交换的方式(2)------procfs
- 让孩子从小自信的28个方法
- 大数据分析平台由哪些部分组成
- Windows移动开发(五)——初始XAML
- IMX290 291驱动
- 不能连接Formula One控件,请检查系统是否已安装或已注册该控件!
- 沙盘模拟软件_赛事动态 | 第十六届全国职业院校沙盘模拟经营大赛全国总决赛圆满举办...
- echarts矢量地图基本实现
- 开网店,网店系统的编程语言分析
- 程序员如何成为别人的男朋友
- 饥荒 阿里云服务器搭建记录
- 3D游戏设计-天空盒
- 口算助手--家长好帮手
热门文章
- css零到一基础教程005:CSS 注释
- 51单片机DS18B20温度传感器详解
- windows 下 nat123免费版内网穿透使用教程
- 【翻译】两种高性能I/O设计模式(Reactor/Proactor)的比较
- ac2100 反弹shell无法粘贴_手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程...
- OpenCV-Python图像处理:腐蚀和膨胀原理及erode、dilate函数介绍
- hp2548无线服务器地址,一搜一连一打 无线直连打印一分钟搞定
- [GAN]CelebACelebAMask-HQ数据集
- 瑞芯微RK3399Pro——系统安装
- 计算机专业在大气领域,大气科学类专业