单片机原理与应用习题答案.docx
《单片机原理与应用习题答案.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用习题答案.docx(19页珍藏版)》请在冰豆网上搜索。
![单片机原理与应用习题答案.docx](https://file1.bdocx.com/fileroot1/2023-1/2/358f164b-3d1e-49cc-9fd9-c99e18dd418f/358f164b-3d1e-49cc-9fd9-c99e18dd418f1.gif)
单片机原理与应用习题答案
《单片机原理与应用》课后习题参考答案
第1章
1.
(1)15
(2)0.(3)14.6875
2.
(1)
(2)11(3).1011
3.原码:
正数的符号位用0表示,负数符号位用1表示,而数值位保持原样的机器码称为原码。
反码:
在计算机中,对于正数,其反码的符号位为“0”,数值部分保持不变;对于负数,其反码除了在符号位上表示“1”外,数值部分的各位都取与它相反的数码,即“0”变“1”、“1”变“0”。
也就是说:
正数的反码与它的原码相同;负数的反码由其绝对值按位求反后得到。
补码:
在计算机中,对于正数,其补码的符号位为“0”,数值部分保持不变;对于负数,其补码除了在符号位上表示“1”外,数值部分的各位都取与它相反的数码,然后在最低位加“1”。
也就是说:
正数的补码与它的原码相同;负数的补码由其对应的绝对值按位求反后加1得到。
4.
(1)原码:
反码:
补码:
(2)原码:
10.反码:
10.补码:
10.
(3)原码:
00.反码:
00.补码:
00.
5.[N]原=1.1010[N]补=1.0110N=-0.625
6.原码0.1010-0.1011=-0.0001
补码0.1010+(1.0101)=(1.1111)
7.单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
微处理器是是指计算机内部对数据进行处理并对处理过程进行控制的部件,采用大规模集成电路工艺在一块或几块芯片上制成的中央处理器。
如果将构成微型计算机的各功能部件(CPU,RAM,ROM及I/O接口电路)集成在同一块大规模集成电路芯片上,一个芯片就是一台微型机,则该微型机就称为单片微型计算机。
8.MCS-51系列单片机是美国INTEL公司于1980年推出的一种8位单片机系列。
该系列的基本型产品是8051、8031和8751。
这3种产品之间的区别只是在片内程序存储器方面。
8051的片内程序存储器(ROM)是掩膜型的,即在制造芯片时已将应用程序固化进去;8031片内没有程序存储器;8751内部包含有用作程序存储器的4KB的EPROM。
由于8051的编程需要制造商的支持,8751的价格昂贵,因此8031获得了更为广泛的使用。
第2章
1.MCS-51系列单片机内部主要有一个8位中央处理器CPU,4KB程序存储器ROM(有的型号没有),256B数据存储器RAM,两个16位定时/计数器(T0、T1),可寻址64KB外部数据存储空间和64KB外部程序存储器的控制电路,1个可编程的并行I/O端口、4个8位并行I/O端口(P0~P3),21个特殊功能寄存器。
2.8位数据信息由P0口传送,16位地址底8位是与数据信息复用P0口,高8位是P2口提供。
P3口是多功能复用口。
3.51单片机的存储器结构是哈弗结构,即程序存储器和数据存储器是独立编址的,程序存储器可放程序和只读的数据,数据存储器放数据不能放程序。
4.51内部RAM区功能结构是:
00H~1FH为4组8个通用寄存器R0—R7,20H~2FH是位寻址区16个字节128位和字节数据区,30H~到7FH是字节数据区。
4组8个通用寄存器R0~R7是由PSW标志寄存器中RS1、RS0决定,复位后=00。
0组00H~07H00
1组08H~0FH01
2组10H~17H10
3组18H~1FH11
5.特殊功能寄存器中字节地址(16进制表示)个位数是0、8的特殊功能寄存器都是可位寻址的。
特殊功能寄存器的字节地址在80H—FFH范围,必须采用直接寻址访问。
6.见2.2.1节表2-3
7.因为读写控制信号线不一样。
程序存储器的读信号线是PSEN,没有写;数据存储器的读是RD,写是WR。
8.位地址7CH是字节地址2FH单元中的最高位,可用2FH.7表示。
9.PSW中各位表示程序运行中运算器运算的状态,以及CPU的状态。
表示运算器运算的状态有CY、AC、P。
CPU的状态有RS1、RS0和软件标志位F0。
10.在程序存储器中,0000H、0003H、000BH、0013H、001BH、0023H这6个单元是存放中断程序的入口地址。
11.51单片机复位后,P0~P3都被置位为FFH。
第3章
1.立即寻址,直接寻址,寄存器间接寻址,变址寻址,相对寻址,累加器隐含寻址,位置接寻址。
2.A=50HR0=50H50H51H52H为30H50H00H
HMOV50H,#50H
E550HMOVA,50H
F8HMOVR0,A
7430HMOVA,#30H
F6HMOV@R0,A
7450HMOVA,#50H
F551HMOV51H,A
HMOV52H,#00H
3.B直接寻址SP寄存器间接寻址
4.SP=23HPC=3412H
5.MOVA,30H
MOVDPTR,#1000H
MOVX@DPTR,A
INCDPTR
MOVA,#31H
MOVX@DPTR,A
6.08FFH
7.地址偏移量=FEH
8.MOV是操作片内RAM指令,最大地址=FFH
MOVX是操作片外RAM指令,最大地址=FFFFH
MOVC是读程序存储器ROM指令,最大地址=FFFFH
9.FFHMOVR7,A
C0HE0HPUSHA
E5HF0HMOVA,B
F0HMOV@DPTR,A
10.
(1)错
(2)错(3)对(4)错(5)错(6)错(7)错(8)对(9)错(10)对
第4章
1.MOVDPTR,#3000H
MOVR0,#35H
MOVR7,#20H
LOOP:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR7,LOOP
2.MOVA,5AH
RRA
ADDA,#8
ADDA,5AH
MOV5BH,A
3.MOVR0,#50H
MOVR7,#8
CLRA
LOOP:
ADDA,@R0
INCR0
DJNZR7,LOOP
MOV54H,A
4.设被乘数是两个字节在R3R4中,结果放回
MOVA,R4
CLRC
LLA
MOVR6,A
MOVA,R3
LLA
MOVR5,A
MOVA,R6
CLRC
LLA
MOVR6,A
MOVA,R5
LLA
MOVR5,A
MOVA,R6
CLRC
LLA
MOVR6,A
MOVA,R5
LLA
MOVR5,A
MOVA,R4
ADDA,R6
MOVR4,A
MOVA,R3
ADCA,R5
MOVR3,A
5.MOVDPTR,#2000H
MOVR0,#50H
MOVR7,#15
LOOP1:
MOVXA,@DPTR
MOV@R0,A
INCR0
INCDPTR
DJNZR7,LOOP1
MOVDPTR,#2100H
MOVR7,#15
MOVR0,50H
LOOP2:
MOVXA,@DPTR
ADDA,@R0
MOV@R0,A
INCR0
INCDPTR
DJNZR7,LOOP2
MOVDPTR,#2200H
MOVR0,#50H
MOVR7,#15
LOOP3:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR7,LOOP3
6.MOVDPTR,#2000H
MOVR0,#30H;在片内RAM中数据地址
MOVR7,#50;50个数排序
LOOP:
MOVXA,@DPTR
MOV@R0,A
INCDPTR
INCR0
DJNZR7,LOOP
SORT:
MOVR0,#30H
MOVR7,#50
CLRTAg
COON:
MOVA,@R0
MOVR2,A
INCR0
MOVB,@R0
CJNEA,B,NOTEqUAL
SJMPNEXT
NOTEQUAL:
JCNEXT;前小后大,不交换
SETBTAg;前大后小,置交换标志
XCHA,@R0;交换
DECR0
XCHA,@R0
INCR0
NEXT:
DJNZR7,COON
JBTAG,SORT
MOVDPTR,#3000H
MOVR0,#30H
MOVR7,#50
CUN:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR7,CUN
7
MOVDPTR,#2000H
MOVR7,#100
MOVR3,#0;奇数计数
MOVR4,#0;偶数计数
LOOP:
MOVXA,@DPTR
RRA
JCODD
INCR4
SJMPCON
ODD:
INCR3
CON:
INCDPTR
DJNZR7,LOOP
8
MOVDPTR,#1000H
MOVR7,#31H
MOVR0,#30H
LOOP:
MOVXA,@DPTR
MOV@R0,A
CLRA
MOVX@DPTR,A
INCDPTR
INCR0
DJNZR7,LOOP
9
MOVDPTR,#1000H
MOVR7,#31H
MOVR0,#30H
LOOP:
MOVXA,@DPTR
MOV@R0,A
CLRA
MOVX@DPTR,A
INCDPTR
INCR0
DJNZR7,LOOP
10
MOVDPTR,#2000H
MOVR7,#10
MOVR0,#30H
MOVSP,#60H
LOOP:
MOVXA,@DPTR
ANLA,#0FH
MOVR3,A
INCDPTR
MOVXA,@DPTR
ANLA,#0FH
SWAP
ORLA,R3
MOV@R0,A
INCDPTR
DJNZR7,LOOP
MOVDPTR,#3000H
MOVR7,#10
MOVR0,#30H
CUN:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR7,CUN
第5章
1、并行通信:
是指数据的各位同时进行传送的通信方式。
串行通信:
是指数据一位一位顺序传送的通信方式。
串行通信的两种基本形式:
同步通信和异步通信。
异步通信所传输的数据帧格式是由1个起始位、1~9个数据位、1~2个停止位组成,依靠起始位和停止位保持同步;同步所传输数据帧格式是由多个字节组成的一个帧,每个帧都有两个(或一个)同步字符作为起始位以触发同步时钟开始发送或接收数据。
波特率是指每秒钟传送二进制数码的位数(bit),单位bps(bitpersecond),bit/s。
2、单工方式(Simplex):
只允许数据向一个方向传送(A→B)。
半双工方式(HalfDuplex):
允许数据向两个方向中的一个方向传送,但每次只能一个站发送。
全双工方式(FullDuplex):
允许数据同时双向传送。
3、660bps
4、300bps
5、
MOVSCON,#00H
CLRP1.1
MOVR7,#16
MOVA,#B
LOOP:
MOVSBUF,A
JNBTI,$
ACALLDELAY1S
RAA
DJNZR7,LOOP
RET
6、Baud=
smod=1时,x=208=D0H
smod=0时,x=232=E8H
MAIN:
MOVSCON,#B
MOVTMOD,#B
MOVTH1,#0D0H
MOVTL1,#0D0H
CLREA
MOVPCON,#80H
SETBTR1
LOOP:
JNBRI,$
MOVA,SBUF
CLRRI
MOVSBUF,A
JNBTI,$
CLRTI
SJMPLOOP
7、
甲机:
MAIN:
MOVSCON,#B
MOVTMOD,#B
MOVTH1,#0D0H
MOVTL1,#0D0H
CLREA
MOVPCON,#80H
SETBTR1
MOVR7,#16
MOVR0,#30H
LOOP:
MOVSBUF,@R0
JNBTI,$
CLRTI
INCr0
djnzr7,loop
sjmp$
乙机:
org000h
ljmpmain
org`023h
ljmprxd_int
org100h
main:
movscon,#b
movtmod,#b
movth1,#0d0h
movtl1,#0d0h
setbes
setbea
movpcon,#80h
setbtr1
movr7,#16
movr0,#40h
sjmp$
rxd_int:
mov@r0,sbuf
clrri
incr0
djnzr7,goret
movr7,#16
movr0,#40h
goret:
reti
第6章
1.中断是指CPU在正常运行程序时,由于内部/外部事件,或由程序预先安排的事件引起CPU暂时停止正在运行的程序,转到为该内部/外部事件或预先安排的事件服务的程序中去,服务完毕,再返回去继续运行被暂时中断的程序,这个过程称为中断。
2.MCS-51单片机设有5个中断源,分别是2个外部中断
、
、2个内部定时器/计数器溢出中断TF0、TFl和1个内部串行口中断TI或RI。
这些中断请求分别由特殊功能寄存器TCON和SCON的相应位锁存。
中断可分为:
外部中断,定时/记数中断,串行口中断。
3.优先级,其实就是当两个中断同时需要执行的时候,那个会先响应。
又或者一个中断正在执行,另外一个中断又再来临的时候,单片机是否会跳出本来执行的中断程序而执行新的中断程序。
中断分为2个中断优先级,即高优先级和低优先级,每个中断源的优先级都可以由软件来设定.同一优先级内其自然优先级顺序,排列如下:
中断源 同级自然优先级
外部中断0 最高级
定时器0中断 ↓
外部中断1 ┆
定时器1中断 ↓
串行口中断 最低级
定时器2中断 最低级(52系列单片机中)
4.中断源有中断请求;此中断源的中断允许位为1;CPU开中断(即EA=1)。
同时满足时,CPU才有可能响应中断。
5.TCON为定时器/计数器的控制器,它也锁存外部中断请求标志,
(1)IEl(TCON.3)为外部中断1(
)的中断请求标志位,位地址为8BH。
(2)ITl(TCON.2)为外部中断1(
)的触发控制标志位,位地址为8AH。
(3)IE0(TCON.1)为外部中断0(
)的中断请求标志位,位地址为89H。
(4)IT0(TCON.0)为外部中断0(
)的触发控制标志位,位地址是88H。
第7章
1.MCS-51单片机有两个16位的定时/计数器:
定时器0和定时器1。
定时器/计数器T0由TH0、TL0构成,T1由TH1、TL1构成。
另外还有定时器工作方式寄存器TMOD,控制寄存器TCON。
2.定时/计数器还有4种工作模式,
方式0为13位方式
,方式1为16位方式
,方式2为8位自动装入时间常数方式
,方式3为2个8位方式
。
TMOD用于控制
4种工作模式。
TMOD中的
M1、M0位:
工作方式选择位。
当M1、M0为00时,选择方式0;为01时,选择方式1;为10时,选择方式2;为11时,选择方式3。
3.定时时间与时钟频率和定时初值有关。
由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
4.定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。
作计数器时,其计数脉冲来源于单片机外部引脚T0(或T1)的脉冲。
5.对一8031单片机应用系统,已知其时钟频率为6MHZ,需将8031片内定时计数器设置成:
T0:
50μS定时,申请中断,自启动;此时TMOD值应为多少?
TH0/TL0应取值多少?
根据题意,采用方式2定时,TMOD=02H
晶振频率为6MHz,Tp=2μS
X=Tc/Tp=50μS/2μS=25
计数初值为:
28-25=231
TH0/TL0=231=E7H
6.
根据题意,Tc=1/(2*10KHZ)=250μS,Tp=2μS
X=Tc/Tp=250μS/2μS=125
采用T0方式2定时
计数初值为:
28-125=131=83H
编写程序如下:
ORG0000H
LJMPMAIN
ORG000BH
LJMPIT0P
MAIN:
MOVTMOD,#02H;定时器/计数器T0为定时方式2
MOVTL0,#83H;定时364μs初值赋值
SETBTR0;启动T0,开始计数
SETBET0;允许T0中断
SETBEA;CPU开中断
SETBP1.0
WAIT:
AJMPWAIT
IT0P:
CPLP1.0
RETI
7.根据题意,采用方式2定时,Tp=2μS
X=Tc/Tp=50μS/2μS=25
计数初值为:
28-25=231=E7H
编写程序如下:
ORG0000H
LJMPMAIN
ORG000BH
LJMPIT0P
MAIN:
MOVTMOD,#02H;定时器/计数器T0为定时方式2
MOVTL0,#0E7H;定时364μs初值赋值
SETBTR0;启动T0,开始计数
SETBET0;允许T0中断
SETBEA;CPU开中断
SETBP1.0
MOVB,#0
WAIT:
AJMPWAIT
IT0P:
INCB
CJNEB,#1,IT01
CLRBP1.0
RETI
ITO1:
CJNEB,#5,IT02
SETBP1.0
CLRB
IT02:
RETI
8.据题意,采用方式2定时,Tp=2μS
X=Tc/Tp=500μS/2μS=250
计数初值为:
28-250=6=06H
编写程序如下:
ORG0000H
LJMPMAIN
ORG000BH
LJMPIT0P
MAIN:
MOVTMOD,#02H;定时器/计数器T0为定时方式2
MOVTL0,#0E7H;定时364μs初值赋值
SETBTR0;启动T0,开始计数
SETBET0;允许T0中断
SETBEA;CPU开中断
SETBP1.0
SETBP1.1
MOVB,#0
WAIT:
AJMPWAIT
IT0P:
CPLP1.0
INCB
CJNEB,#4,IT01
CPLP1.1
CLRB
IT01:
RETI
第8章
1.线选法就是直接以系统的地址线作为存储器芯片的片选信号,为此只需把用到的地址线与存储器芯片的片选端直接相连即可。
译码法就是使用地址译码器对系统的片外地址进行译码,以其译码输出作为存储器芯片的片选信号。
2.8031单片机没有内部存储器,而复位时把PC初始化为0000H,使单片机从程序存储器的0000H单元开始执行程序,所以要求其片外程序存储器的起始地址必须从0000H开始设置。
3.
电路图如下:
4.电路图如下:
第9章
1.
A、通过互感器把0----250V转换为0---5V,通过放大器到A/D转换器0809的IN0接单片机。
(具体图见下一页)
89C51
P0口
IN0
互感器
0809
放大器
由图可知
A15A14A13
011ADC0809
100LED
B、单片机外扩LS74LS244接四位LED显示器,用P1口P1.4P1.5P1.6P1.7选择哪一位LED。
C、用单片机的P1口P1.0P1.1P1.2P1.3四个引脚接KEY1KEY2KEY3KEY4四个键作↑↓功能复位键
D、单片机接MAX232接口与PC机通讯,通信协议仿本章例子。
基本格式
①②③
I
DATA
CC
1I:
指令1字节
2DATA:
电压值1字节
3CC:
校验和码(①~②的和值)1字节