单片机课后题答案_第1页
单片机课后题答案_第2页
单片机课后题答案_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、2- 1. 8051 单片机芯片内部包含哪些主要逻辑功能部件?答:一个8位微处理器(CPU;片内数据存储器RAM 片内程序存储器ROM四个8位并行I/O 口 P0P3;两个 定时器 / 计数器;五个中断源的中断控制系统;一个 UART(通用异步接收发送器)的串行I/O 口;片内振荡器和时钟产生电路。2- 2 、8051存储器分哪几个地址空间?如何区别不同 空间寻址?答: 片内、外统一编址的64K眸序存储器; 片 内256B数据存储器; 片外64KB数据存储器。硬件:引脚接高电平时CPI从片内0000H单元开始取指令,接低电平时CP直接访问片外EPROM EA软件:MOV!令访问片内数据存储器,

2、MOVX指令访问片外数据存储器,MOV指令用于读取程序存储器中 的常数。2- 3.简述8051片内RAM勺空间分配。答:低128B位数据存储器区分为:工作寄存器区(00H1FH;位寻址区(20H2FH; 般数据存储区( 30H7FH;高128B数据存储器区离散地分布着21个特殊功能寄存器2- 4.简述直接位寻址区的空间分配,片内RAM中包含哪些可位寻址单元?答:MCS-5单片机片内RAM中有两个区域可进行位寻址:(1) 片内RAI低 128字节的位寻址区,地址为 20H2FH 的16个字节单元共 128位,每一位都有相应的位地址, 可用位寻址方式对其进行置位、复位、内容传送、逻 辑运算等操作,

3、 128位的位地址定义为 00H7FH。(2) 片内RAM1128字节的存储器区,有21个特殊功能寄 存器。 其中字节地址正好能被 8整除的字节单元中的每一 位都可以按位寻址、操作。14 2-5 . 8051的P0P3口有何不同,用作通用 I/O 口输入数据时应注意什么? 答:P0P3口功能不完全相同。(1) 访问外扩展存储器时,P2口送出16位地址的高8位 地址,P0口先送出16位地址的低8位地址,再做数据的输 入/ 输出通道。(2) 在无片外扩展存储器的系统中, PO、P2口不需要 做地址口时,和P1、P3口一样,都可作为准双向通用 I/O 口使用。P0的输出级无上拉电阻, 在作为通用I/

4、O 口时需 外接上拉电阻,且P0 口的每一位输出可驱动 8个TTL负载, 而P0P3口的输出级接有上拉负载电阻, 每一位输出可驱 动4个TTL负载。在作通用 I/O 输入数据时应注意: 应先对相应的端口锁存 器写1,防止误读。2- 6. 8051单片机引脚有何功能?在使用 8031时,引脚应 如何处理? EAEA 答:引脚为外部程序存储器地址允许输入端,其电平的 高低决定了系统复位后CPU是从片内程序存储器还是片外扩展存储器的0000H字节单元开始取指令。EA(1) 当引脚接成高电平时,CPUT先从片内0000H字节单元开始取指令执行程序,当指令地址寄存器PC中的内容超过0FFFH后,就自动转

5、向片外扩展的EPRO中取指令执行,这时芯片外部的重叠地址为0000H0FFFH勺低4KBEPRO忽略不用。EA(2) 当引脚接成低电平时,复位后CP直接从片外EPROM 的0000H字节单元开始取指令执行,这时芯片内部OOOOHOFFFH勺4KB单元被忽略不用。 EA单元,定名为 R0 R1、R2 R3 R4、R5 R6和R7。通过储器单元,分为四个组,每组有 8个工作寄存器字节在使用8031时,由于其内部没有 ROM/EPRQM所以必须使用外部扩展程序存储器, 它勺引脚应该接成低电平,CPI直接从片外扩展的EPRO中取指令执行。EA2- 7. 8051 单片机有哪些信号需要芯片以第二功能勺

6、方式提供?答:(1)VPD(9脚):片内RAM用电源的输入端。(2)(30 脚):对于片内带有可编程序存储器的芯片,作为编程写入的编程脉冲输入端, 把编写好的程序指 令代码存入程序存储器中。 PROG(3)VPP (31脚):对于片内有EPRO的芯片固化程 序时,它作为是加高编程电压的输入端。(4)RXD (10 脚) :串行口通信数据输入线。(5)TXD (11 脚) :串行口通信数据输出线。(6)(12 脚):外部中断 0输入信号。 INT0(7)(13 脚):外部中断 1输出信号。 INT1(8)T0 (14 脚):定时器 0的脉冲信号外部输入。(9)T1 (15 脚):定时器 1的脉冲

7、信号外部输入。 15(10)(16脚):CPI至片外数据存储器的“写选通控制”输出。 WR(11)(17脚):CPI至片外数据存储器的“读选通控制”输出。 RD2- 8.内RAM低 128B单元划分为哪三个主要区域?各 区域主要功能是什么?答:地址范围为00H7F啲128字节单元,按功能特点 划分为不同的几个区,分述如下。(1)工作寄存器区地址范围为 00H1FH的32字节存改变程序状态字特殊功能寄存器PSW中 RS1, RS0两位的内容,每组工作寄存器均可选作CPU勺当前工作寄存器组。(2)位寻址区地址为20H2F啲16个字节单元中共128 位,每一位都有相应的位地址,可用位寻址方式对其进

8、行置位、复位、内容传送、逻辑运算等操作。(3)一般数据存储区地址范围为 30H7F啲区域,可用于原始数据及运算结果的存储。值得注意的是, 30H7FH 中一部分字节单元可以开辟出一块遵守“后进先出”或“先进后出”规则的特殊数据区一一堆栈。2- 9. 单片机系统复位有哪几种方法?复位后特殊功能 寄存器初始状态如何? 答:使单片机系统复位有两种方法:上电自动复位和按 键手动复位系统复位的主要功能就是把 PC初始化为0000H,使单片机 从0000H单元开始执行程序,另外,系统复位还使一些特 殊功能寄存器恢复到复位状态。PC: 0000H ACC: 00H PSW: 00HSP: 07H DPTR:

9、 OOOOH POP 3: FFHIP: *000000B IE:0*000000B TMOD: 00HTCON: 00H TL0: 00H TH0: 00HTL1: 00H TH1: 00H SCON: 00HSBUF不定 PCON: 0*0000B2- 10.开机复位后,CPU使用那组工作寄存器作为当前工 作寄存器?它们的地址是什么?答:开机复位后,由于(RS1=Q RS0=0 , CPU使用第0组工作寄存器作为当前工作寄存器,它的地址为 00H07H.元可开辟出一块遵守“后进先出”或“先进后出”直接寻址、立即数寻址、寄存器间接寻址、变址间接寻答:通过改变程序状态字特殊功能寄存器PSV中R

10、S1,RS(两位的内容,每组工作寄存器均可被选作当 前工作寄存器。RS1 RS0 当前工作寄存器0 0 第0组 0 1 第1组161 0 第2组 11 第3组2- 13 .位寻址与字节单元地址 7CHffl何区别?位地址7CH具体在片内RAM勺什么位置?答: 8051采用不同的寻址方式和指令分别对位和字节进行不同的操作,如 SETB 20H旨的是20H位单元的内容置为1,而MO20H,#0FFH旨的是内RAM20字节单元的内容变为 FFH。位地址7CH在内RAM低 128字节的2FH字节单元的第四 位。2-14. 8051 单片机时钟周期与振荡周期之间有什么关系?答: 8051 单片机的时钟周

11、期为振荡周期的两倍。2-15. 一个机器周期的时序是怎样划分的?答:MCS-5係列单片机工作的一个机器周期由6个S状态周期组成,即S1S6,每个状态又持续两个振荡周 期,即P1和P2两拍,故一个机器周期包括12个振荡周 期 。 一 个 机 器 周 期 具 体 分 为S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1, S5P2,S6P1,S6P2共12状态拍。若采用12MH晶体振荡 器,则每个机器周期恰为1卩s。2-16.什么叫堆栈?堆栈指针SP的作用是什么?8051单片机堆栈容量不能超过多少字节?答:一般在30H7FH的地址范围内,有一部分字节单规则的特

12、殊数据区,就叫堆栈。SP为堆栈指针,它始终存放堆栈顶部字节单元的地址(栈 顶指针),数据压栈时,SP首先自动加1,然后数据压入 SP内容指示的字节单元中;而数据出栈时,SP内容指示的字节单元中的数据弹出,然后 SP自动减1,这样SP始终 指向堆栈顶部字节单元的地址。8051单片机堆栈容量最多不能超过 128字节。初始化后,(SP) =07H,如果CPU使用工作寄存器1组,那么堆栈和 工作寄存器将发生冲突,因此常把堆栈移至307FH区域之中。2- 17. 分析原教材中说明图 2-16系统中各信号线的作用。答:P1 口用作一般I/O 口,通过光电隔离电路向三相步 进电机的功率放大电路顺序地发出步进

13、脉冲信号;和作 为输入, 检测控制步进电机的正反转的按键状态; XTAL1 和XTAL2接外部时钟电路,为系统提供振荡时钟;P0 口分 时用作地址 /数据总线,取指令时输出低 8位地址,经地 址锁存器74LS373锁存,其它时间P0口用作数据总线输出 8位数据;高5位地址由提供;ALE作为地址输出锁存控 制端;接地,CPI直接从外扩EPRO中取指令执行;为程 序存储器输出允许控制端,在CPU读取EPRO中数据时,EAPSEN17使EPRO输出指令。3- 1什么是寻址方式? MCS-51单片机有哪几种寻址方 式?对8031内部RAM勺128255字节地址的空间寻址要注 意什么?答: 寻址方式是如

14、何找到存放被操作数据的位置 (地址) 的方法;MCS-5惮片机有七种寻址方式:寄存器寻址、为特殊功能寄存器区,只允许使用直接寻址方式。3- 6若要完成以下数据传送,如何应用MCS-51指令予以实现?(1) R1 的内容传送到 R0:MOV A, R1MOV R0, A(2) 外部RAM 20h单元的内容送入 R0:MOV R1, #20HMOVX A, R1MOV R0, A(1)外部RAM0020H单元的内容送内部 RAM20H单元:MOV R0, #20HMOVX A, R0MOV 20H, A(2)外部RAM 1000H单元内容送内部 RAM 20H单元:MOV DPTR, #1000H

15、MOVX A, DPT3R1 MOV 20H, A(3)外部ROM 20001单元内容送R0:MOV A, #00HMOV DPTR, #2000HMOVC A, A+DPTRMOV R0, A(4)外部ROM 20001单元内容送内部 RAM 20H单元:MOVC A, A+DPTRMOV 20H, A(5)外部ROM 2000单元内容送外部 RAM 0020H单元:MOV A, #00HMOV R0, #20HMOV DPTR, #2000HMOVC A, A+DPTRMOVX R0, A3- 8已知SP=25H PC=2345H标号LABEL所在的地址为3456H,问执行长调用指令LCA

16、LLLABE后,堆栈指针和 堆栈的内容发生什么变化?PC直等于什么?答:(SP) =27H, (26H) =48H, (27H) =23H; (PC) =3456H3- 9上题中的LCALL指令能否直接换成 ACAL1L旨令,为什 么?如果使用ACAL指令,则可调用的地址范围是什么? 答:不能,因为 LABEL所在地址3456H与PC不在同一 2 KB 范围内,即高5位地址不同。若要使用 ACAL1L旨令,可调 用的地址范围是 2000H27FFH。3- 10有一个16位二进制数,高8位存于21H单元,低8位存于20H单元。执行如下程序段,试问: 程序段功能是什么?能否用MO代替程序段中的XC

17、H语句而不改变程序的 逻辑功能?写出相应程序段。 两个程序段结果是否相同?差别在哪里?CLR CXCH A, 21HRRC A3- 12由于SJMP旨令的转移范围是 256B,而AJMP旨令XCH A, 20HRRC AXCH A, 20H答: ( 1)程序段的功能是将此 16位二进制数除 2后 取整(2)能用MO代替程序段中的XCH语句而不改变程序 的逻辑功能,如下:CLR CMOV A, 21HRRC AMOV 21H, AMOV A, 20HRRC AMOV 20H, A两个程序段结果不相同。原程序执行后A的内容为程序运行前A中内容,即此程序没有改变A中内容;MO语句程序中A的内容为 原

18、20H单元内容右移一位后的内容。3- 11分析以下程序段运行的结果。若将DA A指令取消,则结果会有什么不同?CLR CMOV 20H, #99HMOV A, 20HADD A, #01HDA AMOV 20H, A答:结果为(20H) =00H, CY=1。若取消DAA指令,(20H) =9AH, CY=0。转移范围是2KB,所以在程序中SJMP旨令都可以用AJMP指令来代替。”请问这种说法是否正确,为什么?答:不正确。AJM转移的目标地址必须在 AJMPI面指令 的第一个字节开始的同一 2KB范围内,不能改变高 5位地 址, 因此,即使相邻很近的两个地址,只要它的高5位发生改变,就不能跳转

19、。而 SJMI可以通过几次跳转,最终 到任意目标地址。3- 13 使用位操作指令实现下列逻辑操作, 要求不更改单 元其他位的内容。解:( 1 )使置 1 : SETB(2)清除累加器的高四位:ANL A, #0FH或 CLRCLRCLRCLR( 3)清除,:ANL A, #87H或 CLRCLRCLRCLR3- 14将片内RAM中0FH单元的内容传送到寄存器B,对0FH单元的寻址可有三种方法:R寻址、R间址、Direct寻址。请分别编出相应的程序,比较其字节数、机器周 期和优缺点。答:R寻址:MOV RO, 0FH 2字节,双周期Direct 寻址: MOV A, #0FH ; 2字节,单周期

20、MOV 0F0H,A ; 2 字节,单周期3- 15怎样把位40H的内容移至30H位?答: MOV C, 40HMOV 30H, C3- 16 编写一段程序, 模拟如图 3-1 所示逻辑电路的逻 辑功能。要求将 4个输入与非门的功能模拟先写成一 个子程序,然后多次调用得到整个电路的功能模拟。设X, Y, Z、W和F都已定义为位地址,若程序中还需 要其它位地址,也可另行定义。提示:首先用伪指令定义 X,Y, Z , W ,F是单片机引 脚端口位,然后再编程,注意 34 操作对象是位单元,应该使用位逻辑指令。4- 1两个4位BCD码数相加求和。设被加数存于内部RA啲40H 41H单元,加数存于 4

21、5H、46H单元,要求和数存于50H、51H单元(均前者为低二位,后者为高 二位)。请编制加法程序段。若进行 BCD减法运算, 应如何考虑。解:程序如下:CLR CMOV A, 40HADD A,45HDA AMOV 50H,AMOV A,41HADDC A,#00HMOV 52H,A编写多字节十进制(BCD码)减法程序段:设被减数低字节地址存 RC中,减数低字节地址存 R1中,字节数存R3中。相减的结果依次存于原被减数单元。START: SETB CSUBA: CLR AADDC A, #99H ;加 99SUBB A R1 ;减去减数ADD A R0 ;作加法,加上被加数DA A ;十进制

22、调整MOV RO, A ;存入对应的被减数单元INC R0 ;指向下一个字节单元INC R1DJNZ R3, SUBA;若(R3) 一 1工0,继续作减法RET注意:80C51中的十进制调整指令(DA A)只能用于二进制 加法指令之后,不能用于二进制减法结果的调整。进行 十进制(BCD码)减法只能采用先求减数的十进制补码,然后把结果与被减数相加。如果被减数为A,减数为B,十进制的位数为n,则A-B =A+Bau= A+10n-B = A+99+1-B = 99+1-B+A式中:99的个数为n。4- 2试编写程序,查找在内部RAM 20H-50H单元中出现ADDC A,46HDA A解:程序如下

23、:MOV R0,#20H00H的次数,并将查找的结果存入51H单元。LOOP1: CJNE R0, #00H, LOOPINC 51HLOOP: INC R0DJNZ R7, LOOP1HERE: SJMP HERE4- 3晶振频率为12MHz请用循环转移指令编制延时20ms的延时子程序。解:一个机器周期为1us,延时20ms需要机器周期数20000us/1us=20000延时程序如下:MOV R5, #T1 ;1个机器周期LOOP2: MOV R4,#T2 ; T1 个机器周期L00P1: NOP; T1*T2个机器周期NOP; T1*T2个机器周期DJNZ R4,LOOP1 ; 2* T1

24、*T2 个机器周期DJNZ R5, LOOP2 ; 2* T1 个机器周期RET ; 1个机器周期总计时:1+3X T1+4X T1X T2+1=20000则:T1=202=0CAH, T2=24=18H (答案不唯一,T1 与T2 的值w 255)4- 4已知两个八位无符号数 a、b存放在BUF和BUF+1单元,编写程序计算5a+b,结果可能大于8位,仍放回BUF和BUF+1单元(BUF+1单元为高字节)。MOV BUF,AMOV A,BADDC A,#00HMOV BUF+1,A4- 5外部数据RAM从2000H到 2100H有一个数据块,现要将它们传送到从3000H到3100H的区域,试

25、编写有关程序。方法1: MOV P2, #20HMOV R0, #00HMOV R2, #00HLOOP: MOVX A, R0; P2口即高八位地址SETB ; 20HR 30HMOVX R0, ACLR ; 30H 20HINC R0DJNZ R2, LOOPMOV DPTR, #2100HMOVX A, DPTRMOV DPTR, #3100HMOVX DPTR, A方法2 MOV DPTR,#3000HPUSH DPLPUSH DPH; 压栈保护目标地址MOV DPTR, #2000H解:根据题意,编写程序如下:MOV A, BUFMOV B,#05HMUL ABMOV R2, #01

26、HMOV R3, #01H ;数据长度送 R3R2LOOP: MOVX A, DPTRINC DPTRPOP DPHPOP DPL ;弹出目标地址MOVX DPTR, AINC DPTRPUSH DPLPUSH DPH;目标地址加1压栈保护MOV DPH, R5MOV DPL, R4 ; 取出源地址 37CLR CMOV A, R2SUBB A, #01HMOV R2,A ;数据区长度低 8位减1MOV A, R3SUBB A,#00HMOV R3,A ;数据区长度高 8位减借位位ORL A, R2 ; (R3)与(R2)相或JNZ LOOP ;两者全零时,101H个数传送完毕。HERE: S

27、JMP HERE4- 6 求 16位带符号二进制补码数的绝对值。假定补码放在内部RAM勺num和num+1单元,求得的绝对值仍放 在原单元中。(设num+仲内容为高8位) 解:根据题意,编写子程序如下:ABC: MOV A, num+1JB ,FUSHU ;最高位为 1 ,负数,转移处理RET ;正数,补码即绝对值FUSHU: MOV R0, #numMOV A, R0MOV R0,AINC R0MOV A, R0CPL AADDC A, #00H ;高8位取反加1,同时加进位位MOV R0, ARET4- 7下列程序段经汇编后, 从1000H开始的各有关存储单 元的内容是什么 ?ORG 10

28、00HTAB1 EQU 1234HTAB2 EQU 3000HDB “ START”DW TAB1, TAB2, 70H答:1000H: 53H; 1001H: 54H; 1002H: 41H; 1003H: 52H;1004H: 54H1005H: 12H; 1006H: 34H; 1007H: 30H; 1008H: 00H;1009H: 00H38 100AH: 70H4- 8编程将20H单元中的两个BC瞰拆开,并变成相应的ASCII码存入21H和22H单元。解:根据题意,编写程序如下:MOV R0, #22HMOV R,0#00HMOV A, 20HXCHD A, R0ORL 22H,

29、#30H ;转换低 4位SWAP AHERE SJMP HERE4- 9存放在片内RAM勺DA单元中的自变量 X中是一个 无符号数,试编写程序求下面函数的函数值并存放到 片内RAM勺FUN单元中。63731.s1663729 .< > » =20)(X2X20)X(505X50)(XXY解:根据题意设计程序如下:MOV A, DATCJNE A, #32H, LOOPLOOP JNC DONECJNE A,#14 H, LOOP1LOOP1 JC LOOP2RL ARL AADD A DATSJMP DONELOOP2 RLADONE MOVFUNC AHERE SJMP

30、 HERE4- 11已知片内RAM以ADD为起始地址的区域中存放着24个无符号数,试编写程序找出最小值,并存入MIN 单元。解:根据题意,编写程序如下:MOV R0, #ADDR ;数据区首地址 39MOV R7, #18H ;数据区长度MOV A, R0;读第一个数DEC R7LOOP: INC R0CHK: JC LOOP1 ; A值小转移MOV A,R0LOOP1: DJNZ R7,LOOP ;继续MOV 2BH,A ;极值送2BH单元HERE: AJMP HERE;停止6-1什么是中断?什么是中断源?答:当CPUE在运行时,外部发生的某一随机事件(如一个电平的变化,一个脉冲沿的发生或定

31、时器计数溢出等)请求CPU迅速去处理,于是,CPUT时中止现行的程序,转去处理所发生的事件。处理完该事件以后,再回到原 来被中止的地方,继续原来的工作。这种在程序执行过 程中由于外界的原因而被中间打断的情况称为中断。产 生中断的请求源称为中断源。6-2MCS-51提供了哪几种中断源?在中断管理上有什么特点?各中断源中断优先权的高低是如何排列确定的? 答:MCS-51单片机设立了 5个中断源,其中两个为外部中 断源,外部中断0即,外部中断1即,三个为片内中断源(内 部中断源),分别为定时器/计数器T0溢出中断、定时器/ 计数器T1溢出中断和串行口中断。由特殊功能寄存器TCO和 SCON的相应位表示了各中断源的状态。提供2个中断优先级,中断处理程序可实现二级中断嵌套。各中断 源可以由中断优先级控制寄存器IP程控为高优先级或低优先级中断。中断源的排列顺序由中断优先级控制寄存 器和内部查询电路共同决定,并且各中断源可以由中断 允许控制寄存器IE定义为开放或屏蔽状态。0INT1INT6-3MCS-51响应中断的条件是什么?CPU向应中断时,不同的中断源,其中断入口地址各是多少? 答:MCS-51响应中断的基本条件有:1. 有中断源发出中断请求。在每一个机器周期 S5P2期间采样外部中断1请求引脚的2. 中断总允许位EA=I,即CPUf中断

温馨提示

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

评论

0/150

提交评论