单片机原理与接口技术习题集答案第1部分答案1-1简述冯·诺依曼型计算机的主要特征。
1、采用二进制代替十进制运算2、存储程序工作方法3、计算机硬件系统的构成1-2 计算机硬件系统由哪些部件组成?计算机硬件系统由运算器、控制器、存储器、输入设备和输出设备五个部分。
1-3 填空:(1)100D=01100100=64H(2)03CH=00111100B=60D1-4 写出下列各数的原码、反码和补码(用二进制数表示)。
21 -21 59 -59 127 -127 1 -121 原码:00010101反码:00010101补码:00010101-21 原码:10010101反码:11101010补码:1111101159原码:00111011反码:00111011补码:00111011-59原码:10111011反码:11000100补码:11000101127原码:01111111反码:01111111补码:01111111-127 原码:11111111反码:10000000补码:100000011原码:00000001反码:00000001补码:00000001-1原码:1000001反码:11111110补码:111111111-5 用十进制数写出下列补码的真值:1FH 69H 89H FCH 97H CDH B3H 10H1FH的真值:31D69H的真值:105D89H的真值:-119DFCH的真值:-4D97H的真值:-105DCDH的真值:-51DB3H的真值:-77D10H的真值:16D1-6 已知X和Y,求(X+Y)补。
(1)X=31D,Y=55D (X+Y)补= 01010000B(2)X=46D,Y=-81D (X+Y)补=11010001B(3)X=-54D,Y=93D (X+Y)补=00100111B(4)X=-23D,Y=-67D (X+Y)补=10100110B(5)X=75D,Y=89D (X+Y)补=10100100B1-7 写出下列各数的8421BCD码。
1234 56781234的BCD码:00010010001101005678的BCD码:01010110011110001-8 简述单片机的主要特点。
1、具有优异的性能价格比2、集成度高、体积小、可靠性高3、控制功能强4、低电压、低功耗第2部分答案1、MCS-51单片机内部包含哪些主要部件?①8位CPU②4KB的程序存储器(掩膜ROM)③128B的数据存储器④片外程序存储器最大寻址能力64KB⑤片外数据存储器最大寻址能力64KB⑥32根输入/输出线⑦1个全双工异步串行接口⑧2个16位定时/计数器⑨5个中断源,2个中断优先级2、在功能上、工艺上、程序存储器的配置上,MCS-51单片机有哪些种类?工艺:HMOS工艺和CHMOS工艺。
类型:基本型和增强型。
配置:片内无程序存储器、掩膜程序存储器ROM、EPROM。
3、简要说明MCS-51与AT89C51的主要区别是什么?AT89C51单片机内部有FLASH存储器4、MCS-51单片机的P0~P3口在结构上有何不同?P0:数据总线和低8位地址总线P1:通用I/O接口P2:高8位地址线P3:多功能I/O接口5、单片机的片内、片外存储器如何选择?当为低电平时,C P U直接访问外部程序存储器当为高电平时,C P U要先对内部0~4K程序存储器访问,然后自动延至外部超过4K的程序存储器。
6、片机的晶振频率为12MHz,则单片机的机器周期为多少?1T机器=12T振=12/f OSC=12/12×10-6=1us7、状态字寄存器各位的含义如何?PSW的各位定义为:CY:进行标志位(D7位)。
在进行加、减运算时,如果操作结果使累加器A中最高位D7向前有进位或借位,则CY=1,否则CY=0。
在位操作中,CY作位累加器C使用。
AC:辅助进行位(D6位)。
在加减运算中,当A中的D3位向D4位有进位或借位时,AC=l,否则AC=0。
通常在二-十进制调整时使用。
F0、F1:用户标志位(D6、D1位)。
这两个是供用户定义的标志位,用户可根据需要对F0、F1赋予一定的含义,由用户用软件方法对其置位或复位,用以控制用户程序的转向。
RS1、RS0:工作寄存器区选择控制位(D4、D3位)。
用于设定哪一组工作寄存器为当前正在工作的工作寄存器组,即对相同名称的R0~R7改变其物理地址,由用户通过软件方式加以选择。
RS1、RS0的取值与选用工作寄存器的关系如表2-7示。
单片机在开机或复位后,RS1和RS0总是为零状态,也说是说,选择0区为当前工作寄存器组,故单片机复位后的工作寄存器R0~R7的物理地址为00H~07H。
OV8位数能表示的范围,即-128~+127,则OV自动置1,否则OV=0。
在加法运算中,OV=l表示运算结果是错误的,OV=0表示运算正确;在乘法运算中,OV=l表示乘积超过255,即乘积分别在B与A中,OV=0表示乘积只在A中;在除法运算中,OV=l表示除数为0,除法不能进行,OV=0表示除数不为0,除法可以正常进行。
P:奇偶标志位。
每条指令执行完毕后,由硬件根据A中1的数目对P位自动置位。
若A中1的数目为奇数,则P=1,若A中1的数目为偶数,则P=0。
8、MCS-51单片机的控制信号有哪些?作用如何?①(29脚):外部程序存储器读选通信号。
②ALE/(30脚):地址锁存允许/编程信号。
8051单片机可寻③/V PP(31脚):外部程序存储器访问允许/编程电压输入端。
④RST/V PD(9脚):复位信号/备用电源输入端。
9、单片机内部数据存储器是怎样划分的?作用如何?10、AT89C51单片机有多少特殊功能寄存器?2111.什么叫堆栈?堆栈指示器SP的作用是什么?单片机初始化后SP中内容是什么?在程序设计时,为什么要对SP重新赋值?堆栈就是设置在片内RAM中的一段存储区域,它遵循先入后出的原则。
SP就是一个用来指示栈顶位置的8位寄存器,它指示出堆栈顶部在内部RAM块中的位置。
SP初始化07H,使得堆栈事实上由08H单元开始。
考虑到08H~1FH分属于工作寄存器区1~3,若程序设计要用到这些区,则最好把SP值改到通用RAM区,即2FH或更大值。
但是,如果堆栈指针初始化时设置在这个区域,就要留出足够的字节单元作为堆栈区,以防止在数据存储时,破坏了堆栈的内容。
12、数据指针DPTR和程序计数器PC都是16位寄存器,它们有什么不同之处?①数据指针DPTR 数据指针DPTR是一个16位的寄存器,由2个8位特殊功能寄存器DPH和DPL拼装而成。
DPH作DPTR的高8位,DPL作DPTR的低8位。
因此,DPTR既可作为一个16位寄存器来使用,也可以作为二个独立的8位寄存器DPH和DPL使用。
DPTR用作地址指针用来存放片内、片外ROM和片外RAM的地址,可寻址范围为64K地址空间寻址。
②程序计数器PC 程序计数器PC是一个16位加1计数器,用来存放将要执行的指令地址,编码范围为0000H~FFFFH共64K。
13、8031单片机在应用中,P2和P0口能否直接作为输入输出口连接开关、指示灯之类的外围设备?为什么?不能,8031单片机芯片内无程序存储器, P0口需用作数据总线和低8位地址总线来扩展外部程序存储器。
14、AT89系列单片机的复位方式有几种?复位后单片机的状态如何?有两种复位方式:手动按钮复位和上电复位在SFR中,除了端口锁存器、堆栈指针SP和串行口的SBUF外,其余寄存器全部清零,端口琐存器的复位值为0FFH,堆栈指针值为07H,SBUF内为不定值。
内部RAM的状态不受复位影响,在系统启动时,RAM的内容是不定的。
15、AT89系列单片机有哪几种省电方式?有两种省电方式:空闲方式和掉电方式第3部分答案1、简述下列基本概念:指令、指令系统、程序、汇编语言指令指令:指示计算机执行某种操作的命令。
指令系统:指一台计算机所具有的全部指令的集合。
程序:各种指令的有序组合。
汇编语言指令:用助记符形式书写的指令,汇编语言指令由操作码和操作数两部分组成。
2、MCS-51单片机有那几种寻址方式?这几种寻址方式是如何寻址有七种寻址方式:①立即寻址②直接寻址③寄存器寻址④寄存器间接寻址⑤变址寻址⑥相对寻址⑦位寻址3、DA A指令有什么作用?怎样使用?DA A ;这条指令是进行BCD码运算时,跟在ADD或ADDC指令之后,将相加后存放在累加器中的结果进行修正。
修正的条件和方法为:若(A0~3)>9或(AC)=1,则(A0~3)+06H→(A0~3);若(A4~7)>9或(CY)=1,则(A4~7)+06H→(A4~7)。
若以上二条同时发生,或高4位虽等于9 ,但低4位修正后有进位,则应加66H修正。
4、已知A=C9H,B=8DH,CY=1。
执行指令“ADDC A,B”结果如何?执行指令“SUBBA,B”结果又如果?A=56H, B=8DH, CY=0;A=3CH, B=8DH, CY=1.5、若需访问特殊功能寄存器和片外数据存储器,就采用那些寻址方式?寄存器间接寻址.6、在片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48)H=90H,试分析下段程序中各条指令的作用,说出按顺序执行完指令后的结果:MOV A,40H ;把40单元的内容送往累加器AMOV R1,A ;把累加器A的内容送往R1MOV P1,#0F0H ;把立即数F0送往P1口MOV @R1,30H ;把30单元的内容送往以R1的内容为地址的单元MOV DPTR,#1234H ;把立即数1234送往DPTRMOV 40H,38H ;把38单元的内容送往40单元MOV R1,30H ;把30单元的内容送往R1MOV 90H,R1 ;把R1的内容送往90单元MOV 48H,#30H ;把立即数30送往48单元MOV A,@R1 ;把以R1的内容作为地址送往累加器AMOV P2,P1 ;把P1口的内容送往P2口7、试说明下段程序中每条指令的作用,当指令执行完后,R0中的内容是什么?MOV R0, #0AFHXCH A, R0SWAP AXCH A, R0(R0)=0FAH8、把累加器A中的低4位送到外部RAM的2000H单元中,试编程序。
ANL A,#OFHMOV DPTR,#2000HMOVX @DPTR,A9、利用乘法指令编写15H×33H的程序,将乘积的高8 位存入31H单元,低8位存入30H单元MOV A,#15HMOV B,#33HMUL A,BMOV 31H,BMOV 30H,A10、编程将片内35H~55H单元中的内容送入到以3000H为首的存储区中。