中断的应用中对断点的保护
微机原理试题及答案(1)
微机原理试题及答案(1)学年第学期微机原理及应⽤(A)课程试卷卷16班级姓名得分任课教师⼀、选择题:(每题分,共18分)1、DMAC向CPU发出请求信号,CPU响应并交出总线控制权后将(3)。
反复执⾏空操作,直到DMA操作结束进⼊暂停状态, 直到DMA操作结束进⼊保持状态, 直到DMA操作结束进⼊等待状态, 直到DMA操作结束2、有⼀个实时数据采集系统,要求10ms进⾏⼀次数据采集,然后进⾏数据处理及显⽰输出,应采⽤的数据传送⽅式为( 3 )。
⽆条件传送⽅式查询⽅式中断⽅式直接存储器存取⽅式3、在数据传送过程中,数据由串⾏变并⾏,或由并⾏变串⾏的转换可通过(3 )来实现。
计数器寄存器移位寄存器D触发器4、8088 CPU输⼊/输出指令可寻址外设端⼝的数量最⼤可达(4 )个。
128 256 16K 64K5、CPU响应中断后,通过(4)完成断点的保护。
执⾏开中断指令执⾏关中断指令执⾏PUSH指令内部⾃动操作6、并⾏接⼝芯⽚8255A具有双向数据传送功能的端⼝是(1 )。
PA⼝PB⼝PC⼝控制⼝7、8088CPU处理动作的最⼩时间单位是(2 )。
指令周期时钟周期机器周期总线周期8.堆栈是内存中(4 )。
先进先出的ROM区域后进先出的ROM区域先进先出的RAM区域后进先出的RAM区域9、计算机中⼴泛应⽤的RS-232C实质上是⼀种(3 )。
串⾏接⼝芯⽚串⾏通信规程(协议)串⾏通信接⼝标准系统总线标准5--110、⾼速缓冲存储器(CACHE)⼀般是由(1 )芯⽚组成。
SRAM DRAM ROM EPROM11、⿏标器是⼀种(3 )。
⼿持式的作图部件⼿持式的光学字符识别设备⼿持式的座标定位部件⼿持式扫描器12、传送速度单位“bps”的含义是(2 )。
bytes per second bits per secondbaud per second billion bytes per second⼆、填空题:(每空1分,共12分)1、CPU在响应中断后,⾃动关中。
操作系统中断处理机制
操作系统的中断处理机制是一种负责响应和处理外部事件的能力,它使得操作系统能够实现并发、实时处理以及故障自动处理等功能。
中断处理机制主要包括以下几个部分:1. 中断请求:中断请求是外部事件向操作系统发出的请求,例如I/O操作完成、硬件故障、外部中断等。
这些请求会触发中断机制,使得操作系统暂停当前工作,转去处理中断请求。
2. 中断识别:操作系统需要识别来自不同中断源的中断请求,以便正确处理相应的事件。
识别中断源的方式包括查询中断向量表、中断号等。
3. 保护现场和断点:在响应中断之前,操作系统需要保存当前进程的执行状态,包括相关寄存器的值等。
这一过程称为现场保护。
处理完中断事件后,操作系统需要恢复原进程的执行状态,这一过程称为现场恢复。
4. 装入中断服务程序:操作系统根据中断类型和中断向量,将相应的中断服务程序的入口地址装入CPU的指令寄存器中,以便CPU能够执行中断服务程序。
5. 进入中断服务程序:CPU开始执行中断服务程序,用于处理中断请求。
在中断服务程序中,操作系统需要完成以下任务:保护被中断进程的现场信息、分析中断原因、处理发生的中断事件等。
6. 中断返回:中断服务程序处理完毕后,操作系统需要将CPU的状态恢复到原来的断点,并继续执行被中断的进程。
这一过程通过IRET(Interrupt Return)指令实现。
7. 交换指令执行地址:在中断处理过程中,操作系统需要交换CPU的执行地址,以便继续执行被中断的进程。
8. 交换CPU的态:操作系统需要将CPU的状态从中断态恢复到原来的工作态。
总之,操作系统的中断处理机制是一种负责处理外部事件的机制,它能够在保证系统稳定运行的同时,实现对各种中断事件的及时响应和处理。
这一机制依赖于硬件和软件的协同工作,使得操作系统能够实现高效的并发和实时处理能力。
计算机组成原理填空题
第一章1.基于(存储程序)原理的冯工作方式的基本特点(按地址访问并顺序执行指令)。
2.计算机硬件指(计算机系统的实体部分,他由看得见摸得着的各种电子元器件及各类光电机设备的实物组成,包括主机外设等)软件指(人们事先编制的具有各类特殊功能的程序,是无形的),固件是指(具有某软件功能的硬件,一般由ROM实现)3.计算机唯一能直接执行的语言是(机器)语言。
4.计算机将存储、算术逻辑运算和控制三个部分合称为(主机),再加上(输入设备)和(输出设备)就组成了计算机硬件系统。
5.(指令)和(数据)都放在存储器中,(控制器)能自动识别他们。
6.指令的解释是由(控制器)来完成的,运算器用来完成(算术和逻辑运算)7.计算机硬件的主要技术指标:(机器字长),(存储容量),(运算速度)。
第二章1.移码常用来表示浮点数的(阶码)部分,移码和补码除符号位不相同外,其它各位相同。
2.在浮点表示时,若用全0表示机器零(尾数为0,阶码最小),则阶码应采用(移码)机器数形式。
在定点表示时,若要求数值0在计算机中唯一表示全零,则应采用(补码)机器数形式。
3.正数补码算术移位时,(符号)位不变,空位补(0)。
负数补码算术左移时,(符号)位不变,低位补(0)。
负数补码算术右移时,(符号)位不变,高位补(1)。
4.正数原码左移时,(符号)位不变,高位丢0,结果(正确),右移时低位丢(1),结果引起误差。
负数原码左移时,(符号)位不变,高位丢(1),结果出错,右移时低位丢(1),结果正确。
5.正数补码左移时,(符号)位不变,高位丢1,结果(出错),右移时低位丢(0),结果引起误差。
负数补码左移时,(符号)位不变,高位丢(1),结果正确,右移时低位丢(1),结果引起误差。
第三章1.(Cache)、(主存)和(辅存)组成三级存储系统,分级目的是(提高访存速度、扩大存储容量)。
2.半导体静态RAM依据(触发器原理)存储信息,半导体动态RAM依据(电容存储电荷原理)存储信息。
单片机原理及应用_期末考试题复习试卷__含答案
单片机模拟试卷001一、选择题(每题1分,共10分)1.8031单片机的( D )口的引脚,还具有外中断、串行通信等第二功能。
a)P0 b)P1 c)P2 d)P32.单片机应用程序一般存放在(B)a)RAM b)ROM c)寄存器 d)CPU3.已知某数的BCD码为0111 0101 0100 0010 则其表示的十进制数值为(B)a)7542H b) 7542c) 75.42H d)75。
424.下列指令中不影响标志位CY的指令有(D )。
a)ADD A,20H b)CLR c)RRC A d)INC A5.CPU主要的组成部部分为(A)a)运算器、控制器 b)加法器、寄存器c)运算器、寄存器 d)运算器、指令译码器6.INTEL 8051 CPU是(C )位的单片机a)16 b)4 c)8 d)准167.8031复位后,PC与SP的值为( B )a )0000H,00H b)0000H,07H c)0003H,07H d)0800H,00H8.当需要从MCS—51单片机程序存储器取数据时,采用的指令为(B)。
a)MOV A, @R1 b)MOVC A, @A + DPTRc)MOVX A,@ R0 d)MOVX A, @ DPTR9.8031单片机中既可位寻址又可字节寻址的单元是( A )a)20H b)30H c)00H d)70H10.下列哪条指令是正确的(D)a) PUSH R2 b) ADD R0,Ac)MOVX A @DPTR d) MOV @R0,A二、填空题(每空1分,共30分)1.一个完整的微机系统由硬件和软件两大部分组成.2.8051 的引脚RST是____(IN脚还是OUT脚),当其端出现高电平时,8051进入复位状态。
8051一直维持这个值,直到RST脚收到____电平,8051才脱离复位状态,进入程序运行状态,从ROM H单元开始取指令并翻译和执行。
3.半导体存储器分成两大类和,其中具有易失性,常用于存储.4.求十进制数—102的补码(以2位16进制数表示),该补码为。
计算机组成原理题库
1.在单级中断系统中,CPU一旦响应中断,则立即关闭中断允许。
标志,以防止本次中断服务结束前同级的其他中断源产生另一次中断进行干扰。
2.浮点运算指令对用于科学计算的计算机是很必要的,可以提高计算机的运算速度。
(√)3.处理大量输入输出数据的计算机,一定要设置十进制运算指令。
(×)4.在计算机的指令系统中,真正必须的指令不多,其余指令都是为了提高计算机速度和便于编程而引入的。
(√)5.不设置浮点运算指令的计算机,就不能用于科学计算。
(×)6.通用寄存器间接寻址方式中,操作数处在内存单元中。
(√)7.扩展操作码是操作码字段中用来进行指令分类的代码。
(×)8.随机半导体存储器(RAM)中的任何一个单元都可以随机访问。
(√)9.和静态存储器相比,动态存储器的工作速度较慢,但功耗较低、集成度较高,因而常用于主存储器。
(√)10.一般情况下,ROM和RAM在存储体是统一编址的。
(√)11.CPU访问存储器的时间是由存储体的容量决定的,存储容量越大,访问存储器所需的时间越长。
(×)12.Cache的功能全由硬件实现。
(√)13.因为动态存储器是破坏性读出,因此必须不断的刷新。
(×)14.固定存储器(ROM)中的任何一个单元不能随机访问。
(×)15.由于半导体存储器加电后才能存储数据,断电后数据就丢失,因此,用EPROM制成的存储器,加电后必须重写原来的内容。
(×)16.交叉存储器主要解决扩充容量问题。
(×)17.访问存储器的请求是由CPU发生的。
(×)18.Cache存储器的内容是由操作系统调入的。
(×)19.DMA设备的中断级别比其他I/O设备高,否则数据将可能丢失。
(√)20.Cache与主存统一编址,即主存空间的某一部分属于Cache。
(×)21.在DMA控制方式中,主机和外设是并行运行的。
(√)22.与各中断源的中断级别相比,CPU(或主程序)的级别最高。
第04章 单片机中断系统 习题解答
第4章单片机中断系统习题解答一、填空题1.MCS-51单片机有 5 个中断源。
上电复位时,同级中断的自然优先级从高至低依次为外中断0、定时器/计数器0、外中断1、定时器/计数器1、串行口,若IP=00010100B,优先级别最高者为外中断1、最低者为定时器/计数器1。
2.外部中断请求有低电平触发和下降沿触发两种触发方式。
3.MCS-51单片机5个中断源的中断入口地址为:0003H、000BH、0013H、001BH、0023H。
4.当定时器/计数器1申请中断时,TF1为 1 ,当中断响应后,TF1为 0 。
当串口完成一帧字符接收时,RI为 1 ,当中断响应后,RI为 1 ,需要软件清零。
5.中断源扩展有三种方式,分别是定时器/计数器扩展、查询方式扩展、中断控制芯片扩展。
二简答题1.MCS-51单片机有几个中断源?各中断标志是如何产生的?如何撤销的?各中断源的中断矢量分别是什么?答:MCS-51单片机有5个中断源。
外中断0/1电平触发方式,在对应引脚上检测到低电平将中断标志位IE0/1置1向CPU申请中断,边沿触发方式,在对应引脚上检测到负跳变将中断标志位IE0/1置1向CPU申请中断;定时器/计数器0/1在计数溢出时将TF0/1置1向CPU申请中断;串行口发送1帧结束将TI置1或接收1帧数据将RI置1向CPU申请中断。
对于T0/T1和边沿触发的INT0/INT1中断标志在进入中断服务程序后自动撤销;对于电平触发的INT0/INT1需在中断申请引脚处加硬件撤销电路;对于串行口中断标志TI/RI需在进入中断服务程序后用软件CLR RI或CLR TI,撤销。
它们的中断矢量分别是:0003H、000BH、0013H、001BH、0023H。
2.简述MCS-51中断过程答:中断过程分中断申请、中断响应、中断处理、中断返回4个阶段。
中断请求:各中断源根据自身特点施加合适的信号,将对应的中断标志位置1向CPU申请中断。
浅谈操作系统中的中断
4COMl 5
Uyll2
6软盘控制器
7 LPTl
对NMI进入的中断请求,由于其类型码固定为2,因此CPU不用
从外设读取类型码,也不需计算中断向量表的地址,只要将中断向量表 中0000:0008H~0000:000BH单元内容分别装入IP和cs即可。 (1)8086/8088除软件中断外,内部“非屏蔽中断”、“可屏蔽中断”均
统打印电费收据完整准确,查询方便及时,使居民用电明白,交费放心, 受到了全矿员工家属的一致好评。 电费腓雒理系统
歌瞎录^||数据坑计ll数据输出1|系统维护l l数据查询Il系坑退出1l视始化
雏 驯陲 驸剐鲴I|1||㈣蓁
图1电费网络管理系统结构 2.3系统的技术特征 该系统性能稳定,数据准确率达100%,实现多用户任意查询,运行 速度快,抗干扰能力强,用户界面简洁美观,采用汉字操作平台,具有系 统数据自动保存功能。 3、电费网络管理系统的特点 3.1电费网络管理系统代替了电管员上门收费,变电管员被动收费 为居民用户主动交费。 3.2系统具有很强的查询统计功能,可对用户数据库数据随时进行 任意查询。 4、实施效果 4.1提高了企业用电管理水平 煤峪口矿实施电费网络管理系统创新研究以来,极大地提高了企 业用电管理水平,为领导在供用电宏观决策上提供了科学的依据,同时 节约了大量的人力、物力和财力,增强了员工的节电意识。管理效果大 大提高。原来偷窃电能、浪费电能、损坏用电设施等混乱的用电管理局 面已不复存在,迎来的是一个崭新的用电管理体系;原来耗时较长、环 节较多、困难较大的电费收费管理工作现在只需要几秒钟即可完成,减 少了人工环节和人为差错。同时为煤炭企业用电管理实践与创新研究, 提供了一种全新的管理途径和管理模式。 4.2经济和社会效益显著提高 实施电费网管系统以来取得了良好的社会效益,受到全矿员工家 属的一致好评,同时极大地降低了企业电力成本,节约了电费开支,提 高了矿井生产效率,企业经济效益比以前有所提高。 (1)系统运行以来,极大地减轻了电管员的收费工作量,电管员由 原来的38人,减至现在的6人,每人每月平均工资按950元计算,共节 约人工工资76万元。 (2)使用电费网络管理系统后,杜绝了乱收费现象,提高了电费回 收率,平均每月比同期增收1.3万元。 该系统适合于国有煤炭企业用电管理,国有煤炭企业不加任何修 改即可直接使用。 今后,我们要在大同煤矿集团公司各矿推广应用该项全新的管理 成果,并在实施过程中,不断吸收引进新的管理理念,使煤炭企业用电 管理走向科学化、网络化、信息化,从而推动企业经济的发展。
单片机中断处理过程:中断响应 中断处理 中断返回详解
单片机中断处理过程:中断响应中断处理中断返回详
解
中断处理过程可分为中断响应、中断处理和中断返回三个阶段。
中断响应
中断响应是CPU 对中断源中断请求的响应,包括保护断点和将程序转向中断服务程序的入口地址(通常称矢量地址)。
中断响应过程
中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。
首先,中断系统通过硬件自动生成长调用指令(LACLL),该指令将自动把断点地址压入堆栈保护(不保护累加器A、状态寄存器PSW 和其它寄存器的内容),然后,将对应的中断入口地址装入程序计数器PC(由硬件自动执行),使程序转向该中断入口地址,执行中断服务程序。
MCS-51 系列单片机各中断源的入口地址由硬件事先设定,分配如下:
中断源入口地址
外部中断00003H
定时器T0 中断000BH
外部中断10013H
定时器T1 中断001BH
串行口中断0023H
使用时,通常在这些中断入口地址处存放一条绝对跳转指令,使程序跳转到用户安排的中断服务程序的起始地址上去。
中断返回
中断返回是指中断服务完后,计算机返回原来断开的位置(即断点),继续执。
中断系统的功能
中断系统中断装置和中断处理程序统称为中断系统。
中断系统是计算机的重要组成部分。
实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。
中断系统的应用大大提高了计算机效率。
不同的计算机其硬件结构和软件指令是不完全相同的,因此,中断系统也是不相同的。
计算机的中断系统能够加强CPU对多任务事件的处理能力。
中断机制是现代计算机系统中的基础设施之一,它在系统中起着通信网络作用,以协调系统对各种外部事件的响应和处理。
中断是实现多道程序设计的必要条件。
中断是CPU对系统发生的某个事件作出的一种反应。
引起中断的事件称为中断源。
中断源向CPU提出处理的请求称为中断请求。
发生中断时被打断程序的暂停点成为断点。
CPU暂停现行程序而转为响应中断请求的过程称为中断响应。
处理中断源的程序称为中断处理程序。
CPU执行有关的中断处理程序称为中断处理。
而返回断点的过程称为中断返回。
中断的实现实行软件和硬件综合完成,硬件部分叫做硬件装置,软件部分成为软件处理程序。
中断系统的功能1)实现中断响应和中断返回当CPU收到中断请求后,能根据具体情况决定是否响应中断,如果CPU没有更急、更重要的工作,则在执行完当前指令后响应这一中断请求。
CPU中断响应过程如下:首先,将断点处的PC值(即下一条应执行指令的地址)推入堆栈保留下来,这称为保护断点,由硬件自动执行。
然后,将有关的寄存器内容和标志位状态推入堆栈保留下来,这称为保护现场,由用户自己编程完成。
保护断点和现场后即可执行中断服务程序,执行完毕,CPU由中断服务程序返回主程序,中断返回过程如下:首先恢复原保留寄存器的内容和标志位的状态,这称为恢复现场,由用户编程完成。
然后,再加返回指令RETI,RETI指令的功能是恢复PC值,使CPU返回断点,这称为恢复断点。
恢复现场和断点后,CPU将继续执行原主程序,中断响应过程到此为止。
2)实现优先权排队通常,系统中有多个中断源,当有多个中断源同时发出中断请求时,要求计算机能确定哪个中断更紧迫,以便首先响应。
中断的基本原理和处理流程。
中断的基本原理和处理流程。
中断是计算机中的一个重要概念,它是指CPU在执行程序的过程中,由于内部或外部的原因,需要暂时停止当前正在执行的程序,转而去执行另一段程序,这段程序执行完后,再返回到原来暂停的程序继续执行。
中断的基本原理和处理流程如下:
一、中断的基本原理
中断是一种由硬件或软件引起的、能改变处理器执行顺序的一种机制。
当中断发生时,处理器会停止当前的执行流,跳转到另一个预定义的地址,即中断服务程序(Interrupt Service Routine, ISR)的入口地址,去执行中断服务程序。
中断服务程序执行完毕后,处理器会恢复原来的执行流,继续执行被中断的程序。
二、中断的处理流程
中断请求:中断源向CPU发出中断请求信号。
中断响应:CPU响应中断请求,保护现场,将断点地址及有关状态信息压入堆栈或存入特定的寄存器中,以便在中断服务程序执行完毕后能正确地返回到原来的程序。
中断处理:CPU跳转到中断服务程序入口地址,执行中断服务程序。
中断服务程序负责处理中断事件,完成后需要清除中断标志位,以便CPU能继续响应其他中断。
中断返回:中断服务程序执行完毕后,CPU恢复现场,从堆栈或特定的寄存器中弹出断点地址及有关状态信息,然后返回到
原来的程序继续执行。
需要注意的是,中断的优先级是一个重要的概念。
在多个中断同时发生时,处理器会根据中断的优先级来决定先处理哪个中断。
高优先级的中断可以打断低优先级的中断,但同级或低优先级的中断不能打断高优先级的中断。
单片机习题集及其规范标准答案12
习题一1.什么是单片机,和微机相比较,它有什么优点?2.请叙述51系列单片机的主要产品及其特点。
3.除51系列单片机外,常用的单片机还有哪些型号,各有什么优点?4.单片机中常用的数制有哪些,它们之间相互如何转换?5.计算机中常用的二进制编码有哪些,请分别予以叙述。
6.(1)10和(-1)10的原码、反码和补码分别是多少?习题二1.单片机主要应用在什么领域?2. 89C51单片机包含哪些主要逻辑功能部件? 各有什么主要功能?3.89C51单片机EA端如何使用?4.什么是机器周期、指令周期?89C51指令周期、机器周期和时钟周期的关系如何?当主频为12MHz时,一个机器周期等于多少微秒?执行一条最长的指令需多少微秒?5.如何认识89C51存储器空间在物理结构上可划分为四个空间,而在逻辑上又可划分为三个空间?各空间的寻址范围、寻址方式是什么?6.89C51有哪些主要的特殊功能寄存器,分布在哪里?7.内部RAM低128B从功能和用途方面,可划分为哪三个区域?8.89C51内部RAM有几组工作寄存器?每组工作寄存器有几个工作寄存器?寄存器组的选择由什么决定?9.89C51的外部RAM和I/O口是如何编址的,如何寻址?10.89C51的程序存储器的寻址空间是多少,如何区别片内程序存储器和片外程序存储器的?11.89C51的位寻址区在哪里,位寻址空间是多少?12.什么是堆栈,什么是SP,89C51的堆栈位于什么地方,复位后堆栈指针初值是多少,一般将SP设置为多少?进栈、出栈时堆栈指针将怎样变化?13.单片机包括哪两种复位方式,在单片机应用系统中为何需要系统复位,复位后主要寄存器的状态如何?14.89C51的P3口各引脚的第二功能是什么?15.89C51有几种低功耗方式,如何进入和退出?习题三1.什么是指令,什么是指令系统?2.89C51总共有多少条指令,分为哪几类?3.89C51有哪些寻址方式,各自的寻址空间如何?4.说明下列指令中源操作数采用的寻址方式。
西华大学微机原理考试题库 2
1,典型中断处理程序结构应包括CPU中断响应,保护现场,开中断,执行中断服务程序,关中断,恢复现场,开中断,返回等部分。
2,按照总线的规模,用途及其应用场合,总线分为数据总线,地址总线,控制总线3,串行接口RS—232C关于机械特性的要求,规定使用一个9根插针的标准连接器4,CPU与I/O接口间传送的信息一般包括数据信息,状态信息,控制信息3种类型。
3类信息的传送方向分别应是(从哪到哪)CPUI/O,CPUI/O,CPUI/O5,输入/输出端口有2种编址方法,即I/O端口与存储器单元统一编址和I/O端口单独编址,前一种编址的主要优点是1,CPU对外设的操作可使用全部的存储器操作指令2,由于I/O端口的地址空间是内存空间的一部分,这样I/O端口的地址空间可大可小从而使外设的数目几乎不受限制,而只受总存储量的限制,从而大大的增加了系统的吞吐率3,不需要专门的输入/输出指令,降低了对操作码的解码难度6,8088系统中外围设备请求总线控制权是通过HOLD进行的7,8086通过中断控制器最多可望管理外部中断的个数为2568,CPU的ALU的主要完成算数,逻辑运算及位移操作9,若设某容量为2K字节的RAM起始地址为1000H,则其终止地址为17FFH10,8088/8086系统中外围设备可屏蔽中断请求是通过INTR进行的可编程定时/计数器8253的工作方式共有6种,其中3个定时/计数器通道,3个地址寄存器11 CPU马上响应中断的必要条件之一是一条指令执行完毕后12 CPU与I/O接口间信息传送的方式有无条件传送,查询传送,中断传送,DMA传送,DMA传送方式为快速传递方式13,8086/8088的中断响应用了2个总线周期,从INTA引脚输出2个负脉冲,第1个总线周期完成AD15——-AD0浮空,通知中断源,准备中断类型码,复位中断请求信号,第2个总线周期完成被响应的外设(或接口芯片)向数据总线AD7———AD0输送一个字节的中断类型码14,在Intel 8253A中通过对其中一个控制端口的编程设定和控制工作方式,其端口地址是当A1A0=11时的地址,而内存单元的有效偏移地址可由直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,变址寻址方式,基址寻址方式,相对基址变址寻址方式15,8088CPU有20根外部地址线,8根外部数据线,其存储器分段管理,每段最大64KB,段基地址在段寄存器组中16,8088CPU工作在最大模式,必须将CPU的引脚MN/MX接地(MN/MX=0)17,8088CPU工作在最大模式时,MN/MX=1,用8288对S2,S1,S0信号译码产生相应的总线控制信号18,8086对外部请求相应优先级最高的请求是HOLD19,个人计算机I/O寻址空间大小一般为64K20,一个程序可包含四个段,代码段包含可执行的指令,堆栈段包含一个后进先出的数据警戒区,用于保护子程序调用时的段现场地址,和现场IP信息在宏汇编语言源程序中指令MOV AX,2345经汇编后变成MOV AX,0929H(用指令表示)在DEBUG 调试程序中执行该指令后(AX)=2345H宏汇编默认十进制,DEBUG默认十六进制21,8088CPU在执行指令INT 13H时,断点地址压栈后,将转而执行中断服务子程序,入口地址存入在内存的0004CH单元到0004FH单元,其中低地址的字送至寄存器IP中,高地址字送至寄存器CS中22,若寄存器DL内容为2AH,PORT_VAL为端口13H的符号名,宏汇编语言系统对指令AND DL,PORT_VAL AND OFEH汇编后产生的语句为AND DL,12H,DL内容为2AH,执行指令后DL=02H23,在串行通信方式中,有两种最基本的通信方式是异步通信(ASYNC)方式,同步通信方式24.8086/8088中,一个最基本的总线周期由4个时钟周期(T状态)组成,在T1状态,CPU往总线发出地址信息25,8086/8088复位后从FFFF0H地址处开始执行程序26,在堆栈内,有效地址为2500H到2505H单元内依次存放10H,20H,30H,40H,50H,60H六个数,已知SP=2502H,执行POP BX后,有SP=2504H,BX=4030H27,能完成将AL寄存器清零的有SUB AL,AL XOR AL,AL MOV AL,028,8086的内存空间和I/O空间是单独编址的,分别是1MB和64KB29,8086内部由执行单元(EU)和总线接口单元(BIU)两部分组成,其作用分别是从BIU中获得指令并执行和从内存储器的指定区域中取出指令送到指令队列中去排队30,8086的基址加变址寻址方式中,基址寄存器可以是BX,BP,变址寄存器可以是SI和DI 31,标号和变量均是汇源程序中的符号地址,其中标号指向的内存单元中存放的是指令,而变量指向的内存单元中存放的是数据。
单片机应用系统断电时的数据保护方法
单片机应用系统断电时的数据保护方法在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。
掉电保护通常可采用以下三种方法:一是加接不间断电源,让整个系统在掉电时继续工作,二是采用备份电源,掉电后保护系统中全部或部分数据存储单元的内容;三是采用EEPROM来保存数据。
由于第一种方法体积大、成本高,对单片机系统来说,不宜采用。
第二种方法是根据实际需要,掉电时保存一些必要的数据,使系统在电源恢复后,能够继续执行程序,因而经济实用,故大量采用[1]。
EEPROM既具有ROM掉电不丢失数据的特点,又有RAM随机读写的特点。
但由于其读写速度与读写次数的限制,使得EEPROM不能完全代替RAM。
下面将介绍最常用的一些掉电保护的处理方法,希望能对相关设计人员在实际工作中有所帮助。
1 简单的RAM数据掉电保护电路在具有掉电保护功能的单片机系统中,一般采用CMOS单片机和CMOS RAM。
CMOS型RAM存储器静态电源小,在正常工作状态下一般由电源向片外RAM供电,而在断电状态下由小型蓄电池向片外RAM供电,以保存有用数据,采用这种方法保存数据,时间一般在3-5个月[2]。
然而,系统在上电及断电过程中,总线状态的不确定性往往导致RAM内某些数据的变化,即数据受到冲失。
因此对于断电保护数据用的RAM存储器,除了配置供电切换电路外,还要采取数据防冲失措施,当电源突然断电时,电压下降有个过程,CPU在此过程中会失控,可能会误发出写信而冲失RAM中的数据,仅有电池是不能有效完成数据保护的,还需要对片选信号加以控制,保证整个切换过程中CS引脚的信号一直保持接近VCC。
通常,采用在RAM的CS和VCC引脚之间接一个电阻来实现COMS RAM的电源切换,然而,如果在掉电时,译码器的输出出现低电平,就可能出现问题,图1给出一种简单的电路设计,它能够避免上述问题的产生。
单片机基础(第3版)——第5章
第一部分:主程序初始化 此部分必须编写
功能:
用于设置堆栈位置; 定义触发方式(低电平触发或脉冲下降沿触发) 对IE和IP赋值等; 第二部分:须由主程序完成的其它功能。
1.中断系统的程序编制
(2)选择中断服务程序的入口地址。 (3)编制中断服务程序。
即明确中断服务程 序的起始位置
DJNZ R6,D2 DJNZ R5,D1 RET INT0: PUSH PSW ;保护PSW,ACC值 PUSH ACC MOV A,#00H ;使8个LED全亮 MOV R2,#6 ;闪烁3次(全亮全灭各3次) L4:MOV P1,A ;A值送出 LCALL DELAY ;延时0.2秒 CPL A ;A值取反 DJNZ R2,L4 ;闪烁3次? POP ACC ;恢复保护的A值 POP PSW ;恢复保护的PSW值 RETI ;返回主程序 END
4.3定时/计数器
1. 日常生活中定时、计数的例子: 2 . 单片机应用系统中定时计数的需求:
如用单片机控制的打铃器、空调的定时开关、啤酒自 动生产线上对酒瓶的计数装置等。 3 . 80C51单片机片内的定时/计数器: 两个16位可编程的定时/计数器:T0和T1,都能定 时和对外部事件进行计数。 此外,T1还可以作为串行接口的波特率发生器。
说明:此时串口的优先级高于外部中断0的优先级
答案:
此时CPU按自然优先级顺序确定该响应哪个
中断请求。
如果几个同级别的中断 源同时申请中断,CPU 如何响应?
注意: 自然优先级由硬件决定,用户不能更改。 排列见表4-2
表4-2
中断入口地址及自然优先级
3.定时/计数器及外部中断控制寄存器TCON • 功能:
3.中断系统
微机原理第八章:中断技术讲解
1.中断源识别
★ 软件查询法:
★ 中断矢量法:中断源提供中断类型号,CPU根据类型确定中断源 2.中断判优
★ 对同时产生的中断,首先处理优先级别较高的中断;
若优先级别相同,则按先来先服务的原则。
★ 对非同时产生的中断:
低优先级的中断程序允许被高优先级的中断源所中断
1.中断服务子程序的特点: 为“远过程”,用 IRET 指令返回
2.中断服务程序完成的工作
1)保护现场(通用寄存器的内容)
2)开中断(STI)
3)中断处理
4)关中断(CLI)
5)恢复现场 6)IRET
中断服务程序结构
保护有关寄存器内容 开中断
执行中断服务程序 关中断
恢复有关寄存器内容 执行IRET
精品资料
④ 执行 IRET 指令
4.退出中断(zhōngduàn) ① 关中断(zhōngduàn)
退
出
② 恢复现场中
③ 恢复断点 ④ 开中断(zhōngduàn) 断
精品资料
关中断 保存断点,保存现场
判别中断源 转入中断服务程序 保护寄存器、开中断 执行中断服务程序
IRET
关中断 恢复现场,恢复断点
开中断
STOSW
;串存储(字)
;AX→ES∶[DI]、 [DI+1]
MOV AX,SEG_INTR
;中断服务程序段基址送AX
STOSW
;串存储(字)
STI
;开中断
精品资料
2.用 MOV将直接(zhíjiē)中断向量写入中断向量表中
;将中断向量直接(zhíjiē)写入中断向量表中的程序段为
中断的应用中对断点的保护
【016】中断的应用中对断点的保护 [51]点击数:430 发布日期:2006-8-22 20:37:00【收藏】【评论】【打印】【编程爱好者论坛】【关闭】实验参考: 笨笨工作室-实验八、按键控制跑马灯(中断)。
(查看)实验板: FB51A。
(查看)实验目的: <1> 掌握堆栈在中断程序中的作用。
<2> 掌握让程序保护现场的方法。
实验现象: 二极管作左右跑马灯,当按下外部按键 K1 时, 8 个二极管全部闪烁 5 次后从 K1 按下之前的位置继续作跑马灯。
在应用中断时,若主程序在正常运行的过程中响应了中断就要转而去执行中断服务程序。
那如何在执行完中断服务程序之后完全恢复原来的主程序呢?这就需要在执行中断服务程序之前将相关的状态保护起来,在中断完成后再将这些状态恢复,从而继续执行主程序。
51单片机中允许我们从内部 RAM 中指定一个空间专门保存这些断点处的状态,这个空间就是堆栈。
并且还专门给了我们一个 8 位的堆栈指针,让我们用它来开辟堆栈空间。
例如我们给堆栈指针赋值: mov sp, #70h ,就表示我们把内部数据 RAM 的地址为 70H 开始的单元设为堆栈。
MCS-51的片内存储器(RAM)共有256字节,高128字节是特殊功能寄存器,地址范围80H~FFH。
这一部分可看作系统资源,不能随便利用。
而剩下的低12 8字节区分如下:──┬────────────┐7FHㄧ用户RAM区ㄧㄧ(数据缓冲区、堆栈区)ㄧ30Hㄧ 80 byte ㄧ──┼────────────┤2FHㄧ可位寻址区ㄧ20Hㄧ 16 byte ㄧ──┼────────────┤1FHㄧ第3组工作寄存器区ㄧ18Hㄧ 8 byte ㄧ──┼────────────┤17Hㄧ第2组工作寄存器区ㄧ10Hㄧ 8 byte ㄧ──┼────────────┤0FHㄧ第1组工作寄存器区ㄧ08Hㄧ 8 byte ㄧ──┼────────────┤07Hㄧ第0组工作寄存器区ㄧ00Hㄧ 8 byte ㄧ──┴────────────┘在这低128字节中,工作寄存器区和位寻址区的地址已分配好,我们可以利用的只有 30H ~ 7FH 的数据缓冲区。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【016】中断的应用中对断点的保护 [51]点击数:430 发布日期:2006-8-22 20:37:00【收藏】【评论】【打印】【编程爱好者论坛】【关闭】实验参考: 笨笨工作室-实验八、按键控制跑马灯(中断)。
(查看)实验板: FB51A。
(查看)实验目的: <1> 掌握堆栈在中断程序中的作用。
<2> 掌握让程序保护现场的方法。
实验现象: 二极管作左右跑马灯,当按下外部按键 K1 时, 8 个二极管全部闪烁 5 次后从 K1 按下之前的位置继续作跑马灯。
在应用中断时,若主程序在正常运行的过程中响应了中断就要转而去执行中断服务程序。
那如何在执行完中断服务程序之后完全恢复原来的主程序呢?这就需要在执行中断服务程序之前将相关的状态保护起来,在中断完成后再将这些状态恢复,从而继续执行主程序。
51单片机中允许我们从内部 RAM 中指定一个空间专门保存这些断点处的状态,这个空间就是堆栈。
并且还专门给了我们一个 8 位的堆栈指针,让我们用它来开辟堆栈空间。
例如我们给堆栈指针赋值: mov sp, #70h ,就表示我们把内部数据 RAM 的地址为 70H 开始的单元设为堆栈。
MCS-51的片内存储器(RAM)共有256字节,高128字节是特殊功能寄存器,地址范围80H~FFH。
这一部分可看作系统资源,不能随便利用。
而剩下的低12 8字节区分如下:──┬────────────┐7FHㄧ用户RAM区ㄧㄧ(数据缓冲区、堆栈区)ㄧ30Hㄧ 80 byte ㄧ──┼────────────┤2FHㄧ可位寻址区ㄧ20Hㄧ 16 byte ㄧ──┼────────────┤1FHㄧ第3组工作寄存器区ㄧ18Hㄧ 8 byte ㄧ──┼────────────┤17Hㄧ第2组工作寄存器区ㄧ10Hㄧ 8 byte ㄧ──┼────────────┤0FHㄧ第1组工作寄存器区ㄧ08Hㄧ 8 byte ㄧ──┼────────────┤07Hㄧ第0组工作寄存器区ㄧ00Hㄧ 8 byte ㄧ──┴────────────┘在这低128字节中,工作寄存器区和位寻址区的地址已分配好,我们可以利用的只有 30H ~ 7FH 的数据缓冲区。
所以我们的堆栈指针只能设在这个区域。
在主程序中,让程序作左右跑马灯(参考【004】流水灯实验),。
程序中通过把寄存器a中的数进行左环移来实现的。
而a又是最常用的一个寄存器,在中断服务程序中也多数会用到,所以在响应中断时要将其保存起来(压入堆栈)。
由于程序状态字寄存器PSW(位于特殊功能寄存器区)的不同位包含了程序运行状态的不同信息,所以进入中断时也要将PSW的值保护起来。
在返回主程序之前,再把它们取出来,这样就可以使得程序从进入中断之前的位置开始,继续作跑马灯。
键识别部分参考【015】中断方式按键一文。
所用电路如下:显示部分:键盘部分:程序如下:org 0000hljmp startorg 0013hljmp ext1org 0020hstart: setb ea ; CPU开中断setb ex1 ; 允许外部中断1申请中断setb it1 ; 设置外部中断1为跳变方式触发 mov sp, #70h ; 设置堆栈入口loop1: lcall led_flow ; 调用左右流水灯程序ljmp loop1ext1: ; 中断服务程序clr ea ; CPU关中断push acc ; a 入栈push psw ; psw 入栈lcall key ; 调用键识别子程序pass: pop psw ; 恢复现场(与入栈顺序相反)pop accsetb ea ; CPU开中断reti ; 中断返回led_flow: mov a, #0ffh ; 左右流水灯子程序clr c ; 清Cy进位标志位mov r7, #08h ; 左循环次数lloop: rlc a ; a循环左移mov p0, a ; a送P0口lcall del100ms ; 延时100msdjnz r7, lloop ; 左移8次mov r6, #06h ; 右循环次数rloop: rrc amov p0, alcall del100msdjnz r6, rloopretkey: mov a, p1 ; 键识别子程序anl a, #0fhcjne a, #0dh, passlcall del10msmov a, p1anl a, #0fhcjne a, #0dh, passlcall key_flash ; K1按下则调用灯闪程序retkey_flash: mov a, #00h ; 灯闪5次子程序mov r5, #10 ; 闪一次有一亮一灭loop2: mov p0, acall del100mscpl a ; 取反djnz r5, loop2retdel10ms: ; 10ms延时子程序(12M)mov r4, #20 ; 2机器周期temp1: mov r3, #248 ; 2机器周期djnz r3, $ ; 2机器周期 2+2×248=498djnz r4, temp1 ; 2机器周期2×20=40ret ; 2+20×498+40=10002 即10msdel100ms: mov r2, #0c3h ;100.036mstemp2: mov r1, #0ffh ;511usdjnz r1, $djnz r2, temp2retend★实验结果: 最终下载到FB51A实验板上得到预计结果。
但在用Porteus仿真时却出现问题,流水灯正常运行时按下K1键后,8只LED闪烁5次后所有LED全灭,并未继续运行。
在LED正常"流水"时按下K0、K2、或K3键时,则停在当前状态(一只LED亮)。
经过调试后仍未解决,由于这个板上的键盘设计的有些不同,每个键都通过一个4148连到P3.3,而在Proteus中仿真时用4148行不通,所以用4001代替的。
所以怀疑是这里的问题, 于是又试着用另一块板(AS系统)试了一下, 将外部中断1(P3.3)直接接一个开关后接地, 这样就可以直接触发中断了, 程序中去除了键识别的部分, 试验结果还是一样, 板上实测通过,仿真仍然会停在中断服务程序中。
后来又试着换了个中断源,原来用的外部中断1,现在改用外部中断0,程序中作相应的修改后再仿真就OK了。
又翻了翻书,外部中断1和外部中断0好像没什么不同,只是外部中断0的优先级要比外部中断1高。
而在板上实测二者均通过,只是在仿真的时候出现问题,难道是Porteus软件本身对这两个中断源的优先级有所区别? 还是软件本身有问题……还是感觉这块板上的键盘结构在这个实验中很别扭,所以还是改为直接用一个开关控制,电路如下:程序如下:org 0000hljmp startorg 0003hljmp ext1org 0030hstart: setb ea ; CPU开中断setb ex0 ; 允许外部中断1申请中断setb it0 ; 设置外部中断1为跳变方式触发 mov sp, #70h ; 设置堆栈入口loop1: lcall led_flow ; 调用左右流水灯程序ljmp loop1ext1: ; 中断服务程序clr ea ; CPU关中断push acc ; a 入栈push psw ; psw 入栈lcall key_flash ; K1按下则调用灯闪程序pass: pop psw ; 恢复现场(与入栈顺序相反) pop accsetb ea ; CPU开中断reti ; 中断返回led_flow: mov a, #0ffh ; 左右流水灯子程序clr c ; 清Cy进位标志位mov r7, #08h ; 左循环次数lloop: rlc a ; a循环左移mov p0, a ; a送P0口lcall del100ms ; 延时100msdjnz r7, lloop ; 左移8次mov r6, #06h ; 右循环次数rloop: rrc amov p0, alcall del100msdjnz r6, rloopretkey_flash: mov a, #00h ; 灯闪5次子程序mov r5, #10 ; 闪一次有一亮一灭loop2: mov p0, acall del100mscpl a ; 取反djnz r5, loop2retdel10ms: ; 10ms延时子程序(12M) mov r4, #20temp1: mov r3, #248djnz r3, $djnz r4, temp1retdel100ms: mov r2, #0c3h ;100.036mstemp2: mov r1, #0ffhdjnz r1, $djnz r2, temp2retend引用地址:/trackback.asp?id=17770。