4.2 CC2530单片机串口接收数据 课件(共47张PPT)-《单片机技术与C语言基础 》同步教学(电子工业版)

资源下载
  1. 二一教育资源

4.2 CC2530单片机串口接收数据 课件(共47张PPT)-《单片机技术与C语言基础 》同步教学(电子工业版)

资源简介

(共47张PPT)
单片机与C语言技术应用
第四单元 任务2
4.2 CC2530单片机串口接收数据
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
学习目标
01
掌握串口UART通信的物理层连接方式;
掌握串口UART通信的数据帧格式及波特率计算;
掌握扫描方式判断串口发送数据是否完成;
掌握串口发送数据触发中断;
掌握扫描方式判断串口接收数据;
掌握串口接收数据触发中断;
掌握串口命令控制交通信号灯系统。
学习目标
01
能对与串口通信数据帧格式以及波特率相关的寄存器进行设置;
能对扫描方式和中断方式完成串口发送数据的相关寄存器进行配置;
能对扫描方式和中断方式完成串口接收数据的相关寄存器进行配置;
能使用串口命令控制交通信号灯的开关。
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
4.2 CC2530单片机串口接收数据
任务要求与任务分析
02
● 任务要求:
①黑板通电后,D3绿色LED熄灭(黄灯灭),串口接收数据等待中;
②PC机发送数据0xBF;
③串口接收数据0xBF,D3绿色LED点亮(黄灯亮);
串口接收效果仅上电一次,不可循环。
任务要求与任务分析
02
● 任务分析:
扫描方式串口接收数据。
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
4.2 CC2530单片机串口接收数据
CC2530串口0接收过程
1
知识储备
03
CC2530串口0接收初始化
2
03
知识储备
串口0从接收引脚RX0以波特率速度一位一位地接收数据,并传送到接收移位寄存器中,当接收到完整一个字节数据后,移位寄存器的数据将传送至U0DBUF寄存器中。
03
知识储备
串口0接收数据原理:
03
知识储备
当移位寄存器的数据传送至U0DBUF寄存器中时,硬件会自动将TCON寄存器的串口0接收中断标志位URX0IF置1,可以通过中断触发方式或扫描方式判断是否接收到完整字节数据。
03
知识储备
TCON寄存器:
位 位名称 复位值 操作 描述
7 URX1IF 0 R/WH0 USART1 RX中断标志。当USART1 RX中断发生时设为1且当CPU指向中断向量服务例程时清除。
0: 无中断未决;
1: 中断未决
6 - 0 R/W 没有使用
03
知识储备
TCON寄存器:
位 位名称 复位值 操作 描述
5 ADCIF 0 R/WH0 ADC中断标志。ADC中断发生时设为1且CPU指向中断向量例程时清除。
0: 无中断未决;
1: 中断未决
4 - 0 R/W 没有使用
03
知识储备
位 位名称 复位值 操作 描述
3 URX0IF 0 R/WH0 USART0 RX中断标志。当USART0中断发生时设为1且CPU指向中断向量例程时清除。
0: 无中断未决;
1: 中断未决
2 IT1 1 R/W 保留。必须一直设为1。设置为零将使能低级别中断探测,几乎总是如此(启动中断请求时执行一次)。
03
知识储备
位 位名称 复位值 操作 描述
1 RFERRIF 0 R/WH0 RF TX/RX FIFO 中断标志。当RFERR中断发生时设为1且CPU指向中断向量例程时清除。
0: 无中断未决;
1: 中断未决
0 IT0 1 R/W 保留。必须一直设为1。设置为零将使能低级别中断探测,几乎总是如此(启动中断请求时执行一次)。
03
知识储备
本任务在初始化时将串口0接收中断标志位URX0IF置0,,然后采用扫描方式不断判断串口0接收中断标志位URX0IF。当串口0接收中断标志位URX0IF为1时,表示接收到一个字节的数据,软件操作将串口0接收中断标志位URX0IF置0,然后读取U0DBUF寄存器的内容,进入串口0接收逻辑分析处理。具体配置代码如下:
03
知识储备
1.URX0IF = 0; //清除串口0接收中断标志位
2. ……
3. while( URX0IF ==0 ); //等待接收数据
4. URX0IF = 0; //清除串口0接收中断标志位
5. //进入串口0接收逻辑分析处理
03
知识储备
通过扫描方式不断检测串口0接收中断标志位URX0IF是否为1,当检测到串口0接收中断标志位URX0IF为1时,表示接收到完整的一个字节数据。
这时从U0DBUF寄存器读取接收数据,硬件上不会自动将串口0接收中断标志位URX0IF置0。
因此从U0DBUF寄存器读取接收数据之前,需要通过软件操作将串口0接收中断标志位URX0IF置0,然后再读取U0DBUF寄存器的内容进行逻辑分析判断处理。
CC2530串口0接收过程
1
知识储备
03
CC2530串口0接收初始化
2
03
知识储备
CC2530串口0接收初始化与本单元任务1的“CC2530串口通信初始化”基本一致,也是完成时钟源选择、硬件I/O口选择与配置、串口模式及数据帧格式配置、通信波特率的计算及设置这四项任务。
完成四项基本配置之后,除了在原有设置U0CSR寄存器,选择UART异步通信模式之外,还需在U0CSR寄存器原有配置基础上,将U0CSR寄存器中的RE位置1,使能UART接收器,具体配置代码如下:
U0CSR |= 0x40; //允许串口0接收
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
4.2 CC2530单片机串口接收数据
任务实施
04
● 任务实施前必须先准备好以下设备和资源:
序号 设备/资源名称 数量 是否准备到位(√)
1 计算机(已安装好IAR软件) 1台
2 NEWLab实训平台 1套
3 CC-Debugger 仿真器 1套
4 黑板 1块
1
2
任务实施
04
打开工程
编写代码
3
编译工程
4
仿真调试
●打开本书配套源代码文件夹中的“单片机串口接收数据.ewp”工程。
04
任务实施
1
2
任务实施
04
打开工程
编写代码
3
编译工程
4
仿真调试
● 步骤1:头文件包含
04
任务实施
#include
● 步骤2:I/O引脚宏定义
04
任务实施
#define GREEN_RED P1_3 //将P1_3引脚宏定义为D5绿色LED控制引脚
步骤3:编写串口初始化函数
1.void InitUART(void)
2.{
3. PERCFG = 0x00; //串口0通信引脚选择备用位置1
4. P0SEL |= 0x0C; //P0_2和P0_3引脚用作外设功能
5. P2DIR &= ~0xC0; //外设多功能复用引脚串口0优先级最高
6. U0CSR |= 0x80; //选择串口UART异步通信模式
7. U0GCR |= 9; //设置通信波特率为9600
8. U0BAUD |= 59; //设置通信波特率为9600
9. U0UCR |= 0x02; //配置起始位低电平、停止位高电平、8位数据通信、无奇偶校验
10. U0CSR |= 0x40; //允许串口0接收
11.}
04
任务实施
04
任务实施
串口0初始化函数主要完成以下几项任务:
(1)设置PERCFG寄存器进行备用位置选择。
(2)设置P0SEL寄存器,将P0_2和P0_3两个I/O口配置作为外设功能。
(3)设置P0SEL寄存器进行多功能复用引脚优先级配置,串口0的优先级设置为最高。
(4)设置U0CSR寄存器,选择UART异步通信模式。
(5)设置U0GCR寄存器和U0BAUD寄存器选择通信波特率9600bps。
(6)设置U0UCR寄存器进行数据帧格式配置。
在U0CSR寄存器原来的基础上将RE位置1,使能串口0接收。
步骤4:编写main主函数
04
任务实施
1.void main()
2.{
3. InitIO(); // I/O口初始化
4. InitUART(); //串口初始化
5. URX0IF = 0; //初始化之后,一般会将接收中断标志置0
6. while( URX0IF==0 ); //判断是否接收到,未接收到继续等待
7. URX0IF=0; //URX0IF置0,清除接收中断标志
04
任务实施
8. If( U0DBUF==0xBF )
9. {
10. GREEN_RED =1; //点亮绿色交通信号灯
11. }
12. while(1);
13. }
04
任务实施
1
2
任务实施
04
打开工程
编写代码
3
编译工程
4
仿真调试
对工程进行编译,观察是否提示编译成功。如果出现错误或警告,需要认真检查修改,重新编译链接,直到没有错误和警告为止。
04
任务实施
1
2
任务实施
04
打开工程
编写代码
3
编译工程
4
下载代码
(1)用CC-Debugger仿真器的下载线连接黑板;
(2)完成代码下载;
(3)黑板上电,PC机上利用串口调试助手发送0xBF数据,观察板上的D5绿色LED是否打开,如果D5绿色LED点亮,表示CC2530单片机接收到0xBF数据。
04
任务实施
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
4.2 CC2530单片机串口接收数据
05
任务工单
本次任务关键知识引导
1. CC2530串口0从接收引脚( )以( )速度一位一位地接收数据,并传送到( )中,当接收到完整一个字节数据后,( )的数据将传送至( )寄存器中。
2. 当移位寄存器的数据传送至U0DBUF寄存器中时,硬件会( )将( ) 寄存器的串口0接收中断标志位( )置( ),可以通过( )或( )判断是否接收到完整字节数据。
3. 采用扫描方式判断是否接收到完整字节数据时, 首先将串口0接收中断标志位URX0IF置( ),然后( )检测串口0接收中断标志位URX0IF的状态;当检测到串口0接收中断标志位URX0IF为( )时,表示接收到完整的一个字节数据,需要软件操作将串口0接收中断标志位URX0IF置( ),然后读取( )寄存器的内容,进入串口0接收逻辑分析处理。
4. CC2530串口0接收数据时,需要对( )寄存器进行配置,选择( )通信模式之外,还需将U0CSR寄存器中的( )位置1,( )UART接收器。
任务工单
05
各组选派代表分析本组任务实施经验;
01
添加标题
请参照评价标准完成自评;
02
完成对其他小组的评价。
03
互评
经验分享
自评
评价方式 可采用自评、互评、老师评价等方式 说明 主要评价学生在项目学习过程中的操作技能、理论知识、学习态度、课堂表现、学习能力等。 序号 评价内容 评价标准 分值 得分
1 知识运用(20%) 掌握相关理论知识,完成本次任务关键知识的作答准确率(20分) 20分
2 专业技能(40%) 工程编译通过,串口调试助手发送0xBF数据,板上的D5绿色LED工作正常。(40分) 40分
工程编译通过,串口调试助手发送0xBF数据,板上的D5绿色LED工作异常。(30分)
完成代码的输入,工程没有编译通过。(15分)
建立工程错误,或者部分输入代码。(5分)
3 核心素养(20%) 具有良好的自主学习、分析解决问题、帮助他人的能力、整个任务过程中有指导他人并解决他人问题(20分) 20分
具有较好的学习能力和分析解决问题的能力,任务过程中无指导他人(15分)
具有主动学习并收集信息的能力,遇到问题有请教他人并得以解决(10分)
不主动学习(0分)
4 职业素养(20%) 实验完成后,设备无损坏、设备摆放整齐、工位区域内保持整洁、无干扰课堂秩序(20分) 20分
实验完成后,设备无损坏、无干扰课堂秩序(15分)
无干扰课堂秩序(10分)
干扰课堂秩序(0分)
总得分
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
4.2 CC2530单片机串口接收数据
任务小结
06
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸练习
08
4.2 CC2530单片机串口接收数据
任务拓展
07
动动脑
请思考下采用扫描方式进行串口0接收数据的缺点是什么?
任务拓展
07
动动手
请在本任务的基础上进行修改,要求CC2530单片机接收到十六进制数据为0xAA才打开D5绿色LED。
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸练习
08
4.2 CC2530单片机串口接收数据
延伸练习
08
请在本任务代码基础上进行修改,实现CC2530单片机接收到的数据为0xFF时,打开D5绿色LED;接收到的数据为0x00时,关闭D5绿色LED。

展开更多......

收起↑

资源预览