单片机内部资源.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《单片机内部资源.ppt》由会员分享,可在线阅读,更多相关《单片机内部资源.ppt(83页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机内部资源单片机内部资源实验安排实验一:keil-c51软件使用及编程 12月4日 地点:2教中237 第1批:上午08:0010:15 (8042120-8072133)第2批:上午10:1512:30(5045128-8042119)实验二:proteus软件使用及联合调试 12月11日 地点:2教中237 第1批:上午08:0010:15 第2批:上午10:1512:30实验二:定时中断显示综合实验 12月18日 地点:2教中237 第1批:上午08:0010:15 第2批:上午10:1512:30课内停止上课的时间为11月12日的课、12月31日的课和1月7日的课 本章主要介绍51
2、系列单片机内部资源及其编程。其中包括中断系统、定时器/计数器、串行口三部分。6.2定时/计数器-定时/计数器的定时和计数功能、定时器计数器的控制寄存器、定时器计数器的工作方式、定时计数器用作外部中断扩展、定时中断联合举例。6.3串行通信口6.1中断系统-中断源、中断控制、中断响应过程、中断请求的撤除、中断服务流程。中断是一项重要的计算机技术,这一技术在我们的日常生中断是一项重要的计算机技术,这一技术在我们的日常生活中也同样存在,请看例子:活中也同样存在,请看例子:任务任务1:学习:学习 任务任务2:接电话:接电话 如果你是学生如果你是学生,那学习肯定是重点那学习肯定是重点 ,也就把它当作是(主
3、也就把它当作是(主任务),而接电话呢是(次要任务)。如果你用中断的话任务),而接电话呢是(次要任务)。如果你用中断的话,也就是允许中断的话也就是允许中断的话,等到电话响等到电话响,再去接电话也不迟再去接电话也不迟,可是可是如果你不用中断的话如果你不用中断的话,要接电话怎么办呢要接电话怎么办呢,就是一整天一直就是一整天一直守侯在电话旁边守侯在电话旁边,一直在看有没有电话来一直在看有没有电话来,这样其实你浪费这样其实你浪费了大部分不必要的时间了大部分不必要的时间,而如果用中断的话而如果用中断的话,释放出了大部释放出了大部分的时间来学习分的时间来学习,就不用守在电话边上了就不用守在电话边上了.6.1
4、.1单片机中断技术概述任务分解任务分解 路人甲在看书路人甲在看书电话铃响了电话铃响了路人甲在书上做了个记号,走到电话旁路人甲在书上做了个记号,走到电话旁路人甲拿起电话和对方通话路人甲拿起电话和对方通话 通话结束,挂上电话,回到书桌旁通话结束,挂上电话,回到书桌旁从做记号的地方继续读书。从做记号的地方继续读书。路人甲在看书(路人甲在看书(任务任务1)电话铃(电话铃(中断源中断源)响了()响了(中断请求中断请求)路人甲听见铃声路人甲听见铃声(中断控制中断控制)在书上做了个记号在书上做了个记号(断点保护断点保护),走到电话旁(),走到电话旁(中断响应中断响应)路人甲拿起电话和对方通话(路人甲拿起电话
5、和对方通话(任务任务2)通话结束,挂上电话,回到书桌旁(通话结束,挂上电话,回到书桌旁(中断返回中断返回)从作记号的地方继续读书(从作记号的地方继续读书(恢复断点,继续执行恢复断点,继续执行主程序主程序)。)。执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回中断的基本概念中断的基本概念 中断的定义中断的定义 所所谓谓“中中断断”,是是指指CPUCPU执执行行正正常常程程序序时时,系系统统中中出出现现特特殊殊请请求求,CPUCPU暂暂时时中中止止当当前前的的程程序序,转转去去处处理理紧紧急急的的,突突发发的的事事件件(执执行行中中断断服服务务程程序序),处处理理完完毕毕
6、(中中断断服服务务完完成成)后后,CPUCPU自动返回原程序的过程。自动返回原程序的过程。作用:作用:采用中断技术可以采用中断技术可以提高提高CPUCPU效率效率、解决速度矛盾、实现、解决速度矛盾、实现并行工作、分时操作、实时处理、故障处理、应付突发事件,并行工作、分时操作、实时处理、故障处理、应付突发事件,可使多项任务共享一个资源(可使多项任务共享一个资源(CPUCPU)。)。中中断断涉涉及及的的几几个个环环节节:中中断断源源、中中断断申申请请、开开放放中中断断、保保护护现场、中断响应、恢复现场、中断返回。现场、中断响应、恢复现场、中断返回。6.1.2 中断源与中断向量 1、中断源:计算机的
7、中断服务需求是以中断请求(Interrup Request)的形式提出来的,这些中断请求来源都统称为中断源。共有共有五五个中断源(个中断源(52子系列提供子系列提供6个),分别是个),分别是外部中断外部中断两两个、个、定时中断定时中断两个和两个和串行中断串行中断一个,它们是:一个,它们是:外部中断外部中断0-INT0,由,由P3.2提供,提供,外部中断外部中断1INT1,由,由P3.3提供,提供,外部中断有两种信号方式,即外部中断有两种信号方式,即电平电平方式和方式和脉冲脉冲方式。方式。T0溢出中断;由片内定时/计数器0提供T1溢出中断;由片内定时/计数器1提供串行口中断RI/TI;由片内串行
8、口提供2 中断向量中断向量 中断向量中断向量(Interrup Vector)就是程序就是程序存储器的一个地址,表明一个中断的服存储器的一个地址,表明一个中断的服务程序从这里开始存放。当中断发生后务程序从这里开始存放。当中断发生后要通过它引导要通过它引导CPU转向相应的中断服务。转向相应的中断服务。3 中断方式 单片机的中断为固定入口式中断,即一响应中断就转入固定入口地址执行中断服务程序。具体入口如下:编号 中断源 中断向量(汇编)C语言0 INT0 0003 interrupt 01T0 000BH interrupt 12INT1 0013H interrupt 23T1 001BH in
9、terrupt 34RI/TI 0023H interrupt 4 在这些单元中往往是一些跳转指令,跳到真正的中断服务程序,这是因为给每个中断源安排的空间只有8个单元。51系列单片机的5个中断源的中断服务入口地址之间相差8个单元。这8个存储单元用来存储中断服务程序一般来说是不够的。用户常在中断服务程序地址入口处放一条三字节的长转移指令。一般地,主程序从0030H单元以后开始存放。例如:ORG 0000HLJMP START ;转入主程序,START为主程序地址标号ORG 0003HLJMP INT0 ;转外中断中断服务程序ORG 000BHLJMP T0 ;转定时器T0中断服务程序ORG 00
10、30HSTART:;主程序开始中断控制:指提供给用户使用的中断控制手段,由硬件实现。6.1.3 中断控制与中断控制有关的控制寄存器有四个:TCON-定时控制寄存器,IE-中断允许控制寄存器,IP-中断优先级控制寄存器(Priority),SCON-串行口控制寄存器(Serie)。PS:中断控制是通过硬件实现的,但须进行软件设置。中断请求标志高级入口地址入口地址INT0INT1T0T1TIRI中断允许控制中断优先级中断源IE0TF0IE1TF1TIRIEX0ET0EX1ET1ES1PX0PT0PX1PT1PS低级内部查询内部查询EA1定时控制寄存器TCON(88H)D7D6D5D4D3D2D1D
11、0TF1TF0IE1IT1IE0IT0中断请求标志触发方式选择0 低电平1 下降沿2串行口控制寄存器SCON(98H)D7D6D5D4D3D2D1D0TIRI串行中断请求标志3中断允许控制寄存器IE(0A8H)D7D6D5D4D3D2D1D0EAESET1EX1ET0EX04中断优先级控制寄存器IP(0B8H)D7D6D5D4D3D2D1D0PSPT1PX1PT0PX00 禁止,1允许0 低级别,1高级别从中断请求发生到中断被响应,再转向执行中断服从中断请求发生到中断被响应,再转向执行中断服务程序去完成中断所要求的操作,是一个完整的中务程序去完成中断所要求的操作,是一个完整的中断处理过程。断处
12、理过程。外部中断响应过程如下:外部中断响应过程如下:1.外部中断请求采样:外部中断请求采样:采样在每个机器周期的采样在每个机器周期的S5P2(第第5状态第状态第2拍节拍节)对芯片引脚对芯片引脚INT0(P3.2),INT1(P3.3)进行的。若采样进行的。若采样到有效的中断请求信号,到有效的中断请求信号,IE0(或或IE1)被置被置1.6.1.4 中断响应过程2.中断查询:中断查询:中断发生是随机的,必须主动检测,这一中断发生是随机的,必须主动检测,这一过程称为中断查询。中断查询操作是由过程称为中断查询。中断查询操作是由CPU逐逐个检测个检测TCON和和SCON中各中断标志位的状态中各中断标志
13、位的状态而实现的。中断查询发生在每一个机器周期的而实现的。中断查询发生在每一个机器周期的最后一个状态最后一个状态S6。3.中断响应:中断响应:中断响应就是对中断源提出中断请求的接中断响应就是对中断源提出中断请求的接受。在中断查询后,发现有中断请求时,马上受。在中断查询后,发现有中断请求时,马上进行中断响应。进行中断响应。中断响应的内容:由中断响应的内容:由硬件硬件自动生产一条长自动生产一条长调用指令,调用指令,“LCALL addr16”举例:单片机对外部中断举例:单片机对外部中断0的响应,产生的的响应,产生的调用指令为:调用指令为:LCALL 0003H*4 中断响应过程 响应过程-单片机响
14、应中断后,自动执行下列操作:置位中断优先级有效触发器,即关闭同级和低级 中断:调用入口地址,断点入栈(相当于LCALL指令);进入中断服务程序。4 4 响应时间响应时间-从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。(1)最快响应时间以外部中断的电平触发为最快。从查询中断请求信号到中断服务程序需要三个机器周期:1个周期(查询)2个周期(长调用LCALL)(2)最长时间若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期:2个周期执行当前指令(其中含有1个周期查询)4个周期乘除指令2个周期长调用8个周期。中断返回中断返回中断处理程序的最后一条指
15、令是RETI,它使CPU结束中断处理程序的执行,返回到断点处,继续执行主程序。Cx51编译器支持在C源程序中直接开发中断程序,中断程序定义语法:返回值 函数名 interrupt minterrupt m:定义中断函数修饰符,系统编译时把对应函:定义中断函数修饰符,系统编译时把对应函数转化为中断函数,数转化为中断函数,按按5151系统中断的处理方式自动把该函数系统中断的处理方式自动把该函数安排在程序存储器的相应位置。安排在程序存储器的相应位置。该修饰符中,该修饰符中,m m的取值为的取值为031031,对应的中断情况如下:,对应的中断情况如下:编号编号 中断源中断源 入口地址入口地址0 INT
16、0 00031T0 000BH2INT1 0013H3T1 001BH4RI/TI 0023H5 5T2T2 002BH 002BH PS PS:其它值预留:其它值预留例:void timer0()interrupt 1(1)什么是寄存器组切换(2)为什么要进行寄存器组切换(3)在Cx51中如何进行切换:使用using指定,using后的变量为0-3的常整数(4)例:void timer0()interrupt 1 using 3 对函数的目标代码影响如下:a、函数入口处将当前寄存器组保留b、使用寄存器组3c、函数退出前,寄存器组恢复*寄存器组切换6.1.6 中断程序设计当单片机接收到一个中断
17、请求信号后,就挂起当前操作,保存其工作状态,并将控制权交给中断服务程序,来完成该中断所对应的操作内容。1 主程序中的中断初始化2 中断服务流程1 主程序中的中断初始化中断发生在主程序运行时,是主程序的随机事件。是否允许发生以及如何发生,都应该在主程序中预先设置。1)开相应中断允许(IE)2)根据需要选择优先级(IP)3)选择外中断触发方式(TCON)4)设置计数器、串行口的有关参数例6.1.1 试写出为低电平触发的中断系统初始化程序。解:(1)采样位操作指令 SETB EA ;CPU开中断 SETB EX1 ;开中断 SETB PX1 ;令为高优先级 CLR IT1 ;令为电平触发方式 (2)
18、采样字节操作指令 MOV IE,#84H ;开中断 ORL IP,#04H ;令为高优先级 ANL TCON,#0FBH ;令为电平触发方式补1:以外中断0为例进行说明,中断地址区从0003H开始,假定外部中断0的中断服务程序入口地址标号为EXINT0,则转向中断服务程序的设置和中断初始化的内容表示如下:ORG 0000HAJMP MAINORG 0003HAJMP EXINT0 ;转向中断服务程序MAIN:MOV IE,#81H;中断开放,外中断0允许 ;=SETB EA,SETB EX0 MOV TCON,#01H ;脉冲触发方式 MOV IP,#01H ;INT0为高优先级 MOV SP
19、,#3FH ;设置堆栈 。SJMP$ORG 0200HEXINT0:;INT0中断服务程序 。RETIC语言include Main()/主程序IE=0X81;TCON=0X01;IP=0X01;While(1);EXINT0(void)interrupt 0 /中断服务函数2 中断服务流程1)、现场保护和现场恢复现场-指中断时刻单片机中存储单元中的数据或状态。现场保护-防止中断服务程序的执行不破坏这些数据或状态,将它们送入堆栈进行保护的过程。现场恢复-返回主程序前,把保存的现场内容从堆栈中弹出,即现场恢复。例2:用汇编代码说明中断调用和中断返回中断调用(保护现场保护现场):PUSH ACC;
20、保存累加器和数据指针PUSH DPHPUSH DPLPUSH PSWMOV PSW,#08H;选择寄存器组1中断返回(恢复现场恢复现场):POP PSW;恢复以前寄存器组 POP DPLPOP DPHPOP ACC;恢复累加器和数据指针RETI3、关中断和开中断关中断-即将相应的中断允许控制位清“0”。目的:1)重要的中断服务程序在执行过程中不被打扰2)现场保护和恢复时不被打扰1、定时中断请求的撤消1)标志位置“0”-定时中断响应后,硬件自动将标志位(TF0或TF1)清“0”,不需要用户干预。*补充:中断请求的撤消中断请求的撤消-中断响应后,TCON或SCON中的相应的中断请求标志位应及时清除
21、。2、脉冲方式脉冲方式外部中断请求的撤消1)中断标志位置“0”-外部中断响应后,硬件自动将标志位(IE0或IE1)清“0”,不需要用户干预。2)外中断请求信号的撤消-脉冲信号过后自动消失,也不需要用户干预。3、电平方式电平方式外部中断请求的撤消1)中断标志位置“0”-外部中断响应后,硬件自动将标志位(IE0或IE1)清“0”,不需要用户干预。2)外中断请求信号的撤消-必须将低电平信号强制转换为高电平。P1.0的负脉冲在中断服务程序中由下面两条指令实现:SETB P1.0 ;P1.0=1 CLR P1.0 ;P1.0=04、串行中断请求的撤消 中断标志位置“0”-必须由用户在中断服务程序中用软件
22、将标志位(TI或RI)清“0”。例6.1.2 在图6.1.6中,P1.0P1.3接有4个开关,P1.4P1.7接有4个发光二极管,消抖电路用于产生中断请求信号,当消抖电路的开关来回拨动一次将产生一个下跳变信号,向CPU申请中断。要求:初时发光二极管全黑,每中断一次,P1.0P1.3所接的开关状态反映到发光二极管上,且要求开关合上时对应发光二极管亮。解:汇编程序如下:ORG 0000H AJMP MAIN ORG 0003H ;外部中断0入口 AJMP SER_INT0 ;转中断服务程序 ORG 0100H ;主程序 MAIN:MOV P1,#0FH ;熄灭发光二极管且对开关输入端先输出1 SE
23、TB IT0 ;脉冲触发方式 SETB EX0 ;允许中断 SETB EA ;总中断允许 AJMP$;等待中断SER_INT0:MOV P1,#0FH ;熄灭发光二极管且对开关输入端先输出1 MOV A,P1 ;输入开关状态 CPL A ;状态取反 ANL A,#0FH ;屏蔽A的高半字节 SWAP A ;A高低半字节交换 MOV P1,A ;开关状态输出 RETI ;中断返回每次单纯重置一次每次单纯重置一次4个开关的开、合状态,个开关的开、合状态,4个发光二极个发光二极管维持原来的亮、灭状态,仅当来回拨动消抖开关后,产管维持原来的亮、灭状态,仅当来回拨动消抖开关后,产生了中断,发光二极管才反
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 内部 资源
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内