教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

单片机期末复习题(2)

来源:网络收集 时间:2026-05-05
导读: 单片机原理及应用 外接地址锁存器。 2.简述51单片机中断的概念。 当CPU正在处理某件事情的时候,外部发生的某一事件请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件

单片机原理及应用

外接地址锁存器。

2.简述51单片机中断的概念。

当CPU正在处理某件事情的时候,外部发生的某一事件请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件以后,再回到原来被中止的地方,继续原来的工作,这样的过程成为中断。

3.什么是保护现场,什么是恢复现场。

保护现场:当CPU响应中断程序时,硬件会自动把断点地址(16位程序计数器的值)压入堆栈,但用户还须注意保护有关工作寄存器、累加器、标志位等信息。

恢复现场:在完成中断服务程序后,恢复原工作寄存器、累加器、标志位等的内容。 4.51系列单片机具有几个中断源,分别是如何定义的。

51系列单片机具有5个中断源,分别是外部中断INT0和外部中断INT1、定时器溢出中断0和定时器溢出中断1以及串行中断。

5.各中断源对应的中断服务程序的入口地址是否能任意设定。

各中断源的入口地址已经在中断地址区中被定义了,不能任意设定。

6.在51系列单片机执行中断服务程序时,为什么一般都要在矢量地址开始的地方放一条跳转指令。

因为51系列单片机的两个相邻中断源中断服务程序入口地址相距只有8个单元,一般的中断服务程序是容纳不下的,因此一般都要在相应的中断服务程序入口地址处放一条跳转指令,转到实际存放中断服务程序的位置。

7.为什么一般都把主程序的起始地址放在0030H之后。

因为0000H~0030H中有中断的矢量地址,为了避免冲突,一般都把主程序的起始地址放在0030H之后。 8.如果想将中断服务程序放置在程序存储区的任意区域,在程序中应该作何种设置。

要将中断服务程序放置在程序存储区的任意区域,只要在对应的中断矢量入口处填写相应的跳转指令即可。 9.51系列单片机扩展外部程序存储器时,实际上还有多少条I/O线可以使用。 外接程序存储器时P0和P2口要用作数据和地址总线,所以只有P1和P3口可用作I/O口,共16条I/O线。在使用外部存储器时,除了占用P0和P2口外,还需要用P3口RD(P3.7)和WR(P3.6)两条控制线,所以这种情况下就只剩下14条I/O线可用了。

10.数据指针DPTR和程序计数器PC都是16位寄存器,它们有什么不同之处?

数据指针DPTR是一个16位的寄存器,由2个8位特殊功能寄存器DPH和DPL拼装而成。DPH作DPTR的高8位,DPL作DPTR的低8位。因此,DPTR既可作为一个16位寄存器来使用,也可以作为二个独立的8位寄存器DPH和DPL使用。DPTR用作地址指针用来存放片内、片外ROM和片外RAM的地址,可寻址范围为64K地址空间寻址。

程序计数器PC是一个16位加1计数器,用来存放将要执行的指令地址,编码范围为0000H~FFFFH共64K。 ------------------------------------------------------------------------------------------------ 四、简单编程题

1.把累加器A中的低4位送到外部RAM的2000H单元中,试编程序。

ANL A,#OFH

MOV DPTR,#2000H MOVX @DPTR,A

2.利用乘法指令编写15H×33H的程序,将乘积的高8 位存入31H单元,低8位存入30H单元

MOV A,#15H MOV B,#33H MUL A,B

MOV 31H,B MOV 30H,A

3.编写子程序,将片内35H~55H单元中的内容送入到以3000H为首的存储区中。

MOV R0,#35H MOV R1,#21H

MOV DPTR,#3000H

第 6 页 共 10 页

单片机原理及应用

LOOP:MOV A,@R0 MOVX @DPTR, A INC R0 INC DPTR DJNZ R1,LOOP RET

4.请将片外RAM 20H—25H单元清零 MOV R0,#20H MOV R7,#06H CLR A

LOOP:MOVX @R0,A INC R0 DJNZ R7,LOOP 5.请将ROM 3000H单元内容送R7 MOV DPTR,#3000H CLR A

MOVC A,@A+DPTR

MOV R7,A

6.已知在累加器A中存放一个BCD数(0~9),请编程实现一个查平方表的子程序。 SQR:INC A MOVC A,@A+PC RET

TAB:DB 0,1,4,9,16,25,36,49,64,81

7.一个十六进制数存放在内部RAM的HEX单元的低4位中, 将其转换成ASCII码并送回 HEX单元。 HEXASC: MOV A, HEX ANL A, #0FH

ADD A, #3 ; 修改指针 MOVC A, @A+PC

MOV HEX, A ; 2字节指令 RET

ASCTAB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H

8.有两个无符号数x、y分别存放在内部存储器50H、51H单元中,试编写一个程序实现x*10+y,结果存入52H、53H单元中。

MOV R0,#50H MOV R1,#53H MOV A,@R0 MOV B,#0AH

第 7 页 共 10 页

单片机原理及应用

MUL AB INC R0 ADD A,@R0 MOV @R1,A DEC R1 XCH A,B ADDC A,#00H MOV @R1,A

END

-------------------------------------------------------------------------------------------------

五、应用题

1.某一8051单片机系统,晶振频率为6MHz,现要从单片机的P1.7引脚输出一个连续的5Hz方波信号,请编写程序。

解:5Hz的方波周期为200毫秒,高低电平各持续100毫秒,若晶振频率为6MHz,则机器周期为2微秒,故其计数值应为:N=100ms/2μs=50000

采用方式1,计数初值=65536-50000=15536D=3CB0H ORG 0000H

AJMP MAIN ;主程序 ORG 000BH

AJMP T0INT ;T0中断入口 ORG 0100H MAIN: MOV SP, #60H MOV TMOD, #01H MOV TH0,#3CH MOV TL0,#0B0H CLR P1.7

SETB EA

SETB ET0 SETB TR0 SJMP $ T0INT: MOV TH0,#3CH

第 8 页 共 10 页

单片机原理及应用

MOV TL0,#0B0H CLP P1.7 RETI END

2.试设计一个8051单片机的双机通信系统,编程将A机片内RAM中60H~6FH的数据块通过串行口传送至B机片内RAM的60H~6FH单元中。

甲机发送(采用查询方式):

MOV SCON, #80H ; 设置工作方式2

MOV PCON, #00H ; 置SMOD=0,波特率不加倍 MOV R0, #60H ; 数据区地址指针 MOV R2, #10H ; 数据长度 LOOP: MOV A, @R0 ; 取发送数据 MOV C, P ; 奇偶位送TB8 MOV TB8, C

MOV SBUF, A ; 送串口并开始发送数据 WAIT: JBC TI, NEXT ; 检测是否发送结束并清TI SJMP WAIT

NEXT: INC R0 ; 修改发送数据地址指针 DJNZ R2, LOOP END

乙机接收(查询方式):

MOV SCON, #90H ; 模作模式2, 并允许接收 MOV PCON, #00H ; 置SMOD=0

MOV RO, #60H ; 置数据区地址指针 MOV R2, #10H ; 等待接收数据长度 LOOP: JBC RI, READ ; 等待接收数据并清RI SJMP LOOP

READ: MOV A, SBUF ; 读一帧数据 MOV C, P

JNC LP0 ; C不为1转LP0

< …… 此处隐藏:2714字,全部文档内容请下载后查看。喜欢就下载吧 ……
单片机期末复习题(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/435069.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)