单片机习题答案Word格式.docx
- 文档编号:18814204
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:22
- 大小:56.09KB
单片机习题答案Word格式.docx
《单片机习题答案Word格式.docx》由会员分享,可在线阅读,更多相关《单片机习题答案Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
NEC公司的μPD75P308GF—3B9。
这种芯片的价格也较低。
4.控制器的组成和作用
控制器:
由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成。
用来协调指挥计算机系统的操作。
5.微型计算机组成
微型计算机组成由微处理器(CPU)、存储器、接口适配器(I\O接口电路)及输入/输出设备组成。
通过系统总线将它们连接起来,以完成某些特定的运算与控制。
6.什么叫寻址方式
寻址方式:
寻址方式就是寻找指令中操作数或操作数所在地址的方式。
也就是如何找到存放操作数的地址,把操作数提取出来的方法。
7.什么叫堆栈:
堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"
后进先出"
的结构方式处理的。
实质上,堆栈就是一个按照"
原则组织的一段内存区域。
8.什么是汇编语言?
什么叫指令周期?
汇编:
汇编语言源程序在交付计算机执行之前,需要先翻译成目标程序,这个翻译过程叫汇编。
指令周期:
指执行一条指令所占用的全部时间。
通常一个指令周期含1~4个机器周期。
9.什么是进位和溢出
两数运算的结果若没有超出字长的表示范围,则由此产生的进位是自然进位;
若两数的运算结果超出了字长的表示范围(即结果不合理),则称为溢出。
例如将正数3FH和负数D0H相加,其结果不会超出8位字长的表示范围,所以其结果10FH中的进位是正常进位(也就是模)。
但是,若正数3FH与正数70H相加,其结果为AFH,最高位为"
1"
,成了负数的含义,这就不合理了,这种情况称为溢出
第二章答案
2-1填空
1..寄存器、控制器和运算器2.ALE3._片内数据存储器4._85.00H~1FH.6.20H~2FH7.地址总线、控制总线和数据总线。
8.4KB9.410.6
2.2-2判断
1.√)2.×
)3.×
)存放程序和表格常数。
5.√)。
6.×
)。
SP=07H
7.√)。
8.×
)60KB。
9.√)10.×
)不是。
11.√)12.×
)是将要执行的下一条指令的地址。
13.×
)80H~FFH。
14.×
15.×
)若晶振频率屡8MHz,才可能为1.5μs
2-3选择
1.B2.D3.C4.B 5.B
2-4问答题
18051单片机内部包含哪些主要逻辑功能部件?
8051单片机是个完整的单片微型计算机。
芯片内部包括下列硬件资源:
(1)8位CPU;
(2)4KB的片内程序存储器ROM。
可寻址64KB程序存储器和64KB外部数据存储器;
(3)128B内部RAM;
(4)21个SFR;
(5)4个8位并行I/O口(共32位I/O线);
(6)一个全双工的异步串行口;
(7)两个16位定时器/计数器;
(8)5个中断源,两个中断优先级;
(9)内部时钟发生器。
2EA/VPP引脚有何功用?
8031的引脚应如何处理?
为什么?
EA/VPP是双功能引脚,功能如下:
(1)
EA接高电平时,在低4KB程序地址空间(0000H~0FFFH),CPU执行片内程序存储器的指令,当程序地址超出低4KB空间(1000H~FFFFH)时,CPU将自动执行片外程序存储器的指令。
(2)
EA接低电平时,CPU只能执行外部程序存储器的指令。
8031单片机内部无ROM,必须外接程序存储器。
因此,8031的EA引脚必须接低电平。
在对8751单片机内部的EPROM编程时,此引脚VPP外接+12V电压,用于固化EPROM程序。
38051单片机存储器的组织结构是怎样的?
8051存储器包括程序存储器和数据存储器,从逻辑结构上看,可以分为三个不同的空间:
(1)64KB的程序存储器地址空间:
0000H~FFFFH,其中0000H~0FFFH为片内4KB的ROM地址空间,1000H~FFFFH为外部ROM地址空间;
(2)256B的内部数据存储器地址空间,00H~FFH,分为两大部分,其中00H~7FH(共128B单元)为内部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域;
(3)64KB的外部数据存储器地址空间:
0000H~FFFFH,包括扩展I/O地址空间。
4.片内数据存储器分为哪几个性质和用途不同的区域?
8051内部128B的数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区。
各区域的特性如下:
(1)00H~1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器R0~R7。
当前工作寄存器组的选择是由程序状态字PSW的RS1、RS0两位来确定。
如果实际应用中并不需要使用工作寄存器或不需要使用4组工作寄存器,不使用的工作寄存器组的区域仍然可作为一般数据缓冲区使用,用直接寻址或用Ri的寄存器间接寻址来访问。
(2)20H~2FH为可位寻址区域,这16个字节的每一位都有一个地址,编址为00H~7FH。
当然,位寻址区也可以用作字节寻址的一般数据缓冲区使用。
(3)30H~7FH为堆栈、数据缓冲区。
5单片机有哪几个特殊功能寄存器?
各在单片机的哪些功能部件中?
8051单片机内部有21个特殊功能寄存器,在物理上是分散在片内各功能部件中,在数学上把它们组织在内部数据存储器地址空间80H~FFH中,以便能使用统一的直接寻址方式来访问。
这些特殊功能寄存器颁在以下各个功能部件中:
(1)CPU:
ACC、B、PSW、SP、DPTR(由DPL和DPH两个8位寄存器组成);
(2)中断系统:
IP、IE;
(3)定时器/计数器:
TMOD、TCOM、TL0、TH0、TL1、TH1;
(4)并行I/O口:
P0、P1、P2、P3;
(5)串行口:
SCON、SBUF、PCON。
6PC是什么寄存器?
是否属于特殊功能寄存器?
它有什么作用?
PC是16位程序计数器(ProgramCounter),它不属于特殊功能寄存器范畴,程序员不以像访问特殊功能寄存器那样来访问PC。
PC是专门用于在CPU取指令期间寻址程序存储器。
PC总是保存着下一条要执行的指令的16位地址。
通常程序是顺序执行的,在一般情况下,当取出一个指令(更确切地说为一个指令字节)字节后,PC自动加1。
如果在执行转移指令、子程序调用/返回指令或中断时,要把转向的地址赋给PC。
7DPTR是什么寄存器?
它由哪些特殊功能寄存器组成?
它的主要作用是什么?
DPTR是16位数据指针寄存器,它由两个8位特殊功能寄存器DPL(数据指针低8位)和DPH(数据指针高8位)组成,DPTR用于保存16位地址,作间址寄存器用,可寻址外部数据存储器,也可寻址程序存储器。
第三章答案
3-1选择题
1、B2.B3.A4、D5、D6、B7、C8、A9、C10、D
3-2判断题。
4.错)128B5.错6.错)子序的转返与PC也有关(PC入栈与出栈)7.错)5、(对)6、错)指令系统中没有。
7、对)8、错)9、错)10、对)
3-3简答题
1简述MCS-51汇编语言指令格式。
MCS-51汇编语言格式如下:
[标号:
]操作码助记符[操作数1][操作数2][操作数3][注释]标号是用户定义的符号,其值代表这条指令的地址。
操作码助记符是指令系统规定的代表特定指令功能的英文缩写符。
每条指令都有操作码记符。
指令的操作数最多有3个,也有无操作数的指令。
注释字段是用户对程序的说明,便于对程序的阅读和理解。
简答
2MCS-51指令系统主要有哪几种寻址方式?
试举例说明。
MCS-51指令操作数主要有以下7种寻址方式:
寻址方式举例
立即寻址MOVA,#16
直接寻址MOV20H,P1
寄存器寻址MOVA,R0
寄存器间接寻址MOVXA,@DPTR
变址寻址MOVCA,@A+DPRT
相对寻址SJMPLOOP
位寻址ANLC,70
3对访问内部RAM和外部RAM,各应采用哪些寻址方式?
答:
对内部RAM的寻址方式有直接寻址、寄存器间接寻址和可对位寻址的位寻址。
对外部RAM的寻址方式只能用寄存器R0/R1(8位地址)或DPTR(16位地址)间接寻址。
4设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何?
MOVR0,#30H;
R0=30H
MOVA,@R0;
A=5AH
MOVR1,A;
R1=5AH
MOVB,R1;
B=5AH
MOV@R1,P1;
(5AH)=7FH
MOVA,P1;
A=7FH
MOV40H,#20H;
(40H)=20H
MOV30H,40H;
(30H)=20H
解:
每一条指令执行后的结果如注释字段所标。
最后结果为:
R0=30H,R1=5AH,A=7FH,B=5AH,P1=7FH,(30H)=20H,(40H)=20H,(5AH)=7FH。
5SJMP(短转移)指令和AJMP(绝对转移)指令的主要区别。
前者提供了以SJMP的下一条指令的起始地址为中心的256字节范围的转移(-128~+127),后者的转移目标地址必须在与AJMP的下一条指令的第一字节相同的2KB区的程序储存器中。
短转移方便了可重定位编码。
SJMP方便了PC可重定位编码,但转移范围小。
而ASJMP转移范围大,但存在跳区的限制,AJMP指令只能位于2KB区的最后2个字节处时,才可跳到下一个区去。
因此用AJMP指令来代替SJMP指令是有条件的,也就是目标地址必须与它下面的指令存放地址在同一个2KB区域内
3-4编程题
1编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。
解:
STRAT:
MOVR0,#30H
MOVR7,#0FH
MOVDPTR,#3000H
LOOP:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR7,LOOP
RET
2片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和<256).
解 ADDIO:
MOVR0,30H
MOVR7,#9
ADDA,@R0
MOV30H,A
3编一个程序,将累加器中的一个字符从串行接口发送出去.
解SOUT:
MOVSCON,#40H;
设置串行接口为工作方式
MOVTMOD,#20H;
定时器T1工作于模式2
MOVTL1,#0E8H;
;
设置波特率为1200b/s
MOVTH1,#0E8H
SETBTR1
MOVSBUF,A
JNBT1,$
CLBT1
4用查表法编一子程序,将R3中的BCD码转换成ASCII码.
解 MAIN:
MOVA,R3;
待转换的数送A
MOVDPTR,#TAR;
表首地址送DPTR
MOVCA,@A+DPTR;
查ASCII码表
MOVR3,A;
查表结果送R3
TARDB30H,31H,32H,33H,34H
DB35H,36H,37H,38H,39H
5片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中.
解START:
MOVR0,#40H;
数据块首地址送R0
MOVR7,#09H;
比较次数送R7
MOVA,@R0;
取数送A
LOOP:
INCR0
MOV30H,@R0;
取数送30H
CJNEA,30H,NEHT;
(A)与(30H)相比
NEXT:
JNCBIE1(A)≥(30H)转BIR1
MOVA,30H;
(A)<(30H),大数送A
BIE1:
DJNZR7,LOOP;
比较次数减1,不为0,继续比较
MOV50H,A;
比较结束,大数送50H
RET
6编一子程序,从串行接口接受一个字符.
START:
MOVTMOD,#20H;
定时器T1工作于模式2
MOVTH1,#0E8H;
设置波特率为1200b/s
MOVTL1,#0E8H
SETBTR1;
启动T1
MOVSCON,#50H;
串行接口工作于方式1,充许接收
L1:
JNBRI,L1;
等待接收数据,末接收到数据,继续等待
CLRRI;
接收到数据,清RI
MOVA,SBUF;
接收到数据送A
7利用调子程序的方法,进行两个无符号数相加。
请编主程序及子程序。
解用R0和R1作数据指针,R0指向第一个加数,并兼作“和”的指针,R1指向另一个加数,字节存放到R2中作计数初值。
主程序:
JAFA:
MOVR0,#20H;
指向加数最低字节
MOVR1,#29H;
指向另一加数最低字节
MOVR2,#04H;
字节数作计数值
ACALLJASUB;
调用加法子程序
AJMP$
RTE
多字节加法子程序:
JASUB:
CLRC
JASUB1:
取出加数的一个字节(4B无符号数加数)
ADDCA,@R1;
加上另一数的一个字节
MOV@R0,A;
保存和数
INCR0;
指向加数的高位
INCR1;
指向另一加数的高位
DJNZR2,JASUB1;
全部加完了吗?
RET
8若图数据块是有符号数,求正数个数,编程并注释。
解ORG0030H
MOV20H,#00H;
计正数个数计数器
MOVDPTR,#0000H;
MOVXA,@DPTR;
数据块长度→10H
MOV10H,A
INCDPTR;
DPTR指向第一个数的地址
TWO:
取数→A
JBACC.7,ONE;
是负数转ONE,准备取下一个数
INC20H;
是正数,正数计数器加1
ONE:
地址指针加1
DJNZ10H,TW;
数据块长度减1不等于0,继续寻找
RET
9编制一个循环闪烁灯的程序。
有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。
画出电路图。
解:
本程序的硬件连接如图所示。
当P1.0输出高电平时,LED灯亮,否则不亮。
其程序如下:
MOVA,#01H;
灯亮初值
SHIFT:
LCAILFLASH;
调闪亮10次子程序
RRA;
右移一位
SJMPSHIFT;
循环
FLASH:
MOVR2,#0AH闪烁10次计数
FLASH1;
MOVP1,A;
点亮
LCALLDELAY;
延时
MOVP1,#00H;
熄灭
DJNZR2,FLASH1;
RET
第四章答案
4-1填空
1.8.2.4"
3.,_P0、P24._SCON5.中断.6.37.5IP8.09.单工、半双工、全双工.10.0013H
4-2判断
1.×
2.×
3.×
4.×
5.×
6.×
7.√8.√9.×
10.×
11.×
12.×
4-3选择
1.D2.B3.D4.C5. A 7. D 8.B9.C
1、2、4章的编程
1.8225A控制字地址为300FH,请按:
A口方式0输入,B口方式1输出,C口高位输出,C口低位输入,确定8225A控制字并编初始化程序.
控制字为10010101=95H
初始化程序:
MOVDPTR,#300FH
MOVA,#95H
MOVX@DPTR,A
2.编定一个软件延时1S和1min的子程序.设fosc=6Hz,则一个机器周期1μs。
(1)1S=2US*5*100000
5*100000=250*200*10
(2)ORG1000H
TIME:
MOVR7,#10
T3:
MOVR6,#200
T2:
MOVR6,#250
T1:
DJNZR5,T1
DJNZR6,T2
DJNZR7,T3
RET
(2)1min=60,调用上面1s子程序60次
ORG0030H
MOVR0,#60
LOOP:
LCALLTIME
DJNZR0,LOOP
3.请编制串行通信的数据发送程序,发送片内RAM50H~5FH的16B数据,串行接口设定为方式2,采用偶校验方式。
设晶振频率为6MHz。
查询方式发送程序如下
MOVSCON,#8OH
MOVPCON,#80H
MOVR0,#50H
MOVR7,#16H
LOOP:
MOVC,P
MOVTB8,C
CLRT1
4.应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。
请
(1)计算时间常数X,应用公式X=216-t(f/12)
(2)写出程序清单
X=216-t(F/12)
=216-1*10-3*6*106/12
=OFEOCH
ORG3000H
MOVTMOD,#01H
MOVTL0,#OCH
MOVTHO,#OFEH
SETBTR0
JBCTFO,DONE
SJMPLOOP
DONE:
MOVTL0,#OCH
CPLP1.0
SJMPLOOP
5.应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为1ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。
请
(1)计算时间常数X,应用公式X=216-t(f/12)
=216-0.5*10-3*6*106/12
=FF06H
MOVTL0,#06H
MOVTHO,#FFH
MOVTL0,#06H
6、用89C51的P1口,监测某一按键开关,使每按键一次,输出一个正脉冲(脉宽随意)。
编出汇编语言程序。
ORG0100H
ABC:
SETBP1.0
SETBP1.7
JBPI.7,$
JNBP1.7,$
CLRP1.0
MOVR2,#0
DAY:
NOP
NOP
DJNZR2,DAY
SJMPABC
7、设计一个4位数码显示电路,并用汇编语言编程使"
8"
从右到左显示一遍。
MOVA,#08H
MOVR2,#01H
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP1,A
NEXT:
MOVA,R2
MOVP3,A
ACALLDAY
JBACC.4,LPD
RLA
MOVR2,A
AJMPNEXT
LPD:
TAB:
DB
END
7.编制一个循环闪烁的程序。
MOVA,#01H
LCALLFLASH
RR
SJMPSHIFT
FLAH:
MOVR2,#0AH
FLAH1:
MOVP1,A
LCALLDELAY
MOVP,#00H
DJNZR2,F
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 习题 答案