单片机原理与应用 赵德安 习题答案.docx

上传人:b****2 文档编号:3189522 上传时间:2023-05-05 格式:DOCX 页数:11 大小:62.04KB
下载 相关 举报
单片机原理与应用 赵德安 习题答案.docx_第1页
第1页 / 共11页
单片机原理与应用 赵德安 习题答案.docx_第2页
第2页 / 共11页
单片机原理与应用 赵德安 习题答案.docx_第3页
第3页 / 共11页
单片机原理与应用 赵德安 习题答案.docx_第4页
第4页 / 共11页
单片机原理与应用 赵德安 习题答案.docx_第5页
第5页 / 共11页
单片机原理与应用 赵德安 习题答案.docx_第6页
第6页 / 共11页
单片机原理与应用 赵德安 习题答案.docx_第7页
第7页 / 共11页
单片机原理与应用 赵德安 习题答案.docx_第8页
第8页 / 共11页
单片机原理与应用 赵德安 习题答案.docx_第9页
第9页 / 共11页
单片机原理与应用 赵德安 习题答案.docx_第10页
第10页 / 共11页
单片机原理与应用 赵德安 习题答案.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机原理与应用 赵德安 习题答案.docx

《单片机原理与应用 赵德安 习题答案.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用 赵德安 习题答案.docx(11页珍藏版)》请在冰点文库上搜索。

单片机原理与应用 赵德安 习题答案.docx

单片机原理与应用赵德安习题答案

第一章习题

2.根据程序存储器的差别,单片机可以分为哪几种类型?

答:

MCS-51系列单片机按片内不同程序存储器的配置来分,可以分为以下3种类型:

①片内带MaskROM(掩膜ROM)型:

8051、80C51、8052、80C52。

此类芯片是由半导体厂家在芯片生产过程中,将用户的应用程序代码通过掩膜工艺制作到ROM中。

其应用程序只能委托半导体厂家“写入”,一旦写入后不能修改。

此类单片机适合大批量使用。

②片内带EPROM型:

8751、87C51、8752。

此类芯片带有透明窗口,可通过紫外线擦除存储器中的程序代码,应用程序可通过专门的编程器写入到单片机中,需要更改时可擦除重新写入。

此类单片机价格较贵,不宜于大批量使用。

③片内无ROM(ROMLess)型:

8031、80C31、8032。

此类芯片的片内没有程序存储器,使用时必须在外部并行扩展程序存储器存储芯片。

此类单片机由于必须在外部并行扩展程序存储器存储芯片,造成系统电路复杂,目前较少使用。

3.单片机的主要特点是什么?

它适宜构成通用微机系统还是专用微机系统?

为什么?

答:

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

其主要特点如下:

1、价格便宜。

10元以内计算机。

2、功能不大。

只能专用在适用的领域。

但在适用的领域中,性价比却是最佳。

3、可靠性高,抗干扰能力强。

4、功耗比较低。

对电源要求低。

适用面广。

5、外围扩展能力强。

可以应用到不同的控制系统中。

根据其特点可知,单片机功能不大,适宜构成专用微机系统。

4.研制微机应用系统时,应如何选择单片机的型号?

答:

在单片机应用研究系统开发中,单片机是整个设计的核心。

设计者需要为单片机安排合适的外部器件,同时还需要设计整个控制软件,因此选择合适的单片机型号很重要。

目前,市场上的单片机种类繁多,在进行正式的单片机应用研究系统开发之前,需要根据不同单片机的特性,从中作出合理的选择。

所以在单片机选型时,主要需要注意以下几点:

1.仔细调查市场,尽量选用主流的、货源充足的单片机型号,这些器件使用比较广泛,有许多设计资料供学习或参考。

2.尽量选择所需硬件集成在单片机内部的型号,例如ADC、DAC、I2C、SPI和USB等。

这样便于整个控制系统的软件管理,减少外部硬件的投入,缩小整体电路板的面积,从而减少总体投资等。

3.对于手持设备,移动设备或者其他需要低功耗的设备,尽量选择低电压、低功耗的单片机型号,这样可以减少能量的消耗,延长设备的使用寿命。

4.在资金等条件允许的情况下,尽量选择功能丰富,扩展能力强的单片机,这样便于以后的功能升级和扩展。

5.对于体积有限制的产品,尽量选择贴片封装的单片机型号,这样可以减少电路板面积,从而降低硬件成本,同时也有助于电磁兼容设计。

 

第二章

1、分别写出一个MCS-51中ROM、EPROM、无ROM型单片机的型号和内部资源。

其中哪个产品内部具有固化的软件?

该软件能否被所有用户所使用?

怎样使用该种产品?

答:

①片内带MaskROM(掩膜ROM)型:

8051、80C51、8052、80C52。

此类芯片是由半导体厂家在芯片生产过程中,将用户的应用程序代码通过掩膜工艺制作到ROM中。

其应用程序只能委托半导体厂家“写入”,一旦写入后不能修改。

②片内带EPROM型:

8751、87C51、8752。

此类芯片带有透明窗口,可通过紫外线擦除存储器中的程序代码,应用程序可通过专门的编程器写入到单片机中,需要更改时可擦除重新写入。

③片内无ROM(ROMLess)型:

8031、80C31、8032。

此类芯片的片内没有程序存储器,使用时必须在外部并行扩展程序存储器存储芯片。

其中8051、80C51、8052、80C52等产品具有固化软件,该软件不能被所有用户所使用,应用程序只能委托半导体厂家“写入”,

3.什么是堆栈?

8032的堆栈区可以设在什么地方?

一般应设在什么区域?

如何实现?

试举例说明。

答:

堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。

实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。

8032的堆栈区原则上可以设在内部RAM中的00H-FFH的任意区域内,一般应设在30H-7FH的范围内。

通过赋值的方式实现,如:

MOVSP,#60H。

4.8031的内部RAM中,哪些可以作为数据缓冲区?

在8031内部RAM中工作寄存器区00H~1FH和位寻址区20H~2FH可以作为数据缓冲区。

6.MCS-51单片机构成系统时,程序存储器的容量最大是多少?

答:

MCS-51单片机构成系统时,程序存储器的容量最大是64KB。

7.当单片机系统的程序存储器的容量为8KB时,程序存储器的开始地址为多少?

答:

单片机内部无ROM时,(EA/=0时,只访问外部ROM)ROM为外部ROM,开始地址为0000H-1FFFH,(8KB=213=8192D=2000H,故,地址为2000H-1=1FFFH。

单片机内部有ROM,一般为4KB,地址范围为0000H-0FFFH,外部ROM的开始地址为1000H-1FFFH。

(EA/=1时)

9.当单片机系统外部数据存储器的容量为8KB时,数据存储器的开始地址一定要是0000H吗?

答:

不一定,只有是间隔1FFFH个字节,都可以.

第三章

1.指出下列指令中划线操作数的寻址方式和指令的操作功能

MOVA,#78H;立即寻址,将立即数送入累加器A

MOVA,78H;直接寻址,将内部RAM78H单元内容送累加器A

MOVA,R6;寄存器寻址,将R6内容送累加器A

INC@R0;寄存器间接寻址,将指针R0指向的内部RAM单元内容加1

PUSHACC;寄存器寻址,将累加器A的内容入栈

RLA;寄存器寻址,将累加器A的内容左移1位

CPL30H;位寻址,将位变量30H的内容取反

SJMP$;相对寻址,死循环指令

MOVCA,@A+PC;基寄存器加变址寄存器间接寻址,程序存储器PC和累加器A中内容相加,

送到累加器A

2.指出下列指令中哪些是非法的?

DECDPTRDECDPL

MOVA,@R2MOVA,@R1

MOVR1,@R0MOVA,@R0

MOVP1.1,30HMOVP1.1,C或者MOVC,30H

MOV#30H,AMOVA,#30H

MOVOV,30HMOVPSW.7,C

MOVA,@A+DPTRMOVCA,@A+DPTR

RRC30HRRCA所有的移位指令均是对累积器A进行的。

RLBRLA

XRLC,30H错,因为位操作指令中,没有位的异或运算

3.如何将1个立即数30H送入内部RAM90H单元?

如何将立即数送特殊功能寄存器P1?

(1)MOVR0,#90H

MOV@R0,#30H能不能直接MOV90H,#30H?

不能,因为内部RAM的高128字节只能用寄存器间接寻址。

(2)MOVP1,#30H

4.执行下列一段程序后,试分析有关单元内容。

MOVPSW,#0;PSW=00H

MOVR0,#30H;(R0)=30H

MOV30H,#40H(30H)=40H

MOV40H,#50(40H)=50H

MOVA,@R0(A)=40H

ADDCA,#0CEH(A)=40H+0CEH+0=0EHPSW=10000101B=85H

INCR0(R0)=31H

执行结果:

(R0)=31H,(30H)=40H,(40H)=50,(A)=0EH,(PSW)=85H

这里特别注意OV的值。

在带符号数的加减运算中,OV=1表示加减运算超出了累积器A所能表示的有符号数范围(-128-+127),即产生了溢出,因此运算结果是错误的;反之,OV=0表示运算结果正确,即无溢出产生。

OV=CY和CY1的异或。

其中CY1为第六位向第七位是否有进位或借位,有,为CY1=1,没有,CY1=0。

执行加法ADD时,当位6向位7进位,而位7不向C进位时,OV=1。

或者位6不向位7进位,而位7向C进位时,同样OV=1。

5.试编写一段程序,内部RAM40H、41H单元内容传送到外部RAM2000H、2001H单

元中。

MOVDPTR,#2000H

MOVR0,#40H

MOVA,@R0

MOVX@DPTR,A

INCR0

INCDPTR

MOVA,@R0

MOVX@DPTR,A

6.试编写一段程序,根据累加器A的内容,到程序存储器1000H起始的表格中取一双字

节数,送内部RAM50H、51H单元。

MOVDPTR,#1000H

PUSHACC

MOVCA,@A+DPTR

MOV50H,A

POPACC

INCDPTR

MOVCA,@A+DPTR

MOV51H,A

7.试编写一段程序,进行两个16位数的相减运算:

6483H-56E2H。

结果高8位存在内部

RAM40H,低8位存41H。

CLRC

MOVA,#83H

SUBBA,#0E2H

MOV41H,A

MOVA,#64H

SUBBA,#56H

MOV40H,A

8.试编写一段程序,将30H、31H单元中存放的BCD数,压缩成一个字节(原30H单元

内容为高位),并放入30H单元。

MOVA,30H

SWAPA

ORLA,31H

9.试编写一段程序,将30H~32H单元中的压缩BCD拆成6个单字节BCD数,并放入

33H~38H单元。

MOVSP,#60H

MOVA,30H

MOVR0,#33H

ACALLH2ASC

MOVA,31H

ACALLH2ASC

MOVA,32H

ACALLH2ASC

SJMP$

H2ASC:

MOVB,A

ANLA,#0FH

MOV@R0,A

INCR0

MOVA,B

SWAPA

ANLA,#0FH

MOV@R0,A

INCR0

RET

10.设晶振频率为6MHz,试编写一个延时1ms的子程序,并利用该子程序,编写一段主程序,在P1.0引脚上输出高电平宽2ms、低电平宽1ms的方波信号。

MOVSP,#60H

LOOP:

SETBP1.0

ACALLDELAY

ACALLDELAY

CLRP1.0

ACALLDELAY

SJMPLOOP

DELAY:

MOVR0,#248;1T

DJNZR0,$;2T

NOP;1T

RET2T延时计算:

1T+248*2T+1T+2T=500T=1ms

第四章

5.晶振为12MHz,用T0产生1ms的定时,可以选择哪几种方式?

分别写出定时器的方式字和计数初值。

如需要1s的定时,应如何实现?

答:

由于定时器工作在方式2和方式3下时的最大定时时间只有0.256ms,因此要想获得1ms的定时时间,定时器必须工作在方式0或方式1。

机器周期为T计数=12×1/12×10-6s=1μs

若采用方式0,定时器的方式字TMOD为:

00H,根据公式可得定时器的计数初值为:

TC=M-T/T计数=213-1*103/1=7192=1C18H

即:

TH0应装#0E0H;TL0应装#18H(高三位为0)

若采用方式1,定时器的方式字TMOD为:

01H,根据公式可得定时器的计数初值为:

TC=M-T/T计数=216-1*103/1=64536=FC18H

即:

TH0应装#0FCH;TL0应装#18H

如需要1s的定时,可以采用循环定时,增加循环次数。

第五章

1.若晶振为6MHz,试编写一个2ms延时子程序。

DELAY:

MOVR0,#498;1T

DJNZR0,$;2T

NOP;1T

RET2T延时计算:

1T+498*2T+1T+2T=1000T=2ms

6.试设计一个n字节的无符号十进制数加法子程序,其功能为将(R0)和(R1)指出的

内部RAM中两个n字节压缩BCD码无符号十进制数相加,结果存放于被加数单元中。

子程序入口时,R0,R1分别指向被加数和加数的低位字节,字节数n存于R2,出口时R0指向和的最高位字节,CY为进位位。

LENEQU30

ORG0000H

AJMPMAIN

ORG0030H

MAIN:

MOVSP.#60H

MOVR2,#LEN

ACALLADD_NBYTE

SJMP$

ADD_NBYTE:

CLRC

LOOP:

MOVA,@R0

ADDCA,@R1

DAA

MOV@R0,A

INCR0

INCR1

DJNZR2,LOOP

RET

END

11.试设计一个子程序,其功能为将(R0)指出的内部RAM中6个单字节正整数按从小到

大的次序重新排列。

S_2_L:

MOVR4,#5

CLRF0

PUSH00H;R0入栈

POP01H;出栈赋给R1

INCR1

LOOP0:

MOVA,R4

MOVR5,A

LOOP1:

MOVA,@R0

MOVB,A

MOVA,@R1

CJNEA,B,NEXT

SJMPNOCH

NEXT:

JNCNOCH

SETBF0

MOV@R0,A

XCHA,B

MOV@R1,A

NOCH:

INCR0

INCR1

DJNZR5,LOOP1

JNBF0,HALT

DJNZR4,LOOP0

HALT:

RET

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2