版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、5.1 mcs-51单片机并行单片机并行i/o口口5.2 mcs-51单片机中断系统单片机中断系统5.3 mcs-51单片机定时器单片机定时器/计数器计数器5.4 mcs-51单片机串行接口单片机串行接口5.5 思考与练习题思考与练习题http:/ mcs-51单片机的功能模块单片机的功能模块主要内容:主要内容:介绍介绍5151系列单片机主要内部功能模块:系列单片机主要内部功能模块:有并行有并行i/oi/o口、中断系统、定时口、中断系统、定时/ /计数器和串行接口。计数器和串行接口。 要求:要求: 1 1、掌握、掌握5151系列单片机的各功能模块的结构和工作系列单片机的各功能模块的结构和工作原
2、理;原理; 2 2、各模块应用程序的编写。、各模块应用程序的编写。http:/ mcs-51单片机单片机并行并行i/o口口 i/oi/o口的作用:口的作用:v1 1 实现实现cpucpu与外设间的速度匹配;与外设间的速度匹配;v2 2 改变数据的传送方式(并行、串行);改变数据的传送方式(并行、串行);v3 3 改变信号的性质(改变信号的性质(a/da/d)和信号的电平()和信号的电平(ttlttl电平与电平与rs232rs232电平)电平)外设的编址:外设的编址:v独立编址独立编址 编址范围编址范围0000h0ffffh0000h0ffffh,有专有的传送指,有专有的传送指令;令;v与存储器
3、统一编址与存储器统一编址 编址范围编址范围0ff00h0ffffh0ff00h0ffffh,传送指,传送指令令 movx amovx a,dptr movx dptrdptr movx dptr,a ahttp:/ mcs-51单片机单片机并行并行i/o口口 i/o i/o 数据的四种传送方式数据的四种传送方式v无条件传送(同步传送)无条件传送(同步传送)v条件传送(异步传送)条件传送(异步传送)v中断传送中断传送vdmadma传送传送http:/ mcs-51单片机单片机并行并行i/o口口 vmcs-51mcs-51单片机具有单片机具有4 4个双向的个双向的8 8位位i/oi/o口口p0p3
4、p0p3,p0p0口为口为三态双向口,负载能力为三态双向口,负载能力为8 8个个ttlttl电路,电路,p1p3p1p3口为准口为准双向口双向口( (用作输入时,口线被拉成高电平,故称为准用作输入时,口线被拉成高电平,故称为准双向口双向口) ),负载能力为,负载能力为4 4个个ttlttl电路。电路。v各口中的每一位都是由锁存器(称特殊功能寄存器各口中的每一位都是由锁存器(称特殊功能寄存器sfrsfr)、输出驱动器和输入缓冲器组成。这种结构,)、输出驱动器和输入缓冲器组成。这种结构,在数据输出时可锁存,但对输入信息是不锁存的,所在数据输出时可锁存,但对输入信息是不锁存的,所以从外部输入的信息必
5、须保持到取数指令执行完为止。以从外部输入的信息必须保持到取数指令执行完为止。 http:/ p05.1.1 p0口口 p0p0口是一个三态双向口,在系统扩展时,口是一个三态双向口,在系统扩展时,可作为低可作为低8 8位地址线和数据总线的分时复用口,位地址线和数据总线的分时复用口,在其他状态下可作为通用在其他状态下可作为通用i/oi/o接口,其接口,其1 1位的结构位的结构原理如图原理如图5.15.1所示,所示,p0p0口由口由8 8个这样的电路组成。个这样的电路组成。 http:/ p05.1.1 p0口口 图图5.1http:/ p05.1.1 p0口口 p0p0口是一个多功能口是一个多功能
6、8 8位口,可以字节访问,也可位口,可以字节访问,也可位访问,字节访问地址为位访问,字节访问地址为80h80h,位访问地址为,位访问地址为80h87h80h87h。(1) p0(1) p0口用于口用于i/oi/o口是准双向口是准双向i/oi/o口。口。 作为作为i/oi/o口使用时,控制信号应为口使用时,控制信号应为“0 0”,多路,多路开关接通输出锁存器的开关接通输出锁存器的 端。同时与门关闭,上拉端。同时与门关闭,上拉fetfet截止,形成截止,形成p0p0口的输出电路为漏极开路输出。需口的输出电路为漏极开路输出。需要外接上拉电阻。要外接上拉电阻。a)a)作输出口时:作输出口时: 不需要条
7、件,可以正确的输出不需要条件,可以正确的输出b)b)作输入口时:作输入口时:当当cpucpu复位后进行输入操作时,输入信息是正确的。复位后进行输入操作时,输入信息是正确的。 当当p0p0口的某位(或整个口的某位(或整个p0p0口)先进行了输出操作,口)先进行了输出操作,而后要由输出变成输入操作方式时,必须先用输出而后要由输出变成输入操作方式时,必须先用输出指令将锁存器置指令将锁存器置“1 1”,才能保证输入信息正确。,才能保证输入信息正确。 (即是准双向的含义)(即是准双向的含义)qhttp:/ p05.1.1 p0口口(2 2)p0p0口用于地址口用于地址/ /数据分时复用时是真正双向数据分
8、时复用时是真正双向i/oi/o口。口。当控制当控制=1=1时,时,muxmux接通地址接通地址/ /数据输出端。数据输出端。a)a)当地址当地址/ /数据输出线置数据输出线置1 1时,时,“与与”门输出为门输出为1 1,上拉,上拉fetfet导通,同时地址导通,同时地址/ /数据输出通过反相器输出数据输出通过反相器输出0 0,控,控制下拉制下拉fetfet截止,这样截止,这样a a点电位上拉,地址点电位上拉,地址/ /数据输出数据输出线为线为1 1。b)b)当地址当地址/ /数据输出线置数据输出线置0 0时,时,“与与”门输出为门输出为0 0,上拉,上拉fetfet截止,同时地址截止,同时地址
9、/ /数据输出通过反相器输出数据输出通过反相器输出1 1,控,控制下拉制下拉fetfet导通,这样导通,这样a a点电位下拉,地址点电位下拉,地址/ /数据输出数据输出线为线为0 0。输入数据,控制输入数据,控制=0=0,分析同(,分析同(1 1)中的输入中的第一种)中的输入中的第一种情况。情况。 通过上述分析可以看出,此时的输出状态随地址通过上述分析可以看出,此时的输出状态随地址/ /数据数据线而变。因此,线而变。因此,p0p0口可以作为地址口可以作为地址/ /数据复用总线使数据复用总线使用(需要加地址锁存器)。此时的用(需要加地址锁存器)。此时的p0p0口相当一个双口相当一个双向口。向口。
10、http:/ p15.1.2 p1口口vp1p1口是一个口是一个8 8位口,可以字节也可按位访问,位口,可以字节也可按位访问,其字节地址为其字节地址为90h90h,位访问地址为,位访问地址为90h97h90h97h。vp1p1口是一个准双向口是一个准双向i/oi/o口,其口,其1 1位的内部结位的内部结构如图构如图5.25.2所示。所示。http:/ p15.1.2 p1口口图图5.2http:/ p15.1.2 p1口口 它在结构上与p0口的区别在于输出驱动部分,其输出驱动部分由场效应管v1与内部上拉电阻组成。当其某位输出为1时,使输出驱动器中的场效应管截止,该位的输出由内部等效的上拉电阻拉
11、成高电平,输出1。当输出为0时,输出场效应管导通则输出引脚为低电平,输出为0。不必像p0口那样需要外接上拉电阻。http:/ p15.1.2 p1口口v在8051/80c51单片机中,p1口只有通用i/o接口一种功能,它的每一位可以分别定义为输入或输出,其输入输出原理特性与p0口作为通用i/o接口使用时一样。p1口具有驱动4个lsttl负载的能力。v在8052/80c52单片机中,p1口p1.0与p1.1除作为通用i/o接口线外,还具有第二功能,即p1.0可作为定时器/计数器2的外部计数脉冲输入端t2,p1.1可作为定时器/计数器2的外部控制输入端t2ex。http:/ p25.1.3 p2口
12、口 p2口也是一个准双向i/o口,其1位内部结构见图5.3。在访问外部存储器时,p2口作为高8位地址输出口,在其他时候作为一般i/o接口使用。http:/ p25.1.3 p2口口图图5.3http:/ p25.1.3 p2口口v当作为准双向通用i/o口使用时,控制信号为低电平无效,多路转换器mux接通锁存器q端,锁存器q端经反相器3接控制场效应管v1,其工作原理与p1相同,负载能力也与p1相同。v当作为外部扩展存储器的高8位地址总线使用时,控制信号应为高电平“1”有效,多路转换开关mux接通地址信号,来自程序计数器pc的高8位地址pch,或数据指针dptr的高8位地址dph经反相器3和v1反
13、相后复原在p2.x口的引脚上,输出高8位地址a8a15。在上述情况下,口锁存器的内容不受影响,所以,取指或访问外部存储器结束后,由于转换开关又接至左侧,使输出驱动器与锁存器q端相连,引脚上将恢复原来的数据。http:/ p35.1.4 p3口口 p3口是一个多功能的8位口,可以字节访问也可位访问,其字节访问地址为b0h,位访问地址为b0hb7h。p3p3口的功能:口的功能: (1)可作i/o口使用,为准双向口。这方面的功能与p1口一样。 (2)每一位均具有第2功能。 http:/ p35.1.4 p3口口图图5.4http:/ p35.1.4 p3口口v当p3口作为通用i/o接口时,要求第2功
14、能输出线保持高电平,使与非门3的输出取决于口锁存器的状态。在这种情况下,p3口仍是1个准双向口,它的工作方式、负载能力均与p1、p2口相同。 v当p3口作为第2功能(各引脚功能见表5.1)使用时就不能再做通用输出口使用,其锁存器q端必须为高电平,以允许第2功能输出,在做第2功能输入时,虽仍做通用输入口,但已无实际意义。 http:/ 5.1.5 接口的使用原则接口的使用原则1. i/o1. i/o接口的读、写、修改接口的读、写、修改每个每个i/oi/o口均有两种口均有两种“读读”方式:读引脚和读锁方式:读引脚和读锁存器。存器。读引脚:读引脚:是读外部接口的电平信号,读引脚信号是读外部接口的电平
15、信号,读引脚信号有效。真正读引脚的指令只有有效。真正读引脚的指令只有 mov amov a,pxpx读锁存器读锁存器:是将接口锁存器的:是将接口锁存器的q q端信号读回,写端信号读回,写锁存器信号有效。锁存器信号有效。 读锁存器指令主要用于读读锁存器指令主要用于读修改修改写指令。写指令。如下列这些指令:如下列这些指令:如:如: orl orl 、xrl xrl 、jbc jbc 、cpl cpl 、inc inc 、dec dec 、djnz djnz 、mov px ,y mov px ,y 、 clr px.yclr px.y和和set px.yset px.y。http:/ 5.1.5
16、接口的使用原则接口的使用原则2. 使用原则vmcs-51单片机中的4个i/o口在实际使用中,一般遵循以下用法:p0口一般做系统扩展地址低8位/数据复用口,p1口一般做i/o扩展口,p2口做系统扩展地址高8位和i/o口扩展的地址译码用,p3口做中断输入、串行通用口使用。v在各个口的带负载能力和接口要求上,由于p0口的输出级与p1p3口的输出级在结构上不同,所以,要求也不同。p0口的每一位可驱动8个ttl输入,在做通用i/o口使用时,输出级是开漏电路,故需外部加上拉电阻。在做地址/数据总线使用时,不需要外接上拉电阻。p1p3的输出级内部有高效的上拉电阻,每一位输出可驱动4个ttl输入。http:/
17、 接口的使用原则接口的使用原则http:/ mcs-515.2 mcs-51单片机中断系统单片机中断系统 5.2 mcs-515.2 mcs-51单片机中断系统单片机中断系统一、中断的基本概念一、中断的基本概念“中断中断”是处理事件的一个是处理事件的一个“过程过程”,这一,这一过程一般是由计算机内部或外部某种紧急事件引过程一般是由计算机内部或外部某种紧急事件引起并向主机发出请求处理的信号,主机在允许情起并向主机发出请求处理的信号,主机在允许情况下响应请求,暂停正在执行的程序,保存好况下响应请求,暂停正在执行的程序,保存好“断点断点”处的现场,转去执行中断处理程序,处理处的现场,转去执行中断处理
18、程序,处理完后恢复现场,自动返回到原断点处,继续执行完后恢复现场,自动返回到原断点处,继续执行原程序。这一处理过程就称为原程序。这一处理过程就称为“中断中断”。 http:/ mcs-515.2 mcs-51单片机中断系统单片机中断系统中断程序与子程序的区别:中断程序与子程序的区别:调用中断服务程序的过程类似于调用子程序,调用中断服务程序的过程类似于调用子程序,其区别在于调用子程序在程序中是事先安排其区别在于调用子程序在程序中是事先安排好的,而何时调用中断服务程序事先却无法好的,而何时调用中断服务程序事先却无法确定,因为确定,因为“中断中断”的发生是由外部因素决的发生是由外部因素决定的,程序中
19、无法事先安排调用指令,因此,定的,程序中无法事先安排调用指令,因此,调用中断服务程序的过程是由硬件自动完成调用中断服务程序的过程是由硬件自动完成的。的。http:/ 中断的基本概念图图5.5 中断执行过程中断执行过程http:/ 1. 中断源:中断源就是中断请求信号的来源。中断源:中断源就是中断请求信号的来源。2. 2. 中断响应与返回中断响应与返回3. 3. 优先级控制优先级控制图图5.6 二级中断嵌套的中断过程二级中断嵌套的中断过程5.2.1 中断的基本概念http:/ 中断源和中断请求标志中断源和中断请求标志 中断源是指在计算机系统中向中断源是指在计算机系统中向cpucpu发出中断请发出
20、中断请求的来源求的来源, , 中断可以人为设定中断可以人为设定, , 也可以是为响应也可以是为响应突发性随机事件而设置。通常有突发性随机事件而设置。通常有i/oi/o设备、实时设备、实时控制系统中的随机参数和信息故障源等。可分为控制系统中的随机参数和信息故障源等。可分为外部中断和内部中断。外部中断和内部中断。5.2.2 中断源和中断请求标志http:/ 中断源和中断请求标志图图5.7 5.7 中断系统结构中断系统结构http:/ 1”或或“0 0”,进而控制外,进而控制外中断请求信号方式。可以使用字节操指令,也可用位操作指令:中断请求信号方式。可以使用字节操指令,也可用位操作指令:clr it
21、0 clr it0 ; 定义外中断定义外中断0 0为电平触发方式。为电平触发方式。orl tcon orl tcon ,#05h#05h; 定义两外中断均为脉冲触发方式定义两外中断均为脉冲触发方式5.2.2 中断源和中断请求标志1 1外部中断外部中断由由p3.2p3.2、 p3.3p3.3输入中断请求信号,外部中断请求有两种触发方式:输入中断请求信号,外部中断请求有两种触发方式:电平触发及边沿触发电平触发及边沿触发。用户可以通过对特殊功能寄存器。用户可以通过对特殊功能寄存器tcontcon中中it0it0和和it1it1位的编程来选择。相应位定义格式如下:位的编程来选择。相应位定义格式如下:
22、0int1inthttp:/ (硬件置硬件置位、硬件复位位、硬件复位) ) ie0(ie1)=1 ie0(ie1)=1,表示,表示 ( )( )检测到有效检测到有效的中断请求信号;的中断请求信号; ie0(ie1)=0ie0(ie1)=0,表示,表示 ( )( )上无有效的上无有效的中断请求信号。中断请求信号。0int1int0int1int5.2.2 中断源和中断请求标志http:/ 2内部中断内部中断内部中断有:内部中断有:定时器定时器/ /计数器计数器t0/t1t0/t1的溢出中断,的溢出中断,串行口的发送串行口的发送/ /接收中断。接收中断。 t0/t1t0/t1的溢出中断标志位的溢出
23、中断标志位tf0tf0、 tf1tf1 :对外部脉冲计:对外部脉冲计数由数由p3.4 p3.4 、p3.5p3.5输入脉冲信号。当输入脉冲信号。当t0/t1t0/t1计数到由全计数到由全1 1变变为全为全0 0时,由时,由硬件自动置位硬件自动置位tcontcon的的tf0tf0或或tf1tf1,向,向cpucpu申请申请中断。中断。 cpucpu响应中断后能自动撤除中断请求信号响应中断后能自动撤除中断请求信号( (硬件复硬件复位位) )。 5.2.2 中断源和中断请求标志http:/ 串行口的中断标志位串行口的中断标志位ti ti 、riri :当串行口发送完或接:当串行口发送完或接收完一帧信
24、息后,通过接口硬件收完一帧信息后,通过接口硬件自动置位自动置位sconscon的的titi或或riri位向位向cpucpu申请的。当申请的。当cpucpu响应中断后,需用户采用响应中断后,需用户采用软件方软件方法清零法清零,以便撤除中断请求信号。,以便撤除中断请求信号。5.2.2 中断源和中断请求标志http:/ 0。riri:串行口接收中断源。接收完一帧,由:串行口接收中断源。接收完一帧,由硬件置位硬件置位。响应。响应中断后,必须用中断后,必须用软件清软件清0 0。5.2.2 中断源和中断请求标志http:/ 中断系统控制中断系统控制1 1中断允许控制寄存器中断允许控制寄存器 mcs-51m
25、cs-51单片机对各中断源的中断开放单片机对各中断源的中断开放( (允许允许) )或关闭或关闭( (屏屏蔽蔽) )是由内部的中断允许寄存器是由内部的中断允许寄存器ieie的各位来进行两级控制的各位来进行两级控制的。所谓两级控制是指各个中断源的允许控制位与一个中的。所谓两级控制是指各个中断源的允许控制位与一个中断允许总控位断允许总控位eaea配合实现对中断请求的控制。配合实现对中断请求的控制。 eaea(ie.7ie.7):允许禁止全部中断。当:允许禁止全部中断。当ea=0ea=0,则禁止所有,则禁止所有中断的响应;当中断的响应;当eaea1 1,则各中断源的响应与否取决于各,则各中断源的响应与
26、否取决于各自的中断控制位的状态。自的中断控制位的状态。5.2.3 中断系统控制http:/ 中断系统控制 x(ie.6x(ie.6):保留位,无意义。):保留位,无意义。et2(ie.5et2(ie.5):定时计数器:定时计数器2 2(80528052型单片机)的溢出或捕型单片机)的溢出或捕获中断响应控制位。获中断响应控制位。et2=0et2=0则禁止中断响应(关中断);则禁止中断响应(关中断);et2=1et2=1为允许中断响应(开中断)。为允许中断响应(开中断)。eses(ie.4ie.4):串行通信接收发送中断响应控制位。:串行通信接收发送中断响应控制位。eses0 0,禁止中断响应(关
27、中断),禁止中断响应(关中断) ; es=1es=1,允许中断响应,允许中断响应(开中断)(开中断) 。etieti(ie.3, ie.1 ie.3, ie.1 ):定时器计数器:定时器计数器i(i=0i(i=0、1)1)的溢出的溢出中断响应控制位。中断响应控制位。eti=0eti=0,禁止中断响应(关中断),禁止中断响应(关中断) ;eti=1eti=1,则允许中断响应(开中断),则允许中断响应(开中断) 。exiexi(ie.2 ie.2 、ie.0 ie.0 ):外部中断:外部中断i i( )中断响应控制)中断响应控制位。位。 exi=0exi=0,禁止中断响应(关中断),禁止中断响应(
28、关中断) ; exi=1exi=1则允则允许中断响应(开中断)许中断响应(开中断) 。iinthttp:/ 中断系统控制例如例如: :要使要使int0int0开中开中( (其余关中其余关中) ),可执行下列指令:,可执行下列指令: mov iemov ie,#1000000lb #1000000lb ; 或者:或者: setb ea setb ea ; setb ex0 setb ex0 ; http:/ 中断系统控制 2 2中断优先级控制中断优先级控制 cpucpu同一时间只能响应一个中断请求。若同时来了两同一时间只能响应一个中断请求。若同时来了两个或两个以上中断请求,就必须有先有后。个或两
29、个以上中断请求,就必须有先有后。mcs-51mcs-51单片机单片机的中断源有两个用户可控的中断优先级,即的中断源有两个用户可控的中断优先级,即高、低中断优高、低中断优先级先级,从而实现中断嵌套。,从而实现中断嵌套。http:/ 中断系统控制cpucpu响应中断的原则是:响应中断的原则是:1 1)先高后低)先高后低 如果多个中断请求同时出现,如果多个中断请求同时出现,cpucpu首先响应优先级别最首先响应优先级别最高的中断请求;高的中断请求;2 2)高可断低)高可断低 高优先级的中断请求可中断正在执行的低优先级中断服高优先级的中断请求可中断正在执行的低优先级中断服务程序,实现中断嵌套;务程序,
30、实现中断嵌套;3 3)同低不断)同低不断 同级或低优先级的中断请求不能中断正在执行的中断服同级或低优先级的中断请求不能中断正在执行的中断服务程序。如果有两个或两个以上的同一优先级别的中断源务程序。如果有两个或两个以上的同一优先级别的中断源同时向同时向cpucpu申请中断,则这些同级中断源的中断优先权按申请中断,则这些同级中断源的中断优先权按cpucpu对内部硬件的查询次序决定对内部硬件的查询次序决定 。http:/ 中断系统控制ipip寄存器的格式如下:寄存器的格式如下: ( (可通过软件设置,定义各中断可通过软件设置,定义各中断源的中断优先级别源的中断优先级别) )、(ip.6ip.6、ip
31、.7ip.7):保留位,无定义。):保留位,无定义。pt2pt2(ip.5ip.5):t2t2的中断优先级设置位。通过编程设置的中断优先级设置位。通过编程设置 pt2=1pt2=1,则定义为高优先级中断;设置,则定义为高优先级中断;设置pt2=0pt2=0,则定,则定义为低优先级中断。义为低优先级中断。psps(ip.4ip.4):串行通信中断优先级设置位。软件设置:串行通信中断优先级设置位。软件设置 ps=1ps=1,则定义为高优先级中断;设,则定义为高优先级中断;设ps=0ps=0,则定义为,则定义为低优先级中断。低优先级中断。http:/ 中断系统控制ptipti(ip.3ip.3、ip
32、.1ip.1):titi中断优先级设置位。软件设中断优先级设置位。软件设置置pti=1pti=1,则定义为高优先级中断;设置,则定义为高优先级中断;设置pti=0pti=0,则定义为低优先级中断。则定义为低优先级中断。 pxipxi(ip.2ip.2、ip.0ip.0):外部中断:外部中断i i中断优先级设置位。中断优先级设置位。软件设置软件设置pxi=1pxi=1,则定义为高优先级中断;设置,则定义为高优先级中断;设置pxi=0pxi=0,则定义为低优先级中断。,则定义为低优先级中断。例如例如:若要将若要将int1int1、串行口设置为高优先级,其余中断、串行口设置为高优先级,其余中断源设置
33、为低优先级,可执行下列指令:源设置为低优先级,可执行下列指令: mov ipmov ip,#00010100b#00010100b;http:/ 中断系统控制 当同时有两个或两个以上优先级相同的中断请求时,当同时有两个或两个以上优先级相同的中断请求时,则由内部按查询优先顺序来确定该响应的中断请求,其优则由内部按查询优先顺序来确定该响应的中断请求,其优先顺序由高向低顺序排列。优先顺序排列如下:先顺序由高向低顺序排列。优先顺序排列如下: 中断优先原则:中断优先原则:1 1、低级不打断高级、低级不打断高级2 2、高级不睬低级、高级不睬低级3 3、同级不能打断、同级不能打断4 4、同级、同时中断,、同
34、级、同时中断,事先约定。事先约定。 http:/ 中断处理过程四、四、 中断处理过程中断处理过程中断处理过程大致可分为四步:中断请求、中断响中断处理过程大致可分为四步:中断请求、中断响应、中断服务、中断返回。应、中断服务、中断返回。1. 1. 中断请求中断请求 中断源发出中断请求信号,相应的中断请求标志位中断源发出中断请求信号,相应的中断请求标志位( (在中在中断允许控制寄存器断允许控制寄存器ieie中中) )置置“1 1”。http:/ 中断处理过程2 2中断响应中断响应1)1)响应的条件响应的条件 cpucpu在每个机器周期的在每个机器周期的s6s6按照优先级查询按照优先级查询中断标志位,
35、当相应中断源有中断请求且满足如下条件之中断标志位,当相应中断源有中断请求且满足如下条件之一时,一时,msc-51msc-51单片机响应中断。单片机响应中断。(1)(1)无同级或高级中断正在处理或无同级或高级中断正在处理或cpucpu处在非中断响应状态,处在非中断响应状态,cpucpu处于开中断处于开中断( (即即ea=1)ea=1)状态且相应中断是开放的状态且相应中断是开放的( (中断允中断允许寄存器许寄存器ieie相应位置相应位置1)1)。(2)(2)若若cpucpu正在响应某一中断请求时又来了新的中断请求,正在响应某一中断请求时又来了新的中断请求,则应满足高级中断可以中断低级中断,实现中断
36、嵌套;低则应满足高级中断可以中断低级中断,实现中断嵌套;低级中断只能等待现有中断服务完成后再被响应的原则。级中断只能等待现有中断服务完成后再被响应的原则。(3)(3)若若cpucpu现行执行的指令为现行执行的指令为retireti或任何访问或任何访问ieie、ip(ip(如如setb ea)setb ea)的指令时,则执行完该指令且紧随其后的另一的指令时,则执行完该指令且紧随其后的另一条指令也已执行完毕后才响应该中断请求。条指令也已执行完毕后才响应该中断请求。http:/ 中断处理过程2)2)中断响应过程中断响应过程 首先首先,根据中断源的优先级高低,对相应的优先级状,根据中断源的优先级高低,
37、对相应的优先级状态触发器置态触发器置1 1; 然后然后,保护断点,把当前程序计数器,保护断点,把当前程序计数器pcpc的内容压入堆的内容压入堆栈。栈。 其次其次,封锁同级和低级中断,以防在响应中断期间受其,封锁同级和低级中断,以防在响应中断期间受其他中断的干扰,清除相应的中断请求标志位(串行口中断他中断的干扰,清除相应的中断请求标志位(串行口中断请求标志请求标志riri和和titi除外)除外) ; 最后最后,根据中断源入口地址,转入执行相应中断服务程,根据中断源入口地址,转入执行相应中断服务程序,各中断服务程序的入口地址见表序,各中断服务程序的入口地址见表5.15.1。 http:/ 中断处理
38、过程中断源入口地址int00003ht0000bhint10013ht1001bhri/ti0023h表表5.1 5.1 中断源入口地址中断源入口地址http:/ 中断处理过程3)3)中断响应时间中断响应时间 所谓中断响应时间是指所谓中断响应时间是指cpucpu检测到中断请求信号到转检测到中断请求信号到转入中断服务程序入口所需要的机器周期数。入中断服务程序入口所需要的机器周期数。 mcs-51mcs-51单片机响应中断的最短时间为单片机响应中断的最短时间为3 3个机器周期,个机器周期,时间最长需要时间最长需要8 8个机器周期。个机器周期。 http:/ 中断处理过程3 3 执行中断服务程序执行
39、中断服务程序 中断服务程序应包含以下几部分:中断服务程序应包含以下几部分: 保护现场:保护现场: 中断时刻单片机存储单元中的数据或状态中断时刻单片机存储单元中的数据或状态. . (2)(2)允许中断和禁止中断允许中断和禁止中断 在在cpucpu执行当前中断服务程序的过程中,往往又会执行当前中断服务程序的过程中,往往又会 有其它中断源的中断请求出现。有其它中断源的中断请求出现。 (3)(3)执行中断服务程序主体,完成相应操作执行中断服务程序主体,完成相应操作 (4)(4)恢复现场恢复现场http:/ 中断处理过程4 4 中断返回中断返回 在中断服务程序最后,必须安排一条中断返回指令在中断服务程序
40、最后,必须安排一条中断返回指令retireti,当,当cpucpu执行执行retireti指令后,自动完成下列操作:指令后,自动完成下列操作: 恢复断点地址。恢复断点地址。 开放同级中断,以便允许同级中断源请求中断。开放同级中断,以便允许同级中断源请求中断。http:/ 中断请求的撤除五、中断请求的撤除五、中断请求的撤除 中断源发出中断请求,相应中断请求标志置中断源发出中断请求,相应中断请求标志置“1 1”。 cpucpu响应中断后,响应中断后,必须必须清除中断请求清除中断请求“1 1”标志。否则中断标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。响应返回后,将再次进入该中断,引起
41、死循环出错。 对定时对定时/ /计数器计数器t0t0、t1t1中断,外中断边沿触发方式,中断,外中断边沿触发方式,cpucpu响应中断时就用响应中断时就用硬件自动清除硬件自动清除了相应的中断请求标志。了相应的中断请求标志。 对外中断电平触发方式,需要采取对外中断电平触发方式,需要采取软硬结合软硬结合的方法消除的方法消除后果。后果。 对串行口中断,用户应在串行中断服务程序中用对串行口中断,用户应在串行中断服务程序中用软件清软件清除除titi或或riri。http:/ 中断的应用及编程六、中断的应用及编程六、中断的应用及编程 中断初始化中断初始化 设置堆栈指针设置堆栈指针spsp 定义中断优先级定
42、义中断优先级 定义外中断触发方式定义外中断触发方式 开放中断开放中断 安排好等待中断或中断发生前主程序应完安排好等待中断或中断发生前主程序应完成的操作内容。成的操作内容。http:/ 中断的应用及编程 中断服务主程序中断服务主程序 在中断服务入口地址设置一条跳转指令,转在中断服务入口地址设置一条跳转指令,转移到中断服务程序的实际入口处。移到中断服务程序的实际入口处。 根据需要保护现场。根据需要保护现场。 中断源请求中断服务要求的操作。中断源请求中断服务要求的操作。 恢复现场。与保护现场相对应,注意先进后恢复现场。与保护现场相对应,注意先进后出、后进先出操作原则。出、后进先出操作原则。 中断返回
43、,最后一条指令必须是中断返回,最后一条指令必须是retireti。http:/ 中断的应用及编程例例5-15-1 若要求外部中断若要求外部中断 引脚为边沿触发方式,以及处引脚为边沿触发方式,以及处于高中断优先级,编写中断系统初始化程序。于高中断优先级,编写中断系统初始化程序。解:解:程序的编制有两种方法,一种是采用位操作指令进行程序的编制有两种方法,一种是采用位操作指令进行编制,另一种是字节型指令编制。程序分别如下。编制,另一种是字节型指令编制。程序分别如下。方法一:方法一:setb easetb easetbsetbex1ex1; ;开开int1int1中断中断setb px1setb px
44、1; ;令令int1int1为高优先级为高优先级setbsetbit1it1; ;令令int1int1为边沿触发方式为边沿触发方式方法二:方法二:movmovie,ie,#84h#84h; ;开开int1int1中断中断orlorlip,ip,#04h#04h; ;令令int1int1为高优先级为高优先级orl tcon, #04horl tcon, #04h; ;令令int1int1为边沿触发方式为边沿触发方式1inthttp:/ 中断的应用及编程例例5-25-2: 单片机单片机通过通过p1p1口以中断方式向外设输出数据,当外设准口以中断方式向外设输出数据,当外设准备好接收数据时,就发出选通
45、信号,经触发器和非门至备好接收数据时,就发出选通信号,经触发器和非门至int0int0,如下图所示。请编制相应程序。如下图所示。请编制相应程序。p1口p3.0qdcp sd外设选通信号接地int0数据至外设8031http:/ 中断的应用及编程解解:当外设准备好接收一个数据后,发出选通信号,使触:当外设准备好接收一个数据后,发出选通信号,使触发器输出高电平后经非门至发器输出高电平后经非门至int0int0引脚,向引脚,向cpucpu发出中断请发出中断请求,求,cpucpu响应这个中断请求后,在中断处理程序中先撤除响应这个中断请求后,在中断处理程序中先撤除中断请求信号,中断请求信号,( (通过通
46、过p3.0=1p3.0=1,使,使int0=1)int0=1)再由再由p1p1口将单片口将单片机内部的数据输出到外设。机内部的数据输出到外设。 org 0000horg 0000hstart: ljmp mainstart: ljmp main org 0003h org 0003h ljmp iint0 ljmp iint0 org 0030h ; org 0030h ;主程序主程序main: clr it0 ;main: clr it0 ;低电平触发低电平触发 setb easetb ea setb ex0 ; setb ex0 ;开中断开中断 setb px0setb px0 ;优先级设
47、置;优先级设置 mov dptr, #1000h mov dptr, #1000h ;外设首地址;外设首地址 .http:/ 中断的应用及编程 org 0100horg 0100hiint0: iint0: push psw ; push psw ;中断处理程序中断处理程序 push accpush acc clr p3.0 clr p3.0 nop nop nop nop setb p3.0 ; setb p3.0 ;撤除撤除int0int0 mov a, p1 ; mov a, p1 ;输入数据输入数据 movx dptr, a ;movx dptr, a ;保存数据保存数据 inc dp
48、trinc dptr . . pop acc ; pop acc ;恢复现场恢复现场 pop pswpop psw reti ; reti ;返回主程序返回主程序http:/ mcs-515.3 mcs-51单片机定时器单片机定时器/ /计数器计数器5.3 mcs-515.3 mcs-51单片机定时器单片机定时器/ /计数器计数器软件定时:循环程序,定时准确,无需硬件电软件定时:循环程序,定时准确,无需硬件电路,但增加路,但增加cpucpu开销开销硬件定时:硬件电路实现,不占用硬件定时:硬件电路实现,不占用cpucpu时间,时间,使用不够方便使用不够方便可编程定时可编程定时/ /计数器:对系统
49、计数器:对系统时钟脉冲时钟脉冲的计数的计数定时,计数值通过程序设定,定时准确,使用定时,计数值通过程序设定,定时准确,使用灵活方便灵活方便http:/ mcs-515.3 mcs-51单片机定时器单片机定时器/ /计数器计数器 定时器定时器/ /计数器可以是独立的集成芯片,也计数器可以是独立的集成芯片,也可以构成于单片机内部,但无论何种形式都具可以构成于单片机内部,但无论何种形式都具有以下共性:有以下共性:1 1、定时、计数器的核心部件是一个、定时、计数器的核心部件是一个加加1 1计数器计数器。两种工作方式的区别在于计数脉冲来。两种工作方式的区别在于计数脉冲来源源, ,定时器定时器/ /计数器
50、可以工作于计数方式也可以计数器可以工作于计数方式也可以工作于定时方式。书工作于定时方式。书p81p812 2、定时器、定时器/ /计数器的计数值在范围内是计数器的计数值在范围内是可变的,这取决于可变的,这取决于计数器的位数计数器的位数。计数的最大。计数的最大值也就限定了定时的最大值。书值也就限定了定时的最大值。书p85p853 3、在到达设定的定时或计数值时发出、在到达设定的定时或计数值时发出溢溢出中断申请出中断申请,实现定时控制。,实现定时控制。ppt 5.2ppt 5.2节节http:/ mcs-51单片机定时器单片机定时器/计数器计数器 在在mcs-51mcs-51单片机内部有两个单片机
51、内部有两个1616位定时器位定时器/ /计数器计数器t0t0和和t1t1,它们均可作为定时器或计数,它们均可作为定时器或计数器使用,均具有器使用,均具有4 4种不同的工作方式,用户可种不同的工作方式,用户可通过对特殊功能寄存器的编程,方便地选择通过对特殊功能寄存器的编程,方便地选择适当的工作方式及设定适当的工作方式及设定t0t0或或t1t1工作于定时器工作于定时器还是计数器。还是计数器。(1 1):何时控制启动计数器?):何时控制启动计数器? 问题:问题: (2 2):如何控制是定时还是计数?):如何控制是定时还是计数?(3 3):如何控制定时):如何控制定时/ /计数的长短?计数的长短?ht
52、tp:/ t0、t1的结构的结构一、t0、t1的结构1 1内部结构内部结构外部输入脉冲图图5.85.8http:/ 1 1 加法计数器的初值可以由程序设定,设置的初加法计数器的初值可以由程序设定,设置的初值不同,加法器达到溢出所需的计数值或定时值不同,加法器达到溢出所需的计数值或定时时间就不同。时间就不同。 2 2 对定时器对定时器/ /计数器工作模式、工作方式的设定计数器工作模式、工作方式的设定及控制是通过方式选择寄存器及控制是通过方式选择寄存器tmodtmod和控制寄存和控制寄存器器tcontcon这两个特殊功能寄存器来完成的。这两个特殊功能寄存器来完成的。 5.3.1 t0、t1的结构的
53、结构http:/ 2定时器定时器/ /计数器方式选择寄存器计数器方式选择寄存器tmodtmod 定时器定时器/ /计数器计数器t0t0、t1t1都有都有4 4种工作方式,可通过种工作方式,可通过程序对程序对tmodtmod的编程来设置。其位定义如下:的编程来设置。其位定义如下:5.3.1 t0、t1的结构的结构http:/ :定时或计数功能选择位,:定时或计数功能选择位,“1 1”时为计数方式;时为计数方式;“0 0”时为定时方式。时为定时方式。m1、m0:定时器:定时器/ /计数器工作方式选择位,计数器工作方式选择位,t5.3.1 t0、t1的结构的结构http:/ t0、t1的结构的结构g
54、ate:门控位,用于控制定时器:门控位,用于控制定时器/ /计数器的启动计数器的启动是否受外部引脚中断请求信号的影响。是否受外部引脚中断请求信号的影响。当当gate=0gate=0时,时,trx=1trx=1,启动,启动txtx计数;计数;trx=0trx=0,停止,停止txtx计数。计数。当当gate=1gate=1时,仅当时,仅当trx=1trx=1且且 =1=1时,才允许时,才允许txtx计数,该位由软件进行设置。计数,该位由软件进行设置。 gate=0 trx=1gate=0 trx=1 一般情况下,选用该方法一般情况下,选用该方法 xinthttp:/ 3定时器定时器/ /计数器控制
55、寄存器计数器控制寄存器tcontcontf0(tf1):t0(t1)t0(t1)溢出中断标志位。当溢出中断标志位。当t0/t1t0/t1启动计数启动计数后,从初值开始加后,从初值开始加1 1计数,当计数,当t0(t1)t0(t1)计数溢出时,由硬件计数溢出时,由硬件将该位置位,并在允许中断的情况下,向将该位置位,并在允许中断的情况下,向cpucpu发出中断请发出中断请求信号,求信号,cpucpu响应中断转向中断服务程序时,由硬件自动响应中断转向中断服务程序时,由硬件自动将该位清零,将该位清零,tf0(tf1)tf0(tf1)也可以由程序查询或清零。也可以由程序查询或清零。5.3.1 t0、t1
56、的结构的结构http:/ t0、t1的结构的结构tr0(tr1)tr0(tr1):t0(t1)t0(t1)运行控制位。运行控制位。当当gate=0gate=0时,时,trx=1trx=1,启动,启动txtx计数;计数;trx=0trx=0,停,停止计数。止计数。当当gate=1gate=1时,仅当时,仅当trx=1trx=1且且 =1=1时,才允许时,才允许txtx计数,该位由软件进行设置。计数,该位由软件进行设置。控制字中其余用于控制字中其余用于 中断控制。中断控制。xintxinthttp:/ t0、t1的的4种工作方式种工作方式 二、二、t0t0、t1t1的的4 4种工作方式种工作方式
57、t0t0和和t1t1都具有都具有4 4种工作方式,当工作于方式种工作方式,当工作于方式0 0、1 1、2 2时,时,t0t0和和t1t1功能相同,但工作在功能相同,但工作在3 3时,时,其功能不同。下面分别介绍这其功能不同。下面分别介绍这4 4种工作方式。种工作方式。1 1工作方式工作方式0 0(m1m0=00m1m0=00) 定时定时/ /计数方式计数方式0 0是是1313位计数器,即位计数器,即thxthx高高8 8位位( (作计数器作计数器) )和和tlxtlx的低的低5 5位位(32(32分频的定标器分频的定标器) )构成,构成, tlxtlx的高的高3 3位未用。位未用。(x=0(x
58、=0或或1)1) 计数时,计数时,tlxtlx的低的低5 5位溢出后向位溢出后向thxthx进位,进位, thxthx溢出后将溢出后将tfxtfx置位,并向置位,并向cpucpu申请中断。申请中断。http:/ 5.9 定时定时/ /计数方式计数方式0 0:1313位计数器示意图位计数器示意图5.3.2 t0、t1的的4种工作方式种工作方式http:/ 2工作方式工作方式1 (m1m0=01)1 (m1m0=01) 由由thxthx和和tlxtlx组成组成1616位计数器。其组成结构与定位计数器。其组成结构与定时计数方式时计数方式0 0完全相同,但计数范围比定时计完全相同,但计数范围比定时计数
59、方式数方式0 0扩大了很多。扩大了很多。 计数信号从计数信号从tlxtlx的低位输入,计数每溢出一次,的低位输入,计数每溢出一次,thxthx计数器加计数器加1 1。当。当1616位由全位由全“1 1”变成全变成全“0 0”时,最时,最高位产生溢出,置位高位产生溢出,置位tfxtfx,向主机请求中断,向主机请求中断。图图5.10 5.10 定时计数方式定时计数方式1 1:1616位计数器示意图位计数器示意图5.3.2 t0、t1的的4种工作方式种工作方式http:/ t0、t1的的4种工作方式种工作方式模式模式0 0、1 1的特点:的特点:v1313位和位和1616位的计数器模式。位的计数器模
60、式。v启动后,从某一个初值的基础上进行启动后,从某一个初值的基础上进行“加一加一”计数。当计到计数。当计到“全全”时再来时再来一个计数脉冲,计数器就会产生一个一个计数脉冲,计数器就会产生一个“溢出溢出”即即tfx=1tfx=1,此时计数器本身为,此时计数器本身为“全零全零”。v如果需要重复性的完成某一值的定时或如果需要重复性的完成某一值的定时或计数,需要在每一次计数前不断的重新计数,需要在每一次计数前不断的重新预装初值,称之为预装初值,称之为“软件重装初值软件重装初值”。http:/ t0、t1的4种工作方式3 3工作方式工作方式2 (m1m0=10)2 (m1m0=10) tlx tlx自动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024个人租车协议书模板10篇
- 视神经外伤病因介绍
- 《CC++语言程序设计案例教程》课件-第12章 模 板
- 工 程识图与制图-南京交院路桥与港航工32课件讲解
- 重庆2020-2024年中考英语5年真题回-教师版-专题06 任务型阅读
- 江苏省盐城市响水县2024-2025学年七年级上学期期中生物试题(原卷版)-A4
- 2023年工程塑料尼龙系列项目筹资方案
- 2023年街头篮球项目筹资方案
- 2023年矿用防爆电器设备项目筹资方案
- 《工业机器人现场编程》课件-任务3.2.2-3.2.3创建涂胶机器人坐标系与工作站数据
- 肛肠科患者的疼痛管理策略与实践经验
- 风电项目投资计划书
- 山东省医疗收费目录
- 感恩祖国主题班会通用课件
- 栓钉焊接工艺高强螺栓施工工艺
- (完整版)医疗器械网络交易服务第三方平台质量管理文件
- 《0~3岁婴幼儿动作发展与指导》项目一-0~3岁婴幼儿动作发展概述
- 铁总建设201857号 中国铁路总公司 关于做好高速铁路开通达标评定工作的通知
- 个人晋升现实表现材料范文四篇
- 持续质量改进提高偏瘫患者良肢位摆放合格率
- 部编版六年级语文上册期末复习课件(按单元复习)
评论
0/150
提交评论