avr单片机异步串行通信(usart)实验

avr单片机异步串行通信(usart)实验

ID:14161492

大小:397.50 KB

页数:16页

时间:2018-07-26

avr单片机异步串行通信(usart)实验_第1页
avr单片机异步串行通信(usart)实验_第2页
avr单片机异步串行通信(usart)实验_第3页
avr单片机异步串行通信(usart)实验_第4页
avr单片机异步串行通信(usart)实验_第5页
资源描述:

《avr单片机异步串行通信(usart)实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、AVR单片机异步串行通信(USART)实验-------基于LT_Mini_M165.1.3、电路本实例的电路包含RS323的串口电平转换芯片MAX3232,电路图如下图所示。1、电路原理在本实例中利用MAX3232芯片使单片机输出的TTL电平转换为标准的RS232电平,从而使计算机能够识别。同时将计算机输出的RS232电平转换为单片机可以识别的TTL电平。2、电路连接电路中MAX3232芯片的9、10引脚分别连接单片机的PD0、PD1端口,MAX3232的13、14引脚分别连接计算机串口线的3、2脚。3、特别说明本学习板采用的

2、是串口插座是公头的,所以与计算机相连的串口连接线应该是交叉串口线,而不是串口延长线。5.1.4、程序设计1、程序功能程序的功能是使用单片机的串行接口PD0、PD1设计串口通信程序,通过单片机向计算机发送一个字节的数据。程序调试的时候需要在计算机上安装串口助手,以观察接收的串口数据。2、单片机与计算机串行通信结果的观察在本例中,只是简单的发送一个字节到计算机,由于单片机运行速度比较快,所以当程序烧写到单片机后再打开串口助手观察接收到的数据的时候,可能会看不到接收的数据,我们可以提前打开串口助手以便观察。也可以按一下学习板上的复位按

3、键,这时候程序会重新运行,这样就可以在串口助手上观察到接收的数据了3、数据通信格式的设定要实现单片机和计算机的串行通信,首先要使双方的通信波特率和数据格式一致,这样才能观察到正确的结果。在本例中,单片机发送串口数据采用的波特率是9600bps,数据格式是8位数据位,1位停止位,无奇偶校验。在计算机上的串口助手里面,我们也要将波特率和数据格式设置成一样的。4、关于串行数据发送函数的编写由于我们在这个实例中只是实现了从单片机发送一个字节的数据到计算机,所以编写起来相对比较简单。首先我们要设置好串口寄存器的内容,然后查询数据缓冲器是否

4、为空,如果数据缓冲器为空,则表示可以发送数据,这时候我们就可以将要发送的那个字节写入数据发送寄存器中。5、程序的简单模块化从这个程序开始,我们试着将程序模块化。程序模块化有两个好处:●程序结构清晰,容易读懂。●程序便于移植程序的模块化是一个系统的工程,在本实例中,我们先简单的把程序的不同功能封装成不同的函数,然后再主程序里面调用这些函数;这样编写出来的程序,主程序比较简洁,并且易读。而每一个函数都具有各自不同的功能,以后我们用到这些功能的时候,就可以直接调用这些函数了。本实例用到了3个函数,分别是:端口初始化函数,串口初始化函数

5、,字节发送函数。6、使用WINAVR开发环境,从这个例子开始,我们要使用外部晶振了,所以makefile文件中的时钟频率要修改一下,我们使用的是外部12M的晶振,所以需要将MAKEFILE文件中的时钟频率修改为12M。另外在程序烧录到单片机的时候,熔丝位也要选择为外部12M晶振(注意是晶振,不是外部振荡器,一定不要选择错了,否则会导致单片机不能再烧写程序。我今天就犯了这样的错误,最后只好用外部振荡器恢复了一下才把单片机弄正常了)。7、程序代码#include#include#inc

6、lude//中断函数头文件//常量声明#defineBAUD9600//波特率定义//全局变量声明unsignedcharTransmit;//函数声明voidPort_Init(void);//端口初始化配置voidUsart_Init(void);//USART寄存器设置voidUsart_PutChar(unsignedcharcTXData);//字节发送函数intmain(void){Port_Init();Usart_Init();Transmit=0X31;Usart_PutCha

7、r(Transmit);sei();//使能全局中断while(1){}}//端口状态初始化设置函数voidPort_Init(){PORTD=0X00;//USART的发送接收端口分别为PD0和PD1DDRD

8、=(1<

9、=(1<

10、(1<

11、(1<

12、的I/O地址,写UCSRC时,URSEL应设置为1。UBRRL=(F_CPU/BAUD/16-1)%256;//波特率设置UBRRH=(F_CPU/BAUD/16-1)/256;UCSRB

13、=(1<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。