版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章微控制器概述
1.除了单片机的名称外,单片机也可以称为and。
答:微控制器,嵌入式控制器。
2.单片机与普通微机的区别在于,它把、、、3部分集成在一个芯片上。
答:CPU、内存、I/O口。
3.8051和8751的区别是。
A._不同数量的数据存储单元B._不同类型的外部数据存储器
C._不同类型的外部程序存储器D._外部寄存器数量不同
答案:Co
4.家用电器中使用单片机应该属于微机。
A.一辅助设计应用;B.测控应用;C.数值计算应用;D.数据处理应用
答案:Bo
5.微处理器、微机、微处理器、CPU、单片机有什么区别?
答:微处理器、微处理器和CPU都是中央处理器的不同名称;而微机和单片机都
是一个完整的计算机系统,单片机特指集成在一个芯片上,用于测量和控制目的
的单片机。计算机。
6.MCS-51系列单片机的基本芯片有哪些?他们有什么区别?
答:MCS-51系列单片机的基本芯片分别是8031、8051和8751。不同之处在于片
上程序存储器。8031没有程序存储器,8051有4KB程序存储器ROM,8751
集成4KB程序存储器EPROM。
7.为什么51系列单片机不叫MCS-51系列单片机?
答:因为MCS-51系列单片机中的“MCS”是英特尔公司生产的单片机的系列符
号,而51系列单片机是指所有的单片机全球各厂家生产的兼容8051核心结构
和指令系统的。
8.MCS-51系列中哪一种产品相当于AT89c51单片机?
答:相当于MCS-51系列中的51,87c只是AT89c51芯片的4KBFlash替换了
87c51芯片的4KBEPROM0
第二章AT51MCU芯片89c硬件结构
1.在AT89c51单片机中,如果使用6MHz晶振,一个机器周期为.
答案:2Hs
2.AT89c51微控制器的机器周期等于一个时钟振荡周期。
答案:12o
3.在内部RAM中,位地址为40H和88H的位,该位所在字节的字节地址为and。
答案:2811;88小时。
4.芯片字节地址为2AH单元的最低位地址;芯片字节地址是88H单元的最低位地
址。
答案:50H;88小时。
5.如果A中的内容是63H,那么P标志位的值就是。
答:P标志的值为0C
6.AT89c51单片机复位后,R4对应的存储单元地址为,因为PSW二.此时,当前
工作寄存器区为组工作寄存器区。
答案:04H;00H;0.
7.在内部RAM中,可生作工作寄存器区的单元地址为H到H。
答案:OOH;1FHo
8.子程序调用是通过栈操作实现的,为了断点保护,要先将内容入栈。当调用
返回时,再次执行弹出保护,并将受保护的断点发回。
答案:电脑;个人电脑。
9.AT89c51单片机程序存储器的寻址范围由程序计数.器PC的位数决定,因为AT89
C51单片机的PC是16位的,所以它的寻址范围是KBo
答案:64KBo
10.判断下列说法是否正确。
A._AT89C51MCU的CPU由RAM和EPROM组成
B._R分片外程序存储器和片外数据存储器最可靠的方法是位于地址范围的低端
还是高端
C._在AT89c51单片机中,为了使准双向I/O口工作在输入模式,必须保证提前预
置为1
D._PC可以被认为是程序存储器的地址指针
答案:A.错误;B.错误的;C.对;D.对。
11.判断以下关于PC和DPTR的结论是正确的。
A._DPTR可访问,但PC不可访问
B._它们都是16位寄存器
C._辛片机运行时都有自动加“1”的功能
D._DPTR可以分成两个8位寄存器使用,但PC不能
答藁:A.对;B.沟;C.错误的;D.对。
12.判断下列说法是否正确。
A.—程序计数器PC不能直接访问以供用户编程,因为它没有地址
B._RAM的位寻址区域只能用于位寻址,不能用于字节寻址。
C._AT89c51单片机有21个特殊功能寄存器,它们的位可以由软件设置,所以可
以位寻址。
答案:A.对;B.错-吴的;C、错误。
13.PC的值为。
A._当前执行指令前一条指令的地址
B._当前执行指令的地址
C._当前执行指令的下一条指令的地址
D._控制器中指令寄存器的地址
答案:A.错误;B.错误的;C.对;D、错误。
14.判断下列说法是否正确。
A._PC是一个不可寻址的特殊功能寄存器
B._单片机主频越高,运行速度越快。
C._在AT89c51微控制器中,一个机器周期等于:s
D._特殊功能寄存器存放栈顶第一个地址单元的内容。
答纂A.对;B.沟;C.错误的;D、错误。
15.AT89c51单片机芯片中集成了哪些功能元件?各个功能部件的主要作用是
什么?
(1)1个微处理器(CPU);
(2)128个数据存储器(RAM)单元;
(3)4KBFlash程序存储器;
(4)4个8位可编程并行I/O口(P0,Pl,P2,P3);
(5)1个全双工串口;
(6)2个16位定时器/计数器;
(7)1个中断系统,5个中断源,2个优先级;
(8)21个特殊功能寄存器(SFR兀
16.解释一下AT89c51单片机的管脚的作用函,接高电平和低电平时管脚有什
么作用?
A:当钻引脚为高电平时,单片机读取程序存储器(4KBFlash),但当PC值超
过OFFFH(即超出4KB地址范围)时,会自动转程序读取外部程序记忆。当点引
脚为低电平时,对程序存储器的读操作仅限于外部程序存储器,地址为OOOOH~F
FFFII,芯片的4KBFlash程序存储器不工作。
17.AT89c51单片机的5个中断源的中断入口地址对应的64KB程序存储空间中有5
个单元地址。请写出这些单元的入口地址和对应的中断源。
64KB程序存储空间中,有5个特殊单元对应5个中断源的中断服务程序的入口地
址,如下表所示。
表5中断源
入口地址中断源
00D3H外部中断0(府而)
00DBH定时器0(TO)
0013H外部中断1(而b
001BH定时器1(T1)
OO23H串行端口
18.当AT89c51单片机错误运行或程序陷入死循环时,如何摆脱困境?
答:按复位键。
第三章AT89c51单片机指令系统
1.在基址加变址寻址模式中,用作变址寄存器,或用作基址寄存器。
答:A、PC、DPTRo
2.指令格式由和或仅由组成。
答案:操作码、操作数、操作码。
3.假设累加器A的容量为30H,执行指令
100011:MOVCA,A+PC
程序存储单元的内存被放入累加器A。
答案:1031Ho
4.在AT89c51单片机中,PC和DPTR都用于提供地址,但PC用于访问
内存提供地址,DPTR提供访问内存的地址。
答:程序,数据。
5.在寄存器间接寻址方式下,它的“间接”体现在指令中寄存器的内容上,不
是操作数,而是操作数。
答:地址。
6.已知程序执行前(A)=02H,(SP)=52H,(51H)=FFH,(52H)=FFH0
执行以下程序后,(A)二,(SP)=,(51H)=,(52H)=,(PC)二。
流行音乐DPH
POPDPL
MOVDPTR,#400011
RL一
MOVB,A
MOVCA.A+DPTR
推加速
移动A,B
INCA
MOVCA,A+DPTR
推加速
RET
奥格400011
DB10H,80H,30H,50H,30H,50H
答案:(A)=50H,(SP)=50H,(51H)=30H,(52H)=50H,(PC)=5030H。
7.假设(A)=83H,(R0)=17H,(17H)=34H,执行以下指令后,(A)=.
ANLA,#17H
ORL17H,A
高铁A,R0
中国人民解放军_
答案:(A)二OCBHo
8.假设(A)=5511,(R3)=OAAH,执行指令"ANLA,R5"后,(A)=,(R
3)=.
答案:(A)=00H,(R3)=0AAH«
9.如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)
=3CH,执行以下指令后,(DPH)二,(DPL)=,(SP)=°
流行音乐DPH
POPDPL
流行音乐
答案:(DPH)=3CH,(DPL)=5FH,(SP)=50H。
10.假设(SP)=60H,(A)=30H,(B)=7OH,执行以下指令后SP的容量
为,61H单元的容量为,62H单元的容量为.
推加速
按B
答案:(SP)=62H,(61H)=30H,(62H)=70H。
11.判断下列说法是否正确。
A.一立即寻址意味着被操作的数据在指令本身中,而不是它在指令中的地址
B.—一个指令周期是执行一条指令所花费的时间
C._指令中直接给出的噪作数称为直接寻址
答豪:A.是的;B.是的;C.错误。
12.检查以下命令是否正确。
(1)MOV28H,R2(2)DECDPTR(3)INCDPTR(4)CLRRO
(5)CPLR5(6)MOVRO,RI(7)PUSHDPTR(8)MOVFO,C
(9)MOVF0,Acc.3(10)MOVXA,RI(11)MOVC.30H(12)RL
CRO
答:(1)错(2)错(3)对(4)错(5)错(6)错(7)错(8)对(9:
错(10)对(11)正确(12)错误。
13.哪些寻外模式可用于访问SFR?
A:只能使用直接寻址方式。
14.下面程序段的作用是什么?
推加速
按B
POP累积
流行音乐B
答案:A的容量与B的容量互换。
15.编写满足以下要求但不更改未使用位的内容的指令。
(1)将ACC.3.ACC.4.ACC.5和ACC.6清为“0”。
(2)将累加器A的中间4位清“0
(3)MCC.2和ACC.3设置为"1"。_
答案:(1)ANLA,#87H
(2)ANLA#0C3H
(3)ORLA,#OC11
16.借助本书中的表3-2(指令列表)手动反汇编以下指令代码(十六进制)。
FFCOEOE5FOF0
答案:MOVR7,A
推一个
移动A,B
MOVXDPTR.A
第四章AT89c51单片机汇编语言编程
1.已知程序执行前A=02H,SP=42H,(41H)=FFH,(42H)=FFH。以下
程序执行后,A=;SP=;(41H)=;(42H)=;个人电脑=o
流行音乐DPH
POPDPL
MOVDPTR,#300011
RL一
MOVB,A
MOVCA.A+DPTR
推加速
移动A,B
INCA
MOVCA,A+DPTR
推加速
RET
奥格300011
DB10H、80H、30H、80H、50B80H
答案:A=80H,SP=40H,(51H)=50H,(52H)=80H,PC=8050H。
2.描述伪指令的作用。“伪”是什么意思?常用伪指令的作用是什么?
答:伪指令不属于指令系统中的汇编语言指令,它是程序员发给汇编程序的
控制命令。伪指令只存在于汇编之前的源程序中。因此,“伪”体现在伪指令
汇编后没有生成相应的机器码。
3.解释手动装配、机器装配、交叉装配、拆卸术语概念。
答:(1)手工汇编:手工编程,先用助记指令编写程序,然后通过查找
指令的机器码表,将助记指令一一“翻译”成机器码。翻译”指令的方法称
为手动组装。
(2)机器组装:是借助微机上的软件(汇编器)代替人工组装,完成将助
记指令“翻译”成机器码的工作。
(3)Cross-Assembly:用单片机完成组装,组装后得到的机器码在另一台电
脑(这里是单片机)上运行,称为交叉组装。
(4)反汇编:将二进制机器代码语言程序翻译成汇编语言源程序的过程。
4.下面的程序段组装好后,从1000H开始的每个相关存储单元的容量是多少?
奥格1000H
TABIEQU1234H
TAB2EQU3000H
数据库“主”
DWTAB1,TAB2,7OH
答案:4D41494E123430000070
5.设计子程序时要注意哪些问题?
答:编写子程序时应注意以下问题。
(1)子程序第一条指令前必须有标号。
(2)使用子程序调生指令时,有两个调用指令可用。
①使用绝对调用指令(ACALLaddrll)时,需要注意被调用子程序的
首地址与该绝对调用指令的下一条指令的高5位地址相同,即只能位于相同的
2KB程序存储区。
②使用长调用指令(LCALLaddrl6)时,addrl6是要直接调用的子
程序的目标地址,即被调用的子程序可以放在64KB程序存储区的任意位置。
(3)子程序结构中必须使用栈,栈通常用于保护断点和站点保护。
(4)子程序返回主程序时,最后一条指令必须是RET指令。
(5)子程序可以嵌套,即主程序可以调用子程序,子程序可以调用其他子程
序。
6.尝试编写一个程序,将内部RAM中的45H单元的高4位清除为“0”,将低4位
清除为“1二
A:参考流程如下:
MOVA,45H
ANLA,#OFH
奥尔拉,#OFH
MOV45H,A
7.尝试编写一个程序,查看内部RAM的30H到50H单元格中是否有0AAH数据。如果
是,则将51H单位设置为“01H”;如果没有找到,将51H单位设置为“00H
A:参考流程如下:
开始:移动RO,#30H
MOVR2,tt20H
LOOP:移动A,R0
CJNEA,#OAAH,下一个
移动5111,#01H
LJMP退出
下一个:INCR0
DJNZR2,循环
移动51H,#00H
退出:RET
8.尝试编写一个程序,找出数据“00H”在内部RAM的20H到40H单元中出现的次
数,并将找到的结果存储在41H单元中。
A:参考流程如下:
开始:移动41H,#0
MOVR0,#20H
MOVR2,#20H
LOOP:移动A,R0
JNZNEXT
INC41H
下一个::INCRO
D.JNZR2,循环
RET
9.RAM的21H单元开头有一组单字节无符号数,数据长度为20H。编写程序找
出最大数并将其存储在MAX单元中。
答:略:
10.如果SP=60H,标签LABEL所在的地址是3456H。LCALL指令的地址为
2000H,执行以下指令
2000HLCALL标签
之后堆栈指针SP和堆栈容量发生了什么变化?PC的价值等于多少?是否可以直
接用ACALL替换指令LCALL?如果换成ACALL指令,可调用的地址范围是多少?
答案:(1)SP=SP+1=61H(61H)=PC的低字节二03H
SP=SP+1=62H(62H)=PC高字节二20H
(2)PC=3456H
(3)是
(4)2KB=2048字节
第五章AT89c51MCU的中断系统
1.外部中断1的中断入口地址为。定时器1的中断入口地址为。
答案:0013H;001BH_
2.如果(IP)=00010100B,则优先级最高,最低。
答:外部中断1;定时器T1o
3.AT89c51单片机响应中断后,产生长调用指令LCALL。该指令的执行过程包
括:首先将内容压入堆栈进行断点保护,然后发送长调用指令的16位地址,使程
序执行转向中断地址区。
答:PC,PC,程序存储器。
4.AT89c51单片机判断外部中断请求源的最快响应时间为3个机器周期。
回答。
5.以下是真实的。
A._每个中断源发出的中断请求信号都会在AT89c51单片机的IE寄存器中做标记
B._每个中断源发出的中断请求信号都会在AT89c51单片机的TMOD寄存器中做标
记
C._每个中断源发出的中断请求信号都会在AT89c51单片机的IP寄存器中做标记
D._每个中断源发出的中断请求信号都会在AT89c51单片机的TCON和SCON寄存器
中布标记
答案:Do
6.中断查询确认后,以下各种AT89c51MCU操作条件可以立即响应。
A._目前正在进行高优先级中断处理
B._RETI指令当前正在执行
C._当前指令为DIV指令,处于取指的机器周期内
D._当前指令为MOVA,R3
答案:Do
7.在AT89c51单片机的中断请求源中,需要增加电路来实现中断取消。
A._基于电平的外部中断
B.一脉冲模式下的外部中断
C._外部串行中断
D._定时中断
答案:Ao
8.以下是真实的。
A._同级中断请求按时间顺序响应
B._同一级别的多个中断请求同时会阻塞,系统无法响应
C._低优先级的中断请求不能中断高优先级的中断请求,但是高优先级的
中断请求可以中断低优先级的中断请求
D._同级中断不能嵌套
答案:A、C、Do
9.中断服务程序与普通子程序有什么异同?
答:RETI指令返回时,同时清除中断系统中相应的优先级触发,以允许下一
次中断,而RET指令没有此操作。除了这一点,两条指令不同,其他操作相同。
10.AT89c51微控制器响应外部中断的典型时间是多少?CPU在什么情况下会
延迟响应外部中断请求?
答:略。
11.将外部中断1写入边沿触发的中断初始化部分。
答案:SETBIT1
SETBEX1
SETBEA
12.中断响应的条件是什么?
答:略。
13.一个系统有3个外部中断源1、2、3o当某个中断源的中断请求使南引脚
变为低电平时(见图5-10),需要CPU处理,并优先处理它们从高到低依次为3、
2.1,中断处理程序的入口地址分别为1000H、1100H,1200H。尝试编
写主程序和中断服条子程序(去对应中断处理程序的入口处兀
答:参考图5-10所示电路,参考程序如下:
机构OOOOH
LJMP主
组织机构0013H
LJMPINT.EX1
组织机构0030H
主:CLRITO;电平触发,低电平有效中断
SETBEXI;启用外部中断1
SETDEA
等待:LJMP等待;用就地跳转替换用户程序
;下面是外部中断1服务子程序
INT_EX1:JNBPL2,下一个;P1.2=0,不中断3号,跳转到NEX
T1
LJMPINT_IR3;是3号中断,跳转到对应的中断处理程序
下一个:JNBPl.l,NEXT2;P1.1=0,不中断2号,跳转到NE
XT2
LJMPINT_IR2;跳转到2号中断处理程序
下一个:LJMPINT_TR1;跳转到1号中断处理程序
奥格1000H
INT_IR3:插入相应的中断处理程序
视网膜;从中断返回
奥格1100H
INT_IR2:插入相应的中断处理程序
视网膜;从中断返回
奥格1200H
INT_IR1:插入对应的中断处理程序
视网膜;从中断返回
第六章AT89c51MCU的定时器/计数器
1.下面的说法是正确的。
A._特殊功能寄存器SCON,独立于定时器/计数器控制
B._特殊功能寄存器TCON,独立于定时器/计数器控制
C._特殊功能寄存器IE,独立于定时器/计数器控制
D._特殊功能寄存器TMOD,独立于定时器/计数器控制
答案:A.是的;B.;错误C.错误;D.错误。
2.如果使用的晶振频率为3MHz,定时器/计数器工作在模式0、1和2,最大计
时时间是多少?
答:因为机器循环
因此,在定时器/计数器工作模式0下,最大计时时间为
,3I36
TMAX=2X7^=2X4X10-=8.192ms
也可以得到Mode1下的最大定时时间为262.144ms;Mode2下的最大计时
时间为1024mso
3.在定时器模式下使用定时器/计数器时,谁提供它的计数脉冲?与时间相关的
因素有哪些?
答:定时器/计数器作为定时器使用时,其计数脉冲由系统振荡器产生的部分时
钟信号除以12后提供。时序时间与时钟频率和时序初始值有关。
4.定时器/计数器作为计数器模式时,对外计数频率有什么限制?
答:由于确认1个负跳变需要2个机器周期,即24个振荡周期,所以外部输入计数
脉冲的最大频率为系统振荡器频率的1/24o
5.定时器/计数器T0用于对外部脉冲进行计数,每计数100个脉冲后,T0转
为正常工作模式。计町1ms后,再次进入计数工作模式,以此类推。假设AT89c5
1单片机晶振频率为6MHz,请使用方法1实现,需要编写程序。
答:定时器/计数器T0完成计数和计时工作后,工作在中断模式。除了在主程序
完成时设置第一个计数工作模式外,后面的定时或计数工作模式分别在中断
程序中完成,并用一个标志位来标识下一轮定时器/计数器T0的工作模式.参
考程序如下:
机构0000H
LJMP主
ORGOOOBH
LJMPITOP
主要:MOVTM0D,#06H;定时器/计数器TO为计数模式2
移动TLO,#156;计数100个脉冲的初始值分配
移动TH0,#156
设置门;打开计数门
SETBTRO;开始T0,开始计数
SETBETO;启用T0中断
SETBEA;CPU打开中断
CLRF0;设置下一轮计时模式的标志位
等待:AJMP等待
ITOP:CLREA;CPU关闭中断
HO,COUNT;F0=l,没置旋转计数方式
MOVTMOD,#OOH;定时器/计数器TO为定时模式0
移动THO,#OFEH;定时1ms初始值赋值
MOVTLO,#OCH
SETBEA
视网膜病变
计数:MOVTM0D,#06H
移动TLO,#156
SETBEA
视网膜病变
6.定时器/计数器工作模式2的特点是什么?适用于哪些应用?
答:定时器/计数器的工作模式2具有自动恢复初始值的特点,适用于精确定时,
如波特率的产生。
7.编写一个程序,要求使用TO,使用模式2时序,在P1.0输出一个周期为400
Hs、占空比为10:1的矩形脉冲。
答:根据题意,P1.0椅出矩形脉冲的高低电平时间为10:1,则高低电平时
间分别为363.63口s和36.37从s。如果系统采用6MHz晶振,Tcy=2)s,所
以高低电平输出四舍五入,分别为364Hs和36Hs左右。参考程序如下:
机构0000H
LJMP主
ORGOOOBH
LJMPITOP
主要:MOVTM0D,#02H;定时器/计数器TO为定时模式2
MOVTLO,#4AH;定时364s初始值赋值
SETBTRO;开始T0,开始计数
SETBETO;启用T0中断
SETBEA;CPU打开中断
SETBP1.0
等待:AJMP等待
TTOP:CLREA
CLRP1.0;关闭中断
MOVRO,#9
DLY:DJNZRO,DLY;延迟36s
MOVTLO,#4AH;定时364s初始值赋值
SETBP1.0
SETBEA
视网膜病变
8.一个定时器的计时是有限的,如何利用两个定时器的串行计时来实现更长的
计时?
答:方法一,在第一个定时器的中断程序中关闭玄定时器的中断程序,设置并打
开另一个定时器;在另一个定时器的中断程序中关闭定时器中断,设置并打开另
一个定时器定时器。该方法的计时时间是两个定时器的计时时间之和。
方法二,一个定时器作为定时器,在定时中断后产生一个外部计数脉冲(例如,
通过P1.0连接),而用另一个定时器工作在计数模式。这样,两个定时器的计时
就是一个定时器的计时乘以另一个定时器的计数嗔。
9.当定时器TO用于模式3时,如何控制定时器T1的启停?
答:定时器T1的启动和关闭由Tl(P3.5)端口控制。
10.定时器/计数器测量正单脉冲的宽度。如何获得最大范围?如果时钟频率为
6MHz,可以测量的最大脉冲宽度是多少?
答:使用模式1定时工作模式。最大脉冲宽度为131.072mso
11.编写程序,有功能要求:当P1.0引脚电平为正时,对P1.1的输入脉冲进行计
数;当P1.2引脚电平为负时,停止计数并将计数值写入R0和RI(R1存储在高位,
R0存储在低位)。
答:将Pl.1的输入脉冲接到INTO,即用TO计数器完成PL1端口的脉冲计数,参
考程序如下:
机构0000H
LJMP主
ORGOOOBH
LJMPITOP
主要:JNBP1.0,主要
MOVTM0D,#05H;定时器/计数器TO为计数模式1
SETBTRO;开始T0,开始计数
SETBETO;启用T0中断
SETBEA;CPU打开中断
等待:Pl.2,等待
CLREA
CLRTRO
MOVRI,THO
移动RO,TLO
AJMP$
ITOP:INCR2
视网膜病变
12.THx和TLx(x=0,1)是普通寄存器还是计数器?可以通过命令追时
更改其内容吗?更改后的新值是立即刷新还是在当前计数器已满后刷新?
答:THx和TLx(x=0,1)是由特殊功能寄存器组成的计数器,其内容可以随
时用指令改变,改变后的新值立即刷新。但在读取THx和TLx值时,应先读取THx
值,然后读取TLx,再读取THx值。如果两次读取相同的THx值,则可以确定读取
的音量是正确的。如果两次读数前后读取的THx值有变化,重复上述过程。
第七章AT89c51单片机的串口
1.帧格式为异步串行通信模式,具有1个起始位、8个数据位和1个停止位。
答:1。
2.在串行通信中,发送端和接收端的波特率设置应该是正确的。
答:相等。
3.以下选项是正确的。
A._串口通讯第9位数据位的功能可由用户定义
B._发送数据的第9个数据位的内容预先准备在SCON寄存器的TB8位中
C._串口通信帧发送时,指令将TB8位的状态送入发送SBUF
D._串口通讯接收到的第9个数据发送到SCON寄存器的RB8并保存
E._/口模式1的波特率可变,由定时器/计数器T:的溢出率设定
答案:(A)正确(B)正确(C)错误(D)正确(E)正确。
4.通过串口发送或接收数据时,应在程序中使民。
A._MOVC指令B._MOYX指令C._MOV指令D._XCHD指令________________
答星:(C)MOV指令。
5.串口工作模式1的波特率为。
A._固定,用于Fac/32Bo固定为F°sc/16
C._变量,由定时器/计数器U的溢出率设置D.固定,用于f*/64
答案:(C)。
6.在异步串行通信中,接收方如何知道发送方开始发送数据?
答:当接收器在RXD引脚上检测到有效的负跳变时,它就知道发送器开始发送数
据。
7.串口有几种工作方式?有多少种帧格式?各种工作模式的波特率如何确定?
A:串口有4种工作模式:模式0、模式1、模式2、模式3o
有3种帧格式,模式2和3具有相同的帧格式。
模式0以fosc/12作为固定波特率发送和接收。
模式1的波特率二2SMOD/32X定时器U的溢出率。
模式2的波特率二2SMOD/64Xfosc。
模式3的波特率二2SMOD/32X定时器H的溢出率。
8.假设串口发送的字符格式为1个起始位,8个数据位,1个奇校验位,1个停
止位,请画出发送字符“B"(42H)的帧格式。
B”的帧格式如图所示(先低位后高位)。
起始位(I000)1。杨聆3停卜位
图片
9.为什么定时器/计数器T1用作串口波特率发生器时经常使用模式2?如果时
钟频率和通信波特率已知,如何计算初始值?
答:(1)由于定时器/计数器处于模式2,初始值可以自动重载,所以在设置
串口波特率发生器时,避免了重载参数的操作,减少了重载参数。错误。
(2)已知时钟频率和通信波特率,根据公式(7-3),可计算出初
始值。
10.如果晶振为11.0592MHz,串口工作在模式1,波特率为4800bit/s,用T
1作为波特率发生器,写出控制字和计数初值。
答:经过计算,初始值为FAHo
控制字:ANLTM0D,#0I'0H
ORLMOD,#20H
MOVTH1,#OFAH
MOVTL1,#OFAH
MOVSCON,#40H
11.简述使用串口进行多机通讯的原理。
答:以方法一为例。
发送过程:数据位由TXD端输出,发送的一帧信息为10位。当CPU
执行将数据写入发送缓冲区SBUF的指令时,它开始发送。当传输开始时,部分传
输控制信号SEND变为有效,并且开始位被输出到TXD。之后,每个TX时钟周期过
后,都会产生一个移位脉冲,并从TXD输出一个数据位。8位数据位全部输出后,
中断标志位TI置1,SEND信号无效。
接收过程:当检测到起始位的负跳变时,开始接收。接收时有两种定时控制信号。
其中之一是位检测器采样脉冲,它是RX时钟频率的16倍。即在1位数据周期内,
有16个采样脉冲,以16倍波特率的速率对RXD引脚状态进行采样。当RXD端从1
跳变到0时,检测器启动,接收到的值是连续采样3次,取相同的值2次,确认是
否是真正的起始位的开始,可以更好地消除干扰造成的影响,保证接收数据的可
靠无误启动。
12.使用AT89c51的串口按照工作模式1进行串行数据通信,假设波特率为240
Obit/s,以中断方式传输数据,请编写全双工通信程序。
A:请参考教材P115-P」7的程序,做适当的修改。
13.AT89c51单片机的串口,传输数据的帧格式由1个起始位(0)、7个数据
位、1个偶校验和1个停止位(1)组成。当串口每分钟传输1800个字符时,
尝试计算其波特率。
答:串口每秒传输的字符是1800/60=30个字符/秒,所以波特率为30个字符/秒X
10位1个字符=300b/so
14.为什么AT89c51单片机串口的mode0帧格式中没有起始位(0)和停止位
(1)?
答:串口模式。为同步移位寄存器输入/输出模式,常用于外部移位寄存器扩展并
行I/O口,一般不用于两个89c51之间的串行通信,此模式以fosc/12的固定波特
率从低到高发送或接收数据。
15.TTL电平直接串行传输数据有什么缺点?
答:优点是连接简单,缺点是抗干扰性能差,传瑜距离短。
第八章AT89c51MCU扩展存储器接口设计
1.微控制器存储器的主要功能是存储和。
答:程序,数据。
2.假设外部数据存储器单元2000H的容量为80H,则执行以下指令后累加器A
的容量为:
MOVP2,#20H
MOVRO,#0011
MOVXA,RO
答案:80Ho
3.在内存扩展中,无论是行选方式还是解码方式,最终都会为扩展芯片的片选
端提供控制信号。
答:芯片选择。
4.起始和终止范围为OOOOH到3FFFH的内存容量为KB。
答案:16KB
5.在AT89c51单片机中,PC和DPTR都用于提供地址,但PC用于访问
内存提供地址,DPTR提供访问内存的地址。
答:程序,数据。
6.11条地址线可选1条内存单元,16KB内存单元需要1条地址线。
答案:2KB,14o
7.如果4KBRAM存储器的首地址为0000H,则末地址为H。
答案:0FFFH。
8.区分AT89c51单片机的片外程序存储器和片外数据存储器最可靠的方法是。
A._是位于地址范围的低端还是高端
B._看AT89C51单片机芯片有多远
C._取决于芯片是ROM还是RAM
D._看它是连接到而信号还是连接到西的信号
答案:Do
9.尝试编写程序(如将05H和06H拼接成56H),将原始数据设置在片外数据区的
2001H单元和2002H单元中,将组装好的单字节数放入2002H。
答:本题主要考查外存读写操作的编程,只要正确使用MOVX指令即可。编程思路:
先读取2001H的值,保存在寄存器A中,交换寄存器A的高4位和低4位,然后屏
蔽掉低4位,然后将寄存器A的值保存在30H中,然后读取取2002H的值,保存
在寄存器A中,屏蔽高4位,然后将寄存器A的值与30H进行0R运算,运算结果保
存在2002H中。
机构0000H
主要:MOVDPTR,S2001H;设置数据指针的初始值
MOVXA,DPTR;读取2001H的值
交换一个
ANLA,#0F01I;屏蔽低4位
移动30H,A;保存A
公司DPTR;指向下一个片外RAM位置的指针
MOVXA,DPTR;读取2002H的值
ANLA,#0FH;屏蔽高4位
ORLA,30H;组装
MOVXDPTR,A;保存到200211片外RAM单元
结尾
10.编写程序将外部数据存储器中的所有单元4000H到40ml清除为“0
答:本题主要考查对外部数据块的写操作;编程时只要注意循环数和MOVX指令的
使用即可。
机构0000H
MAIN:MOVA,#0;0到A
o,#omi;设置循环次数
移动DPTR,#4000H;设置数据指针的初始值
循环:MOVXDPTR,A;当前单位清为“0”
公司DPTR;指向下一个单元
DJNZR0,循环;是否结束
结尾
11.在AT89c51单片机系统中,外部程序存储器和数据存储器一共有16位地址线
和8位数据线,为什么不会发生冲突呢?
A:因为控制信号线不同。外扩的RAM芯片可以读写,所以通常有读写控制引脚,
记为。EsumWE,分别连接到RD89c51的sumWR引脚。
外扩的EPROM在正常使用时只能读出不能写入,所以EPROM芯片没有写控制引
脚,只有一个读出引脚,记为丽,这个引脚接89c51单-芯片微型计算机函西。
12.请记下图8-14中4块程序存储器27128占用的地址空间。
答:图片中使用的是解码方式。4个芯片地址分别为0000H~3FFFH、400DH
7FFFH、8000H~BFFFH、COOOH〜FFFFH。
13.现有AT89c51单片机,74LS373锁存器,1块2764EPROM,2块6264RAM,
请用它们组成单片机应用系统,要求如下:
(1)画出硬件电路的接线图,并标出主要引脚;
(2)指出应用系统程序存储空间和数据存储空间各自的地址范围。
答:略。
14.图8-22(a)显示了AT89c51微控制器中存储器的地址空间分布。图8-22
(b)是存储器的地址译码电路。为了使地址译码电路按照图8-22(a)所示的要
求进行正确的寻址,需要画出:
(1)A组跳线端子的正确接线图。
(2)B组跳线端子正辅接线图。
回答:
(1)A组跳线端子正确接线图如下左图所示。
(2)B组跳线端子正确接线图如下右图所示。
第9章AT89c51单片机扩展I/O接口设计
1.判断下列说法是否正确,为什么?
(1)由于81c55没有地址锁存功能,所以必须在与AT89c51芯片的接口电路中增
加地址锁存功能。
(2)在81c55芯片中,决定端口和RAM单元寻址的信号是AD7-ADO和诉。
(3)82c55有一个三态缓冲器,所以可以直接挂在系统的数据总线上。
(4)82c55的PB口可以设置为模式2。
回答:
(1)错误,81c55有地址锁存功能介
(2)错误,在81c55芯片中,引脚I0/M*、A2、Al、A0决定了端口地址
和RAM单元地址。
(3)错了,82c55没有三态缓冲器。
(4)错误,82c55的PB口只能设置为模式0和模式1。
2.I/O接口和I/O端口有什么区别?I/O接口的作用是什么?
答:I/O口简称I/O口,常指I/O接口电路中带有端口地址的寄存器或缓冲区。I
/0接口是指单片机与外设之间的I/O接口芯片。
I/O接口:(1)实现与不同外设的速度匹配;(2)愉出数据媛冲区;(3)
输入数据三态缓冲器。
3.I/O数据传输采用什么样的传输方式?它们在什么情况下使用?
答:(1)同步传输方式。同步交付也称为无条件交付。当外围速度与微控制
器相当时,通常使用这种方法。最典型的同步传输是微控制器和外部数据存储器
之间的数据传输。
(2)查询传输方式。查询传递也称为条件传递,也称为异步传递。M
CU通过查询知道外设准备就绪后,就会传输数据。异步传输的优点是通用性好,
硬件连接和查询程序很简单,但效率不高.为了提高单片机的工作效率,通常采
用中断方式。
(3)中断传输方式。中断传输方式是利用AT89c51本身的中断功能和LS接
口的中断功能来实现I/O数据的传输。单片机只有在外设准备好并发送数据传输
请求时才中断主程序,并进入中断服务程序与外设进行数据传输以传输数据。中
断服务完成后,返回主程序继续执行。因此,使用中断方式可以大大提高单片机
的工作效率。
4.寻址I/O端口的两种常用方法是什么?他们的特点是什么?AT89c51单片机
的I/O口地址采用哪种方式?
答:有两种。(1)独立寻址方式。也就是说,I/O地址空间和内存地址空间是
分开寻址的。优点是I/O地址空间和内存地址空间相互独立,界限清晰。但是,
需要设置一组特殊的读/写I/O命令和控制信号。(2)统一寻址方式。它将
I/O口的寄存器与数据存储单元一视同仁,统一寻址。统一寻址的优点是不需
要特殊的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方
便、功能强大。
89c51单片机采用I/O和外部数据存储器RAM统一寻址方式。
5.82c55的“模式控制字”和“PC端口设置/复位控制字”可以写入82c55的同
一个控制寄存器。82c55如何区分这两个控制字?
答:82c55是通过将控制字的最高位写入控制字寄存器来判断的。最高位为1时
为模式控制字;最高位为0时,为PC端口逐位置位/复位控制字。
6.编写程序,使用82c55的PC端口逐位设置/复位控制字,将PC7设置为“0”,
PC4设置为“1”(已知82c55端口的地址为7FFCH~7FFFH)。
答:本题主要考察82c55的PC口的操作。当控制字的最高位为0时,低4位设置PC
端口。由标题可知,模式控制寄存器的地址为7FFFH0
ORG0100H
主要:MOVDPTR,#7FFFH;控制字寄存器地址7FFFH发送DPTR
MOVA,#OEH;将式7设置为0
MOVXDPTR,A
A,#09H;将PC4设置为1
MOVXDPTR,A
结尾
7.图9-6说明了82c55的PA端口在模式1的响应触点输入模式下的工作过程。
答:当外用里备输入一个数据发送到PA7、PAO时,输入设备会自动向选通输入
线上的奸^82c55发送一个低电平的选通信号,然后PA7~PAO输入的数据存
入PA口.输入数据缓冲器/锁存器;然后使输入缓冲输出线IBFA变为高电平,
通知输入设备82c55的PA口已经接收到它发送的输入数据。当82c55检测到连
接线奸6A由低电平变为高电平,IBFA为1,中断使能触发器INTEA为1时,
使输出线INTRA(PC3)变为高电平,向89c51发出中断请求。INTEA的状态
可以由用户通过设置/重置PC4来控制。89c51响应中断后,可以通过中断服
务程序从PA口的输入数据缓冲器/锁存器中读取外设发送的输入数据。当CP
U读出输入数据时,82c55取消INTRA上的中断请求,并使IBFA为低电平,
通知输入外设可以发送下一个输入数据。
8.81c55的端口是什么?哪些引脚决定了端口的地址?引脚TTMERIN和的作用
是什么TIMEROUT?
答:81c55的端口如下:命令/状态寄存器、PA端口、PB端口、PC端口、计数
器和RAM单元的高8位寄存器和低8位寄存器。引脚10/而、A2、Al、A0
确定端口地址。TIMERIN为计数脉冲输入引脚,输入脉冲的上升沿用于将81
C55芯片的14位计数.器减1•TIMEROUT计数器的输出弓|脚。当14位计数器减
为0时,在该导联上输出一个脉冲或方波,输出信号波形与所选计数器工作模
式有关。
9.有一个AT89c51单片机,扩展一个82c550如果82c55的PB口作为输入,每个
PB口接一个开关,PA口作为输出,每个数位接一个发光二极管,请画出电路原
理图,和写一个程序,当PB口的某个开关接高电口时,PA口对应位置的发光二极
管就亮了。
电路图见图9T0oPA口的每一位都接二极管的阳极,二极管的阴极接地。每个
PB端口连接一个开关和一个上拉电阻,开关的另一端直接接地。这样只需要
将PB口的读取值发送到PA口就可以满足问题的需求。
ORG01OOH
棉:MOVA,#10000010B;设置PA口模式0输出,PB口模式0
输入
移动DPTR,#0FF7FH;控制端口地址发送DPTR
MOVX@DPTR,A;发送模式控制字
MOVDPTR,#0FF7DH;PB端口地址发送DPTR
MOVXA,@DPTR;读取交换机信息
MOVDPTR,#OFF7cH;PA口地址发送DPTR
MOVX@DPTR,A;PA口的PB口点亮对应的二极管
结尾
10.假设81c55的TIMERIN引脚输入频率为4MHz,那么81c55的最大定时时间是多
少?
81c55计数器的初始值范围为3FFFH到2H。当频率为4MHz,初始值为3FFFH时,
最大计时时间为0.004096so
11.假设81c55的TIMERIN引脚输入脉冲频率为1MHz,请编写程序在81c55的引脚
TIMEROUT上输出一个周期为10ms的方波(假设I/O口地址为7F00H~7F05H)。
A:把1MHz的脉冲变成10ms的方波,其实就是分频。分频前后的频率比为100:1,
所以只要将定时器的初值设置为64H(假设I/。口地址为7F00H~7F05H)。
开始:移动DPTR,#7I-04H;指向计数器低8位的指针
MOVA,#64H;向A发送初始值
MOVX@DPTR.A;初始值被发送到计数器的低8位
公司DPTR;指向计数器的高8位
MOVA,#40H;计数器方波输出
MOVX@DPTR.A
MOVDPTR,#7F00H;指向命令/状态端口
MOVA,#0C2H;设置控制字
MOVX@DPTR.A;启动计数器
结尾
第10章AT89c51单片机接口设计及输入外设和输出外设
1.以下项目属实。
A._HD7279是键盘和LED显示屏的专用接口芯片
B._看单片机与微型打印机的接口中,打印机的BUSY信号可作为查询信号或中断
请求信号
C._提供88键盘扫描方式工作的接口电路,接口电路只需提供2个输入端口和
1个输出端口
D._LED显示屏的字体代码是固定的
答案:A.是的;B.是的;C.错误的;D.错误。
2.为什么要消除按键的机械抖动?软件消除按键机械抖动的原理是什么?
答:在按钮合闸和分闸过程中,开关的机械特性导致按钮抖动的产生。如果没有
消除按键的机械抖动,则按键状态的读数可能是错误的。密钥抖动的消除通常通
过软件或硬件去抖动来执行。软件去抖的原理是当第一次检测到按键时,按键对
应的线路为低电平。低电平,如果还是低电平,则确认该行确实有按键。
3.LED的静态显示方式和动态显示方式有什么区别?各自的优点和缺点是什
么?
A:在静态显示中,数据分别发送到每个LEDo在动态显示的情况下,数据同时
发送到每个LED,然后根据位选择线显示哪个LED。静态显示亮度很高,但端
口线占用很大。动态显示口占用线路少,适用于显示位数较多的场合。
4.写出表10-1中只显示小数点”的段码。
答:80H(共阴极);7FH(共阳极)。
5.描述矩阵键盘上按键的识别原理。
答:按键设置在行列线的交点处,行列线分别接在按键开关的两端。行线通过一
个上拉电阻连接到+5V。当没有按键按下时,行线处于高电平状态,当按下
按键时,行线电平状态将由与该行线相连的列线的电源决定。和平的决定。
如果列线的电平低,则行线的电平低;如果列线的电平高,则行线的电平也
高。只有协调行列设信号并适当处理,才能确定闭合键的位置。
6.对于图10T0所示的键盘,利用换行法的原理,编写一个程序,识别被按下的
键并获取其键号。
答:先给端口P1的高4位送低电平,读取端口P1的低4位的值;然后将低电平发送
到端门P1的低4位,读取端口P1的高4位的值,将两次读取的值组合在
一起,得到密钥的特征码,然后密钥值为根据特征码搜索。参考程序如下:
KEYIN:MOVP1,#OFH;反向读键
MOVA,Pl
ANLA,#OFH
MOVB,A
MOVP1,#OFOH
MOVA,Pl
ANLA,#OFOH
奥尔A,B
CJNEA,#OFFH,KEYIN1
转帐;未按下
KEYIN1:MOVB,A;临时存储功能代码
移动DPTR,#KEYCOD;指向特征码表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论