C片内功能部件实用实用教案

上传人:m**** 文档编号:569776251 上传时间:2024-07-31 格式:PPT 页数:44 大小:2.51MB
返回 下载 相关 举报
C片内功能部件实用实用教案_第1页
第1页 / 共44页
C片内功能部件实用实用教案_第2页
第2页 / 共44页
C片内功能部件实用实用教案_第3页
第3页 / 共44页
C片内功能部件实用实用教案_第4页
第4页 / 共44页
C片内功能部件实用实用教案_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《C片内功能部件实用实用教案》由会员分享,可在线阅读,更多相关《C片内功能部件实用实用教案(44页珍藏版)》请在金锄头文库上搜索。

1、 : :外部中断0 0,中断请求信号(xnho)(xnho)由P3.2P3.2输入。 : :外部中断1 1,中断请求信号(xnho)(xnho)由P3.3P3.3输入。 T0: T0:定时/ /计数器0 0溢出中断,对外部脉冲计数由P3.4P3.4输入。 T1: T1:定时/ /计数器1 1溢出中断,对外部脉冲计数由P3.5P3.5输入。 串行中断: :包括串行接收中断RIRI和串行发送中断TITI。6.1.2 中断(zhngdun)源和中断(zhngdun)控制寄存器 中断(zhngdun)(zhngdun)源 中断源是指能发出中断请求,引起中断的装置或事件。80C5180C51单片机的中断

2、源共有5 5个,其中2 2个为外部中断源,3 3个为内部中断源: 中断控制寄存器 80C5180C51单片机中涉及中断控制的有中断请求、中断允许和中断优先级控制3 3个方面4 4个特殊功能寄存器: 中断请求:定时和外中断控制寄存器TCONTCON; ; 串行控制寄存器SCONSCON; ; 中断允许控制寄存器IEIE; ; 中断优先级控制寄存器IPIP。 第1页/共43页第一页,共44页。INT0INT0、INT1INT1、T0T0、T1T1中断请求标志(biozh)(biozh)放在TCONTCON中串行中断请求标志(biozh)(biozh)放在SCONSCON中。 中断请求控制(kngz

3、h)(kngzh)寄存器 TCON TCON位功能: : TF1:T1 TF1:T1溢出中断(zhngdun)(zhngdun)请求标志,T1,T1计数溢出后,F1=1F1=1 TF0:T0 TF0:T0溢出中断(zhngdun)(zhngdun)请求标志,T0,T0计数溢出后,F0=1F0=1 IE1: IE1:外中断(zhngdun)(zhngdun)中断(zhngdun)(zhngdun)请求标志, ,当P3.3P3.3引脚信号有效时,IE1=1IE1=1 IE0: IE0:外中断(zhngdun)(zhngdun)中断(zhngdun)(zhngdun)请求标志, ,当P3.2P3.2

4、引脚信号有效时,IE0=1IE0=1 IT1: IT1:外中断(zhngdun)(zhngdun)触发方式控制位, , IT1=1 IT1=1,边沿触发方式;IT1=0IT1=0,电平触发方式。 IT0: IT0:外中断(zhngdun)(zhngdun)触发方式控制位, ,其意义和功能与IT1IT1相似。第2页/共43页第二页,共44页。串行控制(kngzh)寄存器SCON TI TI 串行口发送(f sn)(f sn)中断请求标志 RI RI 串行口接收中断请求标志SCON的结构、位名称、位地址和功能(gngnng)如下:第3页/共43页第三页,共44页。 中断允许(ynx)控制寄存器IE

5、 EA: CPU中断允许(ynx)控制位。 EA=1,CPU开中;EA=0,CPU关中,且屏蔽所有5个中断源。 EX0:外中断INT0 中断允许(ynx)控制位。EX0=1,开中;EX0=0,关中。 EX1:外中断INT1 中断允许(ynx)控制位。EX1=1,开中;EX1=0,关中。 ET0 :定时/计数器T0中断允许(ynx)控制位。ET0=1,T0开中;ET0=0,T0关中。 ET1: 定时/计数器T1中断允许(ynx)控制位。ET1=1,T1开中;ET1=0,T1关中。 ES: 串行口中断(包括串发、串收)允许(ynx)控制位 。 ES=1,串行口开中;ES=0,串行口关中。说明: 8

6、0C51: 80C51对中断实行两级控制,总控制位是EAEA, 每一中断源还有各自的控制位对该中断源开中或关中(Gunzhng)(Gunzhng)。 首先要EA=1EA=1,其次还要自身的控制位置“1”“1”。第4页/共43页第四页,共44页。 80C51有5个中断(zhngdun)源,划分为二个中断(zhngdun)优先级:高优先级和低优先级。 中断(zhngdun)优先级控制寄存器IP PX0 PX0:中断优先级控制(kngzh)(kngzh)位。PX0=1PX0=1,为高优先级;PX0=0PX0=0,为低优先级。 PX1 PX1:中断优先级控制(kngzh)(kngzh)位。控制(kng

7、zh)(kngzh)方法同上。 PT0 PT0:T0T0中断优先级控制(kngzh)(kngzh)位。控制(kngzh)(kngzh)方法同上。 PT1 PT1:T1T1中断优先级控制(kngzh)(kngzh)位。控制(kngzh)(kngzh)方法同上。 PS PS: 串行口中断优先级控制(kngzh)(kngzh)位。控制(kngzh)(kngzh)方法同上。 第5页/共43页第五页,共44页。中断处理过程大致可分为四步:中断请求、中断响应(xingyng)、中断服务和中断返回。6.1.3 中断(zhngdun)处理过程 中断(zhngdun)(zhngdun)源发出中断(zhngdun

8、)(zhngdun)请求信号,相应的中断(zhngdun)(zhngdun)请求标志位( (在中断(zhngdun)(zhngdun)允许控制寄存器IEIE中) )置“1”“1”。 中断请求第6页/共43页第六页,共44页。 中断(zhngdun)(zhngdun)响应 CPU查询(chxn)(检测)到某中断标志为“1”,在满足中断响应条件下,响应中断。 中断(zhngdun)响应条件: 该中断已经“开中”; CPU此时没有响应同级或更高级的中断; 当前正处于所执行指令的最后一个机器周期; 正在执行的指令不是RETI或者是访向IE、IP的指令, 否则必须再另外执行一条指令后才能响应。 中断响应

9、操作 保护断点地址; 撤除该中断源的中断请求标志; 关闭同级中断; 将相应中断的入口地址送入PC;80C5180C51五个中断入口地址: :0003H0003H T0 T0 :000BH000BH :0013H0013H T1 T1 :001BH001BH 串行口 :0023H0023H第7页/共43页第七页,共44页。 执行(zhxng)中断服务程序中断服务程序应包含(bohn)(bohn)以下几部分: 保护现场 执行中断服务程序主体,完成相应操作 恢复现场 中断(zhngdun)返回在中断服务程序最后,必须安排一条中断返回指令RETIRETI, 当CPUCPU执行RETIRETI指令后,自

10、动完成下列操作: 恢复断点地址。 开放同级中断,以便允许同级中断源请求中断。中断响应等待时间若排除CPU正在响应同级或更高级的中断情况,中断响应等待时间为:38个机器周期 第8页/共43页第八页,共44页。 中断源发出中断请求,相应中断请求标志置“1”。 CPU响应中断后,必须清除中断请求“1”标志。否则(fuz)中断响应返回后,将再次进入该中断,引起死循环出错。 中断请求的撤除(chch) 对串行口中断,用户应在串行中断服务程序中用软件(run jin)清除TI或RI。 对外中断电平触发方式,需要采取软硬结合的方法消除后果。 对定时/ /计数器T0T0、T1T1中断,外中断边沿触发方式, C

11、PUCPU响应中断时就用硬件自动清除了相应的中断请求标志。第9页/共43页第九页,共44页。80C51中断优先控制首先根据(gnj)中断优先级,此外还规定了同一中断优先级之间的中断优先权。其从高到低的顺序为:INT0、INT1、T0、T1、串行口。中断优先级是可编程的,而中断优先权是固定的,不能设置,仅用于同级中断源同时请求中断时的优先次序。 中断优先(yuxin)控制和中断嵌套 中断优先(yuxin)控制、 80C5180C51中断优先控制的基本原则: 同一中断优先级中,若有多个中断源同时请求中断, CPUCPU将先响应优先权高的中断,后响应优先权低的中断。 同优先级中断不能互相中断。 即某

12、个中断一旦得到响应,与它同级的中断就不能再中断它。 高优先级中断可以中断正在响应的低优先级中断,反之则不能。第10页/共43页第十页,共44页。 中断(zhngdun)嵌套 当CPU正在执行某个中断服务程序时,如果发生更高一级的中断源请求中断,CPU可以“中断”正在执行的低优先级中断,转而响应更高一级的中断,这就是中断嵌套。 中断嵌套只能(zh nn)高优先级“中断”低优先级,低优先级不能“中断”高优先级,同一优先级也不能相互“中断”。 中断嵌套结构(jigu)类似与调用子程序嵌套,不同的是: 子程序嵌套是在程序中事先按排好的;中断嵌套是随机发生的。 子程序嵌套无次序限制,中断嵌套只允许高优先

13、级“中断”低优先级。第11页/共43页第十一页,共44页。6.1.5 中断(zhngdun)C51编程 void 函数(hnsh)名( ) interrupt n using m 中断函数(hnsh)体语句; 中断函数无返回值,也不带参数。 因此,返回值类型为void,函数名后括号内无形式参数表。 interrupt是C51关键字,表示该函数是一个(y )中断服务子函数; n=04(常正整数),对应中断源编号。 using是C51关键字,主要用于中断函数内选择工作寄存器组, m=03(常正整数),对应工作寄存器区编号。 using m允许缺省,缺省时,不进行工作寄存器组切换, 但所有在中断函数

14、内用到的工作寄存器将被压栈保护。 中断函数不能被非中断调用。 允许在中断函数中调用其他子函数,但被调用子函数使用的工作寄存器组必须与中断函数使用的工作寄存器组相同,否则会出错。 第12页/共43页第十二页,共44页。 设置堆栈指针(zhzhn)SP(zhzhn)SP 定义中断优先级 定义外中断触发方式 开放中断 安排好等待中断或中断发生前主程序应完成的操作内容。6.1.4 中断系统(xtng)的应用 中断(zhngdun)初始化 中断服务子程序内容要求: 在中断服务入口地址设置一条跳转指令,转移到 中断服务程序的实际入口处。 根据需要保护现场。 中断源请求中断服务要求的操作,这是中断服务程序的

15、主体。 恢复现场。与保护现场相对应,注意先进后出、后进先出操作原则。 中断返回,最后一条指令必须是RETIRETI。 中断服务主程序第13页/共43页第十三页,共44页。 中断系统(xtng)应用举例【例6-1】 出租车计价器计程方法是车轮每运转一圈产生一个负脉冲, 从外中断P3.2引脚输入,行驶里程为轮胎周长运转圈数, 设轮胎周长为2m,试实时计算出租车行驶里程(单位(dnwi)米), 数据存32H、31H、30H。 解: C51编程如下(rxi):Proteus虚拟仿真调试:参阅与本书配套的(免费下载)。 第14页/共43页第十四页,共44页。第15页/共43页第十五页,共44页。 定时/

16、计数器是单片机系统一个重要的部件,其工作方式灵活、编程简单、使用方便,可用来实现(shxin)定时控制、延时、频率测量、脉宽测量、信号发生、信号检测等。此外,定时/计数器还可作为串行通信中波特率发生器。6.2 80C51定时(dn sh)/计数器 6.2.1 定时(dn sh)/计数器概述 1)80C51单片机内部有两个定时/计数器T0和T1, 其核心是计数器,基本功能是加1。2)对外部事件脉冲(下降沿)计数,是计数器; 对片内机周脉冲计数,是定时器。3)计数器由二个8位计数器组成。4)定时时间可编程设定,设置初值后,加1计满后溢出。 调整计数器初值,即调整了定时时间和计数值。5)作为计数器时

17、,外部事件脉冲必须从规定的引脚输入。 且外部脉冲的最高频率不能超过时钟频率的1/24。第16页/共43页第十六页,共44页。TCONTCON低4 4位与外中断(zhngdun)INT0(zhngdun)INT0、INT1INT1有关,已在中断(zhngdun)(zhngdun)中叙述。 高4 4位与定时/ /计数器T0T0、T1T1有关。 TF1: TF1:定时/ /计数器T1T1溢出标志。 TF0: TF0:定时/ /计数器T0T0溢出标志。 TR1: TR1:定时/ /计数器T1T1运行控制位。TR1=1,T1TR1=1,T1运行;TR1=0,T1;TR1=0,T1停。 TR0: TR0:

18、定时/ /计数器T0T0运行控制位。TR0=1,T0TR0=1,T0运行;TR0=0,T0;TR0=0,T0停。TCONTCON的字节地址为88H88H,每一位有位地址,均可位操作。6.2.2 定时(dn sh)/计数器的控制寄存器 第17页/共43页第十七页,共44页。 定时/计数器工作(gngzu)方式控制寄存器TMOD TMOD用于设定(sh dn)定时/计数器的工作方式,低4位用于控制T0,高4位用于控制T1。 M1M0 工作方式(fngsh)选择位。可选择4种工作方式(fngsh) C/ = 1,为计数工作方式,对外部事件脉冲计数,负跳变脉冲有效。C/ = 0,为定时工作方式,对片内

19、机周脉冲计数,用作定时器。 C/ 计数/定时方式选择位。 GATE 门控位。 GATE=0,运行只受TCON中运行控制位TR0/TR1的控制。 GATE=1,运行同时受TR0/TR1和外中断输入信号的双重控制 。 TMOD字节地址89H,不能位操作,设置TMOD须用字节操作指令。第18页/共43页第十八页,共44页。 13位计数器,由TL0低5位和TH0 8位组成(z chn),最大计数值213 =81926.2.3 定时/计数器工作(gngzu)方式 工作(gngzu)方式1 工作方式01616位计数器,最大计数值为2 216 16 =65536=65536。 工作方式2 2 8 8位计数器

20、,仅用TL0TL0计数,最大计数值为2 28 8 =256=256。 计满溢出后,TH0TH0中的初值装入TL0TL0。 工作方式3 3 TL0 TL0使用T0T0原有的控制寄存器资源:TF0,TR0,GATE,C/T,INT0,:TF0,TR0,GATE,C/T,INT0, 组成一个8 8位的定时/ /计数器; TH0TH0借用T1T1的中断溢出标志TF1,TF1,运行控制开关TR1,TR1,只能对片 内机周脉冲计数, ,组成另一个8 8位定时器( (不能用作计数器) )。 T1由于其TF1、TR1被T0的TH0占用,计数器溢出时,只能将 输出信号送至串行口,即用作串行口波特率发生器。方式3

21、仅适用于T0,T1无方式3。 T0被拆成二个独立的8位计数器TH0、TL0。第19页/共43页第十九页,共44页。其中: N与工作方式有关(yugun):方式0时,N=13; 方式1时,N=16; 方式2、3时,N=8。 机周时间与主振频率有关(yugun):机周时间=12/fosc fosc=12MHz时,1机周=1s; fosc=6MHz 时,1机周=2s。 6.2.4 定时(dn sh)/计数器的应用 计算定时(dn sh)/(dn sh)/计数初值第20页/共43页第二十页,共44页。【例6-4】 已知fOSC=12MHz,要求(yoqi)在P1.0引脚输出周期为400s的脉冲方波,试

22、分别用T1工作方式1、方式2编制程序。 解: 计算(j sun)定时初值T1初值=28-200s/1s =256200=56=38HTH1=38H;TL1=38H 设置TMODTMOD:0 0 0 0 1010 00000000 B=20H B=20H T0 T0控制位,与T1T1无关 T1T1方式2 2 T1 T1定时器 T1T1启动与 无关第21页/共43页第二十一页,共44页。【课堂练习题】 参照上例,用工作方式2, 按下列要求分别修改程序: 脉冲方波从P3.0输出(shch); fosc=6MHz; 脉冲方波脉宽为100s; 用定时/计数器T0;第22页/共43页第二十二页,共44页。

23、习题6.14 已知 fOSC=6MHz,试编写24小时模拟(mn)电子钟程序, 秒、分、时数分别存在R1、R2、R3中。 解:定时器用于模拟时钟,宜采用方式2,自动恢复定时初值。否则每次重置定时初值,会形成较大累计(li j)误差。此时只要晶振频率稳定正确,时钟精度可达到很高水平。 fOSC=6MHz时,方式2可定时500s, 对500s计数200次,可得100ms; 再对100ms计数10次,可得1s; 对1s计数60次,可得1分; 对1分计数60次,可得1小时; 对1小时计数24次,可得1天。定时(dn sh)初值计算:T0初值= 28 - 500s /2s =256250 = 6。因此,

24、TH0 =TL0 = 06H。6.14 Proteus虚拟仿真调试:参阅与本书配套的(免费下载)。 第23页/共43页第二十三页,共44页。第24页/共43页第二十四页,共44页。第25页/共43页第二十五页,共44页。6.3 80C51串行口 80C51系列单片机有一个(y )全双工的串行口,既可实现串行异步通信,又可作为同步移位寄存器使用。 6.3.2 串行口特殊(tsh)功能寄存器 串行数据(shj)缓冲器SBUF 在完成串行初始化后,发送时,只需将发送数据输入SBUF,CPU将自动启动和完成串行数据的发送;接收时,CPU把接收到的数据自动存入SBUF,用户只需从SBUF中去读数据。 串

25、行控制寄存器SCON 第26页/共43页第二十六页,共44页。 SM0 SM1串行口工作(gngzu)方式选择位。 SM2多机通信控制位。 REN允许接收(jishu)控制位。REN=0,禁止接收(jishu);REN=1,允许接收(jishu)。 TB8方式2和方式3中要发送的第9位数据。 RB8 方式2和方式3中要接收(jishu)的第9位数据。 TI 发送中断标志。TI位必须由软件清0。 RI 接收(jishu)中断标志。RI位必须由软件清0。 电源控制寄存器PCON SMOD=1时串行口波特率加倍。 PCON寄存器不能进行位寻址,必须按字节整体读写。 第27页/共43页第二十七页,共4

26、4页。6.3.3 串行工作(gngzu)方式 1串行工作(gngzu)方式0 在方式0下,串行口是作为同步移位寄存器使用。这时以RXD(P3.0)端作为数据移位的输入(shr)/输出端,而由TXD(P3.1)端输出同步移位脉冲。移位数据的发送和接收以8位为一帧,不设起始位和停止位,无论输入(shr)/输出,均低位在前高位在后。 方式0 波特率固定,为单片机晶振频率的十二分之一。第28页/共43页第二十八页,共44页。 数据发送(f sn)串行口作为并行输出口使用时,要有“串入并出”的移位寄存器配合。例如74HC164、74HC595或CC4094等,其典型连接电路如图6-18所示。 (2) 数

27、据(shj)接收串行口作为并行输入口使用时,要有“并入串出” 的移位寄存器配合。例如CC4014、CC4021或74HC165等,其典型连接电路如图6-19所示。 第29页/共43页第二十九页,共44页。【例6-7】 已知电路如图6-20所示,fOSC=12MHz,试按下列顺序要求,编制程序。 8个发光二极管全部点亮; 从左向右依次暗灭,每次减少一个,直至全灭(间隔0.5秒); 从左向右依次点亮,每次亮一个; 从右向左依次点亮,每次亮一个; 从左向右依次点亮,每次增加一个,直至全部点亮; 返回,不断(bdun)循环。 应用(yngyng)举例第30页/共43页第三十页,共44页。第31页/共4

28、3页第三十一页,共44页。Proteus ISIS虚拟(xn)电路仿真见例9-9。 第32页/共43页第三十二页,共44页。【例6-8】 已知电路如图6-21所示,试编程,从4021并行口输入K0K7状态数据,并从P1口输出(驱动发光(f un)二极管,以亮暗表示K0K7状态)。 第33页/共43页第三十三页,共44页。Keil C51软件(run jin)调试和Proteus ISIS虚拟电路仿真见例9-10。 第34页/共43页第三十四页,共44页。2串行工作(gngzu)方式1 方式1是一帧10位的异步串行通信方式,包括1个起始(q sh)位,8个数据位和一个停止位。其帧格式如图6-22

29、所示。 方式(fngsh)1的波特率是可变的,由定时/计数器T1的计数溢出率来决定。 波特率= 2SMOD(T1溢出率)/ 32 第35页/共43页第三十五页,共44页。【例6-9】 已知甲乙机以串行方式1进行数据(shj)传送, fOSC=11.0592MHz,波特率为1200b/s。 甲机发送16个数据(shj)(设为09、AF的共阳字段码), 发送后,输出到P1口显示; 乙机接收后输出到P2口显示,试编程。解:串行方式1波特率取决于T1溢出(y ch)率, 本题设SMOD=0, 计算T1定时初值: 第36页/共43页第三十六页,共44页。第37页/共43页第三十七页,共44页。第38页/

30、共43页第三十八页,共44页。第39页/共43页第三十九页,共44页。Keil C51软件(run jin)调试和Proteus ISIS虚拟电路仿真见例9-13。 第40页/共43页第四十页,共44页。3. 串行工作(gngzu)方式2 方式2是一帧11位的串行通信(tng xn)方式,即1个起始位,8个数据位,1个可编程位TB8/RB8和1个停止位,其帧格式如图6-23所示。 波特率 = 2SMOD fOSC /64 4串行工作(gngzu)方式3 方式3帧格式与方式2完全相同,波特率则与方式1相同。 第41页/共43页第四十一页,共44页。5串行口四种工作(gngzu)方式的比较 需要指

31、出的是,当串行口工作于方式1或方式3时, 且波特率要求按规范取1200、2400、4800、9600、时, 若采用晶振12MHz和6MHz, 按上述公式计算得出的T1定时初值将不是一个整数, 产生波特率误差而影响串行通信(tng xn)的同步性能。解决的方法只有调整单片机的时钟频率fOSC, 通常采用11.0592MHz晶振。 表6-13给出了串行方式1或方式3时常用波特率及其产生条件。 第42页/共43页第四十二页,共44页。感谢您的欣赏(xnshng)!第43页/共43页第四十三页,共44页。内容(nirng)总结 :外部中断0,中断请求信号由P3.2输入。 允许在中断函数中调用其他子函数,但被调用子函数使用的工作寄存器组。Proteus虚拟仿真调试:参阅与本书配套的(免费下载)。调整计数器初值,即调整了定时时间和计数值。TH0借用T1的中断溢出标志TF1,运行控制开关TR1,只能对片。既可实现串行异步通信(tng xn),又可作为同步移位寄存器使用。感谢您的欣赏第四十四页,共44页。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号