单片计算机及其应用.ppt
《单片计算机及其应用.ppt》由会员分享,可在线阅读,更多相关《单片计算机及其应用.ppt(156页珍藏版)》请在三一办公上搜索。
1、第章51系统的串行接口,本章内容,Single Chip Microcomputer,7-1概 述,7-4选学内容,7-2 MCS-51的串行接口,7-3 MCS-51单片机串行口的应用,7-1概 述,当今社会已进入信息时代,网络成为当今科技发展的一大方向,计算机系统通过网络这一桥梁,在信息时代中发挥着越来越大的作用。在单片机的应用系统中,单机应用非常广泛,但在一些大型、智能化系统中,必须要由多个单片机协同工作才能完成任务,因此,它们之间的信息传递成为了一种必然。在学习单片机间的通讯之前,我们有必要对通信的基础知识有一些了解。,一、什么是串行通信?,串行通信和并行通信,并行通信,即数据的各位同
2、时传送;,串行通信,即数据一位一位顺序传送。,二、串行通信的分类,异步(Asynchronous Communication)异步是指收发双方时钟异步,即收方和发方的时钟各自独立,由起始位和结束位来实现收、发同步。允许5%的误差。(1)帧结构 帧为收发双方传数据的基本单位其结构如图所示。由一个起始位“0”,58位数据(低位在前),再后为奇偶校验位和一个停止位“1”构成。,异步(Asynchronous Communication),(2)特点利用起始位和结束位来实现收发同步帧间间隔随机位间隔固定每帧数据最多一个字节(3)错误检验方法:奇偶校验,串行通信的分类,同步(Synchronous Co
3、mmunication)同步传送方式是一种连续传送方式,适合于大量数据的高速传送。收发双方的时钟实现同步。(1)帧结构(2)特点利用同步字符或同步时钟实现收、发同步每帧数据为一数据块,故传送速率较异步快同步时钟要求较严格(3)校验方法:CRC 循环冗余校验,三、波特率(Baud rate),波特率是指串行通讯中数据传送的速率,即每秒种传送的数据传送的二进制位数。它指的是位与位之间的时间间隔。其单位为比特/秒,bps在异步通讯中,收发双方是通过设定相同的波特率、依靠起始位和结束位来实现数据的准确传送。例:设每秒传送120个字符,其帧结构为1个起始位,7个数据位,1位校验位和1位结束位,其波特率为
4、:120字符/秒*10位/字符=1200bps,四、串行通信制式,单工(simplex)半双工(half duplex)全双工(full duplex),串行通信制式,数据只能单向流动,数据虽能双向通讯,但任一时刻仅能单向传送。,数据双向通讯,收、发各用一根信号线,可完全独立工作。,7-2 MCS-51的串行接口,概述有一个可编程全双工串行通信接口(UART)(Universal Asychronous Receiver/Transmitter)可同时发送、接收数据(Transmit/Receive)有四种工作方式,帧格式有8、10、11位。波特率(Baud rate)可设置 波特率为每秒钟传
5、送二进制数码的位数,也叫比特数,单位为b/s,即位/秒(bps)。,一、串行口的构成,串行口内部组成示意图如图所示,结构较为复杂,我们在使用时可将其抽象为三个可供软件直接访问的的特殊功能寄存器:PCON、SCON和SBUF。通过对它们的读写操作即可完全控制串行口。,构 成,MCS-51串行接口寄存器,SBUF串行口数据缓冲器共两个:一个发送寄存器SBUF,一个接收SBUF,二者共用一个地址99H。它在物理上对应两个寄存器,发送寄存器和接收寄存器,由于它们并不在同一时刻使用,因此两个寄存器共用一个地址并不会发生冲突,通过指令来区别是发送还是接收。其中,接收寄存器采用双缓冲而发送寄存器采用单缓冲。
6、SCON串行口控制寄存器。它用来定义串行口的工作方式及监视串行口的工作状态。PCON电源及波特率选择寄存器,PCON.7为SMOD,波特率加倍位,当SMOD=1时,波特率为SMOD=0时的两倍。PCON不能进行位寻址,可用ANLPCON,#7FH或ORL PCON,#80H来对其清零或置“1”。,只有该位有用,为1时,波特率2;为0时不变。,电源及波特率选择寄存器PCON,87H,串行口控制寄存器SCON,串行方式的定义,例:设串行口工作在方式1,允许接收,则指令为:MOV SCON,#01010000B,串行口的四种工作方式,方式的选择由SM1、SM0实现。四种方式的比较:,1、方式0,在此
7、种方式下,串行口工作在移位寄存器方式,其波特率为fOSC/12,数据从RXD(P3.0)端移出,同步移位脉冲由TXD(P3.1)输出。发送、接收的数据为低位在前。(1)发送。执行MOV SBUF,A后,数据和同步时钟从串行口发出,发送结束后,必须由软件对TI清零。即:JNBTI,$CLRTI其时序如图所示:,(2)接 收,REN=1且RI=0时,启动一个接收过程。数据从串行口输入,接收完毕后,RI=1,执行MOV A,SBUF后,数据进入CPU,要进行下一次接收,必须用软件对RI清零,SETBREN;MOV SCON,#10HJNBRI,$MOV A,SBUF其接收时序如下图所示:,接收时序,
8、2、方式1,串行口工作在8位异步通讯接口方式。其一帧信息为10位,其中,8位数据位,一位起始位(0)和一位停止位(1)。TXD端为发送端而RXD为接收端,波特率可变。,(1)、方式1-发送,执行MOV SBUF,A后,数据从TXD输出,发送完一帧信息后,置TI=1,再次发送前,须对TI清零。其时序图如下图所示:,(2)方式1-接收,由于方式1发送时不传送同步时钟,因而接收端在接收数据是通过采样来实现的。其采样频率为波特率的16倍,利用三中取二原则来确认接收数据。接收过程在REN置1的前提下,从搜索到起始位开始。直到9位接收完毕(含1位停止位)。在9位接收完毕后,只有:RI=0、SM2=0或接收
9、到的停止位为1,才将8位数据送入SBUF,停止位送RB8,并置RI=1。,3、方式2和方式3,方式2和方式3为9位异步通讯口,一帧信息由11位组成,即起始位(0)、8位数据位、1位可编程位和1位停止位。方式2和方式3的区别仅在于波特率不同,(1)发送,发送前,可以用任何位操作指令将第9位数据装入TB8中,然后执行MOV SBUF,A。串行口会自动将TB8作为第9位数据发出,发送完毕,TI=1。,(2)接收,其方法与方式1类似,说 明,由于方式1、2和3并不传送同步时钟,因此,必须保证发送方和接收方应工作在相同的波特率下,才能保证数据的准确传送。,7-3 MCS-51单片机串行口的应用,一、MC
10、S-51单片机的串行通讯的波特率串行口的传送速率即波特率由fosc、PCON、SMOD及定时器Ti的设定。,串行口的四种工作方式对应于三种波特率:,其中,K是定时器的位数,取决于定时器的工作方式。为保证高精度,尽可能选择方式2自动装入方式。,定时器T1产生的常用波特率,二、串行口方式0用作扩展并行I/O口,用串行口扩展I/O口具有电路简单易行,成本低等优点,因而被经常使用。1、用方式0扩展并行输出口74LS164为TTL型,而CD4094为CMOS型串行移位寄存器在串行口外接一个串入并出的移位寄存器,即可扩展一个并行I/O口。,例7-4-1 用8051串行口外接74LS164扩展8位并行输出口
11、。,发光二极管的显示延时采用延时子程序DELAY来实现。,程序清单:,ORG 2000HUART:MOVSCON,#00HMOVA,#80HCLRP1.0;移位寄存器清零LCALL DELAYSETBP1.0STA:MOVSBUF,AJNBTI,$CLRTIRRASJMPSTA,串行口发送标准模块,74LS165为TTL型,而CD4014为CMOS型串行移位寄存器,2、用方式0扩展并行输入口,例7-4-2 用8051串行口外接CD4014扩展8位并行输出口。,输入联络信号由K提供,K=0时,表示有数据输入,当RI=1时,表示数据串行移入完毕,可以进行下一次输入。,输入允许开关则由SCON中的R
12、EN来控制,采用查询RI的状态的方式来决定数据传送与否。,程序清单:,REC:JBP1.1,$SETBP1.0CLRP1.0MOVSCON,#10HJNBRI,$CLRRIMOVA,SBUFSJMPREC,串行接收标准模块,无论是扩展输入,还是扩展输出口,都可以进行级连,从而实现更多位的串行输入或串行输出扩展.,三、方式1的点对点的异步通讯,利用8031的串行口进行点对点的全双工通讯。,例7-4-3 假设两个8031系统相距很近,它们以串行口直接相连,如图所示。要求它们之间进行双工的ASCII字符收发,最高一位用于奇偶校验,波特率为1200bps,fosc=6Mhz,1、由于数据位为7位,及1
13、位奇偶校验位,因而可采用方式1。,2、由于波特率为1200bps,故定时器初值为:,TXD,RXD,GND,8031,甲,TXD,RXD,GND,8031,乙,8031双机通讯,3、奇偶校验作如下处理后,使A中1的个数始终为奇数个。,MOVA,#ASCIIMOVC,PCPLCMOVACC.7,C,若A中原有奇数个1,则P=1,操作后A中仍有奇数个1;若A中原有偶数个1,则P=0,操作后A中则有奇数个1;,2、方式1,串行口工作在8位异步通讯接口方式。其一帧信息为10位,其中,8位数据位,一位起始位(0)和一位停止位(1)。TXD端为发送端而RXD为接收端,波特率可变。,串行口的四种工作方式对应
14、于三种波特率:,其中,K是定时器的位数,取决于定时器的工作方式。为保证高精度,尽可能选择方式2自动装入方式。,4、双工通讯要求收发同时进行,收和发均在串行接口中进行,CPU只是把数据写入缓冲器或从缓冲器中读入数据。究竟是需要读或是写则通过检测TI和RI来进行区别。下面给出实现指定功能的通讯程序,发送和接收通过子程序调用来实现,发送缓冲区首址为20H,接收缓冲区首址为40H。,主程序:ORG0000HLJMPMAINORG0023HLJMPSBR1ORG0100HMAIN:MOVTMOD,#20HMOVTH1,#0F3HMOVTL1,#0F3HSETBTR1,MOVSCON,#50HMOVR0,
15、#20HMOVR1,#40HACALL SOUTAJMP$,方式1允许接收REN=1,SBR1:JNBRI,SENDACALL SINSJMPNEXTSEND:ACALL SOUTNEXT:RETI,SOUT:MOVA,R0MOVC,PCPLCMOVACC.7,CINCR0MOVSBUF,AJNBTI,$CLRTIRET,SIN:MOVA,SBUFCLRRIMOVC,PCPLCANLA,#7FHMOVR1,AINCR1RET,以上是基本的双机通讯程序,大家可根据这一基本程序,加以发挥和扩充,即可完成较为复杂的通讯功能。,四、方式2、方式3与多机通讯,通讯原理:利用多机通讯位SM2和TB8,主机
16、发送接收数据的从机地址,该从机处于接收使能,能接收主机随后发送的数据,地址不同的从机不能接收数据。,7-4 选学内容,单片机之间的通信,双机异步通信接口电路,RS-422A双机异步通信接口电路,双机通信软件编程,查询方式 1)甲机发送 编程将甲机片外1000H101FH单元的数据块从串行口输出。定义方式2发送,TB8为奇偶校验位。发送波特率375 kb/s,晶振为12 MHz,所以SMOD=1。,参考发送子程序如下:MOV SCON,#80H;设置串行口为方式2 MOV PCON,#80H;SMOD=1 MOV DPTR,#1000H;设数据块指针 MOV R7,#20H;设数据块长度 STA
17、RT:MOVX A,DPTR;取数据给A MOV C,P MOV TB8,C;奇偶位P送给TB8 MOV SBUF,A;数据送SBUF,启动发送 WAIT:JBC TI,CONT;判断一帧是否发送完。若送完,清TI,取下一个数据 AJMP WAIT;未完等待 CONT:INC DPTR;更新数据单元 DJNZ R7,START;循环发送至结束 RET,2)乙机接收 编程使乙机接收甲机发送过来的数据块,并存入片内50H6FH单元。接收过程要求判断RB8,若出错置F0标志为1,正确则置F0标志为0,然后返回。在进行双机通信时,两机应采用相同的工作方式和波特率。,参考接收子程序如下:MOV SCON
18、,#80H;设置串行口为方式2 MOV PCON,#80H;SMOD=1MOV R0,#50H;设置数据块指针MOV R7,#20H;设置数据块长度SETB REN;启动接收WAIT:JBC RI,READ;判断是否接收完一帧。若完,清RI,读入数据AJMP WAIT;未完等待READ:MOV A,SBUF;读入一帧数据aJNB PSW.0,PZ;奇偶位为0则转JNB RB8,ERR;P=1,RB8=0,则出错 SJMP RIGHT;二者全为1,则正确 PZ:JB RB8,ERR;P=0,RB8=1,则出错RIGHT:MOV R0,A;正确,存放数据INC R0;更新地址指针DJNZ R7,W
19、AIT;判断数据块是否接收完CLR PSW.5;接收正确,且接收完清F0标志RET;返回 ERR:SETB PSW.5;出错,置F0标志为1RET;返回,第七章结束,本章作业:2、3、6、7,第八章 MCS-51 单片机的中断系统,本章主要介绍51系列单片机中断系统问题,本章将介绍以下具体内容:,中断系统-中断源、中断方式、中断控制寄存器、中断响应、中断请求的撤除。,8.2 MCS-51单片机的中断系统,8.2.1.MCS-51单片机的中断系统结构一、中断的概念,执行主程序,主程序,继续执行主程序,断点,中断请求,中断响应,执行中断处理程序,中断返回,中断请求标志,1,高级,低级,二、MCS-
20、51单片机的中断系统(图8-1),内部查询,内部查询,入口地址,入口地址,中断允许控制,中断优先级,EA,中断源,一、中断源 共有五个中断源,分别是外部中断两个、定时中断两个和串行中断一个,它们是:外部中断0-INT0,由P3.2提供,外部中断1INT1,由P3.3提供,,外部中断有两种信号方式,即电平方式和脉冲方式。,T0溢出中断;由片内定时/计数器0提供T1溢出中断;由片内定时/计数器1提供串行口中断RI/TI;由片内串行口提供,8.2.2.MCS-51 中断源,二、中断方式,单片机的中断为固定入口式中断,即一响应中断就转入固定入口地址执行中断服务程序。具体入口如下:中断源 入口地址INT
21、0 0003T0 000BHINT1 0013HT1 001BHRI/TI 0023H在这些单元中往往是一些跳转指令,跳到真正的中断服务程序,这是因为给每个中断源安排的空间只有8个单元。,三、中断控制的寄存器,与中断控制有关的控制寄存器有四个:,TCON-定时控制寄存器,IE-中断允许控制寄存器,IP-中断优先级控制寄存器,SCON-及串行口控制寄存器。,1定时控制寄存器TCON,中断请求标志,触发方式选择,0 低电平1 下降沿,2串行口控制寄存器SCON,串行中断请求标志,3中断允许控制寄存器IE,4中断优先级控制寄存器(IP),0 禁止,1允许,0 低级别,1高级别,四、中断响应,响应条件
22、-CPU要响应中断需满足下列条件:无同级或高级中断正在服务;当前指令周期结束,如果查询中断请求的机器 周期不是当前指令的最后一个周期,则不行;若现行指令是RETI、RET或访问IE、IP指令,则需要执行到当前指令及下一条指令方可响应。,响应过程-单片机响应中断后,自动执行下列操作:置位中断优先级有效触发器,即关闭同级和低级 中断:调用入口地址,断点入栈,相当于LCALL指令;进入中断服务程序。,响应时间-从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。(1)最快响应时间以外部中断的电平触发为最快。从查询中断请求信号到中断服务程序需要三个机器周期:1个周期(查询)2个周期(长调用LC
23、ALL)(2)最长时间若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期:2个周期执行当前指令(其中含有1个周期查询)4个周期乘除指令2个周期长调用8个周期。,中断返回中断处理程序的最后一条指令是RETI,它使CPU结束中断处理程序的执行,返回到断点处,继续执行主程序。,当有几个处于同一优先级的中断同时发出中断请求时,CPU响应哪个中断呢?CPU则按照自然优先级作出判断并快速响应中断请求。其自然优先级为:,四、中断响应过程及响应时间,1、中断响应的操作过程,在每个机器周期的S5P2期间,各中断标志采样相应的中断源,而CPU在下一个机器周期的S6期间按顺序
24、查询中断标志,并将相应中断的标志置1,且在再下一个机器周期的S1期间按优先级进行中断处理。,中断响应后,由硬件产生长调用指令“LCALL”,并将当前的PC指针压入椎栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向该中断矢量地址单元,执行中断服务程序,直到执行“RETI”指令返回,断点处PC指针从椎栈中弹入PC,继续执行中断前的程序。中断矢量如下表所示:,在编写中断服务程序时,应注意以下几点:,(1)在中断矢量地址放一条长转移指令,使中断服务程序可以灵活地安排在64KB程序存储器的任意位置。(2)在执行中断服务程序时,应注意保护现场。(3)在执行中断服务程序时,为避免更高优先级的中断,
25、可用软件关闭CPU中断,或禁止某中断源中断,在中断返回前再开放中断。(4)中断返回指令“RETI”不能用“RET”来代替。,2、外部中断的响应时间,外部中断从产生到响应,至少要经历3个以上的机器周期,再加上CPU在执行指令时的时间延迟。因此,为保证可靠响应外部中断,中断请求信号至少要保持38个机器周期。,8-3 扩充外部中断源,MCS-51系列单片机提供2个外部中断源,在很多情况下,仅有两个中断源是远远不够的。因此,我们有必要对其进行扩充。其方法主要有两种:,1、将定时器T0、T1扩充为外部中断源2、采用中断和查询相结合的方法扩充外部中断源,一、利用定时器扩充外部中断源,51系列单片机具有内部
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片 计算机 及其 应用
链接地址:https://www.31ppt.com/p-6449721.html