




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课时教案课程:单片机技术与应用-基于CC2530的ZigBee技术开发与应用课题串口发送指令控制LED课时4教学目标知识:1.掌握UART查询方式接收串口数据原理。2.掌握UART中断方式接收串口数据原理。技能:1.能根据实际应用实现UART接收数据通信。2.具备串口调试助手配置与应用能力。3.具有在基础任务上进一步开发能力。素质:1.具备严谨求实、认真负责、踏实敬业的工作态度。2.具有创新精神及探究意识。重点1.UART查询方式接收串口数据原理。2.UART中断方式接收串口数据原理。难点两种方式下接收串口数据的程序设计教法任务驱动式理实一体化学法实训小组合作教具试验多媒体、PPT课件教学过程问题设计及知识点师生互动设计(问题与任务)串口发送指令控制LED【任务描述】使用PC端的串口调试程序,通过串口向ZigBee模块发送指令,点亮LED1--LED4。发送1时,LED1亮;发送2时,LED2亮;发送3时,LED3亮;发送4时;LED4亮;发送5时,LED全部熄灭。【任务分析】1.知识分析实现通过串口发送指令控制LED灯,必须要理解UART发送及接收原理,清晰掌握UART查询和中断方式下如何接收串口数据。2.设备分析实训任务在选择ZigBee实训模块基础上,还需选取USB转串口线对ZigBee模块与PC进行连接,并通过串口调试助手进行调试。3.技能分析实现通过串口发送指令控制LED灯,必须具备UART接收数据通信的能力,程序代码编译成功后,还需要具备串口助手调试配置能力,实现串口数据对LED灯的控制【知识储备】1.UART接收串口数据(1)查询方式接收串口数据(先查后收)程序查询方式是主机与外设间进行信息交换的最简单方式。查询法就是使串口一直处于等待的状态,查看串口上是否接收到数据,通过查看TCON.URXxIF的值,若不是1,接收程序继续查询等待。若为1,表示串口上有数据且串口上的数据已经接收完毕,软件编程将TCON.URXxIF的值清零,缓冲寄存器UxDBUF中的数据赋值给程序变量,完成数据接收。数据接收完毕后,就开始对接收的数据进行相应的操作。在UART配置后,通过设置UxCSR.RE的值来控制串口接收器允许接收还是禁止接收。当1写入UxCSR.RE位时,在UART上数据接收就开始了。然后UART会在输入引脚RXDx中寻找有效起始位,并且设置UxCSR.ACTIVE位为1。当检测出有效起始位时,收到的字节就传入到接收寄存器,UxCSR.RX_BYTE位设置为1。该操作完成时,产生接收中断。同时UxCSR.ACTIVE变为低电平。通过寄存器UxDBUF提供收到的数据字节,当UxDBUF读出时,UxCSR.RX_BYTE位由硬件清零。(2)中断方式接收串口数据(等待中断,在中断中接收)中断方式是运用串口的中断服务程序(ISR)来完成的。如果串口上有值,那么就会调用相应的中断向量,中断向量则把程序指针指到相应的ISR。对接收数据的操作在ISR中进行,ISR完成之后,程序指针会跳回中断前的地方,继续进行刚才被中断的工作。程序初始化时,通过设置IEN0.URXxIE的值为1,使能USARTx的串口接收中断。CC2530单片机在数据接收完毕后,中断标志位TCON.URXxIF被置1,就产生串口接收数据中断。在中断处理函数中,对中断标志位TCON.URXxIF软件清零,缓冲寄存器UxDBUF中的数据赋值给程序变量,完成数据接收。(3)查询方式与中断方式的区别查询方式:反应速度慢,稳定性高。中断方式:是一种硬件机制,反应速度快,要求电路板制作水平高,不易受干扰。【任务指导】任务1:串口通信控制LED灯(查询方式)1.程序设计思路1)任务流程图如图4-2-1所示。图4-2-1UATR查询方式接收程序流程图2)初始化USART0的各个寄存器,设置USART0的工作方式为UART模式,并将其波特率设置为19200。3)在主函数中设计指令控制语句,通过指令控制LED灯的亮灭。2.搭建开发环境1)新建工作区,工作区名为:work5_3_1。2)新建工程,工程名为:project5_3_1。3)新建源程序文件,命名为test5_3_1.c。4)将test5_3_1.c文件添加到project5_3_1工程中。5)按键CTRL+S保存工作区。6)配置工程选项,“Project”->“Options”->“GeneralOptions”,“Device”->“TexasInstruments”->“CC2530F256”。7)配置linker,勾选Overridedefault8)配置Debugger,“Debugger”->“Setup”->“Driver”->“TexasInstruments”。3.在编辑窗口设计程序(1)准备工作引入CC2530必要的头文件“iocc2530.h”,具体代码如下:#include<iocc2530.h>#defineLED1P1_0#defineLED2P1_1#defineLED3P1_3#defineLED4P1_4(2)初始化串口配置voidinitial_usart_rx(){PERCFG=0X00;//usart0使用备用位置1,TX-P0_3,RX-P0_2P0SEL|=0X3C;//USART0使用位置1,设置相应引脚为片内外设I/O口P2DIR&=~0XC0;//P0优先作为UART模式U0CSR|=0XC0;//选择USART通信为UART模式,允许接收U0GCR=9;U0BAUD=59;URX0IF=0;}(3)设计主函数(两种指令控制语句实现指令控制)voidmain(void){CLKCONCMD&=~0x7F;//晶振选择为32MHZwhile(CLKCONSTA&0X40);//等待晶振稳定CLKCONCMD&=~0X47;//设置系统时钟频率为32MHzinitial_usart_rx();P1SEL&=~0X1B;P1DIR|=0X1B;P1=0X00;while(1){if(URX0IF==1) { URX0IF=0;switch(U0DBUF)//寄存器接收到的数据{case'1':LED1=1;break;//'1'表示接收到的数据为字符,以下相同case'2':LED2=1;break;case'3':LED3=1;break;case'4':LED4=1;break;case'5':LED1=LED2=LED3=LED4=0;break;default:break;}/*串口调试助手中发送设置编码形式为HEX时的语句*/switch(U0DBUF)//寄存器接收到的数据{case0x01:LED1=1;break;//0X01表示接收到的数据为十六进制,以下相同case0x02:LED2=1;break;case0x03:LED3=1;break;case0x04:LED4=1;break;case0x05:LED1=LED2=LED3=LED4=0;break;default:break;}}}}4.编译、下载程序1)编译无误后,将CCDebugger与实验板相连,并连接到电脑。2)用USB转串口数据线把实验板连接到电脑。3)下载程序,打开串口调试助手,配置好相应串口号及波特率,选择发送设置,然后发送不同指令控制LED灯的亮灭状态。任务2:串口通信控制LED灯(中断方式)1.程序设计思路1)任务流程图:2)初始化USART0的各个寄存器,设置USART0的工作方式为UART模式,并将其波特率设置为19200。3)设计串口接收中断服务函数,产生中断时通过指令控制LED灯的亮灭。2.搭建开发环境1)新建工作区,工作区名为:work5_3_2。2)新建工程,工程名为:project5_3_2。3)新建源程序文件,命名为test5_3_2.c。4)将test5_3_2.c文件添加到project5_3_2工程中。5)按键CTRL+S保存工作区。6)配置工程选项,“Project”->“Options”->“GeneralOptions”,“Device”->“TexasInstruments”->“CC2530F256”。7)配置linker,勾选Overridedefault8)配置Debugger,“Debugger”->“Setup”->“Driver”->“TexasInstruments”。3.在编辑窗口设计程序(1)准备工作引入CC2530必要的头文件“iocc2530.h”,具体代码如下:#include"iocc2530.h"#defineLED1P1_0#defineLED2P1_1#defineLED3P1_3#defineLED4P1_4(2)串口初始化配置voidinitial_usart_tx(){PERCFG=0X00;//USART0使用备用位置1.TX-P0_3RX-P0_2P0SEL|=0X3C;//USART0使用位置1,设置相应引脚为片内外设I/O口P2DIR&=~0XC0;//P0优先作为UART模式U0CSR|=0XC0;//UART模式,允许接收U0GCR=9;U0BAUD=59;URX0IF=0;IEN0=0X84;}(3)设计串口接收中断服务函数#pragmavector=URX0_VECTOR__interruptvoidUART0_ISR(void){URX0IF=0;switch(U0DBUF){case'1':LED1=1;break;//接收到的数据为字符,若接收的数据为十六进制,则为0X01case'2':LED2=1;break;case'3':LED3=1;break;case'4':LED4=1;break;case'5':LED1=LED2=LED3=LED4=0;break;default:break;}}(4)设计主函数//**************主函数*****************voidmain(void){CLKCONCMD&=0X80;while(CLKCONSTA&0x40);initial_usart_tx();P1SEL&=0xE6;P1DIR|=0X1B;P1=0X00;while(1); }3.编写、分析、调试程序1)编译无误后,将CCDebugger与ZigBee模块相连,并连接到电脑。(具体连接方式同任务2)2)用USB转串口数据线把ZigBee模块连接到电脑。(具体连接方式同任务2)3)下载程序,打开串口调试助手,配置好相应串口号及波特率,选择发送设置,然后发送不同指令控制LED灯的亮灭状态。教师引导学生分析任务小组合作探究查询方式及中断方式串口接收数据的工作原理学生总结两种方式的区别教师引导学生设计查询方式接收程序流程图学生依据任务要求搭建开发环境学生编写程序:引入头文件,定义相关变量小组合作,依据串口初始化配置流程设计串口初始化函数教师指导评价做中教做中学教师引导学生编写主函数,理解程序设计思路学生动手操作强化训练学生动手操作,教师巡视指导教师引导学生设计中断方式接收程序流程图学生依据任务要求搭建开发环境学生编写程序:引入头文件,定义相关变量小组合作,依据串口初始化配置流程设计串口初始化函数教师指导评价教师引导学生编写串口服务函数学生编写主函数做中教做中学教师引导学生编写主函数,理解程序设计思路学生动手操作强化训练新知应用模拟电子温度计警报系统,通过串口,PC向ZigBee模块发送温度指令,点亮LED1和LED2。发送的温度低于(包含)37度,LED1亮,LED2灭;温度高于37度,LED1灭,LED2亮。(注:温
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有声读物演播与配音服务行业跨境出海项目商业计划书
- 2024年中考二模 模拟卷 语文(内蒙古卷)(答案及评分标准)
- 哲学期末考试试题及答案
- 2025届高中生物学一轮复习:重点强化练25 有丝分裂和减数分裂的特点及图像(含解析)
- 期末检测练习卷(试题)(含答案)2024-2025学年六年级下册数学人教版
- 运维开放性面试题库及答案
- 云南机电笔试题目及答案
- 院学生会笔试题目及答案
- 语文自考试题及答案
- 湖南省师范大学附属中学2024-2025学年高一下学期第二次大练习(5月)政治试卷(含答案)
- 2024年小升初考试试卷
- 包虫病防治知识小学课件
- 《餐饮行业安全生产标准化评定标准与实施》
- 挖机简单租赁合同8篇
- 高职院校课程设置存在的问题及改革建议
- 中职高教版(2023)世界历史-第13课-资本主义世界殖民体系的建立与亚非拉民族独立运动【课件】
- 办公软件基础课件
- 四新安全教育培训材料
- 2025上海市商业店铺出租合同(合同版本)
- 高校科研诚信教育
- 绿城园林景观工程设计15个强制性标准
评论
0/150
提交评论