首页 单片机原理与应用试题

单片机原理与应用试题

举报
开通vip

单片机原理与应用试题试比较MCS-51,MSP430,EM78,PIC,M6800及AVP等系列单片机的特点。MCS-51系列单片机在片内集成了哪些主要逻辑功能部件?各个逻辑部件的主要功能是什么?MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?8051单片机的控制总线信号有哪些?各有何作用?什么是指令?什么是程序?简述程序在计算机中的执行过程。8051单片机的存储器组织采用何种结构?存储器地址空间如何划分?各地址空间的地址范...

单片机原理与应用试题
试比较MCS-51,MSP430,EM78,PIC,M6800及AVP等系列单片机的特点。MCS-51系列单片机在片内集成了哪些主要逻辑功能部件?各个逻辑部件的主要功能是什么?MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?8051单片机的控制总线信号有哪些?各有何作用?什么是指令?什么是程序?简述程序在计算机中的执行过程。8051单片机的存储器组织采用何种结构?存储器地址空间如何划分?各地址空间的地址范围和容量如何?使用上有何特点?何为堆栈指针?堆栈操作有何规定?8051单片机有多少个特殊功能寄存器?这些特殊功能寄存器能够完成什么功能?特殊功能寄存器中的哪些寄存器可以进行位寻址?MCS-51单片机的I/O口有什么特点?DPTR是什么寄存器?它的作用是什么?8051单片机的PSW寄存器各位标志的意义如何?开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?8051片内数据存储器有多少字节?存储空间地址范围为多少?8051片内RAM低128单元划分为哪三个主要部分?各部分主要功能是什么?8051单片机的片内,片外存储器如何选择?MCS-51单片机的时钟周期,机器周期,指令周期是如何定义的?当主频为12MHz的时候,一个机器周期是多长时间?执行一条最长的指令需要多长时间?8051单片机复位后,各寄存器的初始状态如何?复位方法有几种?1.解:MCS-51为主流产品。MSP430的功能较强。是一种特低功耗的Flash微控制器。主要用于三 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 及超低功耗场合。EM78系列单片机采用高速CMOS工艺制造,低功耗设计为低功耗产品,价格较低。具有三个中断源、R-OPTION功能、I/O唤醒功能、多功能I/O口等。具有优越的数据处理性能,采用RISC结构设计。PIC系列8位单片机是Microchip公司的产品。CPU采用RISC结构,运行速度快,价格低适于用量大、档次低、价格敏感的产品。Motorola是世界上最大的单片机生产厂家之一,品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。AVR是增强RISC内载Flash的单片机,单片机内部32个寄存器全部与ALU直接连接,突破瓶颈限制,每1MHz可实现1MIPS的处理能力,为高速、低功耗产品。端口有较强的负载能力,可以直接驱动LED。支持ISP、IAP,I/O口驱动能力较强。2.解:MCS-51单片机在片内集成了中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O接口、串行I/O接口和中断系统等几大单元。CPU是整个单片机的核心部件,由运算器和控制器组成。运算器可以完成算术运算和逻辑运算,其操作顺序在控制器控制下进行。控制器是由程序计数器PC(ProgramCounter).指令寄存器IR(InstructionRegister)>指令译码器ID(InstructionDecoder)>定时控制逻辑和振荡器OSC等电路组成。CPU根据PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,以产生执行本条指令所需的全部信号。程序存储器(ROM)用于存储程序、常数、表格等。数据存储器(RAM)用于存储数据。8051内部有两个16位可编程序的定时器/计数器T0和T1,均为二进制加1计数器。可用于定时和对外部输入脉冲的计数。8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。可实现对5个中断源的管理。8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。其中,IE用于控制5个中断源中哪些中断请求被允许向CPU提出,哪些中断源的中断请求被禁止;IP用于控制5个中断源的中断请求的优先权级别。I/O接口是MCS-51单片机对外部实现控制和信息交换的必经之路,用于信息传送过程中的速度匹配和增加它的负载能力。可分为串行和并行I/O接口。解:80C51单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0〜P3)、一个输入驱动器和输入缓冲器。通常把4个端口称为P0〜P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。解:控制线一共有6条:ALE/PROG:地址锁存允许/编程线,配合P0口引脚的第二功能使用。在访问片外存储器时,8051CPU在P0.7〜P0.0引脚上输出片外存储器低8位地址的同时在ALE/PROG上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7〜P0.0引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,8051自动在ALE/PRoG上输出频率为fosc/6的脉冲序列。该脉冲序列可用作外部时钟源或作为定时脉冲源使用。EA/Vpp:允许访问片外存储器/编程电源线,可以控制8051使用片内ROM还是使用片外ROM。若EA=0,则允许使用片内ROM;若EA=1则允许使用片外ROM。PSEN:片外ROM选通线,在执行访问片外ROM的指令MOVC时,8051自动在PSEN上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下PSEN线均为高电平封锁状态。RST/VpD复位/备用电源线,可以使8051处于复位工作状态。解:指令:人为输入计算机,由计算机识别并执行一步步操作的命令的形式称为指令。程序:一系列指令的有序集合称为程序。程序在计算机中是按序执行的,CPU通过程序计数器PC控制程序的执行顺序,一般情况下程序是按序执行的,当执行转移、调用、返回等指令时,程序转移到相应的目的地址处执行。CPU根据程序计数器PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,产生执行本条指令所需的全部信号,完成本条指令的执行。解:(1)80C51在结构上的特点80C51采用将程序存储器和数据存储器截然分开,分别寻址的结构,称为Harvard结构。在物理和逻辑上的地址空间存储器上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。在逻辑上有3个存储器地址空间:片内、片外统一的64KB程序存储器地址空间,片内256B数据存储器地址空间,片外64KB的数据存储器地址空间。访问格式访问片内RAM采用MOV格式访问片外RAM采用MOVX格式解:堆栈是一个特殊的存储区。主要功能是暂时存放数据和地址,通常用来保护断点和现场。它的特点是按照“先进后出”的存取数据。堆栈指针SP是一个8位寄存器,是用于指示堆栈的栈顶地址的寄存器,它决定了堆栈在内部RAM中的物理位置。解:8051有21个特殊功能寄存器(PC除外),它们被离散地分布在内部RAM的80H〜FFH地址单元中,共占据了128个存储单元,其中有83位可以位寻址。特殊功能寄存器SFR的分布和功能见教材P18表1.2.2。解:8051单片机的4个I/O口在结构上是基本相同的,但又各具特点。这四个端口都是8位双向口,每个端口都包括一个锁存器、一个输出驱动器和输入缓冲器。在无片外扩展存储器的系统中,这四个端口的每一位都可以作为双向通用I/O端口使用。在作为一般的通用I/O输入时,都必须先向锁存器写入“1”,使输出驱动场效应管FET截止,以免误读数据。各自特点如下:P0口为双向8位三态I/O口,它既可作为通用I/O口,又可作为外部扩展时的数据总线及低8位地址总线的分时复用口。作为通用I/O口时,输出数据可以得到锁存,不需外接专用锁存器;输入数据可以得到缓冲,增加了数据输入的可靠性。每个引脚可驱动8个TTL负载。P1口为8位准双向I/O口,内部具有上拉电阻,一般作通用I/O口使用,它的每一位都可以分别定义为输入线或输出线,作为输入时,锁存器必须置1。每个引脚可驱动4个TTL负载。(3)P2口为8位准双向I/O口,内部具有上拉电阻,可直接连接外部I/O设备。它与地址总线高8位复用,可驱动4个TTL负载。一般作为外部扩展时的高8位地址总线使用。(4)P3口为8位准双向I/O口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱动4个TTL负载。作为通用I/O口时,功能与P1口相同,常用第二功能。作为第二功能使用时,各位的作用见教材P23表1.2.5所示。10.解:数据指针DPTR是16位的专用寄存器,它由两个8位的寄存器DPH(高8位)和DPL(低8位)组成。专门用来寄存片外RAM及扩展I/O口进行数据存取时的地址。编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用(即高位字节寄存器DPH和低位字节寄存器DPL)。DPTR主要是用来保存16位地址,当对64KB外部数据存储器寻址时,可作为间址寄存器使用。11解:程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下:PSW.7(Cy):进位标志位。PSW.6(AC):辅助进位标志位,又称为半进位标志位。PSW.5(F0):用户标志位。PSW.4、PSW.3(RS1和RS0):寄存器组选择位。PSW.2(OV):溢出标志位。PSW.1(空缺位):此位未定义。PSW.0(P):奇偶校验位解:开机复位后,CPU使用的是第0组工作寄存器。它们的地址是00H—07H°CPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。解:8051片内数据存储器有256B寻址空间。存储器空间的地址范围为:00H——FFH在这个存储器空间又可分为:基本的数据存储区:00H——7FH,可划分为工作寄存器、位寻址区、堆栈与数据缓冲区。解:片内RAM低128单元划分及主要功能如下:(1)工作寄存器组(00H——1FH)这是一个用寄存器直接寻址的区域,内部数据RAM区的0—31,共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0——R7。(2)位寻址区(20H——2FH)16个字节单元,共包含128位,这16个字节单元既可以进行字节寻址,又可以实现位寻址。主要用于位寻址。(3)堆栈与数据缓冲区(30H——7FH)用于设置堆栈、存储数据。解:程序存储器通过EA/Vpp引脚选择。若EA=0,则允许使用片内ROM;若EA=1则允许使用片外ROM。数据存储器通过指令区分:访问片内RAM采用MOV指令,访问片外RAM采用MOVX指令。解:时钟周期又称为振荡周期,由单片机内部振荡电路OSC产生,定义为OSC时钟频率的倒数。时钟周期又称为节拍(用P表示)。时钟周期是时序中的最小单位。一个状态有两个节拍,机器周期定义为实现特定功能所需的时间。MCS-51的机器周期由12个时钟周期构成。执行一条指令所需要的时间称为指令周期,指令周期是时序中的最大单位。由于机器执行不同指令所需的时间不同,因此不同指令所包含的机器周期数也不尽相同。MCS-51的指令可能包括1〜4个不等的机器周期。当MCS-51的主频为12MHz时,一个机器周期为1幽。执行一条指令需要的最长时间为4口s。17.解:8051单片机复位后机器的初始状态,即各寄存器的状态:PC之外,复位操作还对其它一些特殊功能寄存器有影响,它们的复位状态如下:寄存器复位时 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 寄存器复位时内容PC0000HTCON0X000000BACC00HTL000HB00HTH000HPSW00HTH100HSP07HTH100HDPTR0000HSCON00HP0—P3FFHSBUF不确定TMODXX000000BPCON0XXX0000B单片机复位方法有:上电自动复位,按键电平复位和外部脉冲三种方式。8051单片机的指令系统有何特点?8051单片机指令系统按功能可分为几类?具有几种寻址方式?它们的寻址范围如何?访问特殊功能寄存器和外部数据存储器应采用哪种寻址方式?“DAA”指令的作用是什么?怎样使用?片内RAM20H~2FH单元中的128个位地址与直接地址00H-7FH形式完全相同,如何在指令中区分出位寻址操作和直接寻址操作?8051单片机指令系统中有长跳转LJMP,长调用LCALL指令,为何还没有设置了绝对跳转AJMP,绝对调用ACALL指令?在实际使用是应怎样考虑?SJMP,AJMP和LJMP指令在功能上有何不同?MOVCA,@DPTR与MOVXA,@DPTR指令有何不同?在“MOVCA,@A+DPTR”和“MOVCA,@A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么地址?使用中有何不同?设片内RAM中的(40H)=50H,写出执行下列程序段后寄存器A和R0,以及片内RAM中50H和51H单元的内容为何值?MOVA,40HMOVR0,AMOVA,#00MOV@R0,AMOVA,#30HMOV51H,AMOV52H,#70H设堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?在8051的片内RAM中,已知(20H)=30H,(30H)=40H,(40H)=50H,(50H)=55H。分析下面各条指令,说明源操作数的寻址方式,分析按顺序执行各条指令后的结果。MOVA,40HMOVR0,AMOVP1,#0F0HMOV@R0,20HMOV50H,R0MOVA,@R0MOVP2,P1完成以下的数据传送过程。R1的内容传送到R0。片外RAM20H单元的内容送R0。片外RAM20H单元的内容送片内RAM20H片外RAM1000H单元的内容送片内RAM20H片外RAM20H单元的内容送R0。片外RAM2000H单元的内容送片内RAM20H片外RAM20H单元的内容送片外RAM20H设有两个4位BCD码,分别存放在片内RAM的23H,22H单元和33H,32H单元中,求它们的和,并送入43H,42H单元中去。(以上均为低位字节,高位在高字节)。编程将片内RAM的40H-60H单元中内容送到片外RAM以3000H开始的单元中。编程计算片内RAM区30H-37H的8个单元中数的算术平均值,结果存在3AH单元中。编写计算下式的程序,设乘积的结果均小于255,A,B值分别存放在片外RAM的2001H和2002H单元中,结果存于2000H单元中。(A+B*(A+B)+10若(A+B)*(A+B)〈10Y=(A+B)*(A+B)若(A+B)*(A+B)=10(A+B)*(A+B)-10若(A+B)*(A+B)〉1019.设有100个有符号数,连续存放在片外RAM以2200H为首地址的存储区中,试片成统计其中正数I、负数、零的个数。22.试编一查表程序,从首地址为2000H、长度为9FH的数据块中找出第一个ASCII码A,将其地址送到20A0H和20A1H单元中。解:8051的指令系统由111条指令组成。如果按字节数分类,有49条单字节指令46条双字节指令和16条三字节指令,以单字节指令为主;如果按照指令执行时间分类,有64条单周期指令、45条双周期指令和2条四周期指令,以单周期指令为主。8051的指令系统具有以下特点:存储效率高、执行速度快,可以进行直接地址到直接地址的数据传送,能把一个并行I/O口中的内容传送到内部RAM单元中而不必经过累加器A或工作寄存器Rn。这样可以大大提高传送速度和缓解累加器A的瓶颈效应。用变址寻址方式访问程序存储器中的表格,将程序存储器单元中的固定常数或表格字节内容传送到累加器A中。这为编成翻译算法提供了方便。在算术运算指令中设有乘法和除法指令指令系统中一些对I/O口进行操作的指令具有“读一一修改一一写”的功能。这一功能指:在执行读锁存器的指令时,CPU首先完成将锁存器的值通过缓冲器BUF2度入内部,进行修改、改变,然后重新写到锁存器中去。这种类型指令包含所有的逻辑操作和位操作指令。8051单片机内部有一个布尔处理器,对为地址空间具有丰富的位操作指令。布尔操作类指令有17条,包括布尔传送指令、布尔状态控制指令、布尔逻辑操作指令、布尔条件转移指令。解:MCS-51单片机指令系统按功能可分为5类:数据传送指令算术运算指令逻辑运算和移位指令控制转移指令位操作指令MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表:寻址方式使用的变量寻址范围立即寻址程序存储器直接寻址内部RAM低128个字节;特殊功能寄存器SFR寄存器寻址R0〜R7;A、B、DPTR、C寄存器间接寻址@R0、@R1、SP内部RAM、堆栈指针SP@R0、@R1、@DPTR外部RAM变址寻址@A+PC、@A+DPTR程序存储器相对寻址PC+偏移量程序存储器位寻址内部RAM彳可位寻址的,氐128B位寻址区寺殊功能寄存器位解:访问特殊功能寄存器,应采用直接寻址、位寻址方式。访问外部数据存储器,应采用寄存器间接寻址方式。在0〜255B范围内,可用寄存器R0、R1间接寻址:MOVXA,@R0或MOVXA,@R1MOVX@R0,A或MOVX@R1,A在0〜64KB范围内,可用16位寄存器DPTR间接寻址:MOVXA,@DPTRMOVX@DPTR,A解:这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正的,使其仍为BCD码表达形式。在计算机中,遇到十进制调整指令时,中间结果的修正是由ALU硬件中的十进制修正电路自动进行的。用户不必考虑何时该加“6”,使用时只需在上述加法指令后面紧跟一条“DAA”指令即可。解:虽然内部RAM位寻址区的位地址范围00H〜7FH与低128个单元的单元地址范围00H〜7FH形式完全相同,但是在应用中可以通过指令的类型区分单元地址和位地址。位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。MOVC,bitMOVbit,CCLRbitSETBbitCPLbitANLC,bitANLC,/bitJBbit,relJNBbit,rel解:在实际应用中,可从寻址范围和指令长度两个方面来选择长跳转指令LJMP和短跳转指令AJMP、长调用指令LCALL和短调用指令ACALLo长跳转LJMP在64KB范围内转移,而短跳转AJMP只能在2KB空间转移。长调用LCALL调用位于64KB程序空间的子程序,而短调用ACALL调用位于2KB程序空间范围的子程序。AJMP、ACALL指令代码长度为2个字节;LJMP、LCALL指令代码长度为3个字节。解:指令的转移范围不同。SJMP是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP是64KB范围内的无条件长跳转指令。解:指令的转移范围不同。SJMP是256B范围内的相对转移指令,AJMP是2KB范围内的无条件短跳转指令,LJMP是64KB范围内的无条件长跳转指令。解:使用@A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。使用@A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。10.解:结果为:(A)=30H(R0)=50H(50H)=00H(51H)=30H11.解:结果为:(61H)=24H(62H)=10H(30H)=00H(31H)=0FFHDPTR=2410HSP=60H12.解:指令源操作数的寻址方式执行指令后的结果MOVA,40H直接寻址(A)=50HMOVR0,A寄存器寻址(R0)=50HMOVP1,#80H立即寻址(P1)=80HMOV@R0,20H寄存器间接寻址(50H)=30HMOVDPTR,#2000H立即寻址(DPTR)=2000HMOV40H,30H直接寻址(40H)=40HMOVR0,30H直接寻址(R0)=40HMOVD0H,R0直接寻址(D0H)=40HMOV10H,#10H立即寻址(10H)=10HMOVA,@R0寄存器间接寻址(A)=50HMOVP2,P1寄存器寻址(P2)=80H13.解:(1)R1的内容传送到R0;MOVA,R1MOVR0,A(2)片外RAM20H单元内容送R0;MOVDPTR,#0020HMOVXA,@DPTRMOVR0,A(3)片外RAM20H单元的内容送片内RAM20H单元;MOVDPTR,#0020HMOVXA,@DPTRMOV20H,A片外RAM1000H单元的内容送片内RAM20H单元;MOVDPTR,#1000HMOVXA,@DPTRMOV20H,AROM2000H单元的内容送R0单元;MOVA,#00HMOVDPTR,#2000HMOVCA,@A+DPTRMOVR0H,AROM2000H单元的内容送片内RAM20H单元;MOVA,#00HMOVDPTR,#2000HMOVCA,@A+DPTRMOV20H,AROM2000H单元的内容送片外RAM20H单元。MOVA,#00HMOVDPTR,#2000HMOVCA,@A+DPTRMOVDPTR,#0020HMOVX@DPTR,A解:ORG0000HLJMPSTARTORG0030HSTART:MOVA,22HADDA,32HDAAMOV42H,AMOVA,23HADDCA,33HDAAMOV43H,ASJMP$END解:ORG0000HLJMPMAINORG0030HMAIN:MOVR7,#20HMOVR1,#40HMOVDPTR,#3000HLOOP:MOVA,@R1MOVX@DPTR,AINCR1INCDPTRDJNZR7,LOOPSJMP$END解:ORG0000HLJMPMAINORG0030HMAIN:MOVR0,#30HMOVR1,#00HMOVR2,#00HMOVR3,#07HLP2:MOVA,@R0ADDA,R2MOVR2,AJNCLP1INCR1LP1:INCR0DJNZR3,LP2MOVR3,#03HLP3:CLRCMOVA,R1RRCAMOVR1,AMOVA,R2RRCAMOVR2,ADJNZR3,LP3MOV3AH,R2SJMP$END解:ORG0000HLJMPSTARTORG0030HSTART:MOVDPTR,#2001HMOVXA,@DPTRMOV30H,AMOVDPTR,#2002HMOVXA,@DPTRADDA,30HMOVB,AMULABMOVR1,ACJNEA,#10,NET1MOVDPTR,#2000HMOVX@DPTR,ASJMPNET3NET1:JNCNET2CLRCMOVA,R1SUBBA,#10MOVDPTR,#2000HMOVX@DPTR,ASJMPNET3NET2:MOVA,R1ADDA,#10MOVDPTR,#2000HMOVX@DPTR,ANET3:SJMP$END19.解:ORG0000HLJMPMAINORG0030HMAIN:MOVR2,#100MOVR3,#00HMOVR4,#00HMOVR5,#00HMOVDPTR,#2000HLOOP:MOVXA,@DPTRCJNEA,#00H,NET1INCR3INCDPTRDJNZR2,LOOPSJMPNET3NET1:JCNET2INCR4INCDPTRDJNZR2,LOOPSJMPNET3NET2:INCR5INCDPTRDJNZR2,LOOPNET3:SJMP$END22.解:ORG0000HLJMPMAINORG0030HMAIN:LCALLSUBONEAJMP$;SUBONEusedptr,a,30h,31hSUBONE:MOVDPTR,#2000HLOOP:MOVXA,@DPTRXRLA,#41HJNZTTMOVA,30HMOVDPTR,#20A0HMOVX@DPTR,AMOVDPTR,#20A1HMOVA,31HMOVX@DPTR,ARETTT:INCDPTRMOV30H,DPHMOV31H,DPLMOVA,31HCJNEA,@00H,LOOPRETEND什么是中断和中断系统?其主要功能是什么?什么是是中断优先级?中断优先级处理的原则是什么?8051有哪些中断级?如何对各中断请求进行控制?简述MCS51单片机的中断响应过程。8051怎么管理中断?怎样开放和禁止中断?怎么设置优先级?8051在什么条件下可响应中断?请写出INT1为低电平触发的中断系统初始化程序。说明MCS-51单片机响应中断后,中断服务的入口地址。11.8051单片机外部中断源有几种触发中断请求的方法?如何实现中断请求?12MCS-51的中断服务程序能否存放在64KB程序存储器的任意区域?如何实现?8051单片机内部有几个定时器/计数器?它们是由哪些特殊功能寄存器组成?8051单片机定时器/计数器作定时和计数使用时,其计数脉冲分别由谁提供?定时器/计数器的4种工作方式个有何特点?如何选择、设定?使用一个定时器,如何通过软硬结合方法实现较长时间的定时?20.一直8051单片机系统的时钟频率为6MHZ,请利用定时器T0和P1.2输出矩形脉冲,其波形如图P3.1所示,试编程实现之。50us图P3.1例3.20的波形图21.在8051单片机中,已知时钟频率为12MHZ,请编程使P1.0和P1.1分别输出周期为2ms和500us的方波。22利用8051单片机定时器/计数器测量某正脉冲宽度,已知此脉冲宽度小于10ms,主机频率为12MHZ。编程测量脉冲宽度,并把结果转换为BCD码,顺序存放在以片内50H单元为首地址的内存单元中(50H单元存各位)。波特率、比特率和数据传送的含义是什么?什么是串行异步通信?它有哪些特征?27.简述串行接口接收和发送数据的过程?利用8051串行口控制8位发光二极管工作,要求发光二极管每1s交替地亮、灭,画出电路图并编写程序。试编写一串行通讯的数据发送程序,发送片内RAM的20H-2FH单元的16字节数据,串行接口方式设定为方式2,采用偶校验方式。设晶振频率为6MHZ。试编写一串行通讯的数据接收发送程序,将接收到的16字节数据送入片内RAM30H~3FH单元中。串行接口设定为方式3,波特率为1200bps,晶振频率为6MHZ。解:当CPU正在处理某件事情的时候,外部发生的某一事件请求CPU迅速去处理,CPU暂时中止当前的工作,转去处理所发生的事件,处理完该事件以后,再回到原来被中止的地方,继续原来的工作。这种过程为中断,实现这种服务的部件称为中断系统。功能:①实时处理,能对外界异步发生的事件作出及时的处理。②完全消除7CPU在查询方式中的等待现象,大大提高7cpu的工作效率。③实现实时控制。解:中断优先级是CPU响应中断的先后顺序。中断优先处理的原则是:先响应优先级高的中断请求,再响应优先级低的中断请求。如果一个中断请求己被响应,同级的其他中断请求将被禁止。如果同级的多个中断请求同时出现,CPU则按单片机内部的自然优先级顺序响应各中断请求。单片机内部自然优先级顺序(由高到低)为:外部中断0—定时器0中断一外部中断l一定时器1中断一串行接口中断。解:80C51有以下中断源:外部中断0(INT0)请求,低电平有效。外部中断1(lNT1)请求,低电平有效。T0:定时器/计数器0溢出中断请求。T1:定时器/计数器1溢出中断请求。TI/RI:串行接口中断请求。通过对特殊功能寄存器TCON、SCON、IE、IP的各位进行置位或复位等操作,可实现对各种中断的控制功能。解:单片机一旦响应中断请求,就由硬件完成以下功能:根据响应的中断源的中断优先级,使相应的优先级状态触发器置1;执行硬件中断服务子程序调用,并把当前程序计数器PC的内容压入堆栈,保护断点,寻找中断源;清除相应的中断请求标志位(串行口中断请求标志RI和TI除外);把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC,从而转入相应的中断服务程序。中断返回,程序返回断点处继续执行。解:由中断源提出中断请求,由中断控制允许控制决定是否响应中断,如果允许响应中断,则CPU按设定好的优先级的顺序响应中断。如果是同一优先级的中断,则按单片机内部的自然优先级顺序(外部中断0—定时器0中断一外部中断l一定时器1中断一串行接口中断)响应中断。CPU响应中断请求后,就立即转入执行中断服务程序。保护断点、寻找中断源、中断处理、中断返回,程序返回断点处继续执行。由中断允许寄存器IE控制开放和禁止中断。欲开放某一中断,则应先开放总中断允许(EA置1),然后开放相应中断的中断允许(相应位置1);若要要禁止中断,则EA置O即可。由中断优先级控制寄存器IP控制中断优先级,相应位置1,则设为高级中断,置0则为低级。其中:PS为串行中断优先级,PTl(0)为定时中断1(0)优先级,PXl(0)外部中断1(0)优先级。解:有中断源发出中断请求。中断总允许控制位EA=l,CPU开放总中断。申请中断的中断源的中断允许位为1,即该中断没有被屏蔽。无同级或更高级中断正在服务。当前指令周期已经结束。若现行指令为RETI或访问IE或IP指令时,读指令以及紧接着的另一条指令已执行完毕。满足以上条件,则CPU响应响应中断元的中断请求。解:ORG0000HLJMPMAINORG0013HLJMPINT1ORG0030HMIAN:SETBEASETBEX1SETBPX1CLRIT1END解:中断服务程序的入口地址如下表:中断源中断矢量外部中断0(INT0)0003H定时器T0中断000BH外部中断1(INT1)0013H定时器T1中断001BH串行口中断0023H11解:有两种方式:电平触发和边沿触发。电平触发方式:CPU在每个机器周期的S5P2期间采样外部中断引脚的输人电平。若为低电平,便置IEl(IEO)为“1”,申请中断;若外部中断引脚为高电平,则IEl(IEO)清零。边沿触发方式:CPU在每个机器周期的S5P2期间采样外部中断请求引脚的输人电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断请求为高电平,接着下一个机器周期采样到外部中断请求为低电平,则使IEl(IEO)置1,申请中断;否则,IEl(1E0)置0。12廨:可以。在相应的中断源的中断程序入口地址处,用一条长跳转指令(LJMPAdd16),转到相应64K程序存储器的任意地址(Add16)处,执行相应的中断程序。解:80C51单片机片内设有2个定时器/计数器:定时器/计数器T0和定时器/计数器T1,T0由TH0、TL0组成,T1由TH1、TLl组成。T0、T1由特殊功能寄存器TMOD、TCON控制。解:作定时器时,计数脉冲来自单片机内部,是由单片机晶振经过12分频后获得的脉冲。作为计数器时,计数脉冲来自单片机的外部,即T0与T1两个引用的输入脉冲。解:(1)工作方式O:13位定时器/计数器工作方式。工作方式0由TH0的全部8位和TL0的低5位构成13位加1计数器,此时TL0的高3位未用。在计数过程中,当TL0的低5位溢出时,都会向TH0进位,而全部13位计数器溢出时,则计数器溢出标志位TF0置位。工作方式1:16位的定时器/计数器方式。工作方式1由TH0作为高8位,TL0为低8位,在计数过程中,当全部16位计数器溢出时,则计数器溢出标志位TF0置位。工作方式2:自动重新装入计数初值的8位定时器/计数器工作方式。工作方式2的16位定时器/计数器被拆成两个8位寄存器TH0和TL0,CPU在对它们初始化时必须装入相同的定时器/计数器初值。定时器/计数器启动后,TL0按8位加1计数器计数,当TL0计数溢出时,置位TF0的同时又从预置寄存器TH0中重新获得计数初值并启动计数。如此反复。适合于需要重复计数的应用场合,也可以当做串行数据通信的波特率发生器使用。工作方式3:两个8位定时器/计数器(仅适用于T0)。在工作方式3时,定时器/计数器0被拆成两个独立的8位计数器TL0和TH0。其中,TL0既可以作计数器使用,也可以作为定时器使用,定时器/计数器0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式1完全相同。TH0只能作为简单的定时器使用,只能借用定时器/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。一般情况下,只有在T1以工作方式2运行(当波特率发生器用)时,才允许T0工作于方式3。TMOD用于控制定时器/计数器T0和T1的工作方式,M1M0为工作方式选择位。13位定时器/计数器;16位定时器/计数器;自动重新装入计数初值的8位定时器/计数器;两个8位定时器/计数器(仅适用于T0)。M1M0=00方式0M1M0=01方式1M1M0=10方式2M1M0=11方式3C/T为定时方式/计数方式选择位。若设定C/T=0,则选择定时器工作方式;若设定c/T=1,则选择计数器工作方式。一个定时器/计数器同一时刻或者作定时用,或者作计数用,不能同时既作定时又作计数用。GATE:门控位。它的状态决定了定时器/计数器启/停控制取决于TR0还是取决于TR0和INT0引脚两个条件的组合。若GATE=0,则只由TCON中的启/停控制位TR0控制定时器/计数器的启/停。此时,只要TR0=1,则接通模拟开关,使计数器进行加法计数,定时器/计数器启动工作。而如果TR0=0,则断开模拟开关,定时器/计数器停止工作。若GATE=1,由外部中断请求信号INT0和TCON中的启/停控制位TR0组合状态控制定时器/计数器的启/停。只有TR0=1,且INT0引脚也是高电平,才能启动定时器/计数器工作,否则,定时器/计数器停止工作。定时器/计数器的定时器/计数器范围为:工作方式0:13位定时器/计数器方式,因此,最多可以计到213,也就是8192次。工作方式1:16位定时器/计数器方式,因此,最多可以计到216,也就是65536次。工作方式2和工作方式3:都是8位的定时器/计数器方式,因此,最多可以计到28,也说是256次。18廨:设定好定时器的定时时间,采用中断方式用软件设置计数次数,进行溢出次数累计,从而得到较长的时间。20.解:ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HMOVTMOD,#02HMOVTH0,#0E7HMOVTL0,#0E7HCLRP1.2SETBTR0HIGH0:SETBP1.2HIGH1:JBCTF0,LOW0AJMPHIGH1LOW0:MOVR7,#7CLRP1.2LOW1:JBCTF0,LOW2AJMPLOW1LOW2:DJNZR7,LOW1AJMPHIGH0END21,解:选择定时器T0,X作方式1,定时500us,则机器周期T=1us.则(216-x)=500,x=65036D=0FEOCH.程序:ORG0000HMOVTMOD,#01HMOVTH0,#0FEHMOVTL0,#OCHSETBTR0DEL:MOVR7,#4D500:JBCTF0,D2AJMPD500D2:CPLP1.0MOVTH0,#0FEHMOVTL0,#OCHDJNZR7,D500CPLP1.1AJMPDELSJMP$END22,解:ORG0000HLJMPSTARTORG0030HSTART:MOVTMOD,#09H;T0方式1,GATE=1MOVTH0,#00HMOVTL0,#00HMOVR0,#4EHWAIT1:JBP3.2,WAIT1;等待INT0变低SETBTR0;启动T0计数WAIT2:JNBP3.2,WAIT2;等待INT0变高WAIT3:JBP3.2,WAIT3;等待INT1变低CLRTR0MOV@R0,TL0INCR0MOV@R0,TH0MOVR1,#50HMOVR5,#3HCLRALOOP1:MOV@R1,AINCR1DJNZR5,LOOP1MOVR7,#10HLOOP2:MOVR0,#4EHMOVR6,#2HCLRCLOOP3:MOVA,@R0CLRAMOV@R0,AINCR0DJNZR6,LOOP3MOVR5,#3MOVR1,#50HLOOP4:MOVA,@R1ADDCA,@R1DAAMOV@R1,AINCR1DJNZR5,LOOP4DJNZR7,LOOP2SJMP$END23.解::为了衡量串行通信的速度,应该有一个测量单位,在数据通信中,描述数据传送速度的方式有3种:波特率定义为每秒传送信号的数量,单位为波特(Baud)。比特率定义为每秒传送二进制数的信号数(或每秒传送二进制码元的个数),单位是bps(bitpersecond)或写成b/s(位/秒)。数据传送速率(或字符传送速率)定义为每秒传送多少个字符(或单位时间内平均数据传移速率,单位是字符7秒。在串行通信中,传送的信号可能是二进制、八进制或十进制等。只有在传送的信号是二进制信号时,波特率才与比特率数值上相等。而在采用调制技术进行串行通信时,波特率是描述载波信号每秒钟变化为信号的数量(又称为调制速率)。在这种情况下,波特率与比特率在数值上可能不相等。24廨:异步通信中,接收器和发送器有各自的时钟,数据常以字符为单位组成字符帧传送,用一帧来表示一个字符,其字符帧的数据格式为:在一帧格式中,先是一个起始位0”(低电平),然后是5〜8个数据位,规定低位在前,高位在后,接下来是1位奇偶校验位(可以省略),最后是1〜2位的停止位“1”(高电平)。异步通信的优点是不需要传送同步脉冲,可靠性高,所需设备简单;缺点是字符帧中因包含有起始位和停止位而降低了有效数据的传输速率。27.解:串行接口的接收和发送是对同一地址(99H)两个物理空间的特殊功能寄存器SBUF进行读或写的。当向SBUF发〃写〃命令时(执行〃MOVSBUF,A〃指令),即向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完使发送中断标志位TI=1O在满足串行接口接收中断标志位RI(SCON.O)=0的条件下,置允许接收位REN(SCON.4)=1,就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使R1=1。当发读SBUF命令时(执行〃MOVA,SBUF〃指令),便从接收缓冲器SBUF读取信息通过80C51内部总线送CPU。32.解:主程序框图如下:标志为零串口初始化FFH送SBUF标志为零OOH送SBUF标志为1FF送SBUF调延时程序设标志标志位取反程序如下:ORGMOVMOVSETBMOVAA:ACALL0040HSCON,#00HSBUF,#0FFHC00H,CDELAYCPL00HMOVC,00HJCBBMOVSBUF,#00HDELAY:MOVR7,#8D1:MOVR6,#250D2:MOVR5,#250D3:DJNZR5,D3SJMPBB:MOVCCSBUF,#0FFHCC:AJMPAADJNZR6,D2DJNZR7,D1RETEND33廨:米用查询方式编写发送程序如下:ORG0000HLJMPSTARTORG0030HSTART:MOVSCON,#80H;设定方式2发送MOVPCON,#80HMOVR0,#20H;给待发送数据块地址指针R0置初值MOVR7,#16;给数据块长度计数器R7置初值LS:MOVA,@R0;取一字节数据送AMOVC,PMOVTB8,C;P随A变,P^TB8MOVSBUF,A;启动发送JNBTI,$CLRTI;清TI标志位;查询发送标志,等待一字节发送完DJNZR7,LSRETEND34廨:程序如下:ORG0000HLJMPSTARTORG0100HSTART:MOVTMOD,#20H;设定T1为模式2定时MOVTH1,#0F3H;送时间常数MOVTL1,#0F3HSETBTR1;启动定时器T1MOVSCON,#0D0H;串行接口设定为方式3,并允许接收MOVR0,#30HMOVR7,#16JNBRI,$;查询等待接收CLRRIMOVA,SUBF;从串行接口中读取数据JNBP,PN;对该字节进行查错处理若P=RB8无错,否则有错JNBRB8,PER;若P=1,RB8=0,有错,转出错处理LJMPRIG;若P=1,RB8=1,无错,转保存数据PN:JBRB8,PER;若P=0,RB8=1,有错,转出错处理RIG:MOV@R0,A;若P=0,RB8=0,无错,保存接收到的数据INCR0DJNZR7,LOOP;16字节未接收完,则继续CLR7F;正确接收完16位数据,清出错标志位7FSJMP$PER:SETB7F;校验有错,置位7FSJMPEND$解释三总线的概念I/O接口和I/O端口有区别?I/O接口的作用是什么?I/O数据有几种传送方式?各有什么特点?外设端口有几种传送方式?各有什么特点?为什么当P2口作为地址总线后,如有剩余口线也不再适合做通用I/O口?MCS-51系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线为何不会产生冲突?某一单片机应用系统,需扩展4KB的EPROM和2KB的RAM,还需外扩一片8255并行接口芯片,采用线选法,画出硬件连接图,并指出各芯片的地址范围。9某单片机应用系统,需扩展2片8KB的EPROM和2片8KB的RAM,采用地址译码法,画出硬件连接图,并指出各芯片的地址范围。10.I/O扩展方法有那几种?何谓“看门狗”?它如何实现对系统程序的监控?说明I2C总线的特点,以及在单片机中实现该总线的方法。1解:MCS-51系列单片机具有很强的外部扩展功能。其外部引脚可构成三总线结构,即地址总线、数据总线和控制总线。单片机所有的外部扩展都是通过三总线进行的。(1)地址总线(AB)地址总线用于传送单片机输出的地址信号,宽度为16位,可寻址的地址范围为21&64KB。地址总线是单向的,只能由单片机向外发出。P0口提供低8位地址,P2口提供高8位地址。由于P0口既做地址线又做数据线,分时复用,所以,P0口提供的低8位地址是由P0口经锁存器提供的。锁存信号是由CPU的ALE引脚提供的。(2)数据总线(DB)数据总线是由P0口提供的,宽度为8位°P0口是双向三态口,是单片机应用系统中使用最频繁的通道。P0口提供的数据总线上要连接多个扩展的外围芯片,而某一时刻只能有一个有效的数据传输通道。具体哪一个芯片的数据通道有效,是由各个芯片的片选信号控制选择的。欲使CPU与某个外部芯片交换数据,则CPU必须先通过地址总线发出该芯片的地址,使该芯片的片选信号有效,则此时P0口数据总线上的数据只能在CPU和该芯片之间进行传送。(3)控制总线(CB)控制总线实际上是CPU输出的一组控制信号。每条控制信号都是单向的,但是由多条不同的控制信号组合而成的控制总线则是双向的。MCS-51系列单片机中用于系统扩展的控制信号有RD,WR,PSEN,ALE和EA。2解:接口(也称为I/O接口)是指连接CPU与外部输入/输出设备之间的部件,这些部件是CPU与外设之间进行信息传送的媒介。I/O接口芯片都有一个或几个端口,一个端口对应于接口芯片内部的一个寄存器或一组寄存器,计算机系统要为每个端口分配一个地址,各个端口的地址是唯一的,不能重复。在信息传送过程中,接口起着数据锁存、数据缓冲、输入/输出、联络、数据转换、中断管理、时序控制、可编程、电器特征匹配等作用。3解:CPU与外设之间传输数据的控制方式通常有三种:程序方式、中断方式和DMA方式。程序方式:指用输入/输出指令,来控制信息传输的方式,是一种软件控制方式,根据程序控制的方法不同,又可以分为无条件传送方式和条件传送方式。无条件传送方式接口简单,适用于那些能随时读写的设备。条件传送方式(查询方式)的特点是接口电路简单,CPU利用率低(程序循环等待),接口需向CPU提供查询状态。适用于CPU不太忙,传送速度要求不高的场合。要求各种外设不能同时工作,外设处于被动状态。中断方式:当外设准备好时,由外设通过接口电路向CPU发出中断请求信号,CPU在允许的情况下,暂停执行当前正在执行的程序,响应外设中断,转入执行相应的中断服务子程序,与外设进行一次数据传送,数据传送结束后,CPU返回继续执行原来被中断的程序。其特点是CPU的利用率高,外设具有申请CPU中断的主动权,CPU和外设之间处于并行工作状态。但中断服务需要保护断点和恢复断点(占用存储空间,降低速度),CPU和外设之间需要中断控制器。适用于CPU的任务较忙、传送速度要求不高的场合,尤其适合实时控制中的紧急事件处理。存储器直接存取方式(DMA):外设利用专用的接口(DMA控制器)直接与存储器进行高速数据传送,并不经过CPU(CPU不参与数据传送工作),总线控制权不在CPU处,而由DMA控制器控制。其特点是接口电路复杂,硬件开销大。大批量数据传送速度极快。适用于存储器与存储器之间、存储器与外设之间的大批量数据传送的场合。4解:在计算机系统中,凡需要进行读写操作的部件都存在编址的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。存储器的每个单元均有自己的地址,对于I/O接口,则需要对接口中的每个端口进行编址。通常采取两种编址方法:一种是独立编址,另一种是统一编址。统一编址又称“存储器映射方式”。在这种编址方式下,I/O端口地址置于存储器空间中,在整个存储空间中划出一部分空间给外设端口,端口和存储单元统一编址。其优点是无需专门的I/O指令,对端口操作的指令类型多,从而简化了指令系统的设计。缺点是端口占用存储器的地址空间,使存储器容量更加紧张,同时端口指令的长度增加,执行时间较长,端口地址译码器较复杂。独立编址又称“I/O映射方式”。这种方式的端口单独编址构成一个I/O空间,不占用存储器地址空间。其优点是端口所需的地址线较少,地址译码器较简单,采用专用的I/O指令,端口操作指令执行时间少,指令长度短。缺点是输入输出指令类别少,一般只能进行传送操作。MCS-51单片机采用了统一编址方式,即I/O端口地址与外部数据存储单元地址共同使用0000H〜FFFFH(64KB)。因此,MCS-51单片机应用系统扩展较多外部设备和I/O接口时,要占去大量的数据存储器的地址。6解:P2口用作扩展存储器的高8位地址总线以后,即使没有全部占用,空余的几根也不宜用作I/O口,否则会给软件编写及使用带来不必要的麻烦。主要是时序上处理比较困难。7解:程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突,因此,两者虽然共处于同一地址空间,但由于控制信号不同,所以不会发生总线冲突。8解:P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0STCMCUALEP0/PSEN/WR/RDD0%|■z1D7A11/CEA10A9A8EPROMA71A0D0-D7/OE矣1A11/CEA10A9A8/CS8255A1A0/WED0-D7/OE
本文档为【单片机原理与应用试题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_179289
暂无简介~
格式:doc
大小:276KB
软件:Word
页数:35
分类:
上传时间:2021-11-18
浏览量:29