单片机原理接口技术及应用课后解答黄建新.docx
- 文档编号:28526149
- 上传时间:2023-07-18
- 格式:DOCX
- 页数:26
- 大小:233.69KB
单片机原理接口技术及应用课后解答黄建新.docx
《单片机原理接口技术及应用课后解答黄建新.docx》由会员分享,可在线阅读,更多相关《单片机原理接口技术及应用课后解答黄建新.docx(26页珍藏版)》请在冰豆网上搜索。
单片机原理接口技术及应用课后解答黄建新
单片机原理、接口技术及应用课后解答—黄建新
作业题及答案
第1章
1.9完成下列数制的转换。
(1)1011.1101B=(11.8125)D=(B.D)H
(2)110.101B=(6.625)D=(6.A)H
(3)166.25=(10100110.0100)B=(A6.4)H
(4)1011011.101B=(5B.A)H=(10010001.011000100101)BCD
(5)100001100011.01000101BCD=(863.45)D
1.10写出下列真值对应的原码、反码和补码。
(1)+1100110B
【+1100110B】原码=66H
【+1100110B】反吗=66H
【+1100110B】补码=66H
(2)-1000100B
【-1000100B】原码=C4H
【-1000100B】反码=BBH
【-1000100B】补码=BCH
(3)-86
【-86】原码=D6H
【-86】反码=A9H
【-86】补码=AAH
1.11写出下列机器数分别作为原码、反码和补码时,其表示的真值分别是多少?
(1)01101110B
+110(6EH)
(2)10110101B
-53(35H),-74(-4AH),-75(-4BH)
1.12已知X和Y的真值,试分别计算[X+Y]补和[X-Y]补,并指出是否产生溢出(设补码均用8位二进制表示)。
(1)X=+1000100B,Y=-0010010B
X补=01000100B,Y补=11101110B
[X+Y]补:
C7=1,C6=1,相同,所以无溢出。
[X-Y]补
C7=0,C6=0,相同,所以无溢出。
(2)X=+1100001B,Y=+1000010B
[X+Y]补:
有溢出
[X-Y]补无溢出
(3)X=-1101001B,Y=-1010101B
[X+Y]补:
有溢出
[X-Y]补:
无溢出
1.13用十六进制写出下列字符的ASCII码。
(1)NBA
‘NBA’=4E4241H
(2)HELLO!
2009
‘HELLO!
2009’=48454C4C4F2132303039H
第2章
2.680C51单片机的
信号有何功能?
在使用80C31和89C51单片机时,
信号应如何处理?
答:
是访问外部程序存储器选通信号。
当其为低电平时,对ROM的读操作限定为外部存储器;当其为高电平时,对ROM的读操作是从内部开始的,当PC值大于内部程序存储器地址范围时,CPU自动转向读外部程序存储器。
80C31单片机片内无ROM,应将
引脚固定接低电平,以迫使系统全部执行片外程序存储器程序。
89C51单片机应将
引脚接+5V电源。
2.9系统复位后,CPU使用哪一组工作寄存器?
它们的地址是什么?
如何改变当前工作寄存器组?
答:
系统复位后,CPU使用0组寄存器,它们的地址分别是:
R0--R7:
00H—07H.
可以通过改变PSW寄存器的PSW.4和PSW.3两位的值来改变工作寄存器组。
2.1080C51单片机具有很强的布尔(位)处理功能?
共有多少单元可以位寻址?
采用布尔处理有哪些优点?
答:
是的,80C51单片机具有很强的布尔处理功能,在内部RAM区20H—2FH的16个单元都可以位寻址;同时21个特殊功能寄存器中还有部分特殊功能寄存器可以位寻址。
布尔(位)处理机,是80C5l系列单片机的突出优点之一,给“面向控制”的实际应用带来了极大的方便。
布尔(位)处理机借用进位标志CY作为位累加器,在布尔运算中,CY是数据源之一,又是运算结果的存放处,位数据传送的中心。
布尔(位)处理机指令系统中有专门进行位处理的指令集,利用位逻辑操作功能进行随机逻辑设计,可把逻辑表达式直接变换成软件执行,方法简便,免去了过多的数据往返传送、字节屏蔽和测试分支,大大简化了编程,节省了存储器空间,加快了处理速度,增强了实时性能。
还可实现复杂的组合逻辑处理功能。
所有这些,特别适用于某些数据采集、实时测控等应用系统。
2.12单片机的复位方法有哪两种?
复位后各寄存器及RAM中的状态如何?
答:
按键复位和外部脉冲复位。
单片机复位后,21个寄存器中,SP=07H,P0—P3均为FFH,SBUF为不定值,其余均为0.
2.1380C51单片机的
、
、
、XTAL1和XTAL2引脚各有何作用?
单片机时钟电路分别采用内部和外部振荡方式时,XTAL1和XTAL2引脚应如何连接?
答:
是片外程序存储器选通信号,低电平有效。
(片外数据存储器读选通),输出,低电平有效。
(片外数据存储器写选通),输出,低电平有效。
XTAL1和XTAL2
内部振荡方式:
在80C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTALl,其输出端为引脚XTAL2。
当使用芯片内部时钟时,这两根引线用于外接石英晶体和微调电容。
外部振荡方式:
把外部已有的时钟信号引入单片机内。
该方式适宜用来使单片机的时钟信号与外部信号保持同步。
外部振荡信号由XTAL1引入,XTAL2端悬空不用。
第3章
3.7用指令实现下述功能。
(1)内部RAM30H单元内容送R0。
MOVR0,30H
(2)将立即数10H送入内部RAM30H单元。
MOV30H,#10H
(3)R0内容送入R1。
MOVA,R0
MOVR1,A
(4)内部RAM30H单元内容送外部RAM30H单元。
MOVR0,#30H
MOVA,@R0
MOVX@R0,A
(5)外部RAM3000H单元内容送内部RAM30H单元。
MOVDPTR,#3000H
MOVXA,@DPTR
MOV30H,A
(6)ROM3000H单元内容送内部RAM30H单元。
MOVDPTR,#3000H
MOVA,#00H
MOVCA,@(A+DPTR)
MOV30H,A
3.8已知内部RAM中,(30H)=40H,(40H)=50H,(50H)=5AH,(5AH)=60H,ROM中(125AH)=88H,试分析下面程序的运行结果,并指出每条指令的源操作数寻址方式。
MOVA,50H;直接寻址
MOVR0,A;寄存器寻址
MOVP1,#0F0H;立即寻址
MOV@R0,30H;直接寻址
MOVDPTR,#1200H;立即寻址
MOVX@DPTR,A;寄存器寻址
MOVCA,@A+DPTR;变址寻址
MOV40H,50H;直接寻址
MOVP2,P1;直接寻址
程序执行后,P2=F0H;(40H)=5AH;(A)=88H;(1200H)=5AH;(5AH)=40H
3.9设(R1)=31H,内部RAM31H的内容为68H,32H单元的内容为60H,(A)=10H。
请指出运行下面的程序后各单元内容的变化。
MOVA,@R1;(A)=68H
MOV@R1,32H;(31H)60H
MOV32H,A;(32H)=68H
MOVR1,#45H;(R1)=45H
程序前3条指令将内部RAM31H和32H单元内容互换。
3.10已知当前PC值为2000H,用两种方法将ROM207FH单元中的常数送入累加器A。
(1)MOVDPTR,#207FH
MOVA,#00H
MOVCA,@A+DPTR
(2)
MOVA,#7CH
MOVCA,@A+PC
3.16已知延时程序为
DELAY:
MOVR0,#0A0H
LOOP1:
MOVR1,#0FFH
LOOP2:
NOP
DJNZR1,LOOP2
DJNZR0,LOOP1
若系统的晶振频率为12MHz,请指出该延时子程序的延时时间。
机器周期数
DELAY:
MOVR0,#0A0H1
LOOP1:
MOVR1,#0FFH1
LOOP2:
NOP1
DJNZR1,LOOP22
DJNZR0,LOOP12
由于晶振频率为12MHz,1M=1μs
该程序延时时间为:
【1+(1+2)*255+2】*160+1=122.881ms
第4章
4.13编写程序将内部RAM40H~60H单元清0
MOVR7,#21H
MOVR0,#40H
LOOP:
MOV@R0,#00H
INCR0
DJNZR7,LOOP
SJMP$
4.15编程将外部RAM的1000H~1FFF区域的数据送到2000H~2FFFH区域。
ORG0100H
MOVDPTR,#1000H
MOVR7,#10H
LL1:
MOVR6,#00H
LL:
MOVXA,@DPTR
MOVB,A
MOVA,DPH
ADDA,#10H
MOVDPH,A
MOVA,B
MOVX@DPTR,A
MOVA,DPH
CLRC
SUBBA,#10H
MOVDPH,A
INCDPTR
DJNZR6,LL
INCDPH
DJNZR7,LL1
SJMP$
4.16已知一内部RAM以BLOCK1和BLOCK2为起始地址的存储区中分别有5字节无符号被减数和减数(低位在前,高位在后。
请编写减法子程序令它们相减,并把差放入以BLOCK1为起始地址的存储单元。
BLOCK1EQU30H
BLOCK2EQU40H
ORG0000H
LJMPSTART
START:
MOVR0,#BLOCK1
MOVR1,#BLOCK2
MOVR7,#1
LP:
MOVR6,#5
CLRC
LP1:
MOVA,@R0
SUBBA,@R1
MOV@R0,A
INCR0
INCR1
DJNZR6,LP1
DJNZR7,LP
SJMP$
END
4.17从内部RAM20H单元开始存有一组带符号数,其个数已存放在1FH单元中。
要求统计出大于0、等于0和小于0的数的数目,并把统计结果分别存放在ONE、TWO、THREE三个单元中。
ONEEQU1EH
TWOEQU1DH
THREEEQU1CH
ORG0000H
LJMPSTART
START:
MOVONE,#00H
MOVTWO,#00H
MOVTHREE,#00H
MOVR0,#20H
MOVR7,1FH
LOOP3:
MOVA,@R0
INCR0
JZLOOP1
JBACC.7,LOOP2
INCONE
SJMPHALT
LOOP1:
INCTWO
SJMPHALT
LOOP2:
INCTHREE
HALT:
DJNZR7,LOOP3
SJMP$
4.18设内部RAM30H单元有两个非零的BCD数,请编写求两个BCD数的积,并将积以压缩型BCD数形式送入31H单元的程序。
ORG0000H
MOVA,30H
ANLA,#0F0H
SWAPA
MOVB,A
MOVA,30H
ANLA,#0FH
MULA,B
MOVB,#0AH
DIVAB
SWAPA
ORLA,B
MOV31H,A
SJMP$
4.20编制绝对值函数程序。
绝对值函数方程如下:
假设X存于30H单元,Y存于40H单元。
X及Y均为补码数.
XEQU30H
YEQU40H
ORG0000H
LJMPSTART
START:
MOVA,X
JZLOOP
JNBACC.7,LOOP
CPLA
ADDA,#01H
LOOP:
MOVY,A
SJMP$
END
4.21试编写统计数据区长度的程序,设数据区从内RAM30H开始,该数据区以0结束,统计结果送人2FH中。
且数据区结束字符,也计入统计数据区的长度中去.
ORG0000H
LJMPSTART
START:
MOVR0,#30H
MOVR7,#00H
LOOP:
MOVA,@R0
INCR0
INCR7
CJNEA,#00H,LOOP
MOV2FH,R7
SJMP$
4.23巳知R7中为2位十六进制数,试编程将其转换为ASCII码,存人内部RAM31H、32H中(低字节在前)。
英文字母为大写.
ORG0000H
LJMPSTART
START:
MOVSP,#60H
MOVA,R7
LCALLBCDASCII
MOV31H,A
MOVA,R7
SWAPA
LCALLBCDASCII
MOV32H,A
SJMP$
BCDASCII:
ANLA,#0FH
CJNEA,#10,LOOP
LOOP:
JCAD30H
ADDA,#07H
AD30H:
ADDA,#30H
HT:
RET
END
解法2
ORG0000H
LJMPSTART
START:
MOVDPTR,#TAB
MOVA,R7
ANLA,#0FH
MOVCA,@A+DPTR
MOV31H,A
MOVA,R7
ANLA,#0F0H
SWAPA
MOVCA,@A+DPTR
MOV32H,A
SJMP$
TAB:
DB30H,31H,32H,33H,34H,35H,36H,37H,38H
DB39H,41H,42H,43H,44H,45H,46H
END
4.24设在MA和MB单元中有两个补码形式的8位二进制带符号数。
请编写求两数之和并把它放在SUML和SUMH单元(低8位在SUML单元)的子程序。
提示:
在两个8位二进制带符号数相加时,其和很可能会超过8位数所能表示的范围,从而需要采用16位数形式来表示。
因此,在进行加法时、可以预先把这两个加数扩张成16位二进制补码形式,然后对它完成双字节相加。
ORG0000H
LJMPSTART
START:
MOVA,MA
JBACC.7,LLA
MOVR7,#00H
SJMPLLL
LLA:
MOVR7,#0FFH
LLL:
MOVA,MB
JBACC.7,LLB
MOVR6,#00H
SJMPLADD
LLB:
MOVR6,#0FFH
LADD:
MOVA,MA
ADDA,MB
MOVSUML,A
MOVA,R6
ADDCA,R7
MOVSUMH,A
SJMP$
4.25设外部RAM1000H~10FFH数据区中的数均为无符号数。
试编写程序,找出该区域中的数的最大值,并放人内部RAM30H单元中。
MOVDPTR,#1000H
MOVR7,#00H;计数器
MOVB,#00H;放中间结果
L1:
MOVXA,@DPTR
CJNEA,B,L2
L2:
JCL3
MOVB,A;B中放大值
L3:
INCDPTR
DJNZR7,L1
MOV30H,B
SJMP$
4.28已知a、b、c均为0~9的整数,试编程求解表达式Y=(a-b)2+(b-c)2+(c-a)2的值
•AAEQU31H
•BBEQU32H
•CCEQU33H
•YEQU34H
•ORG0000H
•LJMPSTART
•START:
MOVSP,#60H
•MOVA,AA
•CLRC
•SUBBA,BB
•ACALLCHUNCI
•MOVR6,A
•MOVA,BB
•CLRC
•SUBBA,CC
•ACALLCHUNCI
•ADDA,R6
•MOVR6,A
MOVA,CC
CLRC
SUBBA,AA
ACALLCHUNCI
ADDA,R6
MOVR6,A
MOVY,R6
SJMP$
CHUNCI:
JNBACC.7,SQR
CPLA
ADDA,#01H
SQR:
ADDA,#01H
MOVCA,@A+PC
RET
SQRTAB:
DB0,1,4,9,16,25,36,49,64,81
4.29从内部RAM的SCORE单元开始放有16位同学某门课程的考试成绩,试编程求平均成绩,存入AVERAGE单元。
ORG0100H
MOVR5,#00H
MOVR6,#00H
MOVR0,#SCORE
MOVR7,#16
LL:
MOVA,@R0
ADDA,R5
MOVR5,A
MOVA,R6
ADDCA,#00H
MOVR6,A
INCR0
DJNZR7,LL
MOVR4,#04H
LL1:
CLRC
MOVA,R6
RRCA
MOVR6,A
MOVA,R5
RRCA
MOVR5,A
DJNZR4,LL1
MOVAVERAGE,R5
SJMP$
第5章
5.880C51外扩ROM时,为什么P0口要接一个8位锁存器,而P2口却不接?
答:
P0口既作为地址线传送地址的低8位,又要作为数据线传送8位数据,只能分时用做地址线,故P0口输出的低8位地址数据必须用锁存器锁存。
锁存器的锁存控制信号为引脚ALE输出的控制信号。
P2口只用作地址高8位。
5.9若要设计一个32K×8位的外RAM存储器,分别采用2114(1K×4位)和6264(8K×8位)芯片,各需多少块存储芯片?
答:
2114芯片需要:
(8/4)*(32/1)=64片
6264芯片需要:
32/8=4片
5.1280C51扩展2片6264存储器芯片,试用P2.6、P2.7对其片选,并指出它们的地址范围。
答:
地址范围:
6264
(1)10*00000000000000000
11111111111111111
8000H—9FFFH
6264
(2)01*00000000000000000
11111111111111111
4000H—5FFFH
第6章
6.1输入/输出信息有哪几种?
答:
通过接口传送的信息包括数据信息、状态信息和控制信息。
6.2什么是接口?
接口应具有哪些功能?
接口是将外设连接到总线上的一组逻辑电路的总称。
功能:
1.地址译码与设备选择
2.缓冲锁存数据
3.信息的输入输出
4.信息转换
6.7什么是中断源?
80C51有哪些中断源?
CPU响应中断时,其入口地址是什么?
答:
能引起中断的外部设备或内部原因称为中断源,包括外部中断源和内部中断源。
80C51中有5个中断源:
(1)
(P3.2):
外部中断0。
(2)
(P3.3):
外部中断1。
(3)TF0(P3.4):
定时器/计数器T0溢出中断。
(4)TF1(P3.5):
定时器/计数器T1溢出中断。
(5)RX,TX:
串行中断
入口地址:
外部中断0(
):
0003H
定时器/计数器0(T0):
000BH
外部中断1(
):
0013H
定时器/计数器1(T1):
001BH
串行口(RI、TI):
0023H
定时器/计数器2(T2)(仅80C52有):
002BH
6.1180C51的外部中断有哪几种触发方式?
如何选择?
答:
有电平触发方式和边沿触发方式。
通过对ICON寄存器的D0位IT0和D2位IT1置位或清0实现。
该为为0,为低电平触发方式,该位为1,为下降沿触发方式。
第7章
7.88255A各端口可以工作在几种方式下?
当端口A工作在方式2时,端口B和C工作于什么方式下?
答:
8255A共有三种工作方式:
方式0、方式1和方式2。
其中A口可以工作在方式0、方式1和方式2,B口可以工作在方式0、方式1,而C口只能工作在方式0。
在A口工作在方式2时,B口可以工作在方式0或方式1。
C口高5位为A口提供联络信号,C口低3位可作为输入输出线使用或用作B口方式1之下的控制线。
7.9某8255A芯片的地址范围为7F80H—7F83H,工作于方式0,A口、B口为输出口。
C口低4位为输入,高4位为输出,试编写初始化程序。
MOVDPTR,#7F83H
MOVA,#10000001B
MOVX@DPTR,A
7.118255A的方式控制字和C口按位置位/复位控制字都可以写入8255A的同一控制寄存器,8255A是如何区分这两个控制字的?
答:
看控制字的最高位D7,如果该位的值为“1”,则认为是方式控制字;反之,则认为是C口置位/复位控制字。
7.12编写程序,采用8255A的C口按位置位/复位控制字,将PC7置0,PC4置1,(已知8255A各端口的地址为7FFCH-7FFFH)。
MOVDPTR,#7FFFH
MOVA,#0EH
MOVX@DPTR,A
MOVDPTR,#7FFFH
MOVA,#09H
MOVX@DPTR,A
7.13设8255A接到系统中,端口A、B、C及控制口地址分别为220H、221H、222H及223H,工作在方式0,试编程将端口B的数据输入后,从端口C输出,同时,将其取反后从端口A输出。
MOVDPTR,#223H
MOVA,#82H
MOVX@DPTR,A
MOVDPTR,#221H
MOVXA,@DPTR
INCDPTR
MOVX@DPTR,A
CPLA
MOVDPTR,#220H
MOVX@DPTR,A
SJMP$
第8章
8.3定时器T1用于对外部脉冲计数,每计满1000个脉冲后使内部RAM60H单元内容加一,要求T1以方式1中断实现,TR1启动。
解:
计数常数为:
TC=216-1000=64536=FC18H,
由于采用T1方式1计数方式,故方式控制字为:
01010000B=50H
程序如下:
ORG0000H
AJMPMAIN
ORG001BH
LJMPT1INT
ORG0200H
MAIN:
MOVTMOD,#50H
MOVTH1,#0FCH
MOVTL1,#18H
SETBET1
SETBEA
SETBTR1
SJMP$
ORG0800H
T1INT:
INC60H
MOVTH1,#0FCH
MOVTL1,#18H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 接口 技术 应用 课后 解答 黄建新