单片机原理及应用课后习题答案第5章作业
- 格式:doc
- 大小:141.00 KB
- 文档页数:7
第5、6、7、8章习题一、问答题1.说明51单片机读端口锁存器的必要性,为什么? 答:2.请说明为什么使用LED 需要接限流电阻,当高电平为+5V 时,正常点亮一个LED 需要多大阻值的限流电阻(设LED 的正常工作电流为8~mA ,导通压降为0.6V ),为什么? 答:3.简述在使用普通按键的时候,为什么要进行去抖动处理,如何处理。
答:4.简述LED 数码管动态扫描的原理及其实现方式。
答:5.为什么51单片机在读口的引脚状态时,许先向端口写“1”,请用图5-1 P1结构图加以说明。
答:5.简述89c51各IO 口的驱动能力。
答:6.什么是中断?中断与子程序最本质的区别?答:写锁存器内部总线图5-1 P1口结构图7.编制中断服务程序时,为什么在主程序的初始化程序中,必须设置EA=1 这条指令(或达到同样功能的对IE赋值的指令),以及在中断服务程序中为什么通常需要保护现场和恢复现场?答:8.单片机89C51有哪些中断源,CPU对其中断如何请求?答:9.简述单片机89C51中断的自然优先级顺序,如何提高某一中断源的优先级别。
答:10.简述51系列单片机中断响应的条件。
答:11.用汇编语言编程时,在51系列单片机执行中断服务程序的指令较多时,为什么一般都要在入口地址(又称中断矢量地址)开始的地方放一条跳转指令?答:12.为什么一般都把主程序的起始地址放在0030H之后?答:13.中断服务子程序返回指令RETI和普通子程序返回指令RET的区别?答:14.简述51单片机定时/计数器4种工作模式的特点。
答:15.定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?答:16.画出51单片机计数/定时器方式1的逻辑结构框图,说明它们的工作原理,如何使用门控和非门控启动计数的方法。
答:17.在使用8051的定时器/计数器前,应对它进行初始化,其步骤是什么?答: (1)确定T/C的工作方式——编程TMOD寄存器;(2)计算T/C中的计数初值,并装载到TH和TL;(3)T/C在中断方式工作时,须开CPU中断和源中断——编程IE寄存器;(4)启动定时器/计数器——编程TCON中TR1或TR0位。
作业答案0-1绪论1.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM 和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。
2.什么叫单片机?其主要特点有哪些?解:将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。
单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。
第1章MCS-51单片机的结构与原理15. MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?解:MCS-51系列单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。
每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。
通常把4个端口称为P0~P3。
在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。
在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。
MCS-51系列单片机数据总线为8位,地址总线为18位,对外可寻址空间为64KB。
25. 开机复位后,CPU使用的是哪组工作寄存器(R0-R n)?它们的地址是什么?CPU如何确定和改变当前工作寄存器组(R0-R n)?解:开机复位后,CPU使用的是第0组工作寄存器。
它们的地址是00H-07H。
CPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。
27. MCS-51单片机的时钟周期、机器周期、指令周期是如何定义的?当主频为12MHz的时候,一个机器周期是多长时间?执行一条最长的指令需要多长时间?解:时钟周期又称为振荡周期,由单片机内部振荡电路OSC产生,定义为OSC时钟频率的倒数。
第5章习题答案5-1 什么叫中断系统?中断系统的功能是什么?什么是中断嵌套?答:当CPU正在执行主程序时,外部或内部发生的某一事件(如某个引脚上电平的变化、一个脉冲的发生或计数器的计数溢出等)请求CPU迅速处理,CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,CPU再继续执行原来被中断的程序,这样的过程称为中断。
功能:中断系统是为使CPU 具有对单片机外部或内部随机发生的事件进行实时处理而设置的。
中断嵌套:8051设置了两级中断优先级,低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优先级的中断服务,从而实现中断嵌套。
5-2 MCS-51型单片机各中断源的中断标志是如何产生的?又是如何清除的?CPU响应中断时,中断入口地址各是多少?答:见p133;.或端出现有效中断请求时,IE0 IE1)位由硬件置“1”。
当中断响应当CPU采样到IE0IE1完成转向中断服务程序时,由硬件把IE0(或IE1)清零。
TF0和TF1——计数溢出标志位,当计数器产生计数溢出时,相应的溢出标志位由硬件置“1”。
当转向中断服务时,再由硬件自动清“0”。
TI:串行发送中断标志。
CPU将数据写入发送缓冲器SBUF时就启动发送,每发送完一帧后,硬件将TI置位,必须由软件清0.RI:串行接收中断标志。
串口允许接收时,每接收完一帧后,硬件将RI置位,必须由软件清0.地址分别为:0003H,000bH0013H,001BH,0023H5-3:在MCS-51型单片机中,哪些中断标志可以在响应自动撤除。
见第二题,也可见P136;5-4答:见p136.5-5:解:PX1=1;IT1=0;PT1=0;PS=1;EA=1;ES=1;ET1=1;EX1=1;ET0=0;EX0=0;5-6解:两个,它由模式设置寄存器TMOD,中断控制寄存器IE,中断优级级寄存器IP,中断标志寄存器TCON组成5-8 请叙述TMOD=A6H所代表的含义。
第一章习题1.什么是单片机?单片机和通用微机相比有何特点?答:单片机又称为单片微计算机,它的结构特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。
虽然单片机只是一个芯片,但无论从组成还是从逻辑功能上来看,都具有微机系统的定义。
与通用的微型计算机相比,单片机体积小巧,可以嵌入到应用系统中作为指挥决策中心,是应用系统实现智能化。
2.单片机的发展有哪几个阶段?8位单片机会不会过时,为什么?答:单片机诞生于1971年,经历了SCM、MCU、SOC三大阶段,早期的SCM单片机都是8位或4位的。
其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列MCU系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。
随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
然而,由于各应用领域大量需要的仍是8位单片机,因此各大公司纷纷推出高性能、大容量、多功能的新型8位单片机。
目前,单片机正朝着高性能和多品种发展,但由于MCS-51系列8位单片机仍能满足绝大多数应用领域的需要,可以肯定,以MCS-51系列为主的8位单片机,在当前及以后的相当一段时间内仍将占据单片机应用的主导地位。
3.举例说明单片机的主要应用领域。
答:单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:智能仪器单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
第五章作业答案6. 当DAC 0832 D/A转换器的CS接8031的P2.0时,程序中0832的地址指针DPDR寄存器应置为(D)。
A:0832H B;FE00H C:FEF8H D;以上三种都可以10.简述D/A转换器的主要技术指标。
解:D/A转换器的主要性能指标有:(1)分辨率:单位数字量所对应模拟量增量,即相邻两个二进制码对应的输出电压之差称为D/A转换器的分辨率。
它确定了D/A产生的最小模拟量变化,也可用最低位(LSB)表示。
(2)精度:精度是指D/A转换器的实际输出与理论值之间的误差,它是以满量程V FS 的百分数或最低有效位(LSB)的分数形式表示。
(3)线性误差:D/A转换器的实际转换特性(各数字输入值所对应的各模拟输出值之间的连线)与理想的转换特性(始、终点连线)之间是有偏差的,这个偏差就是D/A的线性误差。
即两个相邻的数字码所对应的模拟输出值(之差)与一个LSB所对应的模拟值之差。
常以LSB的分数形式表示。
(4)转换时间T S(建立时间):从D/A转换器输入的数字量发生变化开始,到其输出模拟量达到相应的稳定值所需要的时间称为转换时间。
22.具有8位分辨率的A/D转换器,当输入0~5V电压时,其最大量化误差是多少?解:对于8位A/D转换器,实际满量程电压为5V,则其量化单位1LSB=5V/256=0.0196V, 通常,A/D采用均匀量化,即每一量化层的输出都取该量化层的中值。
所以最大量化误差为(1/2)LSB,即0.0098V。
23.在一个80C51单片机与一片DAC0832组成的应用系统中,DAC0832的地址为7FFFH,输出电压为0~5V。
试画出有关逻辑电路图,并编写产生矩形波,其波形占空比为1:4,高电平为2.5V,低电平为1.25V的转换程序。
解:硬件电路连接图如图5.23所示。
图5.23 5.23题逻辑电路图DAC0832的口地址为7FFFH。
波形占空比为1:4,高电平波形时间/低电平波形时间为1/3。
单片机原理及应用第三版课后答案1. 第一章题目答案:a) 单片机的定义: 单片机是一种集成电路,具有CPU、存储器和输入输出设备等功能,并且可以根据程序控制进行工作的微型计算机系统。
b) 单片机的核心部分是CPU,它可以通过执行程序指令来完成各种计算、逻辑和控制操作。
c) 存储器分为程序存储器和数据存储器,程序存储器用于存放程序指令,数据存储器用于存放数据和暂存中间结果。
d) 输入输出设备用于与外部环境进行数据交换,如开关、LED、数码管等。
e) 单片机的应用广泛,包括家电控制、智能仪器、工业自动化等领域。
2. 第二章题目答案:a) 单片机中的时钟系统用于提供CPU运行所需的时序信号,常见的时钟源有晶体振荡器和外部信号源。
b) 时钟频率决定了单片机的运行速度和精度,一般通过控制分频器、定时器等来调整时钟频率。
c) 单片机中的中断系统用于处理紧急事件,如外部输入信号、定时器溢出等,可以提高系统的响应能力。
d) 中断源包括外部中断、定时器中断和串口中断,通过编程设置中断向量和优先级来处理不同的中断事件。
e) 中断服务程序是处理中断事件的程序,包括保存现场、执行中断处理和恢复现场等步骤。
3. 第三章题目答案:a) I/O口是单片机与外部设备进行数据交换的接口,包括输入口和输出口两种类型。
b) 输入口用于接收外部信号,如开关、传感器等,可以通过编程设置输入口的工作模式和读取输入口的状态。
c) 输出口用于控制外部设备,如LED、继电器等,可以通过编程设置输出口的工作模式和输出口的状态。
d) I/O口的工作模式包括输入模式、输出模式和双向模式,可以根据具体应用需求设置相应的模式。
e) 串行通信接口是单片机与外部设备进行数据传输的一种常见方式,包括UART、SPI和I2C等多种通信协议。
4. 第四章题目答案:a) 定时器的作用是产生指定时间间隔的定时信号,可以用于延时、计时、PWM等功能。
b) 单片机的定时器一般由计数器和一些控制寄存器组成,通过编程设置定时器的工作模式和计数值。
单片机原理及应用(林立-张俊亮版)课后习题答案---副本第2章 MCS-51单片机结构及原理习题6.片内RAM中低128个单元划分为哪三个主要部分?各部分的主要功能是什么?答:片内RAM中低128个单元划分为三个部分:①工作寄存器区(00H-1FH),四组,每组8个,可作用工作寄存器切换使用;②可位寻址区(20H-2FH),16B,位地址为00H-7FH,用作为按位寻址的空间;③用户RAM区(30H-7FH),80B,用作普通RAM单元或堆栈。
7.程序状态字寄存器PSW各位的定义是什么?答:程序状态字寄存器PSW各位的定义如下:PSW.7:进/借位标志CY,加法有进位时置1,减法有借位时置1;PSW.6:辅助进位标志AC,加法运算低四位向高上四位有进位时置1;PSW.5、PSW.1:用户标志位F0和用户标志位F1,保存用户的位数据;PSW.4、PSW.3:工作寄存器选择控制位RS1和RS0,00至11分别选择四组工作之一作为当前工作寄存器PSW.2 :溢出标志位OV,有符号数加、减运算结果有溢出或乘除上结果异常(乘法运算结果大于255即乘积在BA中,或除法运算除数为0)时置1PSW.0:奇偶标志位P,累加器A中1的个数为奇数时置1。
8.什么是时钟周期?什么是机器周期?什么是指令周期?当振荡频率为12MHz 时,一个机器周期为多少微秒?答:时钟周期又叫振荡周期或拍,用P表示,是MCS-51单片机中最小的时间单位,在一个时钟周期内,CPU完成一个最基本的动作。
机器周期:由12个时钟周期构成,完成一个基本操作指令周期:是执行一条指令所需的时间,根据指令的复杂性,可由1~4个机器周期构成。
当振荡频率为12MHz时,一个机器周期为1微秒。
第4章单片机的C51语言习题1.C语言的优点是什么?C程序的主要结构特点是什么?答:C语言是一种高级语言,学习比低级容易,不需要具体组织、分配存储器资源和处理端口数据,可以直接驱动单片机的所有资源。
第5章 AT89S51的中断系统参考答案及解析:1.答:0013H;001BH解析:P93 表5-2,由表各中断源入口地址2.答:串行口中断;T1溢出中断解析:P92 由于(IP)=00010100B,PS=1,PX1=1,故串行口、外部中断1中断为高优先级,其余为低优先级,再由表5-1,同级中断查询次序T1溢出中断为最低3.答:P96 设置中断允许控制寄存器IE,允许相应的中断请求源中断。
设置中断优先级寄存器IP,确定并分配所使用的中断的优先级。
若是外部中断源,还要设置中断请求的触发方式IT0或IT1,以决定采用电平触发方式还是跳沿触发方式。
中断程序返回使用RETI指令,RETI指令在返回的同时清除相应的优先级触发器,以允许下次中断,而普通子程序RET指令则没有这个操作。
4.答:D解析:P88 5.2.2 5个中断源的中断请求标志分别由特殊功能寄存器TCON和SCON的相应位锁存。
5.答:P94 5.5在一个单一中断的系统里,AT89S51单片机对外部中断请求的响应时间总是在3~8个机器周期之间。
推迟对外部中断请求的响应:P94 5.4(1)A T89S51正在处理同级或更高优先级的中断。
因为当一个中断被响应时,要把对应的中断优先级状态触发器置1(该触发器指出CPU所处理的中断优先级别),从而封锁了低级中断请求和同级请求。
(2)所查询的机器周期不是当前正在执行指令的最后一个机器周期。
设定这个限制的目的是只有在当前指令执行完毕后,才能进行中断响应,以确保当前指令执行的完整性。
(3)正在执行的指令是RETI或是访问IE或IP的指令。
因为按照AT89S51中断系统的规定,在执行完这些指令后,需要再执行完一条指令,才能响应新的中断请求。
如果存在上述三种情况之一,AT89S51将丢弃中断查询结果,将推迟对外部中断请求的响应。
6.答:D解析:P94(A)如果已在处理同级或更高级中断,外部中断请求的响应时间取决于正在执行的中断服务程序的处理时间,这种情况下,响应时间就无法计算了。
第五章中断系统作业1. 外部中断1所对应的中断入口地址为()H。
2. 对中断进行查询时,查询的中断标志位共有、_ _、、 _ 和_ 、_ _ 六个中断标志位。
3.在MCS-51中,需要外加电路实现中断撤除的是:()(A) 定时中断 (B) 脉冲方式的外部中断(C) 外部串行中断 (D) 电平方式的外部中断4.下列说法正确的是:()(A) 同一级别的中断请求按时间的先后顺序顺序响应。
()(B) 同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。
()(C) 低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求。
()(D) 同级中断不能嵌套。
()5.在一般情况下8051单片机允许同级中断嵌套。
()6.各中断源对应的中断服务程序的入口地址是否能任意设定? ()7.89C51单片机五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断。
()8.各中断源发出的中断申请信号,都会标记在MCS-51系统中的()中。
(A)TMOD (B)TCON/SCON (C)IE (D)IP9. 要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是()(A)98H (B)84H (C)42 (D)22H10.编写出外部中断1为负跳沿触发的中断初始化程序。
11.什么是中断?其主要功能是什么?12. 什么是中断源?MCS-51有哪些中断源?各有什么特点?13. 什么是中断嵌套?14.中断服务子程序与普通子程序有哪些相同和不同之处?15. 中断请求撤除的有哪三种方式?16. 特殊功能寄存器TCON有哪三大作用?17. 把教材的P82页的图4.24改为中断实现,用负跳变方式,中断0(INT0)显示“L2”,中断1(INT1)显示“H3”。
(可参考第四章的电子教案中的例子)18.第5章课后作业第9题。
第五章中断系统作业答案1. 外部中断1所对应的中断入口地址为(0013)H。
2. 对中断进行查询时,查询的中断标志位共有 IE0 、_TF0_、IE1 、 TF1_ 和_TI 、_RI_六个中断标志位。
【实际上只能查询TF0、TF1、TI、RI】3.在MCS-51中,需要外加电路实现中断撤除的是:(D)(A) 定时中断 (B) 脉冲方式的外部中断(C) 外部串行中断 (D) 电平方式的外部中断4.下列说法正确的是:(A C D )(A) 同一级别的中断请求按时间的先后顺序顺序响应。
(YES)(B) 同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。
(ERR)(C) 低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求。
(YES)(D) 同级中断不能嵌套。
(YES)5.在一般情况下8051单片机允许同级中断嵌套。
(ERR)6.各中断源对应的中断服务程序的入口地址是否能任意设定? (NO)7.89C51单片机五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断。
(YES)8.各中断源发出的中断申请信号,都会标记在MCS-51系统中的(B)中。
9. 要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是( A )【98H=1001 1000 )。
10.编写出外部中断1为跳沿触发的中断初始化程序。
IT1=1;EX1=1;EA=1;【注意点:最好分开写,用位来写,不要用TCON和IE特殊功能寄存器】11.什么是中断?其主要功能是什么?中断是指计算机暂时停止原程序的执行,转而为外部设备服务(执行中断服务程序),并在服务完成后,自动返回原程序执行的过程。
可以提高CPU的工作效率,可以提高实时数据的处理时效。
中断技术主要用于实时监测与控制,采用中断可以解决单片机在查询方式中的等待现象,可以大大地提高了单片机的工作效率和实时性。
12. 什么是中断源?MCS-51有哪些中断源?各有什么特点? 引起CPU 暂停正在运行程序的事件,称为中断源。
有5个:外部中断0、定时器0、外部中断1、定时器1、串行通信。
外部中断源(INT0、INT1)的中断请求信号是从P3.2和P3.3引脚输入,通过设置TCON 的IT0和IT1来规定是电平申请还是下降沿申请。
对下降沿触发的中断标志在进入中断服务程序时,中断标注位自动清零。
内部中断源(T0、T1)的中断信号是在计数器从全“1”变为全“0”溢出时,向CPU 提出中断申请,中断标志在进入中断服务程序时,自动清零。
内部串行的中断信号是在串行口每发送完一帧数据(方式0为8位,方式1为10位)或接收完一帧数据后,向CPU 提出中断申请。
中断标志在进入中断服务程序时,必须用软件清零。
13. 什么是中断嵌套?中断系统在执行一个中断服务程序时,如果有一个优先级更高的中断提出中断请求时,那么会暂时停止当前执行的低优先级的中断服务程序,去处理高优先级的中断服务程序,处理完后在返回到被中断的低优先级的服务程序继续执行,这个过程称为中断嵌套。
14.中断服务子程序与普通子程序有哪些相同和不同之处? 相同点:都是从主函数转到子函数,子函数执行完后又返回主函数。
不同点:中断函数是发生中断后,自动执行的,不需要主函数调用,是否执行,取决于相应的中断事件是否发生。
而普通子函数要主函数调用才能执行。
普通子函数调用时,直接进入函数入口地址中断函数在中断发生时,先进入中断入口地址,再通过中断入口地址处放置的一条无条件转移指令,使程序执行转向中断服务程序入口。
中断函数的定义和普通函数的定义不同,中断服务程序用interrupt 关键字来定义。
15. 中断请求撤除的有哪三种方式?(1)由单片机内部硬件自动复位的有:对于定时器/计数器T0、T1的溢出中断和采用跳变方式触发的外部中断请求,在CPU 响应中断后,由内部硬件自动复位中断标志TF0、TF1、IE0和IE1,而实现自动撤除中断请求。
(2)需用软件清除相应标志的有:【用查询方式时,定时器T0、T1的TF0和TF1也需要用软件来清零;】 响应串行口的中断后,CPU 无法知道是接收中断还是发送中断,还需要判断这两个中断标志位,以判定是接收操作还是发送操作,然后才清除相应的标志。
所以串行口中断请求的撤销只能使用软件的方法,即用如下指令在中断服务程序中对串行口中断标志位进行清除:TI =0; // 清TI 标志位【在reg51.h 中,已经定义】 RI=0; // 清RI 标志位(3)既无硬件也无软件措施的:对于采用电平触发方式的外部中断请求,CPU 对0INT 、1INT 引脚上的中断请求信号无控制能力,IE0或IE1受外部引脚中断信号(0INT 、1INT )直接控制,CPU 无法控制IE0或IE1,也无应答信号。
为保证在CPU 响应中断后、中断服务程序返回前,要撤除中断请求,需要另外考虑撤除中断请求信号的方法,可通过外加硬件电路,并配合软件来解决,如下图。
中断响应后,利用D 触发器的SD 端接80C51的P1.0端。
只要P1.0端输出一个负脉冲就可以使D 触发器置“1”,撤销低电平的中断请求信号。
16. 特殊功能寄存器TCON 有哪三大作用?(1)锁存4个中断请求标志(外部中断0、定时器0、外部中断1、定时器1);(2)设置0INT 和1INT 的两种触发方式(低电平或下降沿) (3) 定时器的启动标志17. 把教材的P87页的图4.24改为中断实现,用负跳变方式,中断0(INT0)显示“L2”,中断1(INT1)显示“H3”。
#include <reg51.h>unsigned char led_mod[]={0x38,0x5b,0x76,0x4f}; // L2H3 unsigned char i,led_pos; sbit P17=P1^7;void delay(unsigned int count) { unsigned char i; while(count--)for(i=0; i<120;i++); }void xint0(void) interrupt 0 { led_pos=2; }void xint1(void) interrupt 2main(){ IT0=1;IT1=1;EX0=1;EX1=1;EA=1;P1=0xfd; //0xfd=1111 1101while(1){ for(i=0;i<2;i++){ P2=led_mod[i+led_pos];delay(5);P1=~P1; }}}18.第5章课后作业第9题。
805l单片机只有两个外部中断源,若要扩展成8个外部中断源,请画出实现这种扩展的硬件线路图,并说明如何确定各中断源的优先级。
解:用按钮开关模拟中断源的中断请求,INT0单独作为一个中断源,INT1扩展成7个中断源,有中断请求时,借助于P2口识别是这七个中断源是哪个请求中断,为了验证正确性,如果是INT0中断,则在P0口的数码管上显示0,是INT1中断,则根据从上到下是哪个中断源在P0口的数码管上显示1—7。
具体电路和程序如下:#include <reg51.h>char led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07};void INT0_srv (void) interrupt 0 using 1 //外部中断0处理程序{}void INT1_srv (void) interrupt 2 using 2 //外部中断1处理程序{char intnum;intnum=P2;switch(intnum){case 0xfe:P0=led_mod[1];break;case 0xfd:P0=led_mod[2];break;case 0xfb:P0=led_mod[3];break;case 0xf7:P0=led_mod[4];break;case 0xef:P0=led_mod[5];break;case 0xdf:P0=led_mod[6];break;case 0xbf:P0=led_mod[7];}}void main(){EA=1;EX0=1;EX1=1;P0=0;while(1);}(注:文档可能无法思考全面,请浏览后下载,供参考。
可复制、编制,期待你的好评与关注)。