51单片机复习题(含答案)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1页共7页一、填空题1、AT89S51单片机为8位单片机,共有40个引脚。2、AT89S51访问片外存储器时,利用ALE信号锁存来自P0口发出的低8位地址信号。3、AT89S51的P3口为双功能口。4、AT89S51内部提供2个可编程的16位定时/计数器,定时器有4种工作方式。5、AT89S51有2级中断,5个中断源。6、AT89S51的P2口为高8位地址总线口。7、设计一个以AT89C51单片机为核心的系统,如果不外扩程序存储器,使其内部4KB闪烁程序存储器有效,则其EA*引脚应该接+5V8、单片机系统中使用的键盘分为独立式键盘和行列式键盘,其中行列式键盘的按键识别方法有扫描法和线反转法。9、AT89S51内部数据存储器的地址范围是00H~7FH,位地址空间的字节地址范围是20H~2FH,对应的位地址范围是00H~7FH,外部数据存储器的最大可扩展容量是64K。10、如果(A)=34H,(R7)=0ABH,执行XCHA,R7;结果(A)=0ABH,(R7)=34H。11、在R7初值为00H的情况下,DJNZR7,rel指令将循环执行256次。12、欲使P1口的低4位输出0,高4位不变,应执行一条ANLP1,#0F0H命令。13、若CPU使用的是寄存器第1组,R0~R7的地址范围是08H-0FH。14、当MCS-51执行MOVXA,@R1指令时,伴随着RD*控制信号有效。15、若A中的内容为67H,那么,P标志位为1。16、AT89S51唯一的一条16位数据传送指令为MOVDPTR,data16。17、LJMP的跳转范围是64K,AJMP的跳转范围是2KB,SJMP的跳转范围是±128B(或256B)。18、如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:POPDPHPOPDPLPOPSP则:(DPH)=___3CH___;(DPL)=___5FH___;(SP)=__4F_H___;19、AT89S51复位后,PC与SP的值为分别为0000H和07H。20、当单片机复位时PSW=00H,这时当前的工作寄存器区是0区,R4所对应的存储单元地址为04H。21、当AT89S51执行MOVCA,@A+DPTR指令时,伴随着PSEN*控制信号有效。22、当MCS-51执行MOVX@R1,A指令时,伴随着控制信号有效。23、MCS-51指令系统中,ADD与ADDC指令的区别是进位位Cy是否参与加法运算。24、如果(A)=45H,(R1)=20H,(20H)=12H,执行XCHDA,@R1;结果(A)=42H,(20H)=15H。25、关于定时器,若振荡频率为12MHz,在方式2下最大定时时间为256us第2页共7页26、执行如下三条指令后,30H单元的内容是#0EHMOVR1,#30HMOV40H,#0EHMOV@R1,40H27、ORG0000HAJMP0040HORG0040HMOVSP,#00H当执行完左边的程序后,PC的值是0043H28、对程序存储器的读操作,只能使用MOVC指令。29、MCS-51串行接口有4种工作方式,这可在初始化程序中用程序填写特殊功能寄存器__SCON_加以选择。二、判断题1、MOV55H,@R5(×)2、INCDPTR(√)3、DECDPTR(×)4、CLRR0(×)5、MOVT0,#3CF0H(×)6、串行口工作方式1的波特率是固定的,为fosc/32。(×)7、8051单片机中的PC是不可寻址的。(√)8、MCS-51系统可以没有时钟电路。(×)9、某特殊功能寄存器的字节地址为80H,它即能字节寻址,也能位寻址。(√)10、PC存放的是即将执行的下一条指令。(√)11、TMOD中的GATE=1时,表示由两个信号控制定时器的启停。(√)12、特殊功能寄存器SCON与定时器/计数器的控制无关。(√)13、各中断源发出的中断请求信号,都会标记在AT89S51的TCON寄存器中。(×)14、MCS-51上电复位时,SBUF=00H。(×)。15、MCS-51的串行接口是全双工的。(√)16、MCS-51的特殊功能寄存器分布在60H~80H地址范围内。(×)17、MOVC,#00H的寻址方式是立即寻址。(×)三、简答题1、AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么?答:AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突。这是因为它们的控制信号不同:(1)外扩程序存储器是PSEN*信号为其控制信号,外扩数据存储器是RD*与WR*信号为其控制信号(2)指令不同,程序存储器用MOVC读取,数据存储器用MOVX存取。第3页共7页2、写出AT89S51的所有中断源,并说明说明哪些中断源在响应中断时,由硬件自动清除,哪些中断源必须用软件清除,为什么?答:外部中断INT0*,定时器/计数器中断T0,外部中断INT1*,定时器/计数器中断T1,串行口中断。其中串行口中断TI与RI必须用软件清“0”,因为串口中断的输出中断为TI,输入中断为RI,故用软件清“0”。3、MCS-51指令系统主要有哪几种中断源?并写出每个中断入口地址?答:中断源入口地址外部中断00003H定时器0溢出000BH外部中断10013H定时器1溢出0001BH串行口中断0023H4什么叫堆栈?答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以后进先出的结构方式处理的。实质上,堆栈就是一个按照后进先出原则组织的一段内存区域。5PC是什么寄存器?是否属于特殊功能寄存器?它有什么作用?答:PC是16位程序计数器(ProgramCounter),它不属于特殊功能寄存器范畴,程序员不以像访问特殊功能寄存器那样来访问PC。PC是专门用于在CPU取指令期间寻址程序存储器。PC总是保存着下一条要执行的指令的16位地址。通常程序是顺序执行的,在一般情况下,当取出一个指令(更确切地说为一个指令字节)字节后,PC自动加1。如果在执行转移指令、子程序调用/返回指令或中断时,要把转向的地址赋给PC。5、DPTR是什么寄存器?它由哪些特殊功能寄存器组成?它的主要作用是什么?答:DPTR是16位数据指针寄存器,它由两个8位特殊功能寄存器DPL(数据指针低8位)和DPH(数据指针高8位)组成,DPTR用于保存16位地址,作间址寄存器用,可寻址外部数据存储器,也可寻址程序存储器。6、8031的扩展储存器系统中,为什么P0口要接一个8位锁存器,而P2口却不接?答:这是因为P0口是扩展储存器系统的多路低8位地址和数据总线,在访问外部存储器时,P0口分时用作输出外部储存器低8位地址和传送数据,为了在整个访问外部存储器期间,对外部存储器存在着有效的低8位地址信号,所以P0口需要外接一个地址锁存器。ALE信号就是用来把P0口输出的地址字节锁存在这个外接的锁存器中,再从锁存器输出外部存储器的低8位地址。而P2口只用作扩展存储器系统的高8位地址线,并在整个访问外部存储器期间不变,所以不必外接地址锁存器。7、单片机有哪些软件和硬件的抗干扰技术?四、编程题1、编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。解:STRAT:MOVR0,#30HMOVR7,#0FHMOVDPTR,#3000H第4页共7页LOOP:MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR7,LOOPRET2、编一个程序,将累加器中的一个字符从串行接口发送出去.解:SOUT:MOVSCON,#40H;设置串行接口为工作方式MOVTMOD,#20H;定时器T1工作于模式2MOVTL1,#0E8H;;设置波特率为1200b/sMOVTH1,#0E8HSETBTR1MOVSBUF,AJNBT1,$CLBT1RET3、片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中.解:START:MOVR0,#40H;数据块首地址送R0MOVR7,#10;比较次数送R7MOVA,@R0;取数送ALOOP:INCR0MOV30H,@R0;取数送30HCJNEA,30H,NEXT;(A)与(30H)相比SJMPBIE1NEXT:JNCBIE1(A)≥(30H)转BIR1MOVA,30H;(A)<(30H),大数送ABIE1:DJNZR7,LOOP;比较次数减1,不为0,继续比较MOV50H,A;比较结束,大数送50HRET4、编定一个软件延时1S和1min的子程序。设fosc=6Hz,则一个机器周期1μs。解:(1)1S=2US*5*1000005*100000=250*200*10(2)ORG1000HTIME:MOVR7,#10T3:MOVR6,#200T2:MOVR6,#250T1:DJNZR5,T1DJNZR6,T2DJNZR7,T3RET(2)1min=60,调用上面1s子程序60次第5页共7页ORG0030HMOVR0,#60LOOP:LCALLTIMEDJNZR0,LOOPRET5、请编制串行通信的数据发送程序,发送片内RAM50H~5FH的16B数据,串行接口设定为方式2,采用偶校验方式。设晶振频率为6MHz。解:查询方式发送程序如下MOVSCON,#80HMOVPCON,#80HMOVR0,#50HMOVR7,#16HLOOP:MOVA,@R0MOVC,PMOVTB8,CMOVSBUF,AJNBT1,$CLRT1INCR0DJNZR7,LOOPRET6、编制一个循环闪烁的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。解:MOVA,#01HSHIFT:LCALLFLASHRRSJMPSHIFTFLAH:MOVR2,#0AHFLAH1:MOVP1,ALCALLDELAYMOVP,#00HLCALLDELAYDJNZR2,FLASH1RET7、请回答:(1)下图中外部扩展的数据存储器容量是多少?(2)三片6264的地址范围分别是多少?(地址线未用到的位填1)(3)若外部程序存储器已扩展(未画出),请编写程序,要求:①将30H~3FH中的内容送入62641#的前16个单元中;②将62642#的前32个单元的内容送入40H~5FH中;解:(1)外部扩展的数据存储器为3片8K的RAM,外扩容量为24K(2)A15A!4A13地址范围第6页共7页0116000H~7FFFH101A000H~BFFFH110C000H~DFFFHP2.7P2.6P2.5P2.4P2.0ALE8031P0.0P0.7RDWRD0Q0D7Q7GOEA0~A7A8~A12CS62641#CED0~D7DEWRA0~A7A8~A12CS62642#CED0~D7DEWRA0~A7A8~A12CS62643#CED0~D7DEWR8588888373VccVccVcc~~~~(3:ORG0000HRESET:AJMPMAIN;复位,转主程序ORG0100HMAIN:MOVDPL,#00H;初始化DPTRMOVDPH,#60HMOVR0,#30H;初始化R0LOOP:MOVA,@R0MOVX@DPTR,AINCR0INCDPTRCJNER0,#40H,LOOPNOPRET②程序如下:ORG0000HRESET:AJMPMAIN;转主程序ORG0100HMAIN:MOVDPL#00H;初始化DPTRMOVDPH,#0A0HMOVR0,#40H;初始化R0LOOP2:MOVXA,@DPTRMOV@R0,A第7页共7页INCDPTRINCR0CJNER0,#60H,LOOP2NOPRET8、利用单片机定时器/计时器模块编制一个周期性计数的程序,每次计12个数单片机p1.0引脚输出控制继电器的动作信号(低电平)。程序:ORG0000HAJMPMAINORG000BHAJMPSER_COUNTMAIN:MOVTMOD,#05HMOVTH0,#0F4HMOVTL0

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功