ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:172.99KB ,
资源ID:10395168      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10395168.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(串口通信实验分析.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

串口通信实验分析.docx

1、串口通信实验分析课程名称:Zigbee技术及应用 实验项目: 串口通信实验 指导教师: 专业班级: 姓名: 学号: 成绩: 一、实验目的:(1)认识串口通信的概念;(2)学习单片机串口通信的开发过程;(3)编写程序,使单片机与PC通过串口进行通信。二、实验过程:(1)根据实验目的分析实验原理;(2)根据实验原理编写C程序;(3)编译下载C程序,并在实验箱上观察实验结果。三、实验原理: 串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送,此时只需要一条数据线,外加一条公共信号地线和若干条控制信号线。因为一次只能传送一位,所以对于一个字节的数据,至少要分8位才能传送完毕,如图3-1所示

2、。图2-1串行通信过程串行通信制式:(1)单工制式这种制式是指甲乙双方通信时只能单向传送数据,发送方和接收方固定。(2)半双工制式这种制式是指通信双方都具有发送器和接收器,即可发送也可接收,但不能同时接收和发送,发送时不能接收,接收时不能发送。(3)全双工制式这种制式是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时能发送。三种制式分别如图3-2所示图3-2串行通信制式3.1硬件设计原理CC2530有两个串行通信接口USART0和USART1,两个USART具有同样的功能,可已分别运行于UART模式和同步SP

3、I模式。CC2530的两个串行通信接口引脚图分布如表3-1所示表3-1 CC2530串行通信口引脚图分布 本实验CC2530模块使用的是USART1的位置2,P1_6和P1_7。3.2程序设计原理串口通信程序流程图如图3-3所示图3-3程序设计流程图(1)寄存器的配置P1SEL寄存器,P1_0-P1_7功能选择,0:通用I/O 1:外设本实验需配置P1_6和P1_7为外设,P1SEL |= 0xC0。位名称复位R/W描述7:0SELP1_7:00x00R/WP1.7 到P1.0功能选择0:通用I / O1:外围函数U1CSR寄存器,USART1控制和状态本实验使用UART模式,U1CSR |=

4、 0x80。位名称复位R/W描述7MODE0R/WUSART模式选择0:SPI模式1:UART模式6RE0R/WUART接收器使能。注意在UART完全配置之前不使能接收。0:禁用接收器 1:接收器使能5SLAVE0R/WSPI主或者从模式选择0:SPI主模式1:SPI从模式4FE0R/W0UART帧错误状态0:无帧错误检测1:字节收到不正确停止位级别3ERR0R/W0UART奇偶错误状态0:无奇偶错误检测1:字节收到奇偶错误2RX_BYTE0R/W0接收字节状态。URAT模式和SPI从模式。当读U0DBUF该位自动清除,通过写0清除它,这样有效丢弃U0DBUF中的数据。0:没有收到字节1:准备

5、好接收字节1TX_BYTE0R/W0传送字节状态。URAT模式和SPI主模式0:字节没有被传送1:写到数据缓存寄存器的最后字节被传送0ACTIVE0RUSART传送/接收主动状态、在SPI从模式下该位等于从模式选择。0:USART空闲1:在传送或者接收模式USART忙碌U1UCR寄存器,USART1控制(2)本实验配置UART:无硬件流控制,无奇偶校验,8位数据位,1位停止位,所以,U1UCR应配置为0x00因单片机复位,U1UCR全部为0,所以U1UCR寄存器应保持默认,无需配置。位名称复位R/W描述7FLUSH0R0/W1清除单元。当设置时,该事件将会立即停止当前操作并且返回单元的空闲状态

6、。6FLOW0R/WUART硬件流使能。用RTS和CTS引脚选择硬件流控制的使用。0: 流控制禁止1: 流控制使能5D90R/WUART奇偶校验位。当使能奇偶校验,写入D9的值决定发送的第9位的值,如果收到的第9位不匹配收到字节的奇偶校验,接收时报告ERR。如果奇偶校验使能, 那么该位设置以下奇偶校验级别。0: 奇校验1: 偶校验4BIT90R/WUART 9位数据使能。当该位是1时, 使能奇偶校验位传输(即第9位)。如果通过PARITY使能奇偶校验,第9位的内容是通过D9给出的。0: 8位传送1: 9位传送3PARITY0R/WUART奇偶校验使能。除了为奇偶校验设置该位用于计算,必须使能9

7、位模式。0: 禁用奇偶校验1: 奇偶校验使能2SPB0R/WUART停止位的位数。选择要传送的停止位的位数0: 1位停止位1: 2位停止位1STOP1R/WUART停止位的电平必须不同于开始位的电平0: 停止位低电平1: 停止位高电平0START0R/WUART起始位电平。闲置线的极性采用选择的起始位级别的电平的相反的电平。0: 起始位低电平1: 起始位高电平(3)波特率设置当运行在UART 模式时,内部的波特率发生器设置UART 波特率。当运行在SPI 模式时,内部的波特率发生器设置SPI 主时钟频率。由寄存器UxBAUD.BAUD_M7:0和UxGCR.BAUD_E4:0定义波特率。该波特

8、率用于UART 传送,也用于SPI 传送的串行时钟速率。波特率由下式给出: (3-1)(式3-1中:F 是系统时钟频率,等于16 MHz RCOSC 或者32 MHz XOSC。)表3-2 32MHz系统时钟常见的波特率设置波特率 (bps)UxBAUD.BAUD_MUxGCR.BAUD_E误差(%)24005960.1448005970.1496005980.141440021680.03192005990.142880021690.033840059100.1457600216100.037680059110.14115200216110.03230400216120.03本实验设置的波特

9、率为57600,U1GCR |= 10,U1BAUD |= 216四、实验步骤和实验结果1.硬件配置 :(1)实验设备:CC2530核心板一块;传感器底板一个;仿真器一个;方口USB线一根;USB转TTL模块一个;杜邦线三根。2.实验步骤:步骤一: 编写串口收发程序,编译无误。步骤二:将CC2530模块(CC2530核心板与传感器底板,简称CC2530模块)与仿真器连接,仿真器用USB连接线与电脑进行连接。步骤三:点击IAR软件中的 Download and Debug 按钮进行编译下载。步骤四:然后单击调试工具栏中的GO 按钮。步骤五:CC2530模块与USB转TTL模块连接,将USB转TT

10、L模块插入PC的USB口。3. 程序及现象: 1)实验程序: #include char str=MICROSEC USART TEST!n;/* * fn Clock_Init * brief 初始化系统时钟. * param None * return None */void Clock_Init(void) CLKCONCMD &= 0x40; /选择32MHz晶振 while(!(SLEEPSTA&0x40); /等待晶振稳定 CLKCONCMD &= 0x47; /TICHSPD128分频,CLKSPD不分频 SLEEPCMD |= 0x04; /关闭不用的RC振荡器/* * fn

11、UART1_Init * brief UART1初始化. * param None * return None */void UART1_Init(void) PERCFG=0x73; /使用串口备用位置2 P1口P1SEL|=0xC0; /P1_6 P1_7用作串口P2DIR=0x40; /选择串口1优先作为串口U1CSR|=0x80; /UART方式U1BAUD|=216; /波特率57600U1GCR=10;UTX1IF=1; /串口1 TX中断标志位置1U1CSR|=0x40; /允许接收URX1IE=1; /开串口接收中断 URX1IE = 1IEN0|=0x84; /开总中断/*

12、* fn UART1_Send_String * brief UART1初始化. * param *Data,len * return None */void UART1_Send_String(char *Data,int len) int j ; for(j=0;jlen;j+) U1DBUF= *Data+; while(UTX1IF=0); UTX1IF=0; /* * fn main * brief 主函数. * param None * return None */void main(void) Clock_Init(); /系统时钟初始化 UART1_Init(); /串口1初始

13、化 UART1_Send_String(str,21); /发送一个字符串 while(1) /等待中断的到来 /* * fn UART1_IRQ * brief 串口接收中断服务函数. * param None * return None */#pragma vector=URX1_VECTOR_interrupt void UART1_IRQ(void) char data; IEN0&=0x40; /关串口接收中断 URX1IE = 0 data=U1DBUF; /将接收的字节从U1DBUF取出来 U1DBUF=data; /将取出来的字节放入U1DBUF发送出去 while(UTX1IF=0) /等待发送完成 UTX1IF=0; IEN0|=0x08; /开串口接收中断 URX1IE = 12)实验现象:将程序编译完成,烧入CC2530模块。PC端发送hello,单片机将hello返回给PC,并显示在串口调试助手的接收窗中如图3-4所示。图3-4 串口功能调试五、实验总结 在本次实验中,我认真了解了串口通信的概念,学了单片机串口通信的开发过程编写程序,使单片机与PC通过串口进行通信。在本次实验过程中,因连接问题导致实验失败,最终在老师和同学的帮助下完成了此次实验,感觉本次实验收获极多。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1