单片机原理及应用课后习题整理.docx
《单片机原理及应用课后习题整理.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用课后习题整理.docx(19页珍藏版)》请在冰豆网上搜索。
单片机原理及应用课后习题整理
单片机原理及应用课后习题整理
第一章
5.什么叫单片机?
其主要特点有哪些?
答:
在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片
机。
单片机主要特点有:
控制性能和可靠性高;体积小、价格低、易于产品化;具有良好的性能价格比。
。
7.当前单片机的主要产品有哪些?
各有何特点?
答:
多年来的应用实践已经证明,80C51的系统结构合理、技术成熟。
因此,许多单片机芯片生产厂商倾力
于提高80C51单片机产品的综合功能,从而形成了80C51的主流产品地位,近年来推出的与80C51兼容的主
要产品有:
ATMEL公司融入Flash存储器技术推出的AT89系列单片机;
Philips公司推出的80C51、80C552系列高性能单片机;
华邦公司推出的W78C51、W77C51系列高速低价单片机;
ADI公司推出的ADμC8xx系列高精度ADC单片机;
LG公司推出的GMS90/97系列低压高速单片机;
Maxim公司推出的DS89C420高速(50MIPS)单片机;
Cygnal公司推出的C8051F系列高速SOC单片机等。
8.简述单片机的开发过程。
答:
系统需求分析,硬件方案设计,软件编程,仿真调试,实际运行。
9.单片机应用系统开发方法有哪些新方法?
答:
在系统编程(ISP)技术,在应用编程(IAP)技术。
第二章
2.80C51单片机的存储器的组织采用何种结构?
存储器地址空间如何划分?
各地址空间的地址范围和
容量如何?
在使用上有何特点?
答:
采用哈佛结构,在物理上设计成程序存储器和数据存储器两个独立的空间;80C51基本型单片机片内程
序存储器为4KB,地址范围是0000H-0FFFH,用于存放程序或常数;片内数据存储器为128字节RAM,地址范
围是00H-7FH,用于存放运算的中间结果、暂存数据和数据缓冲;另外在80H-FFH还配有21个SFR。
3.80C51单片机的P0~P3口在结构上有何不同?
在使用上有何特点?
答:
作为通用I/O口时,P0、P1、P2和P3都是准双向口。
P0可以作为地址/数据总线,此时是一个真正的双向口;P2口可以作为地址线的高8位;P3口是双功能
口,每条口线还具有不同的第二功能。
另外,P0口的驱动能力为8个TTL负载,而其它口仅可驱动4个TTL负载。
4.如果80C51单片机晶振频率分别为6MHz、11.0592MHz、12MHz时,机器周期分别为多少?
答:
机器周期分别为2μs,1.085μs,1μs。
5.80C51单片机复位后的状态如何?
复位方法有几种?
答:
复位后,PC内容为0000H,P0口~P3口内容为FFH,SP内容为07H,SBUF内容不定,IP、IE和PCON
的有效位为0,其余的特殊功能寄存器的状态均为00H。
复位方法一种是上电复位,另一种是上电与按键均有
效的复位。
6.80C51单片机的片内、片外存储器如何选择?
答:
80C51的EA引脚为访问片内、片外程序存储器的选择端。
访问片内、片外数据存储器需要采用不同的
指令加以区分。
7.80C51单片机的PSW寄存器各位标志的意义如何?
答:
CY:
进位、借位标志。
有进位、借位时CY=1,否则CY=0;
AC:
辅助进位、借位标志(高半字节与低半字节间的进位或借位);
F0:
用户标志位,由用户自己定义;
RS1、RS0:
当前工作寄存器组选择位;
OV:
溢出标志位。
有溢出时OV=1,否则OV=0;
P:
奇偶标志位。
存于ACC中的运算结果有奇数个1时P=1,否则P=0。
8.80C51单片机的当前工作寄存器组如何选择?
答:
当前工作寄存器组的选择由特殊功能寄存器中的程序状态字寄存器PSW的RS1、RS0来决定。
9.80C51单片机的控制总线信号有哪些?
各信号的作用如何?
答:
RST/VPD:
复位信号输入引脚/备用电源输入引脚;ALE/PROG:
地址锁存允许信号输出引脚/编程脉冲
输入引脚;EA/VPP:
内外存储器选择引脚/片内EPROM(或FlashROM)编程电压输入引脚;PSEN:
外部程
序存储器选通信号输出引脚。
10.80C51单片机的程序存储器低端的几个特殊单元的用途如何?
答:
0000H:
单片机复位入口地址;0003H:
外部中断0的中断服务程序入口地址;000BH:
定时/计数器0溢
出中断服务程序入口地址;0013H:
外部中断1的中断服务程序入口地址;001BH:
定时/计数器1溢出中断1的服务程序入口地址;0023H:
串行口的中断服务程序入口地址。
第三章
10.完成某种操作可以采用几条指令构成的指令序列实现,试写出完成以下每种操作的指令序列。
(1)将R0的内容传送到R1;
(2)内部RAM单元60H的内容传送到寄存器R2;
(3)外部RAM单元1000H的内容传送到内部RAM单元60H;
(4)外部RAM单元1000H的内容传送到寄存器R2;
(5)外部RAM单元1000H的内容传送到外部RAM单元2000H。
答:
(1)MOVA,R0
MOVR1,A
(2)MOVR2,60H
(3)MOVDPTR,#1000H
MOVXA,@DPTR
MOV60H,A
(4)MOVDPTR,#1000H
MOVXA,@DPTR
MOVR2,A
(5)MOVDPTR,#1000H
MOVXA,@DPTR
MOVDPTR,#2000H
MOVX@DPTR,A
11.若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。
试分析执行下列程序段后上述各单元
内容的变化。
MOVA,@R1
MOV@R1,40H
MOV40H,A
MOVR1,#7FH
答:
(R1)=7FH
(A)=60H
(30H)=08H
(40H)=60H
14.试用位操作指令实现下列逻辑操作。
要求不得改变未涉及的位的内容。
(1)使ACC.0置位;
(2)清除累加器高4位;
(3)清除ACC.3,ACC.4,ACC.5,ACC.6。
答:
(1)SETBACC.0
(2)ANLA,#0FH
(3)ANLA,#87H
15.试编写程序,将内部RAM的20H、21H、22H三个连续单元的内容依次存入2FH、2EH和2DH单元。
答:
MOV2FH,20H
MOV2EH,21H
MOV2DH,22H
16.试编写程序,完成两个16位数的减法:
7F4DH-2B4EH,结果存入内部RAM的30H和31H单元,
30H单元存差的高8位,31H单元存差的低8位。
(注意:
此题与书上的题要求不一样,书中
要求31H单元存差的高8位,30H单元存差的低8位)
答:
CLRCY
MOV30H,#7FH
MOV31H,#4DH
MOVR0,#31H
MOVA,@R0
SUBBA,#4E
MOV@R0,A;保存低字节相减结果
DECR0
MOVA,@R0
SUBBA,#2BH
MOV@R0,A;保存高字节相减结果
17.试编写程序,将R1中的低4位数与R2中的高4位数合并成一个8位数,并将其存放在R1中。
答:
MOVA,R2
ANLA,#0F0H
ORLR1,A
18.试编写程序,将内部RAM的20H、21H单元的两个无符号数相乘,结果存放在R2、R3中,R2中存放高8位,R3中存放低8位。
答:
MOVA,20H
MOVB,21H
MULAB
MOVR3,A
MOVR2,B
19.若(CY)=1,(P1)=10100011B,(P3)=01101100B。
试指出执行下列程序段后,CY、P1口及P3
口内容的变化情况。
MOVP1.3,C
MOVP1.4,C
MOVC,P1.6
MOVP3.6,C
MOVC,P1.0
MOVP3.4,C
-81-
答:
(CY)=1,(P1)=10111011B,(P3)=00111100B
第四章
9.若80C51的晶振频率为6MHz,试计算延时子程序的延时时间。
DELAY:
MOVR7,#0F6H
LP:
MOVR6,#0FAH
DJNZR6,$
DJNZR7,LP
RET
答:
延时时间:
2μs*{[1+((1+2*250+2)*246)+2]+2}=0.247486秒(含调用指令2个机器周期)
10.在内部RAM的30H~37H单元存有一组单字节无符号数。
要求找出最大数存入BIG单元。
试编写程
序实现。
答:
ORG0000H
BIGDATA2FH
ONEDATA2AH
TWODATA2BH
START:
MOVR7,#7;比较次数
MOVR0,#30H
LOOP:
MOVA,@R0
MOVONE,A
INCR0
MOVTWO,@R0
CLRC
SUBBA,@R0
JCNEXT;ONE小,TWO大继续比下一对数
MOV@R0,ONE;ONE大放后面(交换)
DECR0
MOV@R0,TWO;TWO小放前面
INCR0;
NEXT:
DJNZR7,LOOP
MOVBIG,37H
SJMP$
END
11.编写程序,把累加器A中的二进制数变换成3位BCD码,并将百、十、个位数分别存放在内部RAM
的50H、51H、52H中。
答:
单字节二进制数转换为压缩的BCD码仅需要2个字节;在将压缩的BCD码拆分存于3个单元。
org0
MOV52H,#0
MOV51H,#0
MOV50H,#0
MOVA,#0FDh
LCALLDCDTH
SJMP$
DCDTH:
MOVR7,#8
MOVR0,A;暂存于R0
LOOP:
CLRC
MOVA,R0
RLCA
MOVR0,A
MOVR1,#51H;
MOVA,@R1;
ADDCA,@R1;
DAA;
MOV@R1,A;
DECR1
MOVA,@R1
ADDCA,@R1
DAA
MOV@R1,A
DJNZR7,LOOP
INCR1;50H已是结果,R1指向51H,51H单元需拆分
MOVA,#00H
XCHDA,@R1
MOV52H,A
MOVA,@R1
SWAPA
MOV@R1,A
RET
END
12.编写子程序,将R1中的2个十六进制数转换为ASCII码后存放在R3和R4中。
答:
ORG0
MOVR1,#5BH
MOVA,R1
ANLA,#0F0H
SWAPA
ACALLASCII
MOVR3,A
MOVA,R1
ANLA,#0FH
ACALLASCII
MOVR4,A
SJMP$
ASCII:
PUSHACC
CLRC
SUBBA,#0AH
POPACC
JCLOOP
ADDA,#07H
LOOP:
ADDA,#30H
RET
END
13.编写程序,求内部RAM中50H~59H十个单元内容的平均值,并存放在5AH单元。
答:
ORG0000H
MOVR7,#10
MOVR0,#50H
MOVB,#10
CLRC
CLRA
LOOP:
ADDCA,@R0
INCR0
DJNZR7,LOOP
DIVAB
MOV5AH,A
SJMP$
END
第五章
2.某系统有三个外部中断源1、2、3,当某一中断源变低电平时便要求CPU处理,它们的优先处理次
序由高到低为3、2、1,处理程序的入口地址分别为2000H、2100H、2200H。
试编写主程序及中断服务程序(转至相应的入口即可)。
答:
将3个中断信号经电阻线或,接INT1。
ORG0000H
LJMPMAIN
ORG00013H
LJMPZDFZ
ORG0040H
MAIN:
SETBEA
SETBEX1
SJMP$
0RG0200H
ZDFZ:
PUSHPSW
PUSHACC
JBP1.0,DV0
JBP1.1,DV1
JBP1.2,DV2
INRET:
POPACC
POPPSW
RETI
ORG2000H
DV0:
------------
JMPINRET
ORG2100H
DV1:
------------
JMPINRET
ORG2200H
DV2:
------------
JMPINRET
8.利用定时/计数器T0从P1.0输出周期为1s,脉宽为20ms的正脉冲信号,晶振频率为12MHz。
试设
计程序。
答:
采用定时20ms,然后再计数1、49次的方法实现。
a、T0工作在定时方式1时,控制字TMOD配置:
M1M0=01,GATE=0,C/T=0,可取方式控制字为01H;
b、计算计数初值X:
晶振为12MHz,所以机器周期Tcy为1μs。
N=t/Tcy=20×10-3/1×10-6=20000
X=216-N=65536-20000=45536=4E20H
即应将4EH送入TH1中,20H送入TL1中。
c、实现程序如下:
ORG0000H
AJMPMAIN;跳转到主程序
ORG0030H
MAIN:
MOVTMOD,#01H;设T1工作于方式2
MOVTH0,#4EH;装入循环计数初值
MOVTL0,#20H;首次计数值
LP0:
SETBP1.0
ACALLNT0
CLRP1.0
MOVR7,#49;计数49次
LP1:
ACALLNT0
DJNZR7,LP1
AJMPLP0
NT0:
MOVTH0,#4EH
MOVTL0,#20H
SETBTR0
JNBTF0,$
CLRTR0
CLRTF0
RET
END
9.要求从P1.1引脚输出1000Hz方波,晶振频率为12MHz。
试设计程序。
答:
采用T0实现
a、T0工作在定时方式1时,控制字TMOD配置:
M1M0=01,GATE=0,C/T=0,可取方式控制字为01H;
-90-
b、计算计数初值X:
-91-
晶振为12MHz,所以机器周期Tcy为1μs。
1/1000=1×10-3
N=t/Tcy=0.5×10-3/1×10-6=500
X=216-N=65536-500=65036=FE0CH
即应将FEH送入TH0中,0CH送入TL0中。
c、实现程序如下:
ORG0000H
AJMPMAIN;跳转到主程序
ORG000BH;T0的中断入口地址
LJMPDVT0
ORG0030H
MAIN:
MOVTMOD,#01H;设T0工作于方式2
MOVTH0,#0FEH;装入循环计数初值
MOVTL0,#0CH;首次计数值
SETBET0;T0开中断
SETBEA;CPU开中断
SETBTR0;启动T0
SJMP$;等待中断
DVT0:
CPLP1.1
MOVTH0,#0FEH
MOVTL0,#0CH
SETBTR0
RETI
END
10.试用定时/计数器T1对外部事件计数。
要求每计数100,就将T1改成定时方式,控制P1.7输出一个
脉宽为10ms的正脉冲,然后又转为计数方式,如此反复循环。
设晶振频率为12MHz。
答:
a、T1工作在计数方式2时,控制字TMOD配置:
M1M0=10,GATE=0,C/T=1,可取方式控制字为60H;
T1工作在定时方式1时,控制字TMOD配置:
M1M0=01,GATE=0,C/T=0,可取方式控制字为10H;
b、计算初值X:
定时10ms时:
晶振为12MHz,所以机器周期Tcy为1μs。
N=t/Tcy=10×10-3/1×10-6=10000
X=216-N=65536-10000=55536=D8F0H
即应将D8H送入TH1中,F0H送入TL1中。
计数100时:
N=100
X=28-N=256-100=156=9CH
c、实现程序如下:
ORG0000H
AJMPMAIN;跳转到主程序
ORG001BH;T1的中断入口地址
LJMPDVT1
ORG0030H
MAIN:
MOVTMOD,#60H;T1工作于计数方式2
MOVTH1,#9CH;装入计数初值
MOVTL1,#9CH;
CLRP1.7
SETBET1;T1开中断
SETBEA;CPU开中断
SETBTR1;启动T1
SJMP$;等待中断
DVT1:
SETBP1.7
CLRET1
CLRTR1
MOVTMOD,#10H;T1工作于定时方式1
MOVTH1,#0D8H;装初值
MOVTL1,#0F0H
SETBTR1
JNBTF1,$;查询等待10ms
CLRTF1
CLRTR1
CLRP1.7
MOVTMOD,#60H;T1工作于计数方式2
MOVTH1,#9CH;装初值
MOVTL1,#9CH;
SETBET1;T1开中断
SETBTR1;启动T1
RETI
END
第六章
3.在串行通信中通信速率与传输距离之间的关系如何?
答:
最大距离与传输速率及传输线的电气特性有关。
当传输线使用每0.3m(约1ft)有50PF电容的非平衡
屏蔽双绞线时,传输距离随传输速率的增加而减小。
当波特率超过1000bps时,最大传输距离将迅速下降。
第七章
1.以80C31为主机,用2片27C256扩展64KEPROM,试画出接口电路。
答:
3.当单片机应用系统中数据存储器RAM地址和程序存储器EPROM地址重叠时,它们内容的读取是否
会发生冲突,为什么?
答:
不会。
由于80C51对ROM的读操作由PSEN控制,指令用MOVC类;对RAM读操作用RD控制,指
令用MOVX。
所以,尽管ROM与RAM的逻辑地址是重叠的,它们内容的读取也不会发生冲突。
4.
7.
第八章