版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片计算机及其应用第1页,课件共156页,创作于2023年2月§7-1概述
当今社会已进入信息时代,网络成为当今科技发展的一大方向,计算机系统通过网络这一桥梁,在信息时代中发挥着越来越大的作用。在单片机的应用系统中,单机应用非常广泛,但在一些大型、智能化系统中,必须要由多个单片机协同工作才能完成任务,因此,它们之间的信息传递成为了一种必然。在学习单片机间的通讯之前,我们有必要对通信的基础知识有一些了解。第2页,课件共156页,创作于2023年2月一、什么是串行通信?串行通信和并行通信
计算机1GND
计算机2GND并行通信
计算机1GND
计算机2GND发送接收串行通信并行通信,即数据的各位同时传送;串行通信,即数据一位一位顺序传送。第3页,课件共156页,创作于2023年2月二、串行通信的分类异步(AsynchronousCommunication)异步是指收发双方时钟异步,即收方和发方的时钟各自独立,由起始位和结束位来实现收、发同步。允许±5%的误差。(1)帧结构帧为收发双方传数据的基本单位其结构如图所示。由一个起始位“0”,5~8位数据(低位在前),再后为奇偶校验位和一个停止位“1”构成。第4页,课件共156页,创作于2023年2月异步(AsynchronousCommunication)(2)特点利用起始位和结束位来实现收发同步帧间间隔随机位间隔固定每帧数据最多一个字节(3)错误检验方法:奇偶校验第5页,课件共156页,创作于2023年2月串行通信的分类同步(SynchronousCommunication)同步传送方式是一种连续传送方式,适合于大量数据的高速传送。收发双方的时钟实现同步。(1)帧结构(2)特点利用同步字符或同步时钟实现收、发同步每帧数据为一数据块,故传送速率较异步快同步时钟要求较严格(3)校验方法:CRC循环冗余校验第6页,课件共156页,创作于2023年2月三、波特率(Baudrate)波特率是指串行通讯中数据传送的速率,即每秒种传送的数据传送的二进制位数。它指的是位与位之间的时间间隔。其单位为比特/秒,bps在异步通讯中,收发双方是通过设定相同的波特率、依靠起始位和结束位来实现数据的准确传送。例:设每秒传送120个字符,其帧结构为1个起始位,7个数据位,1位校验位和1位结束位,其波特率为:
120字符/秒*10位/字符=1200bps第7页,课件共156页,创作于2023年2月四、串行通信制式
单工(simplex)
半双工(halfduplex)
全双工(fullduplex)第8页,课件共156页,创作于2023年2月串行通信制式数据只能单向流动数据虽能双向通讯,但任一时刻仅能单向传送。数据双向通讯,收、发各用一根信号线,可完全独立工作。第9页,课件共156页,创作于2023年2月§7-2MCS-51的串行接口概述有一个可编程全双工串行通信接口(UART)(UniversalAsychronousReceiver/Transmitter)可同时发送、接收数据(Transmit/Receive)有四种工作方式,帧格式有8、10、11位。波特率(Baudrate)可设置波特率为每秒钟传送二进制数码的位数,也叫比特数,单位为b/s,即位/秒(bps)。第10页,课件共156页,创作于2023年2月一、串行口的构成
串行口内部组成示意图如图所示,结构较为复杂,我们在使用时可将其抽象为三个可供软件直接访问的的特殊功能寄存器:
PCON、SCON和SBUF。通过对它们的读写操作即可完全控制串行口。第11页,课件共156页,创作于2023年2月构成第12页,课件共156页,创作于2023年2月MCS-51串行接口寄存器SBUF——串行口数据缓冲器共两个:一个发送寄存器SBUF,一个接收SBUF,二者共用一个地址99H。它在物理上对应两个寄存器,发送寄存器和接收寄存器,由于它们并不在同一时刻使用,因此两个寄存器共用一个地址并不会发生冲突,通过指令来区别是发送还是接收。其中,接收寄存器采用双缓冲而发送寄存器采用单缓冲。SCON——串行口控制寄存器。它用来定义串行口的工作方式及监视串行口的工作状态。PCON——电源及波特率选择寄存器,PCON.7为SMOD,波特率加倍位,当SMOD=1时,波特率为SMOD=0时的两倍。PCON不能进行位寻址,可用ANL PCON,#7FH或ORLPCON,#80H来对其清零或置“1”。第13页,课件共156页,创作于2023年2月只有该位有用,为1时,波特率×2;为0时不变。电源及波特率选择寄存器PCONSMOD×××GF1GF0PDIDL87H第14页,课件共156页,创作于2023年2月串行口控制寄存器SCONSM0SM1SM2RENTB8RB8TIRI工作方式选择多机通信控制位允许串行接收位REN=1时,允许接收;REN=0时,禁止接收。接收数据的第9位方式2、3中第九位,多机通讯中可用来表示是地址帧还是数据帧接收中断标志,由硬件置“1”,而由软件清零发送中断标志9FH9EH9DH9CH9BH9AH99H98H第15页,课件共156页,创作于2023年2月SM0SM1工作方式功能波特率00方式08位同步移位寄存器fosc/1201方式110位UART可变10方式211位UARTfosc/64或fosc/3211方式311位UART可变串行方式的定义例:设串行口工作在方式1,允许接收,则指令为:
MOVSCON,#01010000B第16页,课件共156页,创作于2023年2月串行口的四种工作方式方式的选择由SM1、SM0实现。四种方式的比较:工作方式功能说明波特率方式08位同步移位寄存器常用于扩展I/O口fosc/12方式110位UART8位数据、起始位、结束位可变(取决于定时器1溢出率)方式211位UART8位数据、起始位0、结束位1和奇偶校验位fosc/64或fosc/32方式311位UART8位数据、起始位、结束位可变(取决于定时器1溢出率)第17页,课件共156页,创作于2023年2月1、方式0在此种方式下,串行口工作在移位寄存器方式,其波特率为fOSC/12,数据从RXD(P3.0)端移出,同步移位脉冲由TXD(P3.1)输出。发送、接收的数据为低位在前。(1)发送。执行MOVSBUF,A后,数据和同步时钟从串行口发出,发送结束后,必须由软件对TI清零。即:
JNB TI,$CLR TI其时序如图所示:第18页,课件共156页,创作于2023年2月第19页,课件共156页,创作于2023年2月(2)接收
REN=1且RI=0时,启动一个接收过程。数据从串行口输入,接收完毕后,RI=1,执行MOVA,SBUF后,数据进入CPU,要进行下一次接收,必须用软件对RI清零,
SETB REN; MOVSCON,#10H JNB RI,$ MOVA,SBUF其接收时序如下图所示:第20页,课件共156页,创作于2023年2月接收时序第21页,课件共156页,创作于2023年2月2、方式1串行口工作在8位异步通讯接口方式。其一帧信息为10位,其中,8位数据位,一位起始位(0)和一位停止位(1)。TXD端为发送端而RXD为接收端,波特率可变。TXDRXDMCU第22页,课件共156页,创作于2023年2月(1)、方式1---发送执行MOVSBUF,A后,数据从TXD输出,发送完一帧信息后,置TI=1,再次发送前,须对TI清零。其时序图如下图所示:第23页,课件共156页,创作于2023年2月(2)方式1-接收由于方式1发送时不传送同步时钟,因而接收端在接收数据是通过采样来实现的。其采样频率为波特率的16倍,利用三中取二原则来确认接收数据。接收过程在REN置1的前提下,从搜索到起始位开始。直到9位接收完毕(含1位停止位)。在9位接收完毕后,只有:RI=0、SM2=0或接收到的停止位为1,才将8位数据送入SBUF,停止位送RB8,并置RI=1。第24页,课件共156页,创作于2023年2月3、方式2和方式3方式2和方式3为9位异步通讯口,一帧信息由11位组成,即起始位(0)、8位数据位、1位可编程位和1位停止位。方式2和方式3的区别仅在于波特率不同方式2波特率=2SMOD64*fOSC方式3波特率=2SMOD32*(定时器T1的溢出率)第25页,课件共156页,创作于2023年2月(1)发送
发送前,可以用任何位操作指令将第9位数据装入TB8中,然后执行MOVSBUF,A。串行口会自动将TB8作为第9位数据发出,发送完毕,TI=1。(2)接收
其方法与方式1类似第26页,课件共156页,创作于2023年2月说明
由于方式1、2和3并不传送同步时钟,因此,必须保证发送方和接收方应工作在相同的波特率下,才能保证数据的准确传送。第27页,课件共156页,创作于2023年2月§7-3MCS-51单片机串行口的应用一、MCS-51单片机的串行通讯的波特率 串行口的传送速率即波特率由fosc、PCON、SMOD及定时器Ti的设定。
第28页,课件共156页,创作于2023年2月串行口的四种工作方式对应于三种波特率:1、方式0:其波特率固定为fosc/122、方式2:有两种波特率可供选择方式2波特率=2SMOD64*fOSC3、方式1和方式3波特率=2SMOD32*(定时器T1的溢出率)
定时器T1的溢出率=fOSC122K-初值1*其中,K是定时器的位数,取决于定时器的工作方式。为保证高精度,尽可能选择方式2自动装入方式。第29页,课件共156页,创作于2023年2月定时器T1产生的常用波特率第30页,课件共156页,创作于2023年2月二、串行口方式0用作扩展并行I/O口
用串行口扩展I/O口具有电路简单易行,成本低等优点,因而被经常使用。1、用方式0扩展并行输出口
74LS164为TTL型,而CD4094为CMOS型串行移位寄存器 在串行口外接一个串入并出的移位寄存器,即可扩展一个并行I/O口。第31页,课件共156页,创作于2023年2月例7-4-1用8051串行口外接74LS164扩展8位并行输出口。
74LS164为一串入并出移位寄存器,其A、B为串行输入端,CLK为移位时钟,MR为清零端。串行口工作在方式0,移位寄存器方式,也可将清零端直接连到VCC端。8051RXDTXDP1.0VCC
发光二极管的显示延时采用延时子程序DELAY来实现。SM0SM1SM2RENTB8RB8TIRI9FH9EH9DH9CH9BH9AH99H98H第32页,课件共156页,创作于2023年2月程序清单: ORG2000HUART:MOV SCON,#00H MOV A,#80H CLR P1.0 ;移位寄存器清零
LCALLDELAY SETB P1.0STA: MOV SBUF,A JNB TI,$ CLR TI RR A SJMP STA串行口发送标准模块74LS165为TTL型,而CD4014为CMOS型串行移位寄存器SM0SM1SM2RENTB8RB8TIRI9FH9EH9DH9CH9BH9AH99H98H第33页,课件共156页,创作于2023年2月2、用方式0扩展并行输入口第34页,课件共156页,创作于2023年2月例7-4-2用8051串行口外接CD4014扩展8位并行输出口。CD4014为一并入串出移位寄存器,Q8为串行数据输出端,CLK为移位时钟端,P/S为预置/移位控制端。P/S=1时,并行置入数据,P/S=0时,开始串行移位。
输入联络信号由K提供,K=0时,表示有数据输入,当RI=1时,表示数据串行移入完毕,可以进行下一次输入。
输入允许开关则由SCON中的REN来控制,采用查询RI的状态的方式来决定数据传送与否。SM0SM1SM2RENTB8RB8TIRI第35页,课件共156页,创作于2023年2月程序清单:REC: JB P1.1,$ SETB P1.0 CLR P1.0 MOV SCON,#10H JNB RI,$ CLR RI MOV A,SBUF SJMP REC串行接收标准模块
无论是扩展输入,还是扩展输出口,都可以进行级连,从而实现更多位的串行输入或串行输出扩展.
SM0SM1SM2RENTB8RB8TIRI第36页,课件共156页,创作于2023年2月三、方式1的点对点的异步通讯利用8031的串行口进行点对点的全双工通讯。第37页,课件共156页,创作于2023年2月例7-4-3假设两个8031系统相距很近,它们以串行口直接相连,如图所示。要求它们之间进行双工的ASCII字符收发,最高一位用于奇偶校验,波特率为1200bps,fosc=6Mhz1、由于数据位为7位,及1位奇偶校验位,因而可采用方式1。2、由于波特率为1200bps,故定时器初值为:TXDRXDGND8031甲TXDRXDGND8031乙8031双机通讯3、奇偶校验作如下处理后,使A中1的个数始终为奇数个。MOV A,#ASCIIMOV C,PCPL CMOV ACC.7,C若A中原有奇数个1,则P=1,操作后A中仍有奇数个1;若A中原有偶数个1,则P=0,操作后A中则有奇数个1;第38页,课件共156页,创作于2023年2月2、方式1串行口工作在8位异步通讯接口方式。其一帧信息为10位,其中,8位数据位,一位起始位(0)和一位停止位(1)。TXD端为发送端而RXD为接收端,波特率可变。TXDRXDMCU第39页,课件共156页,创作于2023年2月串行口的四种工作方式对应于三种波特率:1、方式0:其波特率固定为fosc/122、方式2:有两种波特率可供选择方式2波特率=2SMOD64*fOSC3、方式1和方式3波特率=2SMOD32*(定时器T1的溢出率)
定时器T1的溢出率=fOSC122K-初值1*其中,K是定时器的位数,取决于定时器的工作方式。为保证高精度,尽可能选择方式2自动装入方式。第40页,课件共156页,创作于2023年2月4、双工通讯要求收发同时进行,收和发均在串行接口中进行,CPU只是把数据写入缓冲器或从缓冲器中读入数据。究竟是需要读或是写则通过检测TI和RI来进行区别。下面给出实现指定功能的通讯程序,发送和接收通过子程序调用来实现,发送缓冲区首址为20H,接收缓冲区首址为40H。主程序:
ORG 0000H LJMP MAIN ORG 0023H LJMP SBR1 ORG 0100HMAIN:MOV TMOD ,#20H MOV TH1,#0F3H MOV TL1,#0F3H SETB TR1 MOV SCON,#50H MOV R0,#20H MOV R1,#40H ACALLSOUT AJMP $方式1允许接收REN=1第41页,课件共156页,创作于2023年2月SBR1: JNB RI,SEND ACALLSIN SJMP NEXTSEND: ACALLSOUTNEXT: RETISOUT:MOV A,@R0 MOV C,P CPL C MOV ACC.7,C INC R0 MOV SBUF,A JNB TI,$ CLR TI RETSIN: MOV A,SBUF CLR RI MOV C,P CPL C ANL A,#7FH MOV @R1,A INC R1 RET以上是基本的双机通讯程序,大家可根据这一基本程序,加以发挥和扩充,即可完成较为复杂的通讯功能。第42页,课件共156页,创作于2023年2月四、方式2、方式3与多机通讯RXDTXDGND8031主机8031多机通讯TXDRXDGND从机1TXDRXDGND从机2TXDRXDGND从机3通讯原理:利用多机通讯位SM2和TB8,主机发送接收数据的从机地址,该从机处于接收使能,能接收主机随后发送的数据,地址不同的从机不能接收数据。第43页,课件共156页,创作于2023年2月§7-4选学内容第44页,课件共156页,创作于2023年2月单片机之间的通信双机异步通信接口电路第45页,课件共156页,创作于2023年2月RS-422A双机异步通信接口电路第46页,课件共156页,创作于2023年2月双机通信软件编程查询方式
1)甲机发送编程将甲机片外1000H~101FH单元的数据块从串行口输出。定义方式2发送,TB8为奇偶校验位。发送波特率375kb/s,晶振为12MHz,所以SMOD=1。第47页,课件共156页,创作于2023年2月参考发送子程序如下:
MOV SCON,#80H;设置串行口为方式2 MOV PCON,#80H;SMOD=1 MOV DPTR,#1000H;设数据块指针
MOV R7,#20H;设数据块长度
START:MOVXA,@DPTR;取数据给A MOV C,P MOV TB8,C;奇偶位P送给TB8MOV SBUF,A;数据送SBUF,启动发送
WAIT:JBCTI,CONT;判断一帧是否发送完。若送完,清TI,取下一个数据
AJMPWAIT;未完等待
CONT:INCDPTR;更新数据单元
DJNZR7,START;循环发送至结束
RET第48页,课件共156页,创作于2023年2月2)乙机接收编程使乙机接收甲机发送过来的数据块,并存入片内50H~6FH单元。接收过程要求判断RB8,若出错置F0标志为1,正确则置F0标志为0,然后返回。在进行双机通信时,两机应采用相同的工作方式和波特率。第49页,课件共156页,创作于2023年2月参考接收子程序如下:
MOVSCON,#80H ;设置串行口为方式2
MOVPCON,#80H ;SMOD=1
MOVR0,#50H ;设置数据块指针
MOVR7,#20H ;设置数据块长度
SETBREN ;启动接收
WAIT:JBCRI,READ;判断是否接收完一帧。若完,清RI,读入数据 AJMPWAIT;未完等待
READ:MOVA,SBUF;读入一帧数据a
JNBPSW.0,PZ;奇偶位为0则转
JNBRB8,ERR;P=1,RB8=0,则出错
SJMPRIGHT;二者全为1,则正确
PZ:JBRB8,ERR;P=0,RB8=1,则出错
RIGHT:MOV@R0,A ;正确,存放数据
INCR0 ;更新地址指针
DJNZR7,WAIT ;判断数据块是否接收完
CLRPSW.5 ;接收正确,且接收完清F0标志
RET ;返回
ERR:SETBPSW.5 ;出错,置F0标志为1
RET ;返回第50页,课件共156页,创作于2023年2月第七章结束本章作业:2、3、6、7第51页,课件共156页,创作于2023年2月第八章MCS-51单片机的中断系统
本章主要介绍51系列单片机中断系统问题,本章将介绍以下具体内容:中断系统----中断源、中断方式、中断控制寄存器、中断响应、中断请求的撤除。第52页,课件共156页,创作于2023年2月§8.2MCS-51单片机的中断系统8.2.1.MCS-51单片机的中断系统结构一、中断的概念执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回第53页,课件共156页,创作于2023年2月IE0TF0IE1TF1TIRI中断请求标志EX0ET0EX1ET1ES≥1PX0PT0PX1PT1PS高级低级二、MCS-51单片机的中断系统(图8-1)内部查询内部查询入口地址入口地址INT0INT1T0T1TIRI中断允许控制中断优先级EA中断源第54页,课件共156页,创作于2023年2月第55页,课件共156页,创作于2023年2月一、中断源
共有五个中断源,分别是外部中断两个、定时中断两个和串行中断一个,它们是:外部中断0--INT0,由P3.2提供,外部中断1—INT1,由P3.3提供,外部中断有两种信号方式,即电平方式和脉冲方式。T0溢出中断;由片内定时/计数器0提供T1溢出中断;由片内定时/计数器1提供串行口中断RI/TI;由片内串行口提供8.2.2.MCS-51中断源第56页,课件共156页,创作于2023年2月二、中断方式单片机的中断为固定入口式中断,即一响应中断就转入固定入口地址执行中断服务程序。具体入口如下:中断源入口地址INT00003HT0000BHINT10013HT1001BHRI/TI0023H在这些单元中往往是一些跳转指令,跳到真正的中断服务程序,这是因为给每个中断源安排的空间只有8个单元。第57页,课件共156页,创作于2023年2月三、中断控制的寄存器与中断控制有关的控制寄存器有四个:TCON----定时控制寄存器,IE----中断允许控制寄存器,IP----中断优先级控制寄存器,SCON----及串行口控制寄存器。1.定时控制寄存器TCOND7D6D5D4D3D2D1D0TF1TF0IE1IT1IE0IT0中断请求标志触发方式选择0低电平1下降沿第58页,课件共156页,创作于2023年2月2.串行口控制寄存器SCOND7D6D5D4D3D2D1D0TIRI串行中断请求标志3.中断允许控制寄存器IED7D6D5D4D3D2D1D0EAESET1EX1ET0EX04.中断优先级控制寄存器(IP)D7D6D5D4D3D2D1D0PSPT1PX1PT0PX00禁止,1允许0低级别,1高级别第59页,课件共156页,创作于2023年2月四、中断响应响应条件----CPU要响应中断需满足下列条件:①无同级或高级中断正在服务;②当前指令周期结束,如果查询中断请求的机器周期不是当前指令的最后一个周期,则不行;③若现行指令是RETI、RET或访问IE、IP指令,则需要执行到当前指令及下一条指令方可响应。响应过程--单片机响应中断后,自动执行下列操作:①置位中断优先级有效触发器,即关闭同级和低级中断:②调用入口地址,断点入栈,相当于LCALL指令;③进入中断服务程序。第60页,课件共156页,创作于2023年2月响应时间--从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。(1)最快响应时间以外部中断的电平触发为最快。从查询中断请求信号到中断服务程序需要三个机器周期:
1个周期(查询)+2个周期(长调用LCALL)(2)最长时间若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期:2个周期执行当前指令(其中含有1个周期查询)+4个周期乘除指令+2个周期长调用=8个周期。第61页,课件共156页,创作于2023年2月中断返回—中断处理程序的最后一条指令是RETI,它使CPU结束中断处理程序的执行,返回到断点处,继续执行主程序。第62页,课件共156页,创作于2023年2月
当有几个处于同一优先级的中断同时发出中断请求时,CPU响应哪个中断呢?CPU则按照自然优先级作出判断并快速响应中断请求。其自然优先级为:中断源同级自然优先级外部中断0最高级定时器T0中断外部中断1定时器T1中断串行口中断最低级四、中断响应过程及响应时间1、中断响应的操作过程
在每个机器周期的S5P2期间,各中断标志采样相应的中断源,而CPU在下一个机器周期的S6期间按顺序查询中断标志,并将相应中断的标志置1,且在再下一个机器周期的S1期间按优先级进行中断处理。第63页,课件共156页,创作于2023年2月
中断响应后,由硬件产生长调用指令“LCALL”,并将当前的PC指针压入椎栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向该中断矢量地址单元,执行中断服务程序,直到执行“RETI”指令返回,断点处PC指针从椎栈中弹入PC,继续执行中断前的程序。中断矢量如下表所示:中断源矢量地址外部中断00003H定时器T0中断000BH外部中断10013H定时器T1中断001BH串行口中断0023H第64页,课件共156页,创作于2023年2月
在编写中断服务程序时,应注意以下几点:(1)在中断矢量地址放一条长转移指令,使中断服务程序可以灵活地安排在64KB程序存储器的任意位置。(2)在执行中断服务程序时,应注意保护现场。(3)在执行中断服务程序时,为避免更高优先级的中断,可用软件关闭CPU中断,或禁止某中断源中断,在中断返回前再开放中断。(4)中断返回指令“RETI”不能用“RET”来代替。2、外部中断的响应时间
外部中断从产生到响应,至少要经历3个以上的机器周期,再加上CPU在执行指令时的时间延迟。因此,为保证可靠响应外部中断,中断请求信号至少要保持3~8个机器周期。第65页,课件共156页,创作于2023年2月§8-3扩充外部中断源MCS-51系列单片机提供2个外部中断源,在很多情况下,仅有两个中断源是远远不够的。因此,我们有必要对其进行扩充。其方法主要有两种:1、将定时器T0、T1扩充为外部中断源2、采用中断和查询相结合的方法扩充外部中断源一、利用定时器扩充外部中断源51系列单片机具有内部定时/计数器,可以用作对外部事件计数,其计数脉冲从相应引脚输入。利用这一特点,我们将计数初值设置为满程,一旦外部有一个脉冲输入,计数器加1并产生溢出中断。因此可以把外部计数引脚T0(P3.4)或T1(P3.5)扩充为外部中断,而T0和T1为外部中断的中断矢量入口。例8-3-1将定时器T0设为方式2,并将其扩充为一个外部中断源。第66页,课件共156页,创作于2023年2月其程序清单为: ORG 0000H LJMP MAIN ORG 000BH LJMP TIMER0 ORG 0100HMAIN:MOV TMOD,#06H MOV TH0,#0FFH MOV TL0,#0FFH SETB TR0 SETB ET0 SETB EA …………… LJMP $TIMER0:………… RETI第67页,课件共156页,创作于2023年2月
这样,相当于在T0引脚上扩展一个外部中断源。二、利用中断和查询相结合的方法扩充外部中断源
利用这种方法可以扩充多个外部中断源,并可按需求划分它们的优先级别。例8-3-2如图所示,试编写出中断服务程序。XI0最高XI1XI2XI3XI4最低其优先级别要求如下表所示:第68页,课件共156页,创作于2023年2月程序清单:EXINT1:PUSH PSW PUSH ACC JB P1.0,SAV1 JB P1.1,SAV2 JB P1.2,SAV3 JB P1.3,SAV4DISUB:POP ACC POP PSW RETISAV1:…….. AJMP DISUBSAV2:…….. AJMP DISUBSAV3:…….. AJMP DISUBSAV4:…….. AJMP DISUB ORG 0000H LJMP MAIN ORG 0003H LJMP EXINT0 ORG 0013H LJMP EXINT1 ORG 0100HMAIN: SETB EX0 SETB EX1 SETB EA
……………….. LJMP $EXINT0:
……………….. RETI第69页,课件共156页,创作于2023年2月
由于在查询工作按P1.0~P1.3的顺序进行,因此其优先级别为XI1最高,而XI4最低。
注意:外部中断采用电平触发与采用边沿触发基本相似。其区别仅在于:如果是边沿触发,中断响应后会自动清除中断请求标志,而电平触发不会自动清除中断请求标志。因此,在实际使用时,应注意以下两点:
1:请求中断的低电平必须保持足够的时间,以确保中断请求被可靠响应。
2、中断请求信号保持时间不宜太长。在中断返回前,请求信号必须被撤除,以避免同一中断请求被二次响应。可在中断返回前加判中断信号是否撤除指令,如上例中,加上JNB P3.2,$或JNB P3.3,$,即可保证同一中断请求不会被二次响应。第70页,课件共156页,创作于2023年2月§8-4中断系统的应用(X=0,1)一、8051系统的单步操作
这种操作方式广泛应用于单片机的开发系统中,在常规系统的设计中一般很少使用,我们不作过多介绍。二、只有一个外部中断源的情况例8-4-1如图所示,将P1.7~P1.4设置为输入方式,P1.3~P1.0设置成输出方式,驱动发光二极管,用于显示P1.7~1.4的输入情况。要求外部中断每中断一次,完成一次读写操作。
中断请求由INT0输入,并采用了去抖动电路。第71页,课件共156页,创作于2023年2月程序清单: ORG 0000H LJMP GAFN ORG 0003H LJMP XTGA ORG 0100HGAFN:SETB EX0 SETB IT0 SETB EA AJMP $ ORG 2000HXTGA:MOV A,#0FFH MOV P1,A MOV A,P1 SWAP A MOV P1,A RETI第72页,课件共156页,创作于2023年2月三、多个外部中断源的情况例8-4-3如图所示,中断线路可实现多个故障显示。当系统无故障时,4个故障源输入端为低电平,显示灯全灭,当某部分出现故障时,其相应的输入线才由低电平变为高电平,从而引起中断,中断服务程序的任务是判定故障源,并用相应的灯显示。第73页,课件共156页,创作于2023年2月程序清单: ORG 0000H LJMP MAIN ORG 0003H LJMP SERVE ORG 0100HMAIN:ANL P1,#55H SETB IT0 SETB EX0 SETB EALOOP1:MOV A,P1 ANL A,#55H JNZ LOOP1 ANL P1,#55H SJMP LOOP1SERVE:JNB P1.0,L1 SETB P1.1 SJMP L2L1: CLR P1.1L2: JNB P1.2,L3 SETB P1.3 SJMP L4L3: CLR P1.3L4: JNB P1.4,L5 SETB P1.5 SJMP L6L5: CLR P1.5L6: JNB P1.6,L7 SETB P1.7 SJMP L8L7: CLR P1.7L8: RETI第74页,课件共156页,创作于2023年2月本章作业:1、3、8第75页,课件共156页,创作于2023年2月人机接口键盘接口显示器接口模拟量输入/输出接口D/A转换接口A/D转换接口综合应用单片机与LCD接口第
九
章
单
片
机
应用系统
本章内容SingleChipMicrocomputer第76页,课件共156页,创作于2023年2月PC机除了主机以外还需要哪些部分呢?单片机电路有时候也需要键盘、显示等外设。第77页,课件共156页,创作于2023年2月9.1键盘接口按键的特点及输入原理独立式按键矩阵式按键第78页,课件共156页,创作于2023年2月按键的特点及输入原理键输入原理:
通过按键的接通与断开,产生两种相反的逻辑状态低电平“0”与高电平“1”。键功能的实现:对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器ACC,然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。
第79页,课件共156页,创作于2023年2月键盘接口需要解决的问题是否有键按下按键识别:键抖动及消除:机械按键抖动时间在5ms~10ms之间
硬件方案——双稳态去抖电路
软件方案——延时10ms~20ms后再次判断消除方法:求键号第80页,课件共156页,创作于2023年2月----扫描(判断哪个键按下)、去抖动、判断按键是否抬起(以防止重复进行键处理)。
前沿抖动后沿抖动键按下闭合稳定键释放第81页,课件共156页,创作于2023年2月独立式按键接口电路:特点:一线一键,按键识别(编程)简单;但占用较多口线,适合8键以下使用。第82页,课件共156页,创作于2023年2月原理----当任何一个键被按下时,与其相连的输入线被置成“0”,平时该线为“1”。键处理程序ORG2000HSTART:MOVA,#0FFH;先置P1口为“1”MOVP1,AMOVA,P1;输入键状态JNBACC.0,P0F;查询0号键JNBACC.1,P1F;查询1号键JNBACC.2,P2F;查询2号键JNBACC.3,P3F;查询3号键JNBACC.4,P4F;查询4号键JNBACC.5,P5F;查询5号键JNBACC.6,P6F;查询6号键JNBACC.7,P7F;查询7号键LJMPSTART键盘扫描第83页,课件共156页,创作于2023年2月P0F:LJMPPROM0;入口地址表P1F:LJMPPROM1P6F:LJMPPROM6P7F:LJMPPROM7……PROM0:…..;0号键功能程序PROM7:…..;7号键功能程序…..LJMPSTART;0号键处理完返回键盘扫描LJMPSTART;7号键处理完返回键盘扫描…......第84页,课件共156页,创作于2023年2月例1:用P1口检测三个按键的状态并完成相应的功能解:资源分配:用P1口的低3位检测3个按键的输入,为1则表示按键没有按下,为0则表示相应按键被按下。流程图:第85页,课件共156页,创作于2023年2月 ORG0000HKB: MOVP1,#0FFH MOVA,P1 CPLA ANLA,#0FH JZKBACK LCALLD10MS MOVA,P1 CPLA ANLA,#0FH JZKBACK CJNEA,#01H,KB01 LCALLPGM1 SJMPKBACKKB01: CJNEA,#02H,KB02 LCALLPGM2 SJMPKBACKKB02: CJNEA,#04H,KB LCALLPGM3KBACK:LJMPKB END编程(1):按三个按键中的任一键都对应一个特定功能。若判断键释放应如何修改?第86页,课件共156页,创作于2023年2月矩阵式按键关键:如何判断键号?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口电路:特点:按键识别应采用扫描法或线路反转法编程较为复杂,节省口资源,8键以上使用第87页,课件共156页,创作于2023年2月键盘扫描子程序一般包括以下内容:
1.判别有无键按下;
2.扫描获取闭合键的行、列值;
3.用计算法或查表法得到键值;
4.判断闭合键释放否,如没释放则继续等待;
5.保存闭合键号。第88页,课件共156页,创作于2023年2月键按下/释放判断
KS:MOVA,#00H MOVP1,A ;全扫描字#00H送P1口
MOVP1,#0FHMOVA,P1;读入P1口状态
CPLA;变正逻辑,高电平表示有键按下
ANLA,#0FH;取低4位
RET ;返回,A≠0表示有键按下
第89页,课件共156页,创作于2023年2月按键识别——扫描法
流程:
当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。
原理:
在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。第90页,课件共156页,创作于2023年2月例2:键盘扫描程序SERCH:MOVR2,#0EFH MOVR3,#00HLINE0:MOVA,R2 MOVP1,A MOVA,P1 JBACC.3,LINE1 MOVA,#00H AJMPTRYKLINE1:JBACC.2,LINE2 MOVA,#04H AJMPTRYK LINE2:JBACC.1,LINE3MOVA,#08H接口电路第91页,课件共156页,创作于2023年2月
AJMPTRYK
LINE3:JBACC.0,LINE4
MOVA,#0CH
AJMPTRYK
LINE4:INCR3
MOVA,R2
RL A
JNBACC.0,BACK
MOVR2,A
AJMPLINE0
TRYK:ADDA,R3
BACK:RET 接口电路第92页,课件共156页,创作于2023年2月矩阵式按键关键:如何判断键号?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口电路:特点:按键识别应采用扫描法或线路反转法编程较为复杂,节省口资源,8键以上使用第93页,课件共156页,创作于2023年2月定时扫描方式
定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。第94页,课件共156页,创作于2023年2月中断扫描方式
为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。第95页,课件共156页,创作于2023年2月9.2显示器接口技术LED的结构和显示原理静态显示方式动态显示方式动态显示的实现动态显示方式第96页,课件共156页,创作于2023年2月问题引入:
LED显示器如何显示出指定数字/字符?comcom第97页,课件共156页,创作于2023年2月例:模拟产品计数显示电路第98页,课件共156页,创作于2023年2月编程
ORG 1000HSTAR:MOV TMOD,#60H ;定时器T1工作在方式2计数
MOV TH1,#00H;T1置初值
MOV TL1,#00HMAIN:MOV P1,#0C0H ;数码管显示0DISP:JBP3.3,DISP;监测按键信号
ACALL DELAY ;消抖延时
JBP3.3,DISP;确认低电平信号DISP1:JNB P3.3,DISP1 ;监测按键信号
ACALL DELAY ;消抖延时
JNB P3.3,DISP1 ;确认高电平信号
SETBTR1;启动计数器DISP2:MOVA,TL1MOVCA,@A+DPTR;查表获取数码管显示值
MOV P1,A ;数码管显示计数值
CJNEA,#8E,DISP2 LJMP STAR TAB:0C0H,0F9H,0A4H…… DELAY:MOVR2,#14HDELAY1:MOVR3,#0FAHDJNZR3,$DJNZR2,DELAY1RETEND第99页,课件共156页,创作于2023年2月静态显示方式连接
所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选线分别连接一个8位并行I/O口,从该I/O口送出相应的字型码显示字型。
特点原理简单;显示亮度强,无闪烁;占用I/O资源较多。第100页,课件共156页,创作于2023年2月动态显示方式连接
所有LED的段选线共同连接在一起共用一个8位I/O口,而每个LED的位选分别由一根相应的I/O口线控制。因此必须采用动态扫描显示方式,每一个时刻只选通其中一个LED,同时在段选口送出该位LED的字型码。
第101页,课件共156页,创作于2023年2月动态显示基本原理
电路的接法决定了必须采用逐位扫描显示方式。即从段选口送出某位LED的字型码,然后选通该位LED,并保持一段延时时间。然后选通下一位,直到所有位扫描完。
要注意的两个问题:
1.字型码通常通过查表指令MOVC来求得.2.换位显示时通常要加一段程序使所有的LED全灭.第102页,课件共156页,创作于2023年2月动态显示程序流程图
采用动态扫描方式依次循环点亮各位数码管,构成多位动态数码管显示电路。开始显示缓冲区首地址送R0显示位数送R2起始显示位送R3禁止所有位(关显示)从缓冲区取要显示的数查表得字型码指向段选口,送字型码指向位选口,送位选码延时指向显示缓冲区下一个单元位选码左移结束11扫描完一遍吗?YN第103页,课件共156页,创作于2023年2月
试编制程序,要求当其中某一按键压下时与其对应的二极管将被点亮。课堂练习P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.08031+5V第104页,课件共156页,创作于2023年2月9.3D/A转换器接口D/A转换器的作用典型芯片DAC0832DAC0832的应用第105页,课件共156页,创作于2023年2月D/A转换器的作用单片机控制对象D/A转换将数字量转换为模拟量,以便操纵控制对象。D/A转换器的主要指标
转换速度:一般几十微秒到几百微秒,快速的可达1微秒。转换精度(分辨率):决定于输入数字量的位数,位数越多,精度越高。第106页,课件共156页,创作于2023年2月典型芯片-DAC0832介绍DAC0832是一个八位D/A转换器,转换时间1微秒,结构如下:输出为模拟电流,可转换为电压。LE1或LE2=1,当前寄存器的输出跟随输入LE1或LE2=0,锁存数据第107页,课件共156页,创作于2023年2月DAC0832功能分析DI0-DI7:转换数据输入CS:片选信号ILE,WR1:控制输入寄存器
ILE=1,WR1=0时:直通
ILE=1,WR1=1时:锁存因此,DAC0832可以有三种工作形式:直通、单级锁存、两级锁存。XFER,WR2:控制DAC寄存器
XFER=0,WR2=0时:直通
XFER=1orWR2=1时:锁存第108页,课件共156页,创作于2023年2月
单缓冲方式的接口(1)
译码器输出——一个处于直通方式,另一个处于受控的锁存方式
第109页,课件共156页,创作于2023年2月“同时”做何解释?单缓冲方式的接口(2)
——两个输入寄存器同时受控的方式
第110页,课件共156页,创作于2023年2月单缓冲方式的应用
——产生锯齿波
假定采用接口(1)方式,即输入寄存器受控,而DAC寄存器直通,输入寄存器地址为E000H,产生锯齿波。源程序清单如下:
ORG0200 MOVDPTR,#0E000H;指向输入寄存器地址
MOVA,#00H;转换初值WW: MOVX@DPTR,A;WR1有效,启动D/A转换
INCA NOP;延时
NOP AJMPWW第111页,课件共156页,创作于2023年2月1/282/283/28254/28255/280产生的锯齿波的过程第112页,课件共156页,创作于2023年2月D/A转换产生的锯齿波
用同样的方法也可以产生三角波、矩形波、梯形波。若将A的初值改为FFINC改为DEC?ORG0200 MOVDPTR,#0E000H;指向输入寄存器地址
MOVA,#0FFH;转换初值WW: MOVX@DPTR,A;WR1有效,启动D/A转换
A NOP;延时
NOP AJMPWWDECINC第113页,课件共156页,创作于2023年2月——两个锁存器都接成受控锁存方式。双缓冲方式的接口和应用对一个数字量的转换,需两步完成,程序如下:MOVDPTR,#00E0HMOVX@DPTR,AMOVDPTR,#00C0HMOVX@DPTR,A输入寄存器地址:00E0HDAC寄存器地址:00C0H你知道它与第二种单缓冲方式的区别吗?Y7A7
A6A574LS138Y6C
B
AY7Y6第114页,课件共156页,创作于2023年2月9.4A/D转换器接口A/D转换器的作用典型芯片ADC0809ADC0809的应用第115页,课件共156页,创作于2023年2月A/D转换器的作用将模拟量转换为数字量,以便计算机接收处理传感器单片机A/D转换双积分式A/D转换器逐次逼近式A/D转换器。第116页,课件共156页,创作于2023年2月A/D转换器概述逐次逼近式典型A/D转换器芯片有:(1)ADC0801~ADC0805型8位MOS型A/D转换器(2)ADC0808/0809型8位MOS型A/D转换器(3)ADC0816/0817第117页,课件共156页,创作于2023年2月典型芯片—ADC0809介绍ADC0809是一个8位8通道的AD转换器。第118页,课件共156页,创作于2023年2月ADC0809功能分析CLK:时钟信号,可由单片机ALE信号分频得到。转换有以下几步:ALE信号上升沿有效,锁存地址并选中相应通道。ST信号有效,开始转换。A/D转换期间ST为低电平。EOC信号输出高电平,表示转换结束。OE信号有效,允许输出转换结果。第119页,课件共156页,创作于2023年2月ADC0809和单片机的连接写信号、P2.0有效时,启动AD转换。转换结束后,输出高电平,向CPU发出中断请求读信号、P2.0有效时,允许输出AD转换结果。转换时钟由ALE分频得到。803174LS373ADC0809÷2CLKD0-D7≥1≥1111GEOCSTALEOERDP2.0WRINT1ALEP0A0-A7A0A1A2ABCVR(+)VR(-)+5VGNDIN0IN7IN6IN5IN4IN3IN2IN1转换结果由此输出第120页,课件共156页,创作于2023年2月通道选择表
选择的通道000001010011100101110111IN0IN1IN2IN3IN4IN5IN6IN7CBA8031A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A00809×××××××ST×××××CBA
×××××××0×××××000
…
…
×××××××0×××××1111.首先分析各个通道的地址。(IN0到IN7的地址为0000H到0007H)第121页,课件共156页,创作于2023年2月编程应用—中断方式编程:可采用中断、查询两种方式。中断方式:
ORG0000H ;主程序入口地址
AJMPMAIN ;跳转主程序
ORGOO13H ;中断入口地址
AJMPINT1 ;跳转中断服务程序
MAIN:SETBIT1 ;边沿触发
SETBEA ;开中断
SETBEX1 ;允许中断
MOVDPTR,#0007H;指向0809IN7通道地址第122页,课件共156页,创作于2023年2月MOVX@DPTR,A ;启动A/D转换
SJMP$ ;等待中断INT1:MOVXA,@DPTR
;读A/D转换结果
MOVB,A ;存数
RETI ;返回第123页,课件共156页,创作于2023年2月查询方式:
ORG0000H ;主程序入口地址
AJMPMAIN ;跳转主程序
ORG1000H ;中断入口地址MAIN:MOVDPTR,#0007H;指向0809IN7通道地址
MOVX@DPTR,A ;启动A/D转换
L1:JBP3.3L1 ;查询
MOVXA,@DPTR
;读A/D转换结果
MOVB,A ;存数
SJMP$第124页,课件共156页,创作于2023年2月综合应用语音数字化存储与回放系统第125页,课件共156页,创作于2023年2月主控电路
第126页,课件共156页,创作于2023年2月分析实训电路板中0809的连接,确定各通道地址。对通道0输入模拟电压,运行转换程序,用动态显示方式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度蔬菜品牌授权使用合同
- 二零二五版锅炉设备维护保养与能源审计合同范本3篇
- 2025版内河水路危险品运输合同及应急救援协议3篇
- 二零二五年度挖机操作技能竞赛赞助合同
- 1 如何合理选择抗凝药物
- 二零二五版民房建筑项目施工合同履约监督协议范本4篇
- 2018年税务稽查风险防范及企业应对策略
- 2025年度个人房屋买卖价格调整及支付合同2篇
- 二零二五年度户外广告牌发布与社区宣传合作合同范本3篇
- 2025年度农用土地托管服务与机械租赁合同4篇
- 2025贵州贵阳市属事业单位招聘笔试和高频重点提升(共500题)附带答案详解
- 2024年住院医师规范化培训师资培训理论考试试题
- 期末综合测试卷(试题)-2024-2025学年五年级上册数学人教版
- 招标采购基础知识培训
- 2024年广东省公务员录用考试《行测》试题及答案解析
- 五年级口算题卡每天100题带答案
- 结构力学本构模型:断裂力学模型:断裂力学实验技术教程
- 2024年贵州省中考理科综合试卷(含答案)
- 无人机技术与遥感
- PDCA提高卧床患者踝泵运动的执行率
- 黑色素的合成与美白产品的研究进展
评论
0/150
提交评论