文档库 最新最全的文档下载
当前位置:文档库 › 第四章 单片机中断系统

第四章 单片机中断系统

第四章 单片机中断系统
第四章 单片机中断系统

第四章单片机中断系统

4.1 什么是中断?什么是中断源?举一生活中的例子说明这些概念。

4.2 中断与调用子程序有何异同?

4.3AT89C51与AT89S52各有几个中断源?有几级中断优先级?各中断标志是怎样产生的,又是如何清除的?

4.4 中断响应时间是否为确定不变的?为什么?

4.5 AT89C51单片机响应中断后,中断入口地址各是多少?

4.6 51系列单片机响应中断的条件是什么?各中断源的中断服务程序入口地址是多少?

4.7 简述CPU 响应中断的过程。

4.8 保护断点和保护现场各解决什么问题?

4.9 外部中断有几种触发方式?如何选择?在何种触发方式下,需要在外部设置中断请求触发器?为什么?

4.10 AT89C51单片机有5个中断源,但只能设两个中断优先级,因此,在中断优先级安排上受到一定限制。试问以下几种中断优先顺序的安排(级别由高到低)是否可能?若可能,则应如何设置中断源的中断级别?否则,请简述不可能的理由。

1)定时器0溢出中断,定时器1溢出中断,外中断0,外中断1,串行口中断;

2)串行口中断,外中断0,定时器0溢出中断,外中断1,定时器1溢出中断;

3)外中断0,定时器1溢出中断,外中断1,定时器0溢出中断,串行口中断;

4)外中断0,外中断1,串行口中断,定时器0溢出中断,定时器1溢出中断;

5)串行口中断,定时器0溢出中断,外中断0,外中断1,定时器1溢出中断;

6)外中断0,外中断1,定时器0溢出中断,串行口中断,定时器1溢出中断;

7)外中断0,定时器1溢出中断,定时器0溢出中断,外中断1,串行口中断。

4.11 在AT89C51单片机的INTO引脚外接脉冲信号,要求每送来一个脉冲,把30H单元值加1,若30H单元计满则进位31H单元。试利用中断结构,编制一个脉冲计数程序。

4.12 设在单片机的P1.0口接一个开关,用P1.1口控制一个发光二极管。要求当开关按下时P1.1口能输出低电平,控制发光二极管发亮,编制一个查询方式的控制程序。如果开关改接在INT0口,改用中断的方式,编一个中断的方式控制程序。

4.13 用两个开关在两地控制一盏楼梯路灯,用单片机控制,两个开关分别接在1NT0和INT1,采用中断方式编制一个控制程序。

4.14 填空题:

1) AT89C51单片机有()个中断源,有()个中断优先级,优先级由软件修改特殊功能寄存器()加以选择。

2)外部中断的请求标志是()和() 。

4.15 选择题:

1) 51系列单片机中,CPU正在处理定时器/计数器T1中断,若有同一优先级的外部中断INT0又提出中断请求,则CPU()。

A.响应外部中断INT0

B.继续进行的原来的中断处理

C.发生错误

D.不确定

2)中断服务程序的最后一条指令必须是()。

A.END

B.RET

C.RETI

D.AJMP

3)在中断服务程序中,至少应有一条指令必须是()。

A.传送指令

B.转移指令

C.加法指令

D.中断返回指令

4)51系列单片机响应中断时,下列哪种操作不会自动发生()。

A.保护现场

B.保护PC

C.找到中断入口地址

D.转入中断入口地址

8051单片机中断系统结构及中断控制原理

8051单片机中断系统结构及中断控制原理 当几个中断源同时向CPU请求中断时,按所发生的实时事件的轻重缓急排队,优先处理最紧急事件的中断请求,于是单片机规定每个中断源的优先级别。 当CPU正在处理一个中断请求,又发生另一个优先级比它高的中断请求,CPU暂时中止对前一中断处理,转而去处理优先级更高的中断请求,待处理完后,再继续执行原来的中断处理程序,这样的过程称为中断嵌套,这样的中断系统称为多级中断系统。 由于外界异步事件中断CPU正在执行的程序时随机的,CPU转向去执行中断服务程序时,除了硬件会自动把断电地址,即16位PC程序计数器的值压入堆栈之外,用户还得注意保护有关工作寄存器,累加器,标志位等信息,这个过程通常称为保护现场。以便在完成中断服务程序后,恢复原工作寄存器,累加器,标志位等的内容,这个过程称恢复现场;最后执行中断返回指令,自动弹出断电到PC,返回主程序,继续执行被中断的程序。 下面我们看看8051中断系统结构及中断控制: 8051单片机有五个中断请求源,四个用于中断控制的寄存器IE.IP.TCON和SCON,用于控制中断的类型,中断允许,中断起停和各种中断源的优先级别。 五个中断源有两个优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。8051的中断源包括:INT0,INT1引脚输入的外部中断源;三个内部的中断源,即定时器T0的溢出中断源,定时器T1的溢出中断源和串行口的发送/接收中断源。 从INT0,INT1引脚输入的两个外部中断源和它们的触发方式控制位锁存在特殊功能寄存器TCON的低四位,其格式如下: IE1,即TCON.3:外部中断INT1请求标志位。当CPU检测到在INT1引脚上出现的外部中断信号时,由硬件置位IE1=1,请求中断。CPU执行中断服务程序后,IE1位被硬件自动清0. IT1,即TCON.2:外部中断INT1请求类型,触发方式控制位,由软件来置1或清0,以

单片机原理及应用第四章课后题答案

第四章作业答案 16. MCS-51单片机系统中,片外程序存储器和片外数据存储器共用 16位地址线和8位数 据线,为何不会产生冲突? 解: 数据存储器的读和写由 RD 和WR 信号控制,而程序存储器由读选通信号 PSEN 控制, 这些信号在逻辑上时序上不会产生冲突;程序存储器访问指令为 MOVC ,数据存储器访问 指令为MOVX 。程序存储器和数据存储器虽然共用 16位地址线和8位数据线,但由于二者 访问指令不同,控制信号不同 ,所以两者虽然共处于同一地址空间,不会发生总线冲突。 18.某单片机应用系统,需扩展 2片8KB 的EPROM 和2片8KB 的RAM ,采用地址译码 法,画出硬件连接图,并指出各芯片的地址范围。 解: 硬件连接电路图如图 4.18所示。各芯片的地址范围为: 图4.18 4.18题硬件连接电路图 21. 8255A 的端口地址为 7F00H ?7F03H ,试编程对 8255A 初始化,使A 口按方式0输入, B 口按方式1输出。 解: 程序如下: ORG 0000H LJMP START ORG 0030H START : MOV SP, #60H MOV DPTR , #7F03H MOV A , #10010100B MOVX @DPTR , A SJMP $ END 25.使用8255A 或者8155的B 端口驱动红色和绿色发光二极管各 4只,且红、绿发光二极 管轮流发光各1S 不断循环,试画出包括地址译码器、 8255A 或8155与发光管部分的接口 2764 (1#): 0000H~1FFFH 6264 (1#): 4000H~5FFFH 2764 (2#): 2000H~3FFFH 6264 (2#): 6000H~7FFFH 8031 ALE Q7-QQ G 74LS373 □7-DO OE 1_ —. AO-A?A8-A1?CE 2764 1# D7-D0 QE Al f A12 CE 6264 1# D7-0B WE OE A0-A7Aa-Al2CE 6264 2# D7~D(? W E OE P2.4-P2.0 1 2764 2# D7-D0 OE RESET P0.7^P0.0 PSEN WR RD

51单片机中断系统详解

的定时器中断后便认为是1s,这样便可精确控制定时时间啦。要计50000个数时,TH0和TL0中应该装入的总数是65536-50000=15536.,把15536对256求模:15536/256=60装入TH0中,把15536对256求余:15536/256=176装入TL0中。 以上就是定时器初值的计算法,总结后得出如下结论:当用定时器的方式1时,设机器周期为T CY,定时器产生一次中断的时间为t,那么需要计数的个数为N=t/T CY ,装入THX和TLX中的数分别为: THX=(65536-N)/256 , TLX=(65536-N)%256 中断服务程序的写法 void 函数名()interrupt 中断号using 工作组 { 中断服务程序内容 } 在写单片机的定时器程序时,在程序开始处需要对定时器及中断寄存器做初始化设置,通常定时器初始化过程如下: (1)对TMOD赋值,以确定T0和 T1的工作方式。 (2)计算初值,并将初值写入TH0、TL0或TH1、TL1。 (3)中断方式时,则对IE赋值,开放中断。 (4)使TR0和TR1置位,启动定时器/计数器定时或计数。 例:利用定时器0工作方式1,实现一个发光管以1s亮灭闪烁。 程序代码如下: #include #define uchar unsigned char #define uint unsigned int sbit led1=P1^0; uchar num; void main() { TMOD=0x01; //设置定时器0位工作模式1(M1,M0位0,1) TH0=(65536-45872)/256; //装初值11.0592M晶振定时50ms数为45872 TL0=(65536-45872)%256; EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器0 while(1) { if(num==20) //如果到了20次,说明1秒时间 { led1=~led1; //让发光管状态取反 num=0; } } } void T0_time()interrupt 1

单片机原理及应用第四章课后题答案

第四章作业答案 16. MCS-51单片机系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线,为何不会产生冲突 解: 数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突;程序存储器访问指令为MOVC,数据存储器访问指令为MOVX。程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于二者访问指令不同,控制信号不同,所以两者虽然共处于同一地址空间,不会发生总线冲突。18.某单片机应用系统,需扩展2片8KB的EPROM和2片8KB的RAM,采用地址译码法,画出硬件连接图,并指出各芯片的地址范围。 解: 硬件连接电路图如图所示。各芯片的地址范围为: 2764(1#):0000H~1FFFH 2764(2#):2000H~3FFFH 6264(1#):4000H~5FFFH 6264(2#):6000H~7FFFH 图题硬件连接电路图 21.8255A的端口地址为7F00H~7F03H,试编程对8255A初始化,使A口按方式0输入,B 口按方式1输出。 解: 程序如下: ORG 0000H LJMP START ORG 0030H START:MOV SP, #60H MOV DPTR,#7F03H MOV A,#B MOVX @DPTR,A SJMP $ END 25.使用8255A或者8155的B端口驱动红色和绿色发光二极管各4只,且红、绿发光二极

管轮流发光各1s,不断循环,试画出包括地址译码器、8255A或8155与发光管部分的接口电路图,并编写控制程序。 解: 使用8255A,电路连接图如图所示。 图题硬件连接电路图 其中,PB0~PB3接红色发光二极管,PB4~PB7接绿色发光二极管。设MCS-51单片机主频为12MHz。 程序如下: ORG 0000H LJMP START ORG 0030H START:MOV SP, #60H MOV DPTR, #7FFFH ; 数据指针指向8255A控制口 MOV A, #80H MOVX @DPTR, A ; 工作方式字送8255A控制口 MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口 MOV A, #0FH ; 置红色发光二极管亮 LP1:MOVX @DPTR, A ; 置红色发光二极管亮 LCALL DELAY ; 调用1S延时子程序 CPL A ; 置发光二极管亮反色 SJMP LP1 ; 循环执行 DELAY: MOV R7,#10 ; 1s延时子程序 D1:MOV R6,#200 D2:MOV R5,#248 D3:NOP DJNZ R5,D3 DJNZ R6,D2 DJNZ R7,D1 RET END 采用定时器T0方式1中断实现1s定时。 1s=50ms×20次。 T0方式1实现50ms定时,初值=216-50ms/1μs=15536=3CB0H (1s=20ms×50次,初值=216-20ms/1μs=45536=B1E0H) ORG 0000H LJMP START ORG 000BH LJMP TT0 ORG 0030 H START:MOV SP, #60H MOV DPTR, #7FFFH ; 数据指针指向8255A控制口 MOV A, #80H

单片机第四章16 计数器T0闪烁灯

16.定时计数器T0作定时应用技术(二) 1.实验任务 用AT89S51的定时/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯闪烁,每个指示闪烁的频率为0.2秒,也就是说,开始L1指示灯以0.2秒的速率闪烁,当2秒定时到来之后,L2开始以0.2秒的速率闪烁,如此循环下去。0.2秒的闪烁速率也由定时/计数器T0来完成。 2.电路原理图 图4.16.1 3.系统板硬件连线 (1.把“单片机系统”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块” 区域中的L1-L4上

4.程序设计内容 (1.由于采用中断方式来完成,因此,对于中断源必须它的中断入口地址,对于定时/计数器T0来说,中断入口地址为000BH,因此在中断入口地方加入长 跳转指令来执行中断服务程序。书写汇编源程序格式如下所示: ORG00H LJMP START ORG0BH ;定时/计数器T0中断入口地址 LJMP INT_T0 START: NOP ;主程序开始 . . INT_T0: PUSH ACC ;定时/计数器T0中断服务程序 PUSH PSW . . POP PSW POP ACC RETI ;中断服务程序返回 END (2.定时2秒,采用16位定时50ms,共定时40次才可达到2秒,每50ms产生一中断,定时的40次数在中断服务程序中完成,同样0.2秒的定时,需要4 次才可达到0.2秒。对于中断程序,在主程序中要对中断开中断。 (3.由于每次2秒定时到时,L1-L4要交替闪烁。采用ID来号来识别。当ID=0时,L1在闪烁,当ID=1时,L2在闪烁;当ID=2时,L3在闪烁;当ID= 3时,L4在闪烁 5.程序框图 T0中断服务程序框图

(完整版)ARM嵌入式系统基础教程习题答案__周立功

第一章 思考与练习 1、举出3个书本中未提到的嵌入式系统的例子。 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(Embedded Microprocessor Unit, EMPU) 嵌入式微控制器(Microcontroller Unit, MCU) 嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP) 嵌入式片上系统(System On Chip) 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。其次,提高了开发效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了32 位CPU 的多任务潜力。 第二章 1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么? 项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。 识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。 提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。 执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展, 分析项目偏差,采取必要措施以实现目标。 结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险? 在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。 需求风险;时间风险;资金风险;项目管理风险 3、何谓系统规范?制定系统规范的目的是什么? 规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。 4、何谓系统规划?为何要做系统规划 系统规划就是拟定一个开发进程,使项目在合理的进程范围中逐渐建构完成。其目地是让客户可以进一步地掌握系统开发的进程,并确定检查点,以让双方确定项目是否如预期中的进度完成。 5、为什么在项目结束前需要进行项目讨论? 项目的讨论一个项目进行的反馈机制。通过这一个程序,项目团队的经验才可以被记录下来,也就是说,这是一个撰写项目历史的过程。 第三章

单片机中断系统

ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。

键盘中断实验 一、实验目的 键盘/按键是操作人员向单片机系统输入指令的基本工具,在前面的实验中我们已经多 次使用了按键。键盘/按键在编程时可以用查询或中断的方法来检测按键是否按下。其中,中断方式可以优化单片机的运行,并能快速做出反应,且可靠性较高。本实验要求大家用中断方式编写按键检测程序,该程序可以用于各种需要中断键盘/按键的场合。实验中需要掌握以下知识要点: 1.复习中断程序的编写格式及特殊功能寄存器的使用。 2.中断程序的编写格式。 3.中断程序的调试方法。 4.多个按键中,判断具体按下键的分析方法。 二、实验预备知识 1.中断程序的编写方法 普通的MSC-51 单片机有5 个中断源,每个中断有自己的中断程序入口,在汇编语言 中具有中断的程序编写格式如下: ORG 0000H SJMP MAIN ORG 0003H ;INT0 中断入口 LJMP INT0IN …… …… ORG 0030H ;主程序起始地址 MAIN:MOV IE ,#01H ;主程序部分 …… …… INT0IN:……;中断服务程序主体部分 …… RETI ;中断返回指令 END 中断程序的入口就是中断服务程序的首地址,MSC-51 系列单片机的各中断入口地址 是固定的。INT0 的中断入口是0003H,其中断服务程序就必须从0003H 单元开始,在实际编程中,为了不占用其它中断的入口,一般在入口处放一条跳转指令,而把中断服务程序主体放到其它地方。上面的程序就是采用的这种方法。 单片机在运行过程中,只有发生中断后才能运行中断服务程序,而不能直接运行到中 断程序中。单片机复位后,从0000H 单元开始运行程序,为了避免单片机直接运行到中断程序中,所以采用了SJMP MIAN 指令,跳过中断入口,进入主程序中。

单片机主中断原理

单片机主中断原理 有关中断的概念 什么是中断,我们从一个生活中的例子引入。你正在家中看书,突然电话铃响了,你放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书。这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断了。 仔细研究一下生活中的中断,对于我们学习单片机的中断也很有好处。第一、什么可经引起中断,生活中很多事件可以引起中断:有人按了门铃了,电话铃响了,你的闹钟闹响了,你烧的水开了….等等诸如此类的事件,我们把可以引起中断的称之为中断源,单片机中也有一些可以引起中断的事件,8031中一共有5个:两个外部中断,两个计数/定时器中断,一个串行口中断。 第二、中断的嵌套与优先级处理:设想一下,我们正在看书,电话铃响了,同时又有人按了门铃,你该先做那样呢?如果你正是在等一个很重要的电话,你一般不会去理会门铃的,而反之,你正在等一个重要的客人,则可能就不会去理会电话了。如果不是这两者(即不等电话,也不是等人上门),你可能会按你通常的习惯去处理。总之这里存在一个优先级的问题,单片机中也是如此,也有优先级的问题。优先级的问题不仅仅发生在两个中断同时产生的情况,也发生在一个中断已产生,又有一个中断产生的情况,比如你正接电话,有人按门铃的情况,或你正开门与人交谈,又有电话响了情况。考虑一下我们会怎么办吧。 第三、中断的响应过程:当有事件产生,进入中断之前我们必须先记住现在看书的第几页了,或拿一个书签放在当前页的位置,然后去处理不同的事情(因为处理完了,我们还要回来继续看书):电话铃响我们要到放电话的地方去,门铃响我们要到门那边去,也说是不同的中断,我们要在不同的地点处理,而这个地点通常还是固定的。计算机中也是采用的这种方法,五个中断源,每个中断产生后都到一个固定的地方去找处理这个中断的程序,当然在去之前首先要保存下面将执行的指令的地址,以便处理完中断后回到原来的地方继续往下执行程序。具体地说,中断响应可以分为以下几个步骤:1、保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈。2、寻找中断入口,根据5个不同的中断源所产生的中断,查找5个不同的入口地址。以上工作是由计算机自动完成的,与编程者无关。在这5个入口地址处存放有中断处理程序(这是程序编写时放在那儿的,如果没把中断程序放在那儿,就错了,中断程序就不能被执行到)。3、执行中断处理程序。4、中断返回:执行完中断指令后,就从中断处返回到主程序,继续执行。 究竟单片机是怎么样找到中断程序所在位置,又怎么返回的呢?我们稍后再谈.

51单片机中断系统程序实例

51单片机中断系统程序实例(STC89C52RC) 51单片机有了中断,在程序设计中就可以做到,在做某件事的过程中,停下来先去响应中断,做别的事情,做好别的事情再继续原来的事情。中断优先级是可以给要做的事情排序。 单片机的学习不难,只要掌握学习方法,学起来并不难。什么是好的学习方法呢,一定要掌握二个要点: 1. 要知道寄存器的英文全拼,比如IE = interrupt中断 不知道全拼,要去猜,去查。这样就可以理解为什么是这个名称,理解了以后就不用记忆了。 2. 每个知识点要有形像的出处 比如看到TF0,脑子里马上要形像地定位到TCON寄存器的某位 看到ET0, 马上要形像地定位到IE寄存器的第2位 https://www.wendangku.net/doc/357833394.html,/tuenhai/独家揭秘:形像是记忆的最大技巧。当人眼看到某个图时,是把视觉信号转化成电信号,再转化成人能理解的形像。当我们回忆形像时,就是在重新检索原先那个视觉信号,并放大。在学习过程中,不断练习检索、放大信号,我们的学习能力就会越来越强。 写程序代码时,也要把尽量把每行代码形像化。 51单片机内中断源 8051有五个中断源,有两个优先级。与中断系统有关的特殊功能寄存器有IE(中断允许寄存器)、IP(中断优先级控制寄存器)、中断源控制寄存器(如TCON、SCON的有关位)。51单片机的中断系统结构如下图(注意,IF0应为TF0):

8052有6个中断源,它比8051多一个定时器/计数器T2中断源。 8051五个中断源分别是: (1)51单片机外部中断源 8051有两个外部中断源,分别是INT0和INT1,分别从P3.2和P3.3两个引脚引入中断请求信号,两个中断源的中断触发允许由TCON的低4位控制,TCON的高4位控制运行和溢出标志。 INT0也就是Interrupt 0。在这里应该看一下你的51单片机开发板的电路原理图。离开形像的记忆是没有意义的。读到上面这句,你应该回忆起原理图上的连接。任何记忆都转化为形像,这是学习的根本原理,我们通过学习单片机要学会这种学习方法,会让你一辈子受益无穷。 TCON的结构如下图: (a)定时器T0的运行控制位TR0

51单片机汇编语言教程:18课单片机中断系统

51单片机汇编语言教程:第18课-单片机中断系统

MCS-51单片机中断系统的结构: 5个中断源的符号、名称及产生的条件如下。 INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。 INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。 T0:定时器/计数器0中断,由T0计满回零引起。 T1:定时器/计数器l中断,由T1计满回零引起。 TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。整个中断系统的结构框图见下图一所示。

<51单片机中断系统结构> 如图所示,由与中断有关的特殊功能寄存器、中断入口、次序查询逻辑电路等组成,包括5个中断请求源,4个用于中断控制的寄存器IE、IP、ECON和SCON来控制中断类弄、中断的开、关和各种中断源的优先级确定。 中断请求源: (1)外部中断请求源:即外中断0和1,经由外部管脚引入的,在单片机上有两个管脚,名称为INT0、INT1,也就是P3.2、P3.3这两个管脚。在内部的TCON中有四位是与外中断有关的。IT0:INT0触发方式控制位,可由软件进和置位和复位,IT0=0,INT0为低电平触发方式,IT0=1,INT0为负跳变触发方式。这两种方式的差异将在以后再谈。IE0:INT0中断请求标志位。当有外部的中断请求时,这位就会置1(这由硬件来完成),在CPU响应中断后,由硬件将IE0清0。IT1、IE1的用途和IT0、IE0相同。(2)内部中断请求源TF0:定时器T0的溢出中断标记,当T0计数产生溢出时,由硬件置位TF0。当CPU响应中断后,再由硬件将TF0清0。TF1:与TF0类似。TI、RI:串行口发送、接收中断,在串行口中再讲解。2、中断允许寄存器IE在MCS-51中断系统中,中断的允许或禁止是由片内可进行位寻址的8位中断允许寄存器IE来控制的。见下表EAX 其中EA是总开关,如果它等于0,则所有中断都不允许。ES-串行口中断允许ET1-定时器1中断允许EX1-外中断1中断允许。ET0-定时器0中断允许EX0-外中断0中断允许。如果我们要设置允许外中断1,定时器1中断允许,其它不允许,则IE能是EAX 即8CH,当然,我们也能用位操作指令SETB EA SETB ET1SETB EX1 来实现它。3、五个中断源的自然优先级与中断服务入口地址外中断0:0003H定时器0:000BH 外中断1:0013H定时器1:001BH串行口:0023H它们的自然优先级由高到低排列。写到这里,大家应当明白,为什么前面有一些程序一始我们这样写: ORG0000HLJMP START ORG0030H START:。 这样写的目的,就是为了让出中断源所占用的向量地址。当然,在程序中没用中断时,直接从0000H开始写程序,在原理上并没有错,但在实际工作中最好不这样做。优先级:单片机采用了自然优先级和人工设置高、低优先级的策略,即能由程序员设定那些中断是高优先级、

单片机的中断系统

项目五 中断系统的应用 任务一 认识MCS-51单片机的中断系统 中断系统是单片机中非常重要的组成部分,它是为了使单片机能够对外部或内部随机发生的事件实时处理而设置的。中断功能的存在,在很大程度上提高了单片机实时处理能力,它也是单片机最重要的功能之一,是我们学习单片机必须掌握的重要内容。我们不但要了解单片机中断系统的资源配置情况,还要掌握通过相关的特殊功能寄存器打开和关闭中断源、设定中断优先级,掌握中断服务程序的编写方法。 一、中断的概念 为了弄懂中断的概念,下面我们先来了解一下单片机与外设之间数据的输入/输出方式。 1.单片机的输入/输出方式 CPU 与外设之间的信息交换称为输入/输出。在一个单片机系统中,输入/输出是必不可少的,CPU 与外设之间以何种方式进行信息交换,将直接影响到信息交换的可靠性和CPU 的效率。 例如:在一个与打印机相连的微机系统中,CPU 将需要打印的数据输出给打印机,打印机接收到数据后便可进行打印。CPU 是如何将要打印的数据输出给打印机的呢?如果打印机总是处于准备好的状态或者CPU 总是知道打印机的状态,那么CPU 无需查询打印机状态可直接进行输出,这种方式称为无条件传送方式。但外设的执行速度一般是很慢的,像打印机这样的外设不可能总处于准备好的状态,因此CPU 在输出数据前需要先查询打印机是否空闲,若空闲则进行输出操作,若打印机处于忙状态则继续查询,直到打印机处于空闲状态再进行输出。这种方式称为查询传送方式。与无条件传送方式相比,虽然查询传送方式能有效地与慢速外设进行信息交换,提高了信息交换的可靠性,解决了外设与CPU 速度不匹配的矛盾,但由于在外设未准备好的情况下,CPU 需要不断的查询外设状态,不能进行其他操作,这样就浪费了CPU 的资源,使CPU 的利用率大大降低。为了提高CPU 的工作效率,可将外设的“忙/闲”状态信息作为请求触发信号,这样,CPU 就可以做自己的工作,当打印机处理完上一批数据后处于空闲状态时,向CPU 提出中断请求信号,CPU 接到中断请求时,就暂停当前正在进行的工作转去为打印机输出数据,输出一批数据后又返回到刚才中断的地方继续进行原来的工作,这种方式称为中断传送方式。 综上所述,CPU 与外设之间信息交换有三种方式,其执行过程如图5-1所示。 图5-1 输入/输出方式示意图 (a)无条件传送方式 (b)查询传送方式 (c)中断传送方式 (c)中断传送方式

嵌入式技术应用教程——基于S3C2410第四章

第四章S3C2410A的I/O口 从这一章开始,就进入了S3C2410A底层驱动程序开发的学习过程中了。在第一章已经介绍了ARM系统开发的层级结构,本课程的内容符合层次结构中的第二层底层驱动开发,但是这里不包含启动代码的编写和操作系统移植。一般来讲ARM开发系统如广州友善之臂的micro2440开发板,英贝特公司的开发板,在加上达盛公司的实验系统等等,出厂时各类底层的相关驱动程序和应用的操作系统移植都已经编写测试完毕,其中ARM的启动代码是现成可以使用的,不需要重新编写。另外,出厂时的底层驱动代码都是可以直接使用的,这些代码可以提供给使用者自学时参考,当然如果觉得这些代码在结构上表达上都不尽如人意,读者随时都可以自行修改。达盛公司的实验系统的底层驱动程序也是现成可以使用的,但是鉴于教学需要,本课程会引导读者在理解底层硬件的基础上对这些程序进行修改或者重写编写部分驱动程序,以便使读者能够熟练掌握S3C2410A底层的驱动开发。 4.1 S3C2410A的GPIO 1.S3C2410A CPU有117个多功能复用的I/O口,共分为8组。 (1)16bit I/O端口为:Port C、Port D、Port E和Port G (2)11bit I/O端口为:Port B和Port H (3)23bit I/O端口为:Port A (4)8bit I/O端口为:Port F (5)在这里需要说明几个问题: ①端口的bit数是什么意思? 例如,Port C为16bit I/O端口,即Port C共有16位,从Port C[0]到Port C[15]都可以应用。 ②多功能复用是什么意思? ARM7和ARM9这些CPU的I/O口都可以配置成不同的功能,也就是说这些端口可以作为普通的输入输出端口使用,也可以配置成UART使用,还可以配置成I2C、SPI和SSI等总线信号使用。 (6)如何操作这些I/O端口? 用配置和访问S3C2410A的功能寄存器的方法可以操作S3C2410A的硬件资源。 2.I/O端口的控制寄存器 下面这些宏定义摘自头文件2410ADDR.H,这些通过这些寄存器就可以控制S3C2410A 的I/O端口了。还有一些功能寄存器在这里没有列出,读者可自行在2410ADDR.H这个文件中查找学习。 // I/O PORT #define rGPACON (*(volatile unsigned *)0x) //Port A control #define rGPADAT (*(volatile unsigned *)0x) //Port A data #define rGPBCON (*(volatile unsigned *)0x) //Port B control

单片机应用系统设计开发主要步骤

单片机应用系统设计开发主要步骤 单片机应用系统的研究开发步骤,大致分为几个部分: 1.策划阶段: 策划阶段决定研发方向,是整个研发流程中的重中之重,所谓“失之毫厘谬以千里”。因此必须“运筹帷幄,谋定而动”。策划有两大内涵:做什么?怎么做? 1)项目需求分析。解决“做什么?”“做到什么程度?”问题。 对项目进行功能描述,要能够满足用户使用要求。对项目设定性能指标,要能够满足可测性要求。所有的需求分析结果应该落实到文字记录上。 2)总体设计,又叫概要设计、模块设计、层次设计,都是一个意思。解决“怎么做?”“如何克服关键难题?”问题。 以对项目需求分析为依据,提出解决方案的设想,摸清关键技术及其难度, 明确技术主攻问题。 针对主攻问题开展调研工作, 查找中外有关资料, 确定初步方案,包括模块功能、信息流向、输入输出的描述说明。在这一步,仿真是进行方案选择时有力的决策支持工具。 3)在总体设计中还要划分硬件和软件的设计内容。单片机应用开发技术是软硬件结合的技术, 方案设计要权衡任务的软硬件分工。硬件设计会影响到软件程序结构。如果系统中增加某个硬件接口芯片, 而给系统程序的模块化带来了可能和方便, 那么这个硬件开销是值得的。在无碍大局的情况下, 以软件代替硬件正是计算机技术的长处。 4)进行总体设计时要注意,尽量采纳可借鉴的成熟技术, 减少重复性劳动,同时还能增加可靠性,对设计进度也更具可预测性。 2. 实施阶段之硬件设计 策划好了之后就该落实阶段,有硬件也有软件。随着单片机嵌入式系统设计技术的飞速发展,元器件集成功能越来越强大,设计工作重心也越来越向软件设计方面转移。硬件设计的特点是设计任务前重后轻。 单片机应用系统的设计可划分为两部分: 一部分是与单片机直接接口的电路芯片相关数字电路的设计,如存储器和并行接口的扩展, 定时系统、中断系统扩展, 一般的外部设备的接口, 甚至于A/D、 D/A芯片的接口。另一部分是与模拟电路相关的电路设计, 包括信号整形、变换、隔离和选用传感器,输出通道中的隔离和驱动以及执行元件的选用。 工作内容: 1)模块分解。策划阶段给出的方案只是个概念方案,在这一步要把它转化为电子产品设计的概念描述的模块,并且要一层层分解下去,直到熟悉的典型电路。尽可能选用符合单片机用法的典型电路。当系统扩展的各类接口芯片较多时, 要充分考虑到总线驱动能力。当负载超过允许范围时, 为了保证系统可靠工作, 必须加总线驱动器。 2)选择元器件。尽可能采用新技术, 选用新的元件及芯片。 3)设计电原理图及说明。 4)设计PCB及说明。 5)设计分级调试、测试方法。 设计中要注意: 1)抗干扰设计是硬件设计的重要内容, 如看门狗电路、去耦滤波、通道隔离、合理的印制板布线等。 2)所有设计工作都要落实到文字记录上。

单片机中断系统的应用教案

中断系统的应用 复习: 1、80C51单片机的中断源及入口地址; 2、与中断有关的SFR:中断允许寄存器IE、中断优先级寄存器IP、 定时器/计数器控制寄存器TCON; 3、中断与子程序调用的主要区别。 中断系统应用实例一:利用普通继电器制作断电延时型时间继电器 普通继电器在线圈电流通、断的时刻引起触点动作;断电延时型时间 继电器在线圈断电一段时间后触点动作;通电延时型时间继电器是在 线圈通电一段时间后触点才动作,时间继电器是电气控制系统中的常 用元件。 上电复位电路;X1、C2、 C3构成时钟电路;R3、V1 组成继电器KEM1的驱动 电路,VD1 轻触开关接在外中断0引 脚,开关闭合相当于时间继 电器线圈断电,R2为上拉 电阻。 编程要求:T0设定为模式1定时状态,定时时间为100毫秒,外中 断0为下降沿触发方式,继电器的延时时间为10秒。

器吸合、T0启动,10秒后继 电器释放。 程序清单: ORG 0000H LJMP START ;主程序入口 ORG 0003H LJMP KEM ;外中断0入口 ORG 000BH LJMP DL ;定时器/计数器0中断入口 ORG 0030H START: CLR P1.0 ;I/O口初始化 MOV R7,#00H ;软件计数器初始化 MOV SP, #50H ;堆栈指针初始化 MOV TMOD, #01H ;T0方式1定时模式 MOV TL0, #0B0H MOV TH0, #3CH ;100毫秒定时初值 SETB ET0 ;T0开中断 SETB IT0 ;外中断0下降沿触发方式 SETB EX0 ;外中断0开中断 SETB EA ;开总中断 MAIN: CJNE R7,#100,$ ;没到10秒继续等待

(完整word版)第4章单片机原理课后答案

习题 1. C51特有的数据类型有哪些? 答:C51特有的数据类型有位型bit、特殊位型sbit、8位特殊功能寄存器型sfr和16位特殊功能寄存器型sfr16。 2. C51中的存储器类型有几种,它们分别表示的存储器区域是什么? 答:C51中的存储器类型有6种,分别表示的存储器区域是: data:直接寻址的片内RAM低128B,访问速度快 bdata:片内RAM的可位寻址区(20H~2FH),允许字节和位混合访问 idata:间接寻址访问的片内RAM,允许访问全部片内RAM pdata:用Ri间接访问的片外RAM低256B xdata:用DPTR间接访问的片外RAM,允许访问全部64KB片外RAM code:程序存储器ROM 64KB空间 3. 在C51中,bit位与sbit位有什么区别? 答:bit位类型符用于定义一般的位变量,定义的位变量位于片内数据存储器的位寻址区。定义时不能指定地址,只能由编译器自动分配。 sbit位类型符用于定义位地址确定的位变量,定义的位变量可以在片内数据存储器位寻址区,也可为特殊功能寄存器中的可位寻址位。定义时必须指明其位地址,可以是位直接地址,也可以是可位寻址的变量带位号,还可以是可位寻址的特殊功能寄存器变量带位号。 4. 在C51中,通过绝对地址来访问的存储器有几种? 答:绝对地址访问形式有三种:宏定义、指针和关键字“_at_”。 5. 在C51中,中断函数与一般函数有什么不同? 答:中断函数是C51的一个重要特点,C51允许用户创建中断函数。中断函数用interrupt m修饰符,m的取值为0~31,对应的中断情况如下: 0——外部中断0 1——定时/计数器T0 2——外部中断1 3——定时/计数器T1 4——串行口中断 5——定时/计数器T2 中断函数需要注意如下几点。 (1) 中断函数不能进行参数传递 (2) 中断函数没有返回值 (3) 在任何情况下都不能直接调用中断函数 (4) 如果在中断函数中调用了其他函数,则被调用函数所使用的寄存器必须与中断函数相同 (5) C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容 (6) C51编译器从绝对地址8m+3处产生一个中断向量 (7) 中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明 6. 按给定的存储类型和数据类型,写出下列变量的说明形式。 (1) 在data区定义字符变量val1。

单片机原理及应用第四章课后题答案

第四章作业答案 16.MCS-51单片机系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线,为何不会产生冲突? 解: 数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突;程序存储器访问指令为MOVC,数据存储器访问指令为MOVX。程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于二者访问指令不同,控制信号不同,所以两者虽然共处于同一地址空间,不会发生总线冲突。18.某单片机应用系统,需扩展2片8KB的EPROM和2片8KB的RAM,采用地址译码法,画出硬件连接图,并指出各芯片的地址范围。 解: 硬件连接电路图如图4.18所示。各芯片的地址范围为: 2764(1#):0000H~1FFFH 2764(2#):2000H~3FFFH 6264(1#):4000H~5FFFH 6264(2#):6000H~7FFFH 图4.18 4.18题硬件连接电路图 21.8255A的端口地址为7F00H~7F03H,试编程对8255A初始化,使A口按方式0输入,B口按方式1输出。 解: 程序如下: ORG 0000H LJMP START ORG 0030H START:MOV SP, #60H MOV DPTR,#7F03H MOV A,#10010100B MOVX @DPTR,A SJMP $ END 25.使用8255A或者8155的B端口驱动红色和绿色发光二极管各4只,且红、绿发光二极管轮流发光各1s,不断循环,试画出包括地址译码器、8255A或8155与发光管部分的接口

电路图,并编写控制程序。 解: 使用8255A,电路连接图如图4.25所示。 图4.25 4.25题硬件连接电路图 其中,PB0~PB3接红色发光二极管,PB4~PB7接绿色发光二极管。设MCS-51单片机主频为12MHz。 程序如下: ORG 0000H LJMP START ORG 0030H START:MOV SP, #60H MOV DPTR, #7FFFH ; 数据指针指向8255A控制口 MOV A, #80H MOVX @DPTR, A ; 工作方式字送8255A控制口 MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口 MOV A, #0FH ; 置红色发光二极管亮 LP1:MOVX @DPTR, A ; 置红色发光二极管亮 LCALL DELAY ; 调用1S延时子程序 CPL A ; 置发光二极管亮反色 SJMP LP1 ; 循环执行 DELAY:MOV R7,#10 ; 1s延时子程序 D1:MOV R6,#200 D2:MOV R5,#248 D3:NOP DJNZ R5,D3 DJNZ R6,D2 DJNZ R7,D1 RET END 采用定时器T0方式1中断实现1s定时。 1s=50ms×20次。 T0方式1实现50ms定时,初值=216-50ms/1μs=15536=3CB0H (1s=20ms×50次,初值=216-20ms/1μs=45536=B1E0H) ORG 0000H LJMP START ORG 000BH LJMP TT0 ORG 0030 H START:MOV SP, #60H MOV DPTR, #7FFFH ; 数据指针指向8255A控制口 MOV A, #80H MOVX @DPTR, A ; 工作方式字送8255A控制口 MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口 MOV A, #0FH ; 置红色发光二极管亮

51单片机中断系统详解(定时器、计数器)

51单片机中断系统 51单片机中断级别 中断源默认中断级别序号(C语言用) INT0---外部中断0 最高0 T0---定时器/计数器0中断第2 1 INT1---外部中断1 第3 2 T1----定时器/计数器1中断第4 3 TX/RX---串行口中断第5 4 T2---定时器/计数器2中断最低 5 中断允许寄存器IE 位序号DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 符号位EA ------- ET2 ES ET1 EX1 ET0 EX0 EA---全局中允许位。 EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。EA=0,关闭全部中断。 -------,无效位。 ET2---定时器/计数器2中断允许位。EA总中断开关,置1为开; ET2=1,打开T2中断。EX0为外部中断0(INT0)开关,…… ET2=0,关闭T2中断。ET0为定时器/计数器0(T0)开关,……ES---串行口中断允许位。EX1为外部中断1(INT1)开关,…… ES=1,打开串行口中断。ET1为定时器/计数器1(T1)开关,…… ES=0,关闭串行口中断。ES为串行口(TX/RX)中断开关,…… ET1---定时器/计数器1中断允许位。ET2为定时器/计数器2(T2)开关,…… ET1=1,打开T1中断。 ET1=0,关闭T1中断。 EX1---外部中断1中断允许位。 EX1=1,打开外部中断1中断。 EX1=0,关闭外部中断1中断。 ET0---定时器/计数器0中断允许位。 ET0=1,打开T0中断。 ET0=0,关闭T0中断。 EX0---外部中断0中断允许位。 EX0=1,打开外部中断0中断。 EX0=0,关闭外部中断0中断。 中断优先级寄存器IP 位序号DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 位地址--- --- --- PS PT1 PX1 PT0 PX0 -------,无效位。 PS---串行口中断优先级控制位。

相关文档
相关文档 最新文档