单片机课后习题答案同名552.docx
- 文档编号:29786893
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:27
- 大小:67.83KB
单片机课后习题答案同名552.docx
《单片机课后习题答案同名552.docx》由会员分享,可在线阅读,更多相关《单片机课后习题答案同名552.docx(27页珍藏版)》请在冰豆网上搜索。
单片机课后习题答案同名552
单片机课后习题答案(同名552)
一)填空题1.十进制数14对应的二进制数表示为(1110B),十六进制数表示为(0EH)。
十进制数-100的补码为(9CH),+100的补码为(64H)。
2.在一个非零的无符号二进制整数的末尾加两个0后,形成一个新的无符号二进制整数,则新数是原数的(4)倍。
3.8位无符号二进制数能表示的最大十进制数是(255)。
带符号二进制数11001101转换成十进制数是(-51)。
4.可以将各种不同类型数据转换为计算机能处理的形式并输送到计算机中去的设备统称为(输入设备)。
5.已知字符D的ASCII码是十六进制数44,则字符T的ASCII码是十进制数(84)。
6.若某存储器容量为640KB,则表示该存储器共有(655360)个存储单元。
7.在计算机中,二进制数的单位从小到大依次为(位)、(字节)和(字),对应的英文名称分别是(bit)、(Byte)和(Word)。
8.设二进制数A=10101101,B=01110110,则逻辑运算A∨B=(11111111),A∧B=(00100100),A⊕B=(11011011)。
9.机器数01101110的真值是(+110),机器数01011001的真值是(+89),机器数10011101的真值是(+157或-115),机器数10001101的真值是(+206或-50)。
(二)单项选择题
1.用8位二进制补码数所能表示的十进制数范围是(D)
(A)-127~+127(B)-128~+128
(C)-127~+128(D)-128~+127
2.下列等式中,正确的是(B)
(A)1KB=1024×1024B(B)1MB=1024×1024B
(C)1KB=1024MB(D)1MB=1024B
3.程序与软件的区别是(C)
(A)程序小而软件大(B)程序便宜而软件昂贵
(C)软件包括程序(D)程序包括软件
4.存储器中,每个存储单元都被赋予惟一的编号,这个编号称为(A)
(A)地址(B)字节(C)列号(D)容量
5.8位二进制数所能表示的最大无符号数是(B)
(A)255(B)256(C)128(D)127
6.下列4个无符号数中,最小的数是(B)
(A)11011001(二进制)(B)37(八进制)
(C)75(十进制)(D)24(十六进制)
7.下列字符中,ASCII码最小的是(B)
(A)a(B)A(C)x(D)X
8.下列字符中,ASCII码最大的是(C)
(A)a(B)A(C)x(D)X
9.有一个数152,它与十六进制数6A相等,那么该数是(B)
(A)二进制数(B)八进制数(C)十进制数(D)十六进制数
第2章80C51单片机的硬件结构
(一)填空题
(D)两数相加后,若A中数据为66H,则PSW中最低位的状态为0
第3章80C51单片机指令系统
(一)填空题
1.假定累加器A中的内容为30H,执行指令“1000H:
MOVCA,@A+PC”
后,会把程序存储器(1031H)单元的内容送累加器A。
2.假定(A)=85H,(R0)=20H,(20H)=0AFH,执行指令“ADDA,@R0”
后,累加器A的内容为(34H),CY的内容为
(1),AC的内容为
(1),OV
的内容为
(1)。
3.执行如下指令序列后,所实现的逻辑运算式为(P3.0=P1.0∧P1.1∧P1.2)
MOVC,P1.0
ANLC,P1.1
ANLC,/P1.2
MOVP3.0,C
4.假定addr11=00100000000B,标号qaz的地址为1030H,执行指令“qaz:
AJMP
addr11”后,程序转移到地址(1100H)去执行。
5.累加器A中存放着一个其值小于或等于127的8位无符号数,CY清0后执
行“RLCA”指令,则A中的数变为原来的
(2)倍。
6.已知A=7AH,R0=30H,(30H)=A5H,PSW=80H,请按要求填写各条指令
的执行结果(每条指令均按已给定的原始数据进行操作)。
XCHA,R0A=(30H),R0=(7AH)
XCHA,30HA=(0A5H)
XCHA,@R0A=(0A5H)
XCHDA,@R0A=(75H)
SWAPAA=(0A7H)
ADDA,R0A=(0AAH),CY=(0),OV=
(1)
ADDA,30HA=(1FH),CY=
(1),OV=(0)
ADDA,#30HA=(0AAH),CY=(0),OV=
(1)
ADDCA,30HA=(20H),CY=
(1),OV=(0)
SUBBA,30HA=(0D4H),CY=
(1),OV=
(1)
SUBBA,#30HA=(49H),CY=(0),OV=(0)
(二)单项选择题1.下列指令或指令序列中,不能实现PSW内容送A的是(C)
(A)MOVA,PSW(B)MOVA,0D0H
(C)MOVR0,0D0H(D)PUSHPSW
MOVA,@R0POPACC
2.在相对寻址方式中,“相对”两字是指相对于(C)
(A)地址偏移量rel(B)当前指令的首地址
(C)下一条指令的首地址(D)DPTR值
3.下列指令或指令序列中,能将外部数据存储器3355H单元内容传送给A的是(B)
(A)MOVXA,3355H(B)MOVDPTR,#3355H
MOVXA,@DPTR
(C)MOVP0,#33H(D)MOVP2,#33H
MOVR0,#55HMOVR2,#55H
MOVXA,@R0MOVXA,@R2
4.对程序存储器的读操作,只能使用(D)
(A)MOV指令(B)PUSH指令
(C)MOVX指令(D)MOVC指令
5.执行返回指令后,返回的断点是(C)
(A)调用指令的首地址(B)调用指令的末地址
(C)调用指令的下一条指令的首地址(D)返回指令的末地址
6.以下各项中不能用来对内部数据存储器进行访问的是(A)
(A)数据指针DPTR(B)按存储单元地址或名称
(C)堆栈指针SP(D)由R0或R1作间址寄存器
(三)其他类型题
1.判断下列指令的合法性(合法打“√”,非法打“×”)
MOVA,@R2(×)MOVR0,R1(×)INCDPTR(√)
MOVPC,#2222H(×)DECDPTR(×)RLCR0(×)
MOV0E0H,@R0(√)CPLR5(×)CLRR0(×)
CPLF0H(×)PUSHDPTR(×)POP30H(√)
MOVXA,@R1(√)MOVA,1FH(√)MOVC,1FH(√)
MOVF0,ACC.3(×)MOVF0,C(√)MOVP1,R3(√)
MOVDPTR,#0FCH(×)CPL30H(√)PUSHR0(×)
MOVC,#0FFH(×)MOVA,#0D0H(√)
2.利用位操作指令序列实现下列逻辑运算。
(1)D=(10H∨P1.0)∧(11H∨CY)
MOVC,P1.0
ORLC,/10H
MOVF0,C
ORLC,11H
ANLC,F0
MOVD,C
(2)E=ACC.2∧P2.7∨ACC.1∧P2.0
MOVC,ACC.2
ANLC,P2.7
ORLC,ACC.1
ANLC,P2.0
MOVE,C
3.编写程序将内部RAM20H~23H单元的高4位写1,低4位写0。
分析:
就是把内部RAM20H~23H这4个单元写入0F0H。
用一个DJNZ的循环。
ORG0000H
MOVR0,#20H;R0指向20H单元
MOVR1,#04H;4个单元
LOOP:
MOV@R0,#0F0H;写入
INCR0
DJNZR1,LOOP;循环4次
END
4.在m和m+1单元中存有两个BCD数,将他们合并到m单元中,编写程序完成。
ORG0030H
MOVR0,#m
MOVA,@R0;将m单元中的BCD数送入累加器A
ANLA,#0FH;把m单元的高4位清0
SWAPA;将m单元中的BCD数移入高4位
MOV@R0,A;m单元高4位为BCD数,低4位为0
INCR0;指向m+1单元
MOVA,@R0;将m+1单元中的BCD数送入累加器A
ANLA,#0FH;把m+1单元的高4位清0
DECR0;指向m单元
ORLA,@R0;将和m+1单元和m单元内容合并
MOV@R0,A;合并后结果送m单元
END
5.将内部RAM中从data单元开始的10个无符号数相加,其和送sum单元。
假定相加结果小于255。
编写程序完成。
ORG0030H
MOVR0,#10;给R0置计数器初值
MOVR1,#data;数据块首址送R1
CLRA;A清零
LOOP:
ADDA,@R1;加一个数
INCR1;修改地址,指向下一个数
DJNZR0,LOOP;R0减1,不为零循环
MOVsum,A;存10个数相加和
END
6.假定8位二进制带符号数存于R0中,要求编写一个求补(取反)程序,所得补码放入R1中。
分析:
对存于R0中的二进制带符号数,如果是正数,则将其变成绝对值相等的负数(用补码表示);如果是负数(用补码表示),则将其变成绝对值相等的正数。
ORG0030H
MOVA,R0;将带符号数送入A
CPLA
ADDA,#01H;末位加1
MOVR1,A;补码存入R1
END
第4章单片机汇编语言程序设计
(一)填空题1.假定A=40H,R1=23H,(40H)=05H。
执行以下两条指令后,A=(25H),R1=(40H),(40H)=(03H)。
XCHA,R1;A=23H,R1=40H
XCHDA,@R1;A=20H,(40H)=03H
2.假定80C51的晶振频率为6MHz,执行下列程序后,在P1.1引脚产生的方波宽度为(5.804ms)
START:
SETBP1.1;P1.1置1(1周期)
DL:
MOV30H,#03H;30H置初值(1周期)
DL0:
MOV31H,#0F0H;31H置初值(1周期)
DL1:
DJNZ31H,DL1;31H减1,不为0重复执行(2周期)
DJNZ30H,DL0;30H减1,不为0转DL0(2周期)
CPLP1.1;P1.1取反(1周期)
SJMPDL;转DL(2周期)
方波宽度={[(2*15*16+2+1)*3]+[(2*15*16+2+1)*3+1+2+1]}*2=5804μs
3.下列程序中,X、Y和Z为输入的8位无符号二进制数,F为输出的逻辑运
算结果。
试画出该程序所模拟的组合逻辑电路。
MOVA,X
ANLA,Y
MOVR1,A
MOVA,Y
XRLA,Z
CPLA
ORLA,R1
MOVF,A
F=(X∧Y)∨(Y⊕Z)
&
&
&
≥1
≥1
X
Y
Z
F
4.分析下列跳转程序,程序中A与30H单元中的数都是符号数,说明当(A=
(30H))时转向LOOP1,当(A>(30H))时转向LOOP2,当(A<(30H))
时转向LOOP3。
MOVR0,A;R0←A
ANLA,#80H
JNZNEG;A<0,转NEG
MOVA,30H
ANLA,#80H
JNZLOOP2;A≥0,(30H)<0,转LOOP2
SJMPCOMP;A≥0,(30H)≥0,转COMP
NEG:
MOVA,30H
ANLA,#80H
JZLOOP3;A<0,(30H)≥0,转LOOP3
COMP:
MOVA,R0
CJNEA,30H,NEXT;A≠(30H),转NEXT
SJMPLOOP1;A=(30H),转LOOP1
NEXT:
JNCLOOP2;A>(30H),转LOOP2
JCLOOP3;A<(30H),转LOOP3
综上分析可知,当A=(30H)时转向LOOP1,A>(30H)时转向LOOP2,A<(30H)时转向LOOP3。
5.假定80C51的晶振频率为6MHz,下列程序的执行时间为(30.696ms)。
已知程序中前2条指令机器周期数为1,后4条指令机器周期数为2。
MOVR3,#151周期
DL1:
MOVR4,#2551周期
DL2:
MOVP1,R32周期
DJNZR4,DL22周期
DJNZR3,DL12周期
RET2周期
执行时间:
T={[(2+2)*255+2+1]*15+2+1}*2=30696μs
(二)编程题
1.把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位于外部RAM的输出缓冲区outbuf传送,一直进行到遇见回车或整个字符串传送完毕,试编程实现。
11
ORG0030H
MOVR0,#inbuf
MOVDPTR,#outbuf
MOVR4,#10H
LOOP:
MOVA,@R0;从内部RAM取数
CJNEA,#0DH,LL;是否为回车符CR
SJMPSTOP;是回车符,则转STOP,停止传送
LL:
MOVX@DPTR,A;不是回车符,则传送到外部RAM
INCR0
INCDPTR
DJNZR4,LOOP;沒传送完则循环
STOP:
SJMP$
2.内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以﹣1作结束标志。
编程实现找出表中最小数。
分析:
从list+1单元开始判断其中的数是否为-1,将比较得到的小数放入累加器A
ORG0030H
MOVR0,#list
MOVA,@R0;取第一个正数
LOOP:
INCR0;指向下一个正数
MOV30H,@R0
CJNEA,30H,CHK;前一个数与后一个数比较
CHK:
JCLOOP1;前一个数小,则转LOOP1
MOVA,30H;前一个数大,取后一个数
LOOP1:
XCHA,30H
CJNEA,#0FFH,LOOP;判断后一个数是否为-1
XCHA,30H;取最小数
SJMP$
3.内部RAM的X,Y单元中各存放一个带符号的数,试编程实现按如下条件进行的运算,并将结果存入Z单元中。
若X为正奇数,Z=X+Y;
若X为正偶数,Z=X∨Y;
若X为负奇数,Z=X∧Y;
若X为负偶数,Z=X⊕Y。
分析:
正数:
第7位为0,负数:
第7位为1;奇数:
第0位为1,偶数:
第0位为0
方法1:
利用ANL指令判断正负、奇偶
ORG0030H
MOVA,X
ANLA,#80H;判断X正负
JNZNEG;若X为负,转NEG
MOVA,X;X为正
ANLA,#01H;判断X奇偶
JZEVEN1;若X为偶数,转EVEN1
MOVA,X
ADDA,Y;若X为正奇数,Z=X+Y
SJMPRESULT
EVEN1:
MOVA,X
ORLA,Y;若X为正偶数,Z=X∨Y
SJMPRESULT
NEG:
MOVA,X;X为负
ANLA,#01H;判断X奇偶
JZEVEN2;若X为偶数,转EVEN2
MOVA,X
ANLA,Y;若X为负奇数,Z=X∧Y
SJMPRESULT
EVEN2:
MOVA,X;若X为负偶数,Z=X⊕Y
XRLA,Y
RESULT:
MOVZ,A
方法2:
RL指令将符号位移入CY判断正负,RR指令将最低位移入CY判断奇偶
MOVA,X
CLRC
RLCA
JCNEG;X为负,转至NEG
RRCA
RRCA
JNCEVEN1;X为偶数,转至EVEN1
MOVA,X
ADDA,Y;X为正奇数,Z=X+Y
SJMPRETULT
EVEN1:
MOVA,X
ORLA,Y;X为正偶数,Z=X∨Y
SJMPRETULT
NEG:
RRCA,
RRCA
JNCEVEN2
MOVA,X
ANLA,Y;X为负奇数,Z=X∧Y
SJMPRETULT
EVEN2:
MOVA,X
XRLA,Y;X为负偶数,Z=X⊕Y
RETULT:
MOVZ,A
END
4.把一个8位二进制数的各位用ASCII码表示之(例如,为0的位用30H表示,为1的位用31H表示等)。
该数存放在内部RAM的byte单元中。
变换后得到的8个ASCII码存放在外部RAM以buf开始的存储单元中,试编程实现。
ORG0030H
14
MOVDPTR,#buf
MOVR0,#byte
MOVR7,#08H
MOVA,@R0
CLRC
LOOP1:
RRCA
MOVR6,A
JCONE
MOVA,#30H
SJMPLOOP2
ONE:
MOVA,#31H
LOOP2:
MOVX@DPTR,A
INCDPTR
MOVA,R6
DJNZR7,LOOP1
5.编程实现运算式22c=a+b。
假定a、b、c3个数分别存放于内部RAM的
DA、DB、DC单元中,另有平方运算子程序SQR供调用。
ORG0030H
MOVA,DA
PUSHACC
ACALLSQR
POPACC
MOVDC,A
MOVA,DB
PUSHACC
ACALLSQR
POPACC
ADDA,DC
MOVDC,A
15
SQR:
POPACC
MOVB,A
MULAB
PUSHACC
RET
END
6.试编程实现两个ASCII码字符串是否相等。
字符串的长度在内部RAM41H单元中,第1个字符串的首地址为42H,第2个字符串的首地址为52H。
如果两个字符串相等,则置内部RAM40H单元为00H;否则置40H单元为FFH。
ORG0030H
MOVR0,#42H
MOVR1,#52H
MOVR7,41H
LOOP:
MOVA,@R0
MOV30H,@R1
CJNEA,30H,LK
INCR0
INCR1
DJNZR7,LOOP
MOV40H,#00H
SJMPDD
LK:
MOV40H,#0FFH
DD:
SJMPDD
7.在外部RAM首地址为table的数据表中,有10字节数据。
试编程实现将每个字节的最高位无条件置1。
ORG0030H
MOVDPTR,#table
MOVR6,#10
LOOP:
MOVXA,@DPTR
16
SETBACC.7
MOVX@DPTR,A
INCDPTR
DJNZR6,LOOP
第6章80C51单片机的中断与定时
(一)填空题
1.中断技术是解决资源竞争的有效方法,因此,可以说中断技术实质上是一种
资源(共享)技术。
2.上电复位后,各中断优先级从高到低的次序为(外部中断0)、(定时器/计数
器0中断)、(外部中断1)、(定时器/计数器1中断)和(串行中断)。
3.响应中断后,产生长调用指令LCALL,执行该指令的过程包括:
首先把(PC)
的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送(PC),
使程序执行转向(ROM)中的中断地址区。
4.当计数器产生计数溢出时,把定时器控制寄存器的TF0(TF1)位置1。
对计
数溢出的处理,在中断方式时,该位作为(中断请求标志位)使用;在查询
方式时,该位作(查询状态位)使用。
5.定时器1工作于方式3做波特率发生器使用时,若系统晶振频率为12MHz,
可产生的最低波特率为(15.26b/s),最高波特率为(1000000b/s)。
对于12MHz的晶振,一个机器周期为1μs,定时器1做波特率发生器使用时,
若工作于方式1,计数初值为0,则波特率最低,为()61655361.01015.26bs
若计数初值为65535,则波特率最高,为1/(1*1.0*10e-6)=1000000b/s
6.定时器0工作于方式2的计数方式,预置的计数初值为156,若通过引脚T0
输入周期为1ms的脉冲,则定时器0的定时时间为(100ms)。
7.用于定时测试压力和温度的单片机应用系统,以定时器0实现定时。
压力超
限和温度超限的报警信号分别由INT0和INT1输入,中断优先顺序为:
压力
超限→温度超限→定时检测。
为此,中断允许控制寄存器IE最低3位的状
态应是(111),中断优先级控制寄存器IP最低3位的状态应是(101)。
8.可利用定时器来扩展外部中断源。
若以定时器1扩展外部中断源,则该扩展外中断的中断请求输入端应为(T1)引脚,定时器1应取工作方式
(2),预置的计数初值应为(0FFH),扩展外中断的入口地址应为(001BH)。
(二)单项选择题1.下列有关80C51中断优先级控制的叙述中错误的是(D)
(A)低优先级不能中断高优先级,但高优先级能中断低优先级
(B)同级中断不能嵌套
(C)同级中断请求按时间的先后顺序响应
(D)同一时刻,同级的多中断请求,将形成阻塞,系统无法响应
2.80C51有两个定时器,下列有关这两个定时器级联定时问题的叙述中,正确的是(C)
(A)可以实现软件级联定时,而不能实现硬件级联定时
(B)可以实现硬件级联定时,而不能实现软件级联定时
(C)软件级联定时和硬件级联定时都可以实现
(D)软件级联定时和硬件级联定时都不能实现
3.在工作方式0下,计数器由TH的全部8位和TL的低5位组成,因此,其计数范围是(A)
(A)1~8192(B)0~8191(C)0~8192(D)1~4096
4.对于由80C51构成的单片机应用系统,中断响应并自动生成长调用指令LCALL后,应(B)
(A)转向外部程序存储器去执行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课后 习题 答案 同名 552
![提示](https://static.bdocx.com/images/bang_tan.gif)