当前位置:首页 > 嵌入式 > 嵌入式硬件

摘 要:介绍AVR单片机ATmega16和计算机的串行通信的软、硬件设计,采用Visual Basic6.0中的MSComm通信控件实现计算机与单片机ATmega16之间的串行通信。文章详细阐述了程序的设计流程,并给出了部分程序代码。实验证明该系统可以实现ATmega16与计算机之间的通信。
关键词: ATmega16;计算机;串行通信;Visual Basic6.0

AVR单片机[1]是美国ATMEL公司的精简指令集单片机,大多数是单周期指令,运行速度快。AVR单片机带有Flash程序存储器,擦写方便,支持ISP(串行在线下载),便于产品的调试、开发和更新。ATmega16是AVR单片机家族中的高档产品,是目前占主流、高信价比的AVR芯片之一。ATmega16的主要特点有:功耗低,在正常模式下只有1.1 mA;最高工作频率可达16 MHz;具有可擦写的16 KB的可编程Flash;内含8路10 bit ADC;具有高度灵活的串行通信设备USART,使用时只需设置相关的寄存器参数就可以实现串行通信。
EIA-232是常用的串行通信[2]技术标准之一,是目前通信工业中应用最广泛的一种串行接口,这是由于工业领域对产品的可靠性和稳定性的要求更高,EIA标准下的串行通信技术完全可以满足人们对工业设备传输的各种性能要求,使得EIA串口通信在系统控制[3-5]的范畴中一直占据着极其重要的地位。计算机和单片机的EIA-232串行通信是许多测控系统常用的一种通信解决方案。本文介绍了计算机和单片机ATmega16之间EIA-232串行通信的实现。计算机作为上位机,单片机作为下位机。
1 硬件设计
图1为EIA-232串行通信系统的结构框图。

EIA-232用正、负电压来表示逻辑状态,有效负电平的状态为逻辑1,有效正电平的状态为逻辑0;而单片机使用的TTL电平是以高、低电平表示1和0两种逻辑状态,因此将两者相连必需进行电平逻辑关系的变换。图1中的芯片MAX232就是将TTL和RS232电平相互转换的器件。
图2为EIA-232串行通信电原理图。电压VCC可采用5 V供电。

图2中的D Connector9是用于连接计算机串行口的接插件,5脚是接地端,3脚是发送端TXD,2脚是接收端RXD。TXD端的电平经MAX232转换为TTL电平后送给单片机的接收端;单片机发送出的TTL电平的数据经MAX232转换为RS232电平经RXD传送给计算机。ATmega16工作时使用系统内部时钟8 MHz,不需外接晶振,只需在烧录程序时设置相关参数即可使用内部时钟。图2中标号为UP的是一个10脚的接插件,通过这个接插件与程序烧录器相连即可实现单片机程序的烧录操作,方便产品升级。
2 上位机程序设计
上位机程序的编写采用Visual Basic6.0的编程环境。使用Visual Basic6.0的MSComm串行通信控件,非常容易实现串口通信,使用时要对串行通信的信息格式和协议进行设置。每个通信控件对应一个串口, 如果要访问多个通信口, 则要设计多个通信控件。
计算机与单片机之间的通信采用查询的工作方法,计算机作为上位机,单片机作为下位机。计算机主要负责发送控制命令以及数据的发送、接收、处理、计算和显示等功能。计算机的程序设计包括界面设计以及程序代码的编写。图3为设计的程序界面,图3中含有发送数据的输入框、接收数据的显示框和命令控件按钮。用鼠标点击“发送/接收”按钮后程序开始运行,接收数据与发送数据一致时说明通信成功,否则失败。

图4为程序设计的流程图。具体的程序代码包括串口的初始化及数据的发送与接收。初始化代码主要对串行通信的信息格式和协议进行设置,串口的初始化代码如下:
MSComm1. CommPort = 1 //使用COM1串口
MSComm1. Settings="9600,n,8,1"
//数据格式:波特率9600 b/s,无奇偶
校验,8 bit数据位,1 bit停止位
MSComm1. OutBufferCount = 0 //清空发送缓冲区
MSComm1. InBufferCount = 0 //清空接收缓冲区
MSComm1. InputMode = 1 //以二进制形式取回数据
MSComm1. InputLen=0 //一次读取缓冲区内全部数据
   If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If //打开串口
数据的发送和接收主要用到下面两句代码:
MSComm1.Output = outdata
backdata = MSComm1.Input
  由于篇幅的限制,其他代码不再给出。
3 下位机程序设计
  Atmega16内部的USART是一个通用的同步和异步串行接收器和发送器,其高度灵活,使用非常方便。与USART相关的寄存器有:UDR、UCSRA、UCSRB、UCSRC、UBRRH和UBRRL。UDR是USART发送数据和接收数据共享的数据寄存器,将数据写入UDR时实际操作的是通过UDR发送数据,读UDR时实际返回的是UDR中的数据。UCSRA、UCSRC和UCSRB为控制和状态寄存器,串行口的通信模式的设置可通过对UCSRA和UCSRB的相关数据位进行写操作来实现。数据帧包含的数据位数也是由UCSRB来确定,并与上位机保持一致。UBRRH和UBRRL为波特率寄存器,UBRRH和UBRRL是16位寄存器UBRR的高8位和低8位。UBRR的值是用于确定串行通信的波特率,对于异步正常模式(由UCSRA和UCSRB确定),波特率的计算公式为,对于9 600 b/s的波特率(和上位机一致),在fosc=8 MHz的情况下,通过计算得UBRR的值为51。对UBRR进行写操作时注意要先写高8位UBRRH,后写低8位UBRRL,否则写入无效。
  程序流程如图5所示。判断接收是否结束依据UCSRA中的标志位RXC,当RXC=1时表示接收没有结束,继续接收;当RXC=0时表示接收结束,可以从UDR中读出接收到的数据。判断发送是否结束依据UCSRA中的标志位TXC,当TXC=1时表示发送没有结束;当TXC=0时表示发送结束。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭