项目5远程控制课件

上传人:o**** 文档编号:243957549 上传时间:2024-10-01 格式:PPT 页数:103 大小:7.47MB
返回 下载 相关 举报
项目5远程控制课件_第1页
第1页 / 共103页
项目5远程控制课件_第2页
第2页 / 共103页
项目5远程控制课件_第3页
第3页 / 共103页
点击查看更多>>
资源描述
,项目五 远程控制,首,前,后,“十二五”职业教育国家规划教材,单片机原理与接口技术 (第五版),DAN PIAN JI,YUAN LI YU JIE KOU,JI SHU,单片机的串行口,大连理工大学出版社,李明 毕万新 主编,项目规划,1,2,了解有关通信的知识,3,4,5,认识单片机的串行口,单片机串行口的工作方式和应用,远程控制电子钟的设计,6,远程控制电子钟的仿真调试,首,前,后,利用单片机制作简易电子钟。正常显示时、分、秒,必要时需要用到对表功能。可以在,PC,机上实现远程控制。,项目规划,首,前,后,项目规划,利用单片机的定时器,T0,定时,工作方式,2,,自动重装初值,中断编程,精度高。经中断程序计算,产生时分秒。通过模拟串行口方式,0,扩展,6,个并行口,实现静态显示。通过,P0,口连接,3,个按键,实现现场对表功能。通过串行口实现与,PC,机通信,远程控制对表。,首,前,后,1.,串行口的结构、工作方式、控制方法,2.,查询、中断编程,3.,串行口的应用(初始化、中断服务),项目规划,1.,使用软件设计电路图、编写并调试程序,2.,使用工具制作电路板并测试其正确性,3.,软硬件联调,完成要求功能,项目规划,说明这个项目是自动打铃器的部分内容,自动打铃器也是利用,T0,定时。,1.,参考样本:光盘仿真文件:,T0,方式,1,时钟,595,远程,.DSN,这个项目比较简单,主要是串行口的应用,掌握了串行口的知识,这个项目就好办了。,当然还需要定时器和中断的配合。还有对按钮的检查处理。,项目规划,了解有关通信的知识,任务,5.1,5.1.1,数据通信的概念,了解有关通信的知识,计算机的,CPU,与外部设备之间、计算机与计算机之间的信息交换称为数据通信。基本的数据通信方式有两种,即并行通信和串行通信。,1,并行通信,并行通信是数据的各位同时进行传送,(,发送或接收,),的通信方式。其优点是数据传送速度快;缺点是数据有多少位,就需要多少根,传送线。,2,串行通信,串行通信是数据的各位一位一位顺序传送的通,信方式。其优点是数据传送线少,(,利用电话线就可,作为传送线,),,这样就大大降低了传送成本,特别,适用于远距离通信;其缺点是传送速度较低。,了解有关通信的知识,5.1.1,数据通信的概念,串行通信中数据的传输方式有单工、半双工、全双工传输方式。,单工传输方式:数据只能单方向地从一端向另一端传送。,半双工传输方式:允许数据向两个方向中的任一方向传送,但每次,只允许向一个方向传送。,全双工传输方式:允许数据同时双向传送。全双,工通信效率最高,适用于计算机之间的通信。,了解有关通信的知识,5.1.2,串行通信中数据的传输方式,异步通信和同步通信,串行通信有两种基本通信方式,即同步通信方式和异步通信方式。,1,同步通信,在同步通信中,发送器和接收器由同一个时钟控制,,如图,7-1(a),所示。同步传送时,字符与字符之间没有,间隙,也不用起始位和停止位,仅在要传送的数据,块开始传送前,用同步字符,SYNC,来指示,其数据,格式如图,5-2(b),示。,了解有关通信的知识,5.1.3,串行通信的两种基本通信方法,图,5,2,同步通信和同步字符,2,异步通信,异步通信中,发送器和接收器均有各自时钟控制,如图,5-3(a),所,示。通信时,数据是一帧一帧,(,包含一个字符代码或一字节数据,),传送,的,每一串行帧的数据格式如图,5-3(b),所示。,在帧格式中,一个字符由四个部分组成:起始位、数,据位、奇偶校验位和停止位。即首先是一个起始位,“,0,”,,然后是数据位,(,规定低位在前,高位在后,),,,接下来是奇偶校验位,(,可省略,),,最后是停止位,“,1,”,。,了解有关通信的知识,5.1.3,串行通信的两种基本通信方法,图,5,3,异步通信和帧数据格式,1,波特率,通信线路上传送的所有位信号都保持一致的信号持续时间,每一位的宽度都由数据传送速率确定,而传送速率是以每秒传送多少个二,进制位来度量的,这个速率叫波特率,它的单位是位,/,秒,(,b/s,或,bps,)。波特率对于,CPU,与外部的通信是很,重要的。,了解有关通信的知识,5.1.4,串行通信的传送速率,注意:波特率是衡量传输通道频宽的指标,与时钟频率有关,时钟频率越高,波特率越大。,2,允许的波特率误差,假设传递的数据一帧为,10,位,若发送和接收的波特率达到理想的一致,那么接收方对数据的采样都将发生在每位数据有效时刻的中点。,如果接收一方的波特率比发送一方大或小,5%,,那么对,10,位一帧的,串行数据,时钟脉冲相对数据有效时刻逐位偏移,当,接收到第,10,位时,积累的误差达,50%,,则采样的数,据已是第,10,位数据的有效与无效的临界状态,这,时就可能发生错位,所以,5%,是,10,位一帧串行传,送的最大的波特率允许误差。,了解有关通信的知识,5.1.4,串行通信的传送速率,思考:对于常用的,8,位、,9,位、和,11,位一帧的串行传送,其最大的波特率允许误差分别为多少?,在通信过程中往往要对数据传送的正确与否进行校验。校验是保证准确无误传输数据的关键。常用的校验方法有奇偶校验、和校验等。,1,奇偶校验,奇偶校验是检验串行通信双方传输的数据正确与否的一个措施,,并不能保证通信数据的传输一定正确。,换言之,如果奇偶校验发生错误,表明数据,传输一定出错了;如果奇偶校验没有出错,绝不等,于数据传输完全正确。,奇校验:,8,位有效数据连同,1,位附加位中,二进,制,“,1,”,的个数为奇数,偶校验:,8,位有效数据连同,1,位附加位中,二进,制,“,1,”,的个数为偶数,了解有关通信的知识,5.1.5,串行通信中的校验,在通信过程中往往要对数据传送的正确与否进行校验。校验是保证准确无误传输数据的关键。常用的校验方法有奇偶校验、和校验等。,2,和校验,所谓和校验是发送方将所发数据块求和(或各字节异或),,产生一个字节的校验字符(校验和)附加到数据块,末尾。接收方接收数据同时对数据块,(,除校验字节外,),求和(或各字节异或),将所得的结果与发送方,的,“,校验和,”,进行比较,相符则无差错,否则,即认为传送过程中出现了差错。,了解有关通信的知识,5.1.5,串行通信中的校验,实际上,单片机串行通信的过程是将其内部的并行数据转换成串行数据,通过串行通信线传送,接收方将接收到的串行数据再转换成并行数据送到计算机中。,在,MCS-51,系列单片机中,串并、并串转换是,由串行口的移位寄存器来自动完成的。,了解有关通信的知识,5.1.6,串行通信的实现,思考:串行通信的基本特征是什么?,实际上,单片机串行通信的过程是将其内部的并行数据转换成串行数据,通过串行通信线传送,接收方将接收到的串行数据再转换成并行数据送到计算机中。,在,MCS-51,系列单片机中,串并、并串转换是,由串行口的移位寄存器来自动完成的。,了解有关通信的知识,5.1.6,串行通信的实现,思考:串行通信的基本特征是什么?,认识单片机的串行口,任务,5.2,认识单片机的串行口,5.2.1,串行接口结构,MCS-51,系列单片机串行口由串行控制器电路、发送电路、接收电路三部分组成。其结构如图,5-4,所示。接收、发送缓冲器,SBUF,是物理上完全独立的两个位缓冲器,发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器占用同一个地址(,99H,)。,图,5-4,串行接口的结构原理示意图,5.2.1,串行接口结构,串行口的发送和接收都是以特殊功能寄存器,SBUF,的,名义进行读或写的。当向,SBUF,发,“,写,”,命令时,向发送,缓冲器,SBUF,装载并开始由,TXD,引脚向外发送一帧数据,发送完便使发送中断标志位,TI=1,。,指令,MOV SBUF ,A,启动一次数据发送。当,TI=1,时,可向,SBUF,再发送下一个数。,在接收数据时,一帧数据从,RXD,端经接收端口进入,SBUF,之后,,RI=1,,串行口发出中断请求,通知,CPU,接收这一数据。,CPU,执行一条读指令,就能将接收的数据送入累加器中。与此同时,接收端口接收下一帧数据。,认识单片机的串行口,5.2.1,串行接口结构,指令,MOV A,SBUF,完成一次数据接收,SBUF,可再接收下一个数。,认识单片机的串行口,注意:串行发送与接收的速率与移位时钟同步,移位时钟的速率即是波特率。,思考:两个缓冲器占用同一个地址(,99H,),如何来区分?,5.2.2,串行接口控制,串行通信有关的控制寄存器有串行控制寄存器,SCON,、电源控制寄存器,PCON,及中断允许寄存器,IE,等。,1,串行控制寄存器,SCON,SCON,寄存器的字节地址为,98H,,可位寻址,位地址为,98H9FH,。,SCON,用于设定串行接口工作方式、接收发送控制及设置状态标志。,SCON,格式如下:,认识单片机的串行口,位序号,D7,D6,D5,D4,D3,D2,D1,D0,位名称,SM0,SM1,SM2,REN,TB8,RB8,TI,RI,位地址,9F,9E,9D,9C,9B,9A,99,98,SCON,中的各位含义如下:,(1) SM0,,,SM1,串行口的工作方式选择位。,其功能说明见表,5-1,。,注:,12,,,32,,,64,是波特率因子,表示传送一个数据位所需脉冲个数,单位 个,/,位,认识单片机的串行口,5.2.1,串行接口结构,SM0,SM1,工作,方式,功能说明,波特率,0 0,0,移位寄存器方式,(同步半双工),f,osc/12,0 1,1,10,位异步收发方式(,UART,),由,T1,控制,1 0,2,11,位异步收发方式(,UART,),f,osc/32,或,f,osc/64,1 1,3,11,位异步收发方式(,UART,),由,T1,控制,表,5-1,串行口工作方式,SCON,中的各位含义如下:,(2) SM2,多机通信控制位,在方式,2,或方式,3,中,如果,SM2=1,,则接收到的第,9,位数据(,RB8,)为,0,时不激活,RI,,接收到的数据丢失;只有当收到的第,9,位数据(,RB8,)为,1,时才激活,RI,,向,CPU,申请中断。如果,SM2=0,,则不论收到的第,9,位数据(,RB8,)为,1,还是为,0,,都会将接收的前,8,位数据装入,SBUF,中。,在方式,1,时,如果,SM2=1,,则只有收到有效的停止位时才会激活,RI,;若没有接收到有效的停止位,则,RI,清零。,在方式,0,中,,SM2,必须为,0,。,认识单片机的串行口,5.2.1,串行接口结构,位序号,D7,D6,D5,D4,D3,D2,D1,D0,位名称,SM0,SM1,SM2,REN,TB8,RB8,TI,RI,位地址,9F,9E,9D,9C,9B,9A,99,98,SCON,中的各位含义如下:,(3) REN,允许串行接收控制位。,由软件置位以允许接收,由软件清零时禁止接收。,(4) TB8,为发送数据位。,在方式,2,和方式,3,时,,TB8,为要发送的第,9,位数据。根据需要由软件置位和复位。在多机通信时,,TB8,的状态用来表示主机发送的是地址或是数据,通常协议规定,“,0,”,表示数据,,“,1,”,表示地址。,(5) RB8,为接收数据位。,在方式,2,和方式,3,时,,RB8,为接收到的第,9,位数据。,RB8,和,SM2,,,TB8,一起,常用于通信控制。在方式,1,时,如果,SM2=0,,,RB8,接收到的是停止位。在方式,0,时,不使用,RB8,。,认识单片机的串行口,5.2.1,串行接口结构,位序号,D7,D6,D5,D4,D3,D2,D1,D0,位名称,SM0,SM1,SM2,REN,TB8,RB8,TI,RI,位地址,9F,9E,9D,9C,9B,9A,99,98,SCON,中的各位含义如下:,(6) TI,发送完成标志位。,由片内硬件在方式,0,串行发送第,8,位结束时置位,或在其他方式串行发送停止位的开始时置位。必须由软件清零。,当,SUBF,发送完一个完整的数据帧时,TI=1,。如果串口中断是开放的,则,TI=1,时会自动引发中断。用户可以通过中断服务程序向,SBUF,送下一个要发送的数据。,MOV SBUF,A,也可以使用查询的方式对,TI,进行检测,如图,5-5,(,a,)所示,如果,TI=1,则执行:,MOV SBUF,A,否则等待 。,认识单片机的串行口,5.2.1,串行接口结构,位序号,D7,D6,D5,D4,D3,D2,D1,D0,位名称,SM0,SM1,SM2,REN,TB8,RB8,TI,RI,位地址,9F,9E,9D,9C,9B,9A,99,98,SCON,中的各位含义如下:,(,7,),RI,接收完成标志。,由片内硬件在方式,0,串行接收到第,8,位结束时置位,或在其他方式串行接收到停止位的中间时置位。必须由软件清零。,当,SUBF,从,RXD,接收完一个完整的数据帧时,RI=1,。如果串口中断是开放的,则,RI=1,时会自动引发中断。用户可以通过中断服务程序将,SBUF,中的数据取出送累加器,A,。,MOV A,SBUF,;中断方式接收数据;,也可以使用查询的方式对,RI,进行检测,如图,5-5,(,b,)所示,如果,RI=1,则执行:,MOV A,SBUF,; 查询方式接收数据。,否则等待,认识单片机的串行口,5.2.1,串行接口结构,位序号,D7,D6,D5,D4,D3,D2,D1,D0,位名称,SM0,SM1,SM2,REN,TB8,RB8,TI,RI,位地址,9F,9E,9D,9C,9B,9A,99,98,认识单片机的串行口,5.2.1,串行接口结构,(a),利用,TI,标志控制数据发送,(b),利用,RI,标志控制数据接收,图,5-5,采用查询方式进行数据发送或接收流程图,2,电源控制寄存器,PCON,电源控制寄存器,PCON,能够进行电源控制,项目,3,与中断有关部分已经介绍过了。其最高位,D7,位,SMOD,与串行口有关,是串行口波特率设置位。,寄存器,PCON,的字节地址为,87H,,没有位寻址功能。,PCON,与串行通信有关的格式如下:,认识单片机的串行口,5.2.1,串行接口结构,位序,D7,D6,D5,D4,D3,D2,D1,D0,位名称,SMOD,CF1,CF0,PD,IDL,2,电源控制寄存器,PCON,PCON,寄存器的,D7,位为,SMOD,,称为波特率倍增位。即当,SMOD=1,时,波特率加倍;当,SMOD=0,时,波特率不加倍。,通过软件可设置,SMOD=0,或,SMOD=1,。因为,PCON,无位寻址功能,所以,要想改变,SMOD,的值,可通过执行以下指令来完成:,ANL PCON,#7FH ;,使,SMOD=0,ORL PCON,#80H ;,使,SMOD=1,注意:单片机复位时,,SMOD,位被清零。,认识单片机的串行口,5.2.1,串行接口结构,位序,D7,D6,D5,D4,D3,D2,D1,D0,位名称,SMOD,CF1,CF0,PD,IDL,2,电源控制寄存器,PCON,电源控制寄存器,PCON,能够进行电源控制,项目,3,与中断有关部分已经介绍过了。,在此顺便说明,PCON,中其他各位功能:,CF1,和,CF0,是通用标志位,可由指令置,1,或清,0,。,PD,是掉电方式控制位,,PD=1,时进入掉电方式,单片机停止一切工作,只有硬件复位可以恢复工作。,IDL=1,时进入待机方式,可以由中断唤醒。,认识单片机的串行口,5.2.1,串行接口结构,位序,D7,D6,D5,D4,D3,D2,D1,D0,位名称,SMOD,CF1,CF0,PD,IDL,3,中断允许控制寄存器,IE,IE,寄存器控制中断系统的各中断的允许与否。,其中与串行通信有关的位有,EA,和,ES,位,当,EA=1,且,ES=1,时,串行中断允许。,认识单片机的串行口,5.2.1,串行接口结构,单片机串行口的工作方式和应用,任务,5,.3,单片机串行口的工作方式和应用,串行接口的工作方式有四种,由,SCON,中的,SM0,和,SM1,来定义。重述如下:,SM0 SM1,SM0 SM1,工作方式,功能说明,波特率,0 0,0,移位寄存器方式(同步半双工),f,osc/12,0 1,1,10,位异步收发方式(,UART,),由,T1,控制,1 0,2,11,位异步收发方式(,UART,),f,osc/32,或,f,osc/64,1 1,3,11,位异步收发方式(,UART,),由,T1,控制,在这四种工作方式中,异步串行通信只使用方式,1,、方式,2,、方式,3,。,方式,0,是同步半双工通信,经常用于扩展并行输入,/,输出口。,5.3.1,串行口方式,0,串行口工作于方式,0,下,串行口为,8,位同步移位寄存器输入,/,输出口,其波特率固定为,fosc/12,。数据由,RXD,(,P3.0,)端输入或输出,同步移位脉冲由,TXD,(,P3.1,)端输出,发送、接收的是,8,位数据,不设起始位和停止位,低位在先,高位在后。,注意:串行口方式,0,的发送和接收不能同时进行,即半双工。,其帧格式为:,单片机串行口的工作方式和应用,5.3.1,串行口方式,0,1,发送,SBUF,中的串行数据由,RXD,逐位移出;,TXD,输出移位时钟,频率,=,f,osc/12,;每送出,8,位数据,TI,就自动置,1,;需要用软件清零,TI,。,方式,0,的发送与串入并出移位寄存器(如,74LS164,,,CD4094,等)一起使用扩展并行输出口。,2,接收,串行数据由,RXD,逐位移入,SBUF,中;,TXD,输出移位时钟,频率,=,f,osc/12,;每接收,8,位数据,RI,就自动置,1,;需要用软件清零,RI,。,方式,0,的接收与并入串出移位寄存器,(,如,74LS165,,,CD4014,等,),一起使用扩展并行输入接口。,单片机串行口的工作方式和应用,5.3.1,串行口方式,0,3, 方式,0,的波特率,波特率,=,f,osc/12,方式,0,工作时,多用查询方式编程:,发送:,MOVSBUF,A,JNB TI,$,CLR TI,接收:,JNB RI,$,CLR RI,MOV A,SBUF,单片机串行口的工作方式和应用,注意:在方式,0,中,,TB8,位没有用,,SM2,位(多机通信控制位)必须为,0,;复位时,SCON,已经被清零,缺省值,:,方式,0,;接收前,务必先置位,REN=1,允许接收数据。,提示:串行口常用工作方式,0,扩展并行,I/O,口。并行输出口可接各种设备,比如发光二极管、,LED,数码管显示器等,并行输入口可接开关、按钮等。,5.3.1,串行口方式,0,【5-1】,利用串行口扩展并行输出口,目的:串行口方式,0,内容:硬件,利用移位寄存器,74LS164,扩展并行口,在,P1,口输入,8,位二进制数。驱动程序使,P1,口的内容从串行口输出。,说明:,这是个模仿型项目,电路如图,5-5,所示,(参考仿真文件:,51-74164.DSN,)。图中使用的移位寄存器型号是,74LS164,,它可以在时钟脉冲的作用下,将数据串行移位。图中对,74164,的特性做了说明。当然,也有其他可用的移位寄存器可用,不过这个是比较传统的用法。以后再介绍别的器件,比如,74595,。,希望通过这个训练能使我们掌握串行口的方式,0,的特点和用法。,单片机串行口的工作方式和应用,5.3.1,串行口方式,0,单片机串行口的工作方式和应用,图,5-6,串行口方式,0,扩展并行口,5.3.1,串行口方式,0,单片机串行口的工作方式和应用,程序清单:,;,串行口实验,;P1,口输入,串行口输出,ORG 0000,MAIN: MOV SCON,#0 ;,串行口方式,0,MOV SBUF,P1 ;,读入,P1,口的内容,送给串行口缓冲器,发送立即开始,JNB TI,$ ;,等待一个字节发完,查询方式,CLR TI ;,完成,清除发送完成标志,;LCALL DELAY ;,调用延时子程序,SJMP MAIN ;,无限循环,从头再来,END,5.3.1,串行口方式,0,单片机串行口的工作方式和应用,操作步骤:,1.,利用,proteus,软件绘制原理图(如图,5-6,所示),2.,添加驱动程序,编译通过。,3.,执行仿真,点击指拨开关,改变输入内容,观察串行口输出情况。,4.,原来单片机的时钟频率设为,12HZ,,当然可以看到移位寄存器的移位过程。将单片机频率改回,12MHz,,将会看到,速度太快,看不清楚。解决办法:要想看清,在串行口发送完成一个字节后,延时一段时间,即可看清。程序中被打了分号的一行,去掉分号即可。出问题了?啊!本程序中还没有这段延时子程序。那好办,从原来的什么程序中拷贝一个过来粘贴即可。比如,,8D,齐闪中就有。还有问题?那就使用你的,3,中求助方式吧!,5.,赶紧填写项目实施记录单吧。,提示:关于串行口扩展并行口输出的应用还有许多,可以看光盘里的项目。,思考:如果在扩展的并行输出口接上数码管,能出什么结果?,5.3.1,串行口方式,0,单片机串行口的工作方式和应用,5-2,串行口方式,0,扩展,8,位并行输入口,目的:串行口方式,0,内容:利用串行口工作方式,0,扩展出,8,位并行输入口,指拨开关状态经并转串芯片,74LS165,输入到单片机,再将其状态由,P0,口输出到发光二极管显示,如图,5-7,所示。,模仿型项目,参考文件:,51-165.DSN,。,图,5-7,串行口扩展,8,位输入口,5.3.1,串行口方式,0,单片机串行口的工作方式和应用,5-2,串行口方式,0,扩展,8,位并行输入口,参考源程序:,;165.ASM;,串行口方式,0,,扩展,165,输入一个字节,PL BIT P2.7,START: MOV SCON,#10H ;,方式,0,,允许串行口接收数据,START1: CLRPL ;PL=0,165,读入并行数据,SETB PL ;PL=1,可以移位输出,WAIT: JNB RI,WAIT,CLR RI ;,清除接收中断标志,MOV A,SBUF ;,读取数据,MOV P1,A ;,接收到的数据送,P1,口显示,ACALL DELAY,SJMP START1,DELAY:,延时子程序略,思考:如何用串行口扩展,16,位的输入口?,5.3.1,串行口方式,0,单片机串行口的工作方式和应用,5-2,串行口方式,0,扩展,8,位并行输入口,操作步骤:,1.,利用,proteus,软件绘制原理图(如图,5-7,所示),2.,添加驱动程序,编译通过。,3.,执行仿真,点击指拨开关,改变输入内容,观察,P0,口输出情况。,4.,注意:,74165,的移位是从,D0-D1-.-D7,,就是高位在前,51,单片机是低位在前,5.,填写项目实施记录单。,思考:如何用串行口扩展,16,位的输入口?,5.3.2,方式,1,单片机串行口的工作方式和应用,5-2,串行口方式,0,扩展,8,位并行输入口,方式,1,是,10,位为一帧的全双工异步串行通信方式。共包括,1,个起始位、,8,个数据位(低位在先)和一个停止位。,TXD,为发送端,,RXD,为接收端,波特率可变。其帧格式为:,5.3.2,方式,1,单片机串行口的工作方式和应用,5-2,串行口方式,0,扩展,8,位并行输入口,1,发送,串行口在方式,1,下进行发送时,数据由,TXD,端输出,,CPU,执行一,条写入,SBUF,的指令就会启动串行口发送,发送完一帧数据信息时,,发送中断标志,TI,置,“,1,”,;需要用软件清零,TI,。,2,接收,接收数据时,,SCON,应处于允许接收状态(,REN,1,)。,接收数据有效时,装载,SBUF,,停止位进入,RB8,,,RI,置,“,1,”,。中断标志,RI,必须由软件清零。,注意:方式,1,接收数据有效需同时满足:,RI=0,;,SM2=0,或接收到的停止位为,1,。,5.3.2,方式,1,单片机串行口的工作方式和应用,5-2,串行口方式,0,扩展,8,位并行输入口,3,方式,1,的波特率,使用定时器,T1,作为串行口方式,1,和方式,3,的波特率发生器,定时器,T1,常工作于方式,2,,波特率计算公式如下:,其中,X,是定时器的初值。,思考:使用定时器,T1,作为波特率发生器,为何常使其工作于方式,2?,5.3.2,方式,1,单片机串行口的工作方式和应用,5-2,串行口方式,0,扩展,8,位并行输入口,3,方式,1,的波特率,在实际应用中,一般是先按照所要求的通信波特率设定,SMOD,,然后再算出定时器,T1,的时间常数。,定时器,T1,的时间常数,X=2,8,-2,SMOD,fo,sc/,(,12,32,波特率),通常为避免复杂定时器初值计算,将波特率和定时器,T1,初值的关系列成表,以便查询,表,5-2,表示常用波,特率和定时器,T1,初值关系。,5.3.2,方式,1,单片机串行口的工作方式和应用,3,方式,1,的波特率,表,5-2,表示常用波特率和定时器,T1,初值关系。,波特率,方式,1,、,3,f,o,sc,6MHz,f,o,sc,=12MHz,f,o,sc,=11.059MHz,SMOD,T1,方式,初值,SMOD,T1,方式,初值,SMOD,T1,方式,初值,62.5k,1,2,FFH,19.2k,1,2,FDH,9.6k,0,2,FDH,4.8k,1,2,F3H,0,2,FAH,2.4k,1,2,F3H,0,2,F3H,0,2,F4H,1.2k,1,2,E6H,0,2,E6H,0,2,E8H,600,1,2,CCH,0,2,CCH,0,2,D0H,300,0,2,CCH,0,2,98H,0,2,A0H,137.5,1,2,1DH,0,2,1DH,0,2,2EH,110,0,2,72H,0,1,FEEBH,0,1,FEFFH,5.3.2,方式,1,单片机串行口的工作方式和应用,5-3,波特率计算,目的:波特率计算,内容:波特率计算和初始化程序,要求:某,AT89C51,单片机控制系统,晶振频率为,12MHz,,要求串行口发送数据为,8,位,波特率为,1200b/s,,编写串行口的初始化程序。,计算过程:,设,SMOD=1,,则定时器,T1,的时间常数,X,的值为,X=28-2SMOD,fosc/,(,384,波特率),=256-2,12,106/,(,384,1200,),=256-52.08=203.920CCH,5.3.2,方式,1,单片机串行口的工作方式和应用,5-3,波特率计算,串行口初始化程序如下:,MOVSCON,#50H ;,串行口工作于方式,1,ORLPCON,#80H ;SMOD=1,MOV TMOD,#20H ;T1,工作于方式,2,,定时方式,MOVTH1,#0CCH ;,设置时间常数初值,MOV TL1,#0CCH,SETBTR1 ;,启动,T1,执行上面的程序后,即可使串行口工作于方式,1,,波特率为,1200b/s,。,如果允许中断需设中断允许标志位;如果是接收数据,仍要先将,REN,位置,1,。,5.3.2,方式,1,单片机串行口的工作方式和应用,5-4,双机通信,目的:串行口方式,1,应用,内容:,2,个单片机互相传送数据,说明:,单片机串行接口主要用于计算机之间的串行通信,包括两个单片机之间、多个单片机之间及单片机与,PC,机之间的串行通信。通信应考虑接口电路、通信协议、程序编写、问题处理等几方面内容。,5.3.2,方式,1,单片机串行口的工作方式和应用,5-4,双机通信,关于双机串行通信的实现方法:,(1).,接口电路,两台单片机通信根据双方距离的远近可采取不同的接口电路。如果两台单片机应用系统相距很近,将它们的串行口直接相连,即发送方的,TXD,接到接收端的,RXD,而接收端的,TXD,连接到发送端的,RXD,端,双方的,GND,线相连。如果通信距离较远,通信线路必须加辅助电路,如可采用,RS-232C,接口、,RS-485,接口、调制解调器等。,(2).,通信协议,通信协议就是通信双方要遵守共同约定。协议内容包括双方采取一致的通信方式、一致的波特率设定、确认何方为收机何方为发机、设定通信开始时发机的呼叫信号和收机的应答信号以及通信结束的标志信号等。通常在设计发送与接收程序时应考虑以下问题:,5.3.2,方式,1,单片机串行口的工作方式和应用,5-4,双机通信,关于双机串行通信的实现方法:,发送程序:,波特率设置初始化(与接收程序设置相同);,串行口初始化(允许接收);,相关工作寄存器设置:(原数据地址指针等);,按约定发送,/,接收数据;,接收程序:,波特率设置初始化(与发送程序设置相同);,串行口初始化(与发送程序设置相同);,工作寄存器设置:(保存数据地址指针等);,按约定发送,/,接收数据,传送状态字如正确标志,错误标志;,5.3.2,方式,1,单片机串行口的工作方式和应用,5-4,双机通信,5.3.2,方式,1,单片机串行口的工作方式和应用,5-4,双机通信,参考程序:,;,双机通信,.ASM,;,电路如双机通信,.DSN,,双机对称,使用相同程序,;,串行口方式,1,,波特率,1200;,从,P1,口输入数据,然后从串行口发送到对方,;,从串行口接收到的数据,送到,P0,口显示,;,就是说,本机输入的数据,在对方的,P0,口显示,5.3.2,方式,1,单片机串行口的工作方式和应用,5-4,双机通信,参考程序:,START: MOV TMOD,#20H ;,设定定时器,T1,为方式,2,MOV TL1,#0E8H ;,送定时初值,波特率为,1200,MOV TH1,#0E8H ;,送定时初值,波特率为,1200,MOV PCON,#00H ;PCON,中的,SMOD=0,SETB TR1 ;,启动定时器,T1,MOV SCON,#50H ;,设定串行口为方式,1,允许接收,MOV P1,#0FFH ;,输入要先输出,1,;,以上初始化,以下死循环,LOOP1: MOV A,P1 ;,从,P1,口输入数据,MOV SBUF,A ;,数据送,SBUF,发送,LOOP2: JNB TI,LOOP2 ;,判断数据是否发送完毕?,CLR TI ;,发送完一帧后清标志,LOOP3: JNB RI,LOOP3 ;,判断是否接收到数据?,CLR RI ;,接收到数据后清接收标志,MOV A,SBUF ;,数据送累加器,A,MOV P0,A ;,从,P0,口输出,SJMP LOOP1 ;,返回继续,5.3.2,方式,1,单片机串行口的工作方式和应用,5-4,双机通信,参考程序:,操作步骤:,1.,用,proteus,软件画出电路图,2.,编辑双机通信程序,并编译通过,3.,在,proteus,项目中,给,2,个单片机都添加程序(同一个程序即可)。,4.,全部编译(,Build All,),5.,运行,看到虚拟串口不断发送的数据,出现在对方,P0,口,6.,改变,P1,口状态,查看发送的数据变化,对方显示也在变。,7.,讨论,总结,8.,填写实训记录单,参考文件:双机通信,.DSN,5.3.3,方式,2,单片机串行口的工作方式和应用,串行口工作于方式,2,,为波特率固定,11,位异步通信口,,发送和接收的一帧信息由,11,位组成,即,1,位起始位、,8,位数据,位(低位在先)、,1,位可编程位(第,9,位)和,1,位停止位,,TXD,为发送端,,RXD,为接收端,发送时可编程位(,TB8,)根据需要设置为,“,0,”,或,“,1,”,(,TB8,既可作为多机通信中的地址数据标志位又可作为数据的奇偶校验位);接收时,可编程位的信息被送入,SCON,的,RB8,中。其帧格式为:,5.3.3,方式,2,单片机串行口的工作方式和应用,1.,发送,2.,接收,3,方式,2,的波特率,在方式,2,发送时,数据由,TXD,端输出,附加的第,9,位数据为,SCON,中的,TB8,,,CPU,执行一条写,SBUF,的指令后,便立即启动发送器发送,送完一帧信息后,,TI,被置,“,1,”,。在发送下一帧信息之前,,TI,必须由中断服务程序(或查询程序)清零。,2,当,REN=1,时,允许串行口接收数据。数据由,RXD,端输入,接收,11,位信息。接收数据有效,,8,位数据装入,SBUF,,第,9,位数据装入,RB8,,并置,RI,为,1,。,方式,2,的波特率,=(2SMOD/64),fo,sc,5.3.4,方式,3,单片机串行口的工作方式和应用,串行口工作于方式,3,,为波特率可变的,11,位异步通信方式,除了波特率外,方式,3,和方式,2,相同。方式,3,的波特率和方式,1,的波特率计算相同。,思考:串行口方式,3,和方式,2,区别是什么;串行口四种工作方式的特点分别是什么?,5.3.5,关于,11,位帧格式的使用,单片机串行口的工作方式和应用,串行口方式,2,和方式,3,都是,11,位帧格式,正常数据一般是,8,位(一字节),加上起始位和停止位共,10,位。多出来的,1,位是,TB8/RB8,,这一位有什么用呢?,可以用来进行奇偶校验,还可以实现多机通信。,5.3.5,关于,11,位帧格式的使用,单片机串行口的工作方式和应用,5.3.5.1,关于奇偶校验,奇偶校验,就是在发送了,8,位数据之后,再来一个奇偶检验位。,程序状态字寄存器,PSW,中有一个奇偶状态位,P (PSW.0): P=1,表示目前累加器中,“,1,”,的个数为奇数;,P=0,表示目前累加器中,“,1,”,的个数为偶数。,CPU,随时监视着,Acc,的,“,1,”,的个数并自动反映在,P,。,5.3.5,关于,11,位帧格式的使用,单片机串行口的工作方式和应用,5.3.5.1,关于奇偶校验,1.,发送:(约定采用偶校验),若发送的,8,位有效数据中,“,1,”,的个数为偶数, 则要人为添加一个附加位,“,0,”,一起发送;若发送的,8,位有效数据中,“,1,”,的个数为奇数, 则要人为添加一个附加位,“,1,”,一起发送。,选用偶校验方式发送,如果,A,中的数的,1,的个数是奇数(,P=1,),将,TB8,写成,“,1,”,一起发出去;反之:若(,P=0,)则写,TB8=,“,0,”,发出去。具体操作就是将让,TB8=P,。程序片段:,CLR TI ;,清发送中断标志以备下次发送,MOV A,R0 ;,取由,R0,所指向的单元中的数据,MOV C, P ;,将奇偶标志位通过,C,放进,TB8,MOV TB8,C ;,一起发送出去,MOV SBUF,A ;,启动发送,INC R0 ;,指针指向下一个数据单元,5.3.5,关于,11,位帧格式的使用,单片机串行口的工作方式和应用,5.3.5.1,关于奇偶校验,接收(约定采用偶校验),若接收到的,9,位数据中,“,1,”,的个数为偶数,则表明接收正确,取出,8,位有效数据即可;若接收到的,9,位数据中,“,1,”,的个数为奇数,则表明接收出错!应当进行出错处理。,选用偶校验方式接收,若,P=0,且,RB8=0,或,P=1,且,RB8=1,表示偶校验没有出错。若,P=0,且,RB8=1,或,P=1,且,RB8=0,偶校验出错。程序片段:,CLR RI ;,清接收中断标志以备下次接收,MOV A,SBUF ;,读进收到的数据,MOV C,P ;,奇偶标志位,C,JNC L1 ;C=0,时转到,L1,,即,P=0,时转到,L1,JNB RB8,ERR ; P=1,时,若,RB8=0,“,出错,”,转到,ERR,SJMP L2 ;,若,RB8=1,则表明接收正确,转,L2,L1: JB RB8,ERR ;P=0,且,RB8=1,表明,“,出错,”,转,ERR,L2: MOV R0,A ;P=0,且,RB8=0,表明接收正确,INC R0 ;,指针指向下一个数据单元,ERR:,出错处理,RET ;,返回,单片机串行口的工作方式和应用,5-5,双机通信奇偶校验,目的:奇偶校验,内容:发送一批数据,设号机发送,号机接收,串行接口工作于,方式(每帧数据为,11,位,第位用于奇偶校验),将号机片内,RAM,中,30H,单元开始的,32,个数据发送到号机片内,RAM,中,30H,开始的单元中。两机的晶振频率均为,11.0592MHz,,通信波特率为,1200bit/s,。接收机判断奇偶正确就发回,00H,,发现奇偶错误就返回,FFH,。发送机接到,FFH,,就会重新发送刚才的数据。在发送机改一点就会看到错误,程序中有注明。,操作:略,限于篇幅,,proteus,项目移入光盘,参考光盘文件:双机,-,奇偶,.DSN,,有电路和程序,注释很详细,可以看懂。,5.3.5,关于,11,位帧格式的使用,5.3.5,关于,11,位帧格式的使用,单片机串行口的工作方式和应用,5.3.5.2,关于多机通信,MCS-51,系列单片机多机分布式系统常构成主从式通信方式,主机与从机可实现全双工通信,而各从机之间只能通过主机交换信息。设有一个多机分布式系统,,1,个主机,,n,个从机。系统如图,5-9,所示,.,。主机的,RXD,端与所有从机的,TXD,端相连,主机的,TXD,端与所有从机的,RXD,端相连(为增大通信距离,各机之间还要配接,RS-232C,、或,RS-485,标准接口)。,ERR:,出错处理,RET ;,返回,5.3.5,关于,11,位帧格式的使用,单片机串行口的工作方式和应用,5.3.5.2,关于多机通信,图,5-9 MCS-51,主从式多机通信系统,5.3.5,关于,11,位帧格式的使用,单片机串行口的工作方式和应用,5.3.5.2,关于多机通信,(,1,)多机通信原理,在多机通信中,为了保证主机与所选择的从机实现可靠的通信,必须保证通信接口具有识别功能,可以通过控制单片机的串行口控制寄存器,SCON,中的,SM2,位来实现多机通信的功能,其原理简述如下:,利用单片机串行口方式或方式及串行口控制寄存器,SCON,中的,SM2,和,RB8,的配合可完成主从式多机通信。串行口以方式或方式接收时,若,SM2,为,则仅当从机接收到的第九位数据(在,RB8,中)为时,数据装入接收缓冲器,SBUF,,并置,RI,1,向,CPU,申请中断;如果接收到第九位数据为,0,,则不置位中断标志,RI,,信息将丢失。而,SM2,为,0,时,则接收到一个数据字节后,不管第九位数据是,1,还是,0,都产生中断标志,RI,,接收到的数据装入,SBUF,。应用这个特点,便可实现多个单片机之间的串行通信。,5.3.5,关于,11,位帧格式的使用,单片机串行口的工作方式和应用,5.3.5.2,关于多机通信,(,2,)多机通信协议,多个单片机通信过程可约定如下:,所有从机串行口初始化为工作方式,2,或方式,3,,,SM2,置位,串行中断允许。各从机均有编址。,主机首先发送一帧地址信息,其中包括,8,位地址,第,9,位为地址置位,表示发送的为地址。,所有从机均接收主机发送的地址,并进入各自中断服务程序,与各自的地址进行比较。,被寻址的从机确认后,把自身,SM2,清零,并向主机返回地址供主机核对。对于地址不符的从机,仍保持,SM2,1,状态。,主机核对地址无误后,再向被寻址的从机发送命令,命令从机是进行数据接收还是数据发送,第,9,位清零。,主从机之间进行数据传送,其他从机检测到主机发送的是数据而非地址,则不予理睬。直到接收主机发送新的地址后。,数据传输完毕后,从机将,SM2,重新置位。,重复过程。,思考:在多机通信中,TB8/RB8,、,SM2,各起什么作用?,单片机串行口的工作方式和应用,5-6,多机通信,目的:奇偶校验,内容:发送一批数据,设号机发送,号机接收,串行接口工作于,方式(每帧数据为,11,位,第位用于奇偶校验),将号机片内,RAM,中,30H,单元开始的,32,个数据发送到号机片内,RAM,中,30H,开始的单元中。两机的晶振频率均为,11.0592MHz,,通信波特率为,1200bit/s,。接收机判断奇偶正确就发回,00H,,发现奇偶错误就返回,FFH,。发送机接到,FFH,,就会重新发送刚才的数据。在发送机改一点就会看到错误,程序中有注明。,操作:略,限于篇幅,,proteus,项目移入光盘,参考光盘文件:双机,-,奇偶,.DSN,,有电路和程序,注释很详细,可以看懂。,5.3.5,关于,11,位帧格式的使用,远程控制电子钟的设计,任务,5.4,5.4.1,远程控制电子钟的电路设计,按照项目规划单的要求,设计远程控制电子钟电路如下:远程控制电子钟的,6,位数码管显示,可以使用以前的数码管显示电路,但是我们为了让大家看到不同的电路和元件使用方法,重新设计了显示电路。,远程控制电子钟的设计,如图,5-10,所示,远程控制电子钟的设计,在这个电路中,我们使用了现在市场使用很多的性能更好的串行口扩展器件,,74LS595,。可以先看一下仿真项目:,595X6.DSN,,这是这个电路的一个原型。它利用了单片机的串行口方式,0,,输出扩展,6,个并行口,实现静态显示。这种显示占用单片机的,I/O,口线少,显示稳定,亮度高。,为了实现远程控制,利用单片机的串行口,加上串行口电平转换器件,MAX232,,实现与,PC,机的通信。将来只要利用,PC,机就可控制电子钟。,远程控制电子钟的设计,5.4.1,远程控制电子钟的电路设计,PC,机的串行口一般是,9,芯,D,型接口母头,与此相对应的是,9,芯,D,型接口公头,它们可以顺利对接。见图,5-11.,远程控制电子钟的设计,5.4.2 PC,机的串行口,(a) D9,母头,(b)D9,公头,图,5-11,串行接口接头,(,a,)图是,PC,机上的串行口接头,其中左边的露在机箱外部的接口,右边的是背面的接线端子。(,b,)图是外设串行口接头。有时它们直接相连,有时通过串口线连接。见图,5-12,。,远程控制电子钟的设计,(,a,)普通串口线 (,b,),USB,转串口线,图,5-12,串口线,5.4.2 PC,机的串行口,图,5-13,串口接头引脚排列,PC,机的串行口符合,RS-232C,标准,主要特点是,用,+3+15V,表示逻辑,0,,用,-3-15V,表示逻辑,1,。,各个引脚排列如图,5-13,所示。,引脚 定义 符号,1,载波检测,DCD,2,接收数据,RXD,3,发送数据,TXD,4,数据终端准备好,DTR,5,信号地,SG,6,数据准备好,DSR,7,请求发送,RTS,8,清除发送,CTS,9,振铃提示,RI,远程控制电子钟的设计,图,5-13,串口接头引脚排列,5,号引脚没有标出,直接接地了。,我们只使用,3,个引脚就可以了,就是,2,号引脚,RXD(,接收数据,),和,3,号引脚(发送数据),还有地线。,其他引脚暂时不用,忽略。,有兴趣的可以自行查找有关资料。,5.4.2 PC,机的串行口,利用串行口实现与,PC,机联系,这个联系建立起来后,就可以利用普通的台式机来控制单片机。,单片机的串行口信号电平符合,TTL,标准,,PC,机的串行口符合,RS-232C,标准,这二个标准不一致,需要对逻辑电平进行转换,才可以连接。,PC,机的串行口符合,RS-232C,标准,主要特点是,用,+3+15V,表示逻辑,0,,用,-3-15V,表示逻辑,1,。,一般电平转换使用专用芯片进行,常见的芯片是,MAX232,,具体方法请看图,5-14.,远程控制电子钟的设计,5.4.3,单片机与,PC,机串口相连,远程控制电子钟的设计,图,5-14,5.4.3,单片机与,PC,机串口相连,MAX232,芯片是内部具有电压转换电路,自动将,+5V,电源转换成具有,+12V,和,-12V,,用来与,PC,机的数据电平配合。,远程控制电子钟的设计,5.4.3,单片机与,PC,机串口相连,转换电路需要电容配合工作,电容太小可能使电压不够,电容太大可能影响数据传输波特率。,MAX232,有,2,个串行口通道,图中只使用了,1,号通道,,2,号通道没有使用。芯片有,16,个引脚,,16,号接,+5V,电源,,15,号接地,这,2,个引脚图中是隐藏的。,单片机有了转换后的符合,RS-232,标准的串行口,就可以使用串口线与,PC,机的串口连接了。不过,现在有的,PC,机和笔记本没有了,RS-232,接口。有办法,使用,USB,接口转换成,RS-232,接口,现在有现成的转换线出售,买来用就行了
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!