单片机原理及接口技术思考题与习题汇总_第1页
单片机原理及接口技术思考题与习题汇总_第2页
单片机原理及接口技术思考题与习题汇总_第3页
单片机原理及接口技术思考题与习题汇总_第4页
单片机原理及接口技术思考题与习题汇总_第5页
免费预览已结束,剩余9页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、思考题与习题1.8051单片机内包含哪些主要逻辑功能部件?一个8位的CPU128B/256由勺片内数据存储器、4KB/8K典序存储器、四个8位并行I/O接口、两个定日力计数器、5个中断源的中断控制系统、一个全双工UART勺串行I/O口、片内振荡器和时钟产生电路。2.8051的EA端有何用途?当EA为低电平时,CPIR能访问外部的程序存储器。当EA为高电平时,CPUIB访问内部的程序存储器,并当PC的值超过0FFF的,自动转向访问片外的程序存储器。3.8051的存储器分为哪几个空间?如何区别不同空间的寻址?4 .简述8051RA耽空间分配。5 .6 .如何简便地判断8051正在工作?当8051上

2、电正常工作时,ALE引脚输出fosc/6的正脉冲,可用示波器查看及判断。7 .8051如何确定和改变当前工作寄存器组?CPU通过程序状态字PS忖RS1RS怵确定和改变当前工作寄存器组。8.9.10.11.8051单片机由哪些信号需要芯片以第二功能的方式提供?RXD、TXDINT0INT1、T0T1、WRRD这些信号分别由P3.0P3.7以第二功能的方式提供。12.13.14. 开机复位后,CPU1用的是哪组工作寄存器?它们的地址是什么?CP口口何确定和改变当前工作寄存器组?开机复位后,CPU1用0组工作寄存器。它们的地址是00HH07HCPU通过程序状态字PSW3RS1RS怵确定和改变当前工作

3、寄存器组。15. 程序状态寄存器PSWWJ作用是什么?常用标志有哪些位?作用是什么?PSW中存放着程序执行后的状态信息,供程序查询或判断。常用的标志有:进(借)位位:C=0c进(借)位;C=侑进(借)位。半进(借)位位:AC=(0c进(借)位;AC=1W进(借)位。用户标志位:由用户自己定义。工作寄存器组选择控制位:选择当前工作寄存器组。溢出标志位:判断是否溢出。OV=0溢出;。丫=侑溢出。奇偶标志位:判断结果中有奇数或偶数个1P=(0W累加器A中有偶数个1;P=1则累加器A中有奇数个1。16.17.18.19.思考题与习题1.2.3.4.5. 要访问特殊功能寄存器和片外数据存储器,应采用哪些

4、寻址方式。特殊功能寄存器:直接寻址、位寻址(部分特殊功能寄存器)片外数据存储器:寄存器间接寻址MOVX(RR2DPTR)6. 在8051片内RAW,已知(30H)=38H(38H)=40H(40H)=48H(48H)=90H请分析下面各是什么指令,说明源操作数的寻址方式以及按顺序执行每条指令后的结果。指令源操作数的寻址方式执行结果MOVA40H直接寻址A=48HMOVR0A寄存器寻址R0=48HMOVK1#FOHi即数寻址P1=48HMOVRCB0H直接寻址(48H)=38HMOVDPT牌3848H立即数寻址DPTR=3848HMOV40H38H直接寻址(40H)=40HMOVR030H直接寻

5、址R0=38HMOVK0R0寄存器寻址P0=38HMOV18H#30H立即寻址(18H)=30HMOVAR需存器间接寻址A=40HMOVP2P1寄存器寻址P2=48H7.8. 指出下列指令的本质区别?MOVADATAMOVA#DATA前一条指令源操作数的寻址方式是直接寻址,把地址为DATA勺内存单元中的内容传送到累加器A中。后一条指令源操作数的寻址方式是立即寻址,把DAT脑个立即数赋给寄存器A。MOVDATA1DATA2MOV74H#78H前一条指令源操作数的寻址方式是直接寻址,把地址为DATA2勺内存单元中的内容传送到地址为DATA的内存单元中。后一条指令源操作数的寻址方式是立即寻址,把78

6、Ha个立即数传送到内存单元74H中。9. 设R0的内容为32H,A的内容为48H片内RAM4132H单元内容为80H40H#元内容为08H请指出在执行下列程序段后上述各单元内容的变化。MOVAR0A=80HR0=32H(32H)=80H(40H)=08HMOVR0,40HA=80R0=32H(32H)=08H(40H)=08HMOV40H,AA=80HR0=32H(32H)=80H(40H)=80HMOVR0,#35HA=80HR0=35H(32H)=80H(40H)=08H10.11 .如何访问外部RAMI元,可使用哪些寻址方式?使用MOVX令,可采用寄存器间接寻址方式(R0,R1,DPTR

7、)12 .13 .14 .15 .16 .设A=83HR0=17H(17H)=34H问执行以下指令后,A=?ANLA#17H;A=03HORL17HA;A=03H(17H)=37HXRLARQA=34HCPLA;A=0CBH17 .使用位操作指令实现下列逻辑操作。要求不得改变未涉及位的内容。使ACC.超1。SETBACC.0清除累加器高4位。CLRACC.7CLRACC.6CLRACC.5CLRACC.4清除ACC.3,ACC.4,ACC.5,ACC.6CLRACC.6CLRACC.5CLRACC.4CLRACC.318 .编程实现把内部RAMR0R7的内容传送到20H27H#元。MOV20H

8、R0MOV21HR1MOV22HR2MOV23HR3MOV24HR4MOV25HR5MOV26HR6MOV27HR719 .设逻辑表达式为:Y=A(B+C)+D(E+F试编一程序以软件方法实现上述逻辑功能。20 .试编写程序,将内部RAMJ20H,21H22H三个连续单元的内容依次存入2FH2EH2DHKMOV2FH20HMOV2EH21HMOV2口H22H21 .编写程序,进行两个6位数的减法:6F5DH-13B4H吉果的高8位和低8位分别存入内部RAM131H30H单元中。CLRCMOVA#5DHSUBBA#B4HMOV30HAMOVA#6FHSUBBA13HMOV31HA22 .编写程序

9、,若累加器A的内容分别满足下列条件时,则程序转至LABE医储单元。设A中存放的是无符AA10(2A10(3AW10CJNEA#1QL1LABELSJMPL2L1:JNCLABELL2:CJNEA#11L1LABELSJMPL2L1:JNCLABELL2:CJNEA#1QL1LABELSJMPL2L1:JCLABELL2:23.24.25.26. 试编写程序,查找在内部RAM20H50Hli元中是否有0AAH一数据。若有则将51Hli元置为01H若未找到,则将51H置为0。MOVR0#31HMOVR1#20HMOV51H,#00HL1:CJNER1,#0AAH,L2MOV51H,#01HSJMP

10、L3L2:INCR1DJNZR0,L1L3:27.试编写程序,查找在内部RAMJ20H-50Hll元中有多少个00H这一数据,并将查找结果存入51H单元。MOVR0#31HMOVR1#20HMOVR2,#00HL1:CJNER1,#00H,L2INCR2L2:INCR1DJNZR0,L1L3:MOV51HR228.外部数据RA肺有一个数据块,存有若干个字符、数字,首地址为SOURC要求将该数据块传送到内部RAMADIST开始的区域,直到遇到字符“$”时结束(“$”也要传送,它的ASCII码为24H)。MOVDPTRESOURCEMOVR1#DISTL1:MOVXADPTRINCDPTRMOVR

11、1,AINCR1CJNEA#24HL129 .已知R3,R4中存放一个16位的二进制数,高位在R3中,低位在R4中。试编一程序将其求补,结果存回原处。方法一方法二CLRCCLRCMOVA#00HMOVAR3SUBB,AR4CPLAMOVR4AMOVR3AMOVA#00HMOVAR4SUBBAR3CPLAMOVR3AADDA1MOVR4AMOVAR3ADDCA#00HMOVR3A30 .已知30H31H中存放一个16位的二进制数,高位在前,低位在后。试编一程序将其乘2,结果存回原处。方法一方法二MOVA31HCLRCADDA31HMOVA31HMOV31HARLAMOVA30HMOV31,HAA

12、DDCA30HMOVA30HMOVR3ARLCAMOV30HA31 .32 .编写一个程序,把片外RAW2000HFF始存放的8个数传送到片内30HFF始的单元中。MOVDPTR#2000HMOVR0#30HMOVR1#08HL1:MOVADPTRMOVR0,AINCDPTRINCR0DJNZR1,L133.34.35. 设(R0)=7EH(DPTR)=10FEH片内RAM7E单元的内容为0FFH7FHII元的内容为38H试为下列程序的每条指令注释其执行结果。INCR0(7EH)=00HINCR0R0=7FHINCR0(7FH)=39HINCDPTR(DPTR)=10FFHINCDPTR(DP

13、TR)=1100HINCDPTR(DPTR)=1101H36. 下列程序段经汇编后,从1000HFF始的各有关存储单元的内容将是什么?ORG1000H1000H“S”1001H“T”1002H“A”1003HR1004H“T”1005H12H1006H34H1007H30H1008H00H1009H00H100AH70HTAB1:EQU1234HTAB2EQU3000HDB“STARTDWTAB1TAB270H37.38.39. 试编写程序,判断30H单元中的数据是奇数还是偶数,是奇数则把31H单元置1,是偶数则把31置0。要求不破坏30Hli元的内容。方法一MOVA30HMOV31H#00H

14、ORLA#01HJZL1MOV31H#01HL1:方法二MOVA30HORLA#01HJZL1MOV31H#01HSJMPL2L1:MOV31H#00HL2:40 .试编写程序,使31Hm元中二进制数的最高位(符号位)置1。MOVA,30HORLA,#80HMOV30H,A41 .试编写程序,把31H单元中二进制数的最高位(符号位)求反。MOVA,30HXRLA,#80HMOV30H,A思考题与习题1 .什么是中断和中断系统?其主要功能是什么?2 .试编写一段对中断系统初始化的程序,使之允许INTRINT1、TO串行口中断,且使T0中断为高优先级中断。字节操作方式位操作方式MOVIP#0000

15、0101BMOVIE#10010111BSETBESSETBEX1SETBEX0SETBET0SETBPX1SETBPX0SETBEA3 .在单片机中,中断能实现哪些功能?答:I/O设备请求服务;硬件故障;实时时钟;为调试程序而设置的中断源。4 .8051共有哪些中断源?对其中断请求如何进行控制?5 .什么是中断优先级?中断优先级处理的原则是什么?答:中断优先级是CPU1应中断的顺序。其处理原则是:高优先级组的中断优先响应低优先组的中断。同组(级)按外部中断0、定时器0、外中断1、定时器1、串行口的顺序响应。6 .说明外部中断请求的查询和响应过程。7.8051在什么条件下可响应中断?答:CPU

16、f中断(EA=1);中断源发中断请求信号且其中断允许位为1;无同级中断或更高级中断正在被服务;当前的指令周期已经结束(若是当前指令为RETI或访问IE、IP的指令,则应等CPU1执行完一条指令)8 .简述8051单片机的中断响应过程。9 .在8051内存中,应如何安排程序区?答:8051复位后PC=000QHB0003+002B的各中断源的入口地址,故程序段一般从0030H以后)的地址开始存放。因此编程时应在0000HH写一跳转指令转至0030H或相应的开始地址)。10 .试述中断的作用及中断的全过程。11 .当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应

17、新的中断请求?在什么情况下不能响应新的中断请求?12.8051单片机外部中断源有几种触发中断请求的方法?如何实现中断请求?13.8051单片机有5个中断源,但只能设置两个中断优先级,因此,在中断优先级安排上受到一定的限制。试问以下几种中断优先级顺序的安排(级别由高至U低)是否可能?若可能,则应如何设置中断源的中断级别?否则,请简述不可能的理由。定时器0、定时器1、外中断0、外中断1、串行口。答:可以。MOVIP#00001010B串行口、外中断0、定时器0、外中断1、定时器1。答:可以。MOVIP#00010000B外中断0、定时器1、外中断1、定时器0、串行口。答:不可能。因为把外中断0、定

18、时器1设定为高优先级时,在低优先级中定时器0的优先级高于外中断1。外中断0、外中断1、串行口、定时器R定时器1。答:可以。MOVIP#00010101B串行口、定时器0、外中断0、外中断1、定时器1。答:不可能。因为若把串行口及定时器0设定为高优先级中断,在同级中断优先级中串行口为最低。而单独把串行口设定为高优先级中断时,低优先级组中的最高优先级应为外中断0。外中断0、外中断1、定时器0、串行口、定时器1。答:不可能。外中断0、定时器1、定时器0、外中断1、串行口。答:不可能。14.以中断方法设计单片机秒、分脉冲发生器。假定P1.0每秒钟产生一个机器周期的正脉冲,P1.1每分钟产生一个机器周期

19、的正脉冲。思考题与习题1 .定时器模式2有什么特点?使用于什么应用场合?答:定时器模式2具有自动重装载的8位定时器/计数器。一般使用于串行口波特率发生器。2 .单片机用内部定时方法产生频率为100KH本宽矩形波,假定单片机的晶振频率为12MHZ请编程实现。3.8051定时器有哪几种工作模式?有何区别?4.8051单片机内部设有几个定时器/计数器?它们是由哪些特殊功能寄存器组成?5. 定时器/计数器用作定时器时,其定时时间与哪些因素有关?作为计数器时,对外界计数频率有何限制?答:用作定时器时定时时间与振荡器的频率、计数器的初值有关。用作计数器时计数频率为振荡频率/24。6. 简述定时器四种工作模

20、式的特点。如何选择和设定?7.8.9.10.11.8051定时器作定时和计数时,其计数脉冲分别由谁提供?定时:单片机的主频经12分频提供。计数:Ti引脚提供。12.8051定时器门控信号GAT段置为1时,定时器如何启动?答:8051定时器门控信号GAT段置为1时,定时器将由INTi引脚启动。13.已知8051单片机的fosc=6MHZ请利用T0和P1.0输出矩形波。矩形波高电平宽度50ds,低电平宽度300ds。定时时间为50ds,贝U时间常数=28-(50*10-6*6*106/12)=28-25=231=0E7HORG0000HRESET:AJMPMAIN跳过中断服务程序区ORG000BH

21、AJMPITOP主程序ORG0100HMAINMOVSP#60H;设置堆栈指针PTOMDMOVTMOD#02H;设置T0模式2MOVTH0#0E7H;送初值MOVTL0#0E7HMOVR0,#00H设置计数器SETBTRO;启动定时SETBET0;T0开中断SETBEA;CPUF中断HERESJMPHERE等待时间到,转入中断服务程序(模拟主程序的运行)中断服务程序ORG0120HITOPCJNER0#00HL1;若R0不等于0转L1输出低电平SETBP1.0;R0=0俞出高电平SJMPL2L1:CLRP1.0;RgO输出低电平L2:INCR0;R0加1CJNER0#07HL3;判断是否已输出

22、6个50ds的低电平MOVR0#00H;是则重置R0=0L3:SETET0;T0开中断RETI14.已知8051单片机的fosc=12MHz用T1定时。试编程由P1.0和P1.1引脚分别输出周期为2m和500ds的方波。定时时间为250ds,贝U时间常数=28-(250*10-6*6*106/12)=28-125=131=83HORG0000HRESET:AJMPMAIN跳过中断服务程序区ORG001BHAJMPITOP主程序ORG0100HMAINMOVSP#60H;设置堆栈指针PTOMDMOVTMQD#20H;设置T1模式2MOVTH0#83H;送初值MOVTL0#083HMOVR0,#00H设置计数器SETBTR1;启动定时SETBET1;T0开中断SETBEA;CPUF中断HERESJMPHERE等待

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论