资源描述
,*,出版社 理工分社,单片机应用技术项目教程,出版社 理工分社,单片机应用技术项目教程,教学目标,*,出版社 理工分社,单片机应用技术项目教程,项目分析,*,出版社 理工分社,单片机应用技术项目教程,项目知识平台,*,出版社 理工分社,单片机应用技术项目教程,项目实施,*,出版社 理工分社,单片机应用技术项目教程,工作任务,*,出版社 理工分社,单片机应用技术项目教程,项目小结,*,出版社 理工分社,单片机应用技术项目教程,项目考核,*,出版社 理工分社,单片机应用技术项目教程,项目拓展,*,出版社 理工分社,单片机应用技术项目教程,复习思考,*,工程12 远程通信控制器,知识目标:,1了解数据通信的根本类型和特征,2了解同步串行通信与异步串行通信的差异,3理解单片机异步串口的工作原理,4理解单片机异步串口的几种工作方式,5掌握单片机异步串口波特率的计算方法,技能训练目标:,1掌握单片机异步串口初始化过程及程序写法,2掌握单片机异步串口发送与接收数据程序写法,3掌握通过数组操作实现报文生成与解析的方法,两单片机间的通信,由于PC中的上位机程序设计不属于本课内容,只需要通过“串口调试助手软件调试上位机信息,我们先完成两个单片机间的双机通信工程。,要求:将甲机长度为10的数组元素值发送给乙机,并在乙机的数码管上循环显示该值,确保显示的值准确无误。,假设甲机所存数组值为23H,43H,12H,10H,99H,8EH,9FH,76H,44H,29H,本系统由两套单片机系统构成,发送信息一端在此称为甲机,接收一端称为乙机,乙机需要外接数码管显示电路,用于显示接收到的数据信息。两机间由串口相连。在软件设计上,为了确保传输信息的可靠,传输信息参加起始码和代码和校验位,并明确规定乙机的应答信息。其结构如图12-1所示。,图,12-1,双机通信系统构成框图,一、数据通信根底,1,、并行通信,与串行通信,a并行通信 b串行通信,图12-2两种通信方式逻辑示意,2,、按照数据传输的方向,又可将数据通信分为三种类型:,图,12-3,三种通信制式的逻辑示意,二、串行通信的分类,同步通信:是将一大批数据分成几个数据块,数据块之间用同步字符予以隔开,而块内传输的各位二进制码之间没有间隔。常用的同步通信方式有SPI串行总线、IIC串行总线。,异步通信:是以字符为单位进行数据传输,每个字符都用起始位、停止位包装起来起始位和停止位作为字符的开始和结束标志,这样的一个字符信息又称一帧信息。在字符间允许有长短不一的间隙。通常把异步通信中涉及的设备接口称为通用异步收发器Universal Asynchronous Receiver/Transmitter,即UART。,三、单片机的异步串口UART,1、结构:,串行口主要由发送数据缓冲器、发送控制器、输出控制门、接收数据缓冲器、接收控制器、输入移位存放器等组成。其结构如图12-4所示。,图,12-4,串行口结构,图,12-5 SCON,口的各位定义,2、串行口控制存放器SCON地址98H各位含义:,3,、,51,串行口的工作方式,51,串行口的工作方式由,SCON,中的,SMO,、,SM1,二位共同选择决定,见表,12-1,。,SM0 SM1,工作方式,功能,波特率,0 0,方式,0,8,位移位寄存器方式,用于并行,I/O,扩展,fosc/12,0 1,方式,1,8,位,UART,可变,1 0,方式,2,9,位,UART,fosc/32,或,fosc/64,1 1,方式,3,9,位,UART,可变,表,12-1 51,串行口的工作方式,4,、波特率,在串行通信中,收发双方对发送或接收的数据速率要有一定的约定。串行口的四种工作方式对应着三种波特率。由于输人的移位时钟的来源不同,所以,各种方式的波特率计算公式也不同。,(1),方式,0,和方式,2,方式,0,:波特率固定为时钟频率的,1/12,,即,fosc/12,。,方式,2,:波特率取决于,PCON,中的,SMOD,值。,SMOD=0,时,波特率,=fosc/64,SMOD=1,时,波特率,=fosc/32,可以统一用公式表示为:,波特率,=2SMODfosc/64,方式1和方式3的移位时钟脉冲由定时器T1的溢出率决定,故波特率由定时器T1的溢出率与SMOD值同时决定,即:,方式1和方式3的波特率2SMOD/32T1溢出率,其中,溢出率取决于计数速率和定时器的预置值。当定时器Tl作波特率发生器使用时,通常选用可自动装入初值模式(工作方式2),设计数初值为x,那么每过“256-x个机器周期,定时器T1就会产生一次溢出。为了防止因溢出而引起中断,此时应禁止T1中断。这时,溢出周期为:12256-X/fosc,溢出率为溢出周期的倒数,因此,方式,1,和方式,3,4,、常用波特率表,波特率,f,osc,(,MHz,),SMOD,定时器,1,方式,初始值,方式,0:1Mb/s,12,方式,2:375kb/s,12,1,方式,1,、,3:62.5kb/s,12,1,0,2,FFH,19.2kb/s,11.0592,1,0,2,FDH,9.6kb/s,11.0592,0,0,2,FDH,4.8kb/s,11.0592,0,0,2,FAH,2.4kb/s,11.0592,0,0,2,F4H,1.2kb/s,11.0592,0,0,2,E8H,137.5kb/s,11.0592,0,0,2,1DH,110b/s,6,0,0,2,72H,110b/s,12,0,0,1,FEEBH,【,活动一,】,硬件,电路设计,1、根底准备-两台虚拟终端间通信,1、根底准备-单片机向虚拟终端发送信息测试,2,、单片机接收虚拟终端所发信息测试,3,、双机通信的硬件连接,【,活动二,】,软件设计,。,1.算法设计,自定义报文结构如图12-14所示。发送信息报由12个字节构成,第一字节为起始标志位,第2到第11字节为要发送的数据信息,最后一个字节为前面所有位的校验和,返回信息报用于甲机判断是否需要继续发送,不需要再次发送那么返回两个字节的内容:AAH,BBH。,图,12-14,自定义的信息报文结构,。,2,程序设计,图,12-15,程序流程图,【,活动三,】,源程序编写与调试,1、串口初始化,初始化的过程是设置串口工作方式,选择适宜波特率,才能保证后续发送与接收的顺利完成。例如选择串口工作方式1,波特率9.6KB/s,那么初始化子程序为:,void Init_UART(),TMOD=0 x20;/设置定时器1工作于“方式2,TH1=0 xfd;/设置串口波特率为9600b/s,晶振频11.0592MHz,TL1=0 xfd;,SCON=0 x50;/设置串口的工作方式为“方式1,TR1=1;/启动定时器1,IE|=0 x90;/开启总中断和串口中断,/*,功能:串口发送,每次发送一个字节,采用查询的方式判断是否发送完成,输入:要发送的字节变量ch,返回:无,*/,void Send_UART(unsigned char ch),SBUF=ch;/将一个字节的变量值送入发送缓冲区,while(!TI);/“查询的方式判断是否发送出去,TI=0;/软件去除发送标志,/*,功能:串口接收,采用“中断方式将每帧接收的数据长度限制在13个内,输入:无,返回:无,*/,void Rev_InterruptUART()interrupt 4,EA=0;,if(RI),UARTBufUARTBufn+=SBUF;/存接收到的字符到接收缓存数组中,RI=0;,if(UARTBufn13)/防止数组溢出,UARTBufn=13;,EA=1;,【,活动四,】,实物制作,。,2,程序设计,考核项目,考核内容,技术要求,评分,标准,得分,备注,总体设计,任务分析,方案设计,软件和硬件功能划分,任务明确(,5分);,方案设计合理、有新意(,10分);,软件和硬件功能划分合理(,5分);,20分,硬件设计,片内器件分配,;,电路原理图设计;,电路制作;,片内器件分配正确、合理(,5分);,电路原理图设计正确(,10分);,电路制作:布线正确、整齐、合理(,5分);,20分,软件设计,算法和数据结构设计;,流程图设计;,编程;,算法和数据结构设计正确、合理(,5分);,流程图设计正确、简明;(,5分);,编程正确、有新意(,10分);,20分,系统仿真与调试,调试顺序;,错误排除;,调试结果;,调试顺序正确(,5分);,能熟练排除错误(,10分);,调试后运行正确(,5分);,20分,实训报告,书写;,内容;,图形绘制;,结果分析,书写规范整齐(,5分);,内容翔实具体(,5分);,图形绘制正确、完整、全面(,5分);,能正确分析实验结构(,5分);,20分,合计,100分,。,2,程序设计,1、异步串口通信的软件设计方式较为固定,主要包含初始化程序,发送数据和接收数据程序,初始化局部关键是对工作方式和波特率的设置。,2、区分串口的几种工作方式的不同应用,正确设置波特率。,3、根据实际通信要求和功能,设计合理的报文结构。,2,程序设计,1单片机异步串口通信中的工作方式0主要应用于哪些场合?请举例说明。,2.通过PC机远程控制消防机器人,那么需要定义一组数据对应机器人各个相应的动作。由PC发送数据给单片机即可。实现该功能有哪些方法?它们各有什么特点?,2,程序设计,1、利用串口通信功能设计一温度采集系统,将现场采集的温度实时显示到远端电脑上。,
展开阅读全文