




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第12章 任务T2-7用电脑控制灯光,2,12.1 本章的知识点和技能点,知识点,技能点,SCI通信协议,灵活使用定时器 使用SCI通信协议 掌握单片机与电脑的交互方法,12.2 任务描述,MC9S08AC16通用功能板的单片机通过SCI(串口)与电脑相连,然后电脑通过专用软件或者串口助手向单片机发送控制字符串控制LED1和LED2的亮灭,如发送十六进制的两个数字01 01 时LED1亮,发送十六进制的两个数字01 00 时LED1灭,单片机定时的通过串口向电脑报告LED的状态,电脑根据功能板上LED的状态更新专用软件的LED状态。另外,LED1和LED2的亮灭还可以通过按键S5和S6分别控制
2、。,13.3 任务分析,单片机和电脑之间的通信主要有两种方式异步串行和TCP/IP,而最常用的是异步串行通信,本任务中,单片机正是利用异步串行通信这种方法和电脑进行通信。为了完成本任务,必须简单了解串行通信协议,明白波特率、数据位、检验位等概念。,12.4 实操训练:电脑控制灯光体验,CodeWarrior软件 MC9S08AC16 通用功能板,1块/人 BDM工具,1个/人 串口调试软件 串口线,1条/人,12.4.1 任务所需工具,12.4.2 实验步骤,步骤1:用串口线把MC9S08AC16通用功能板上的串口和电脑的串口连接起来。 步骤2:下载控制程序Sci_1.mcp(该程序可以在随书
3、光盘的目录“单片机技术初步实践例子程序MC9S08AC16通用功能板例子程序第12章”中找到),并用串口调试程序控制LED1的亮灭(发送十六进制的01 01时LED1灭,发送十六进制的01 00时LED1亮)。,12.5 知识链接1:RS-232标准,12.5.1 RS232接口及引脚定义,12.5.2 RS232引脚定义,12.5.3 RS232的电平,RS-232早期是用于调制解调器等设备的一种串行通信标准,推荐的最大电缆长度为50英尺,即传输距离一般不超过15m。它的逻辑电平以公共地为对称,其逻辑“0”电平规定在+3V+25V之间,逻辑“1”电平则在-25V-3V之间,因而它不仅要使用正
4、负极性的双电源,而且与传统的TTL等数字电路的逻辑电平不兼容,两者之间必须使用电平转换。,12.5.4 RS232的电平转换,12.5.5 RS232的硬件电路,12.5.6 RS232数据格式,起始位必须是逻辑0,因为异步通信是靠这个起始位的下降沿来同步通信双方的。 接下来的是数据位,数据位可以是5位、6位、7位、8位或9位。发送时从低位起,逐位地发出,低位在前,高位在后。 如果校验允许,数据位最高位后面的一位是奇偶校验位。奇偶校验位是通过设置校验位,保持发送的数据位中逻辑1的数目为奇数个或者偶数个,分别称为“奇校验”或“偶校验”。 停止位永远为逻辑1。停止位可以是1个、1.5个或2个,含义
5、是两个被发送的数据之间至少要间隔1位、1.5位或者2位。,12.5.7 RS232的波特率,所谓“异步通信”是指通信双方没有时钟信号用以同步,而是按照预先约定的通信速率进行发送和接收。这一通信速率被称为“波特率”(Baud Rate),波特率为1表示每秒传送1位数据。标准的波特率有50、110、300、600、1200、2400、4800、9600、19200、38400、57600和115200等。,12.6 知识链接2:MC9S08AC16 SCI功能介绍,12.6.1 SCI的发送器和接收器,在MC9S08AC16中存在两个串行通信接口SCI(Serial Communication I
6、nterface),每个SCI都具有发送器和接收器,它们的功能独立,但是使用相同的数据格式和波特率。 发送器中存在发送数据寄存器,接收器中存在接收数据寄存器,它们是两个独立的存储空间,但是使用同样一个地址,标号为SCIxD。,12.6.2 SCI的发送器,SCI的发送器负责数据的发送,它由发送数据寄存器和发送移位寄存器组成。 SCI发送数据的流程:1)要发送的数据首先写入发送数据寄存器,写入后由系统自动送到发送移位寄存器,并设置发送数据寄存器空(SCTE) 标志为1;2)发送移位寄存器得到完整的数据后从Tx引脚把数据发送出去,并设置发送完成(TC)标志为1。 若发送中断允许(TIE)和发送结束
7、中断允许(TCIE)置1,则TDRE和TC标志将分别产生中断请求。,12.6.3 SCI的接收器,SCI的接收器负责数据的接收,它由数据恢复模块、接收移位寄存器和接收数据寄存器组成。 SCI接收数据的流程: 1)数据恢复模块以波特率的16倍频率对Rx引脚的每一位数据进行16次采样,并根据其中2/3以上相同的状态来决定该位的逻辑值。例如在16次采样中,如果有14次为高电平,2次为低电平,则认为该数据为1。这样处理可以有效排除干扰,增强数据传输的可靠性。数据恢复模块把每一位接收到数据送到接收移位寄存器。 2)接收移位寄存器在接收到停止位后把数据送到接收数据寄存器中并设置接收数据寄存器满(RDRF)
8、 标志为1;,12.6.3 SCI的接收器(续),SCI接收数据的流程: 3)接收数据寄存器中的数据被读取后,接收数据寄存器满(RDRF) 标志被清0,并设置接收允许(RE)标志为1;当数据寄存器中的数据还未被取走,移位寄存器又接收到下一个数据时,就会发生溢出,此时移位寄存器中未取走的数据将会丢失,状态寄存器中溢出(OR)状态标志置1,以指出溢出错误。 4)如果接收器发现当前数据线处于空闲状态,那么其状态寄存器中的空闲标志IDLE将会置起1。 5)SCI接收器的上述3个标志位(IDLE、RDRF和OR)在允许后能够分别产生中断请求。设置接收中断允许(RIF)控制位就可以允许RDRF和OR状态标
9、志产生硬件中断请求;设置空闲线中断允许(ILIE)控制位就可以允许IDLE状态标志产生硬件中断请求。,12.6.4 SCI的寄存器,每个SCI模块包括8个寄存器,它们分别是波特率寄存器SCIxBDH和SCIxBDL、控制寄存器1 SCIxCl、控制寄存器2 SCIxC2、控制寄存器3SCIxC3、状态寄存器1 SCIxSl、状态寄存器2 SCIxS2、数据寄存器SCIxD。每个SCI模块都和2个外引脚(接收引脚RxD和发送引脚TxD)相关,当SCI接收器发送器被允许时,SCI模块将控制RxD和TxD,否则它们只用作普通的并行IO口。详细说明请看课本P204209。,12.6.5 SCI的软件设
10、计,SCI的软件开发有以下2个步骤: 第一步,SCI模块的初始化; 第二步,编写发送和接收等基本功能,接收和发送都可以用查询方式或者中断方式实现,一般来说发送时采用查询方法,接收时采用中断方式。 下面以SCI模块1为例作具体介绍。,12.6.5.1 SCI的初始化,SCI的初始化要完成如下设置: 置SCI模块的SCI功能有效。不作SCI使用时,SCI引脚默认为普通IO端口的输入模式。 设置通信波特率。这是SCI模块的工作时钟。 设置通信规约。如1位起始位,8位数据位,1个停止位,无奇偶校验位等。,12.6.5.2 SCI的初始化举例,例子: 假设MC9S08AC16单片机的总线频率为8MHz,
11、要求SCI1波特率为9600,数据位为8位,停止位为1位,无奇偶校验位,允许接收和发送,不允许SCI的所有中断。 分析: 由于波特率=(总线频率/16)/BR,因此BR= (总线频率/16)/波特率=(8000000/16)/9600=52,即SCI1BDH=0 x00, SCI1BDH=0 x34; 8位数据位SCI1C1中的M=0;1位停止位SCI中默认为1位,无须设置;无奇偶校验位SCI1C1中的PE=0;SCI1C1的其他各位也都为0; 因此SCI1C2=0 x00。 允许接收和发送,不允许SCI的所有中断SCI1C2中的TE=1,RE=1,其他各位均为0,因此SCI1C2=0 x0C
12、。,12.6.5.2 SCI的初始化举例(续),本例的代码如下: CLRA STASCI1BDH LDA#$34; 分频因子=52 STASCI1BDL; FBus:8MHz,波特率为9600 CLRA STASCI1C1 ; 8位数据位,1位停止位,无校验 LDA#%00001100; TE,RE位应置1 STASCI1C2; 允许SCI发送接收,无中断,12.6.5 SCI用查询方式发送数据,SCIOut ; 等待数据寄存器SCI1D为空,即TDRE=1 BRCLR7,SCI1S1,* ; 把累加器A中的数据写入SCI1D STASCI1D ; 等待数据发送完成,即TC=1 BRCLR6,
13、SCI1S1,* RTS,12.6.6 SCI用查询方式接收数据,SCI1Rx ; 确保数据接收缓冲区已满 BRCLR 5,SCI1S1,* ; 判断SCI通讯是否存在错误 LDA SCI1S1 AND #$0F ; 串口接收存在错误 BNE SCI1Rx _Err ; 获取接收缓冲区中的数据 LDA SCI1D ; 把收到的数据保存在RxData STA RxData BRA SCI1Rx_Return ; 串口接收存在错误 SCI1Rx _Err ; 清数据接收缓冲区 LDA SCI1D SCI1Rx_Return RTS,12.6.7 SCI的中断方式,在用查询方式接收SCI的字符时,如
14、果没有字符输入,则CPU将无限制地查询下去,此时CPU完全被查询程序占用,不能再做别的事情。 采用中断方式接收字符时,CPU可以正常处理其他任务。当SCI模块接收到字符时,通过向CPU发出一个中断信号申请一个中断服务,在中断服务子程序中读取接收字符并作相应处理。 SCIl中有3个中断向量:发送中断向量($FFDA,$FFDB)、接收中断向量($FFDC,$FFDD)和出错中断向量($FFDE,$FFDF)。其中接收中断向量有2个中断源:接收数据寄存器满中断和接收线路空闲时间超过接收1个字符的时间中断。,12.6.8 SCI的用中断方式接收数据,SCI通讯中采用中断方式接收数据一般分为3个步骤:
15、 1)允许SCI接收器中断,令SCI1C2中的RIE=1; 2)编写接收中断处理函数 SCIRxIsr BRCLR 5,SCI1S1,*; 确保数据接收缓冲区已满 ; 判断SCI通讯是否存在错误 LDA SCI1S1 AND #$0F BNE SCIRxIsr_Err; 串口接收存在错误 LDA SCI1D ; 获取接收缓冲区中的数据 JSR SCIOut; 把接收到的数据反送回去 BRA SCIRxIsr_Return SCIRxIsr_Err; 串口接收存在错误 LDA SCI1D; 清数据接收缓冲区 SCIRxIsr_Return RTI,12.6.8 SCI的用中断方式接收数据(续),3)将中断服务子程序的入口地址装入SCI1接收中断向量中: ORG$FFDC DC.WSCIRxIsr,12.7 知识链接3:串口调试软件介绍,12.7 串口调试软件介绍,第一步:设置串口参数; 第二步:打开串口; 第三步:数据收发。 其他功能:定时发送、文件发送、十六进制和字符格式互换显示。,12.8 实操训练:电脑控制灯光设计,CodeWarrior软件 MC9S08AC16 通用功能板,1块/人 BDM工具,1个/人 串口调试软件 串口线,1条/人,12.8.1 任务所需工具,12.8.2 实验步骤,步骤3:学习控制程序Sci_1.mcp的程序代码,并画出SCI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津市河西区2025年其他事业单位公开招聘工作人员笔试历年典型考题及考点剖析附带答案详解
- bbc国际音标教学课件
- 倡导低碳生活教学课件
- 定量分析的任务王宇96课件
- 天津市红桥区2025年事业单位公开招聘工作人员设定笔试合格分数线及复审笔试历年典型考题及考点剖析附带答案详解
- 停车教学课件图片大全集
- 制作课件的教学工具
- 人物介绍教学课件
- 葡萄酒产区特色与品牌国际化现状:2025年市场分析与策略建议
- 小学生睡眠质量课件图片
- 贵州贵州省建设投资集团有限公司招聘笔试真题2024
- 广西钦州市2024-2025学年高二下学期期末检测英语试题【含答案解析】
- 医药电商区域销售数据特征研究-洞察阐释
- 吊装起重作业安全培训课件
- 特种设备管理台帐(5个台账)
- 广东省推进粤港澳大湾区国际科技创新中心建设重点任务实施方案
- 牛津版沪教版英语八年级(上)Unit-1-Encyclopaedias-词句讲解+练习+答案
- 小学升初中入学测试宁外入学试卷
- 广东省茂名市各县区乡镇行政村村庄村名明细
- 雨露计划职业教育补助-学籍证明-模板-(四川)
- 初中数学北师大七年级上册(2023年修订)综合与实践探寻神奇的幻方教学设计4
评论
0/150
提交评论