文档库 最新最全的文档下载
当前位置:文档库 › 单片机课后答案

单片机课后答案

单片机课后答案
单片机课后答案

第一章

1.单片机具有哪些特点

(1)片内存储容量越来越大。

(2抗干扰性好,可靠性高。

(3)芯片引线齐全,容易扩展。

(4)运行速度高,控制功能强。

(5)单片机内部的数据信息保存时间很长,有的芯片可以达到100年以上。

2. 89C51单片机内包含哪些主要逻辑功能部件?

答:80C51系列单片机在片内集成了以下主要逻辑功能部件:

(l)CPU(中央处理器):8位

(2)片内RAM:128B

(3)特殊功能寄存器:21个

(4)程序存储器:4KB

(5)并行I/O口:8位,4个

(6)串行接口:全双工,1个

(7)定时器/计数器:16位,2个

(8)片内时钟电路:1个

3.什么是微处理器(CPU)、微机和单片机?

答:微处理器本身不是计算机,但它是小型计算机或微机的控制和处理部分。

微机则是具有完整运算及控制功能的计算机,除了微处理器外还包括存储器、接口适配器以及输入输出设备等。

单片机是将微处理器、一定容量的RAM、ROM以及I/O口、定时器等电路集成在一块芯片上,构成的单片微型计算机。

4. 微型计算机怎样执行一个程序?

答:通过CPU指令,提到内存当中,再逐一执行。

5.什么是嵌入式系统?他有哪些类型?为什么说单片机是典型的嵌入式系统?

答; 嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。

它有嵌入式微处理器、嵌入式微控制器、嵌入式DSP处理器、嵌入式片上系统等。

嵌入式系统的出现最初是基于单片机的。它从体系结构到指令系统都是按照嵌入式应用特点专门设计的,能最好的满足面对控制对象,应运系统的嵌入、现场的可靠运行以及非凡的控制品质要求。因此,她是典型的嵌入式系统。第二章

2.89C51的EA端有何用途?

答:/EA端接高电平时,CPU只访问片内https://www.wendangku.net/doc/b59035301.html,并执行内部程序,存储器。/EA端接低电平时,CPU只访问外部ROM,并执行片外程序存储器中的指令。/EA端保持高电平时,CPU执行内部存储器中的指令。

3. 89C51的存储器分哪几个空间?如何区别不同空间的寻址?

答:ROM(片内ROM和片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits地址)(64KB)

片外RAM(MOVX)(16bits地址)(64KB)

片内RAM(MOV)(8bits地址)(256B)

4. 简述89C51片内RAM的空间分配。

答:片内RAM有256B、低128B是真正的RAM区、高128B是SFR(特殊功能寄存器)区

5. 简述布尔处理存储器的空间分配,片内RAM中包含哪些可位寻址单元。

答:片内RAM区从00H~FFH(256B)、其中20H~2FH(字节地址)是位寻址区

对应的位地址是00H~7FH

6. 如何简捷地判断89C51正在工作?

答:用示波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路工作是否正常?)

ALE(地址锁存允许)(Address Latch Enable)输出是fosc的6分频

用示波器观察ALE是否有脉冲输出(判断 8051芯片的好坏?)

观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?)

因为/PSEN接外部EPROM(ROM)的/OE端子

OE=Output Enable(输出允许)

7. 89C51如何确定和改变当前工作寄存器组?

答:PSW(程序状态字)(Program Status Word)中的RS1和RS0

可以给出4中组合

用来从4组工作寄存器组中进行选择

PSW属于SFR(Special Function Register)(特殊功能寄存器)

9. 读端口锁存器和“读引脚”有何不同?各使用哪种指令?

答:读锁存器(ANL P0,A)就是相当于从存储器中拿数据,而读引脚是从外部拿数据(如MOV A,P1 这条指令就是读引脚的,意思就是把端口p1输入数据送给A)

传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常用这些指令于外部通信,判断外部键盘等;字节交换XCH、XCHD算术及逻辑运算 ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制转移CJNE、DJNZ都属于读锁存器。

10. 89C51 P0~P3口结构有何不同?用作通用I/O口输入数据时,应注意什么?

答:P0口内部没有上拉电阻,可以用做16位地址的低8位;

P3有第二功能;

P2口可以用做16位地址的高8位;

需要上拉电阻。OC门电路无法输出高低电平,只有靠上拉电阻才能实现

11. 89C51单片机的EA信号有何功能?在使用8031时,EA信号引脚应如何处理?

答:(1)80C51单片机的EA信号的功能

EA为片外程序存储器访问允许信号,低电平有效;在编程时,其上施加21V的编程电压

EA引脚接高电平时,程序从片内程序存储器开始执行,即访问片内存储器;EA引脚接低电平时,迫使系统全部执行片外程序存储器程序。

(2)在使用80C31时,EA信号引脚的处理方法

因为80C31没有片内的程序存储器,所以在使用它时必定要有外部的程序存储器,EA 信号引脚应接低电平。

12. 89C51单片机有哪些信号需要芯片引脚以第2功能的方式提供?

答:第一功能第二功能

串行口:

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

中断:

P3.2 INT0外部中断0

P3.3 INT1外部中断1

定时器/计数器(T0、T1):

P3.4 T0(定时器/计数器0的外部输入)

P3.5 T1(定时器/计数器1的外部输入)

数据存储器选通:

P3.6 WR(外部存储器写选通,低电平有效,输出)

P3.7 RD(外部存储器读选通,低电平有效,输出)

定时器/计数器(T2):

P1.0 T2(定时器T2的计数端)

P1.1 T2EX(定时器T2的外部输入端)

13. 内部RAM低128字节单元划分为哪3个主要部分?各部分主要功能是什么?

答:片内RAM低128单元的划分及主要功能:

(l)工作寄存器组(00H~lFH)

这是一个用寄存器直接寻址的区域,内部数据RAM区的0~31(00H~lFH),共32个单

元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0~R7。

(2)位寻址区(20H~2FH)

从内部数据RAM区的32~47(20H~2FH)的16个字节单元,共包含128位,是可位寻

址的RAM区。这16个字节单元,既可进行字节寻址,又可实现位寻址。

(3)字节寻址区(30H~7FH)

从内部数据RAM区的48~127(30H~7FH),共80个字节单元,可以采用间接字节寻址的方法访问。

14. 使单片机复位有几种方法?复位后机器的初始状态如何?

答:(1)单片机复位方法

单片机复位方法有:上电自动复位、按键电平复位和外部脉冲三种方式

(2)复位后的初始状态

复位后机器的初始状态,即各寄存器的状态:PC之外,复位操作还对其他一些特殊功能寄存器有影响,它们的复位状态如题表2-1所例

15. 开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?

答:一般开机复位后都是选择第一组通用工作寄存器作为工作寄存器的,一共有4组,分别为0.1.2.3连续位于00h 到1FH地址,

然后在机器中有个程序状态字PSW,它的第四和第三位RS1,RS0是用来选择工作寄存器组的,可能不同机器地址稍有不同。他们俩的值和寄存器组的关系:

RS1/RS0 0/0 0/1 1/0 1/1

使用的工作寄存器 0 1 2 3

地址 00-07 08-0F 10-17 18-1F

写程序的时候就是通过定义程序状态字来选择使用不同的寄存器组。也可以直接对RS1和RS0赋值。

16. 程序状态寄存器PSW的作用是什么?常用标志有哪些位?作用是什么?

答:PSW是一个SFR(特殊功能寄存器)位于片内RAM的高128B

具体地址D0H(00H~FFH)(片内RAM的编址)(8bits编址方法)

PSW=Program Status Word(程序状态字)

PSW的常用标志位有哪些?

CY=Carry(进位标志位)、AC=Auxiliary Carry(辅助进位标志位)(半进位标志位)

F0用户标志位、RS1,RS0,用来选择当前工作寄存器组(R0~R7)(4选1)

OV=Overflow(溢出标志位)、P=Parity(奇偶校验位)

17. 位地址7CH与字节地址7CH如何区别?位地址7CH具体在片内RAM中的什么位置?

答:用不同的寻址方式来加以区分,即访问128个位地址用位寻址方式,访问低128字节单元用字节寻址和间接寻址。具体地址为2F的第五位,即为7C。

18.89C51单片机的时钟周期与振荡周期之间有什么关系?什么叫机器周期和指令周期?

答:时钟信号的周期称为机器状态周期,是振荡周期的两倍。一个机器周期是指CPU访问存储器一次所需的时间。指令周期是执行一条指令所需的时间。

19. 一个机器周期的时序如何划分?

答:一个机器周期=12个震荡周期=6个时钟周期(状态周期)

S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1,S5P2,S6P1,S6P2 其中s=state(状态),p=phase (相位)

20.什么叫堆栈?堆栈指针SP的作用是什么?89C51单片机堆栈的容量不能超过多少字节?

答:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。要点:堆:顺序随意栈:后进先出(Last-In/First-Out)

在调用子程序时需要保存调用函数的CPU寄存器PC指针,PC指针是被CALL指令自动压入SP所指向的片内存储器,CPU寄存器要由用户用PUSH指令自行保存,因此SP的作用就是一个指针,当进行中断调用,子函数调用时将现场数据压入SP所指向的存储器,SP自动增加1或2,当中断结束RETI,调用返回RET,POP时将SP数据弹出,SP自动减1或2

8051最大为128字节的片内存储器,0X20以上理论都可以做堆栈用96字节,8052为256字节224字节可用,但这样便没有其它空间可用于数据存储现在的单片机的程序一般都能用C51来,不用关心堆栈大小与SP寄存器

21. 89C51有几种低功耗方式?如何实现?

答:空闲方式和掉电方式

空闲方式和掉电方式是通过对SFR中的PCON(地址87H)相应位置1而启动的。

当CPU执行完置IDL=1(PCON.1)的指令后,系统进入空闲工作方式。这时,内部时钟不向CPU提供,而只供给中断、串行口、定时器部分。CPU的内部状态维持,即包括堆栈指针SP、程序计数器PC、程序状态字PSW、累加器ACC所有的内容保持不变,端口状态也保持不变。ALE和PSEN保持逻辑高电平。

当CPU执行一条置PCON.1位(PD)为1的指令后,系统进入掉电工作方式。在这种工作方式下,内部振荡器停止工作。由于没有振荡时钟,因此,所有的功能部件都停止工作。但内部RAM区和特殊功能寄存器的内容被保留,而端口的输出状态值都保存在对应的SFR中,ALE和PSEN都为低电平。

22. PC与DPTR各有哪些特点?有何异同?

答:(1)程序计数器PC作为不可寻址寄存器的特点

程序计数器PC是中央控制器申最基本的寄存器,是一个独立的计数器,存放着下一条将程序存储器中取出的指令的地址。

程序计数器PC变化的轨迹决定程序的流程。程序计数器的宽度决定了程序存储器可以

寻址的范围。

程序计数器PC的基本工作方式有:

①程序计数器PC自动加1。这是最基本的工作方式,也是这个专用寄存器被称为计数

器的原因。

②执行条件或无条件转移指令时,程序计数器将被置入新的数值程序的流向发生变化。

变化的方式有下列几种:带符号的相对跳转SJMP、短跳转AJMP、长跳转LJMP及JMP @A+DPTR等。

③在执行调用指令或响应中断时:

●PC的现行值,即下一条将要执行的指令的地址送入堆栈,加以保护;

●将子程序的入口地址或者中断矢量地址送入PC,程序流向发生变化,执行子程序或中断服务程序;

●子程序或中断服务程序执行完毕,遇到返回指令RET或RETI时,将栈顶的内容送到PC寄存器中,程序流程又返回到原来的地方,继续执行。

(2)地址指针DPTR的特点

地址指针DPTR的特点是,它作为片外数据存储器寻址用的地址寄存器(间接寻址)。

(3)地址指针DPTR与程序计数器PC的异同

①相同之处:

●两者都是与地址有关的、16位的寄存器。其中,PC与程序存储器的地址有关,而

DPTR与数据存储器的地址有关。

●作为地址寄存器使用时,PC与DPTR都是通过P0和P2口(作为16位地址总线)输

出的。但是,PC的输出与ALE及PSEN有关;DPTR的输出,则与ALE、RD及WR相联系。

②不同之处:

●PC只能作为16位寄存器对待,由于有自动加1的功能,故又称为计数器;

DPTR可以作为16位寄存器对待,也可以作为两个8位寄存器对待。

●PC是不可以访问的,有自己独特的变化方式,它的变化轨迹决定了程序执行的流程;

DPTR是可以访问的,如MOV DPTR,#XXXXH,INC DPTP。

23. 89C51端口锁存器的“读—修改—写”操作与“读引脚”操作有何区别?

答:指令系统中有些指令读锁存器的值, 有些指令则读引脚上的值。读锁存器指令是从锁存器中读取一个值并进行处理, 把处理后的值(原值或已修改后的值)重新写入锁存器中。这类指令称为读-修改-写指令。

对于读-修改-写指令。直接读锁存器而不是读端口引脚, 是因为从引脚上读出的数据不一定能真正反映锁存器的状态。

第三章

1、指令:CPU根据人的意图来执行某种操作的命令

指令系统:一台计算机所能执行的全部指令集合

机器语言:用二进制编码表示,计算机能直接识别和执行的语言

汇编语言:用助记符、符号和数字来表示指令的程序语言

高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言

3、简述8951的汇编指令格式。答:操作码 [目的操作数] [,源操作数]

4、简述8951的寻址方式和所能涉及的寻址空间。

寻址方式寻址空间

立即数寻址程序存储器ROM

直接寻址片内RAM低128B、特殊功能寄存器

寄存器寻址工作寄存器R0-R7、A、B、C、DPTR

寄存器间接寻址片内RAM低128B、片外RAM

变址寻址程序存储器(@A+PC,@A+DPTR)

相对寻址程序存储器256B范围(PC+偏移量)

位寻址片内RAM的20H-2FH字节地址、部分SFR

5、访问特殊功能寄存器和外数据存储器,应采用那些寻址方式?

答: SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址

6、8951中已知(30H)=38H,请分析以下各是什么指令,说明源操作数的寻址方式以及执行结果。

MOV A,40H ;直接寻址(40H)→A

MOV R0,A;寄存器寻址(A)→R0

MOV P1,#0F0H ;立即数寻址0F0→P1

MOV @R0,30H;直接寻址(30H)→(R0)

MOV DPTR,#3848H;立即数寻址 3848H→DPTR

MOV 40H,38H;直接寻址(38H)→40H

MOV R0,30H;直接寻址(30H)→R0

MOV P0,R0;寄存器寻址( R0 )→P0

MOV 18H,#30H ;立即数寻址30H→18H

MOV A,@R0 ;寄存器间接寻址 ((R0)) →A

MOV P2,P1 ;直接寻址(P1)→P2

最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H

注意:→左边是内容,右边是单元

7、8951片内高128字节的地址寻址要注意什么/?

答:用直接寻址,位寻址,寄存器寻址

8、指出些列指令的本质?

MOV A,DATA ;直接寻址2字节1周期

MOV A,#DATA ;立即数寻址 2字节1周期

MOV DATA1,DATA2 ;直接寻址3字节2周期

MOV 74H,#78H ;立即数寻址 3字节2周期

9、设R0的内容分为32H,A的内容为48H,。。。。请指出在执行下列程序段后上述各单元内容的变化?

MOV A,@R0 ;((R0))=80H→A

MOV @R0,40H ;(40H)=08H→(R0)

MOV 40H,A ;(A)=80→40H

MOV R0,#35H ;35H→R0

最后结果:(R0)=35H (A)=80H,(32H)=08H,(40H)=80H

10、如何访问SFR,可采用那些寻址方式?

答:用直接寻址,位寻址,寄存器寻址

11、如何访问片外RAM,可使用那些寻址方式?

答:只能采用寄存器间接寻址(用MOVX指令)

12、如何访问片内RAM,可使用那些寻址方式?

答:低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7)

高128字节:直接寻址,位寻址,寄存器寻址

13、如何访问片内外程序存储器,可使用那些寻址方式?

答:采用变址寻址(用MOVC指令)

14、说明十进制调整的原因和方法?

答:压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。用DA A指令调整(加06H,60H,66H)

15、说明8951布尔机处理机功能?

答:用来进行位操作

16、ANL A,#17H ;83H∧17H=03H→A

ORL 17H,A ;34H∨03H=37H→17H

XRL A,@R0 ;03H⊕37H=34H

CPL A ;34H求反等于CBH

所以(A)=CBH

17、(1)SETB ACC.0或SETB E0H ;E0H是累加器的地址

(2)CLR ACC.7

CLR ACC.6

CLR ACC.5

CLR ACC.4

(3)CLR ACC.6

CLR ACC.5

CLR ACC.4

CLR ACC.3

18、MOV 27H,R7

MOV 26H,R6

MOV 25H,R5

MOV 24H,R4

MOV 23H,R3

MOV 22H,R2

MOV 21H,R1

MOV 20H,R0

19、MOV 2FH,20

MOV 2EH,21

MOV 2DH,22

20、编程,进行两个16位数的减法:6F5DH-13B4H,结果存入内部RAM的30和31H单元,30H存低八位。CLR C

MOV A,#5DH ;被减数的低8位→A

MOV R2,#B4H ;减数低8位→R2

SUBB A,R2 ;被减数减去减数,差→A

MOV 30H,A ;低8位结果→30H

MOV A,#6FH ;被减数的高8位→A

MOV R2,#13H ;减数高8位→R2

SUBB A,R2 ;被减数减去减数,差→A

MOV 31H,A ;高8位结果→30H

注意:如果在你的程序中用到了进位位,在程序开始的时候要记得清0进位位

21、编程,若累加器A满足下列条件,则程序转至LABEL存储单元,设A中为无符号数。

(1)A≥10

CJNE A,#0AH,L1 ;(A)与10比较,不等转L1

LJMP LABEL ;相等转LABEL

L1:JNC LABEL ;(A)大于10,转LABEL

或者:

CLR C

SUBB A,#0AH

JNC LABEL

(2)A>10

CJNE A,#0AH,L1 ;(A)与10比较,不等转L1

RET ;相等结束

L1:JNC LABEL ;(A)大于10,转LABEL

RET ;(A)小于10,结束

或者:

CLR C

SUBB A,#0AH

JNC L1

RET

L1:JNZ LABEL

RET

(3)A≤10

CJNE A,#0AH,L1 ;(A)与10比较,不等转L1

L2:LJMP LABEL ;相等转LABEL

L1:JC L2 ;(A)小于10,转L2

RET

或者:

CLR C

SUBB A,#0AH

JC LABEL

JZ LABEL

RET

22、(SP)=23H,(PC)=3412H参看书上80页

23、(SP)=27H,(26H)=48H,(27H)=23H,(PC)=3456H参看书上79页

24、不能。ACALL是短转指令,可调用的地址范围是2KB。

在看这个题的时候同时看一下AJMP指令。同时考虑调用指令ACALL和LCALL指令和RET指令的关系。

25、编程,查找内部RAM中20H-50H单元中是否有0AAH这一数据,若有则将51h单元置为01H,如无,则将51H 单元清零。

MOV R2,#31H ;数据块长度→R2

MOV R0,#20H ;数据块首地址→R0

LOOP:MOV A,@R0 ;待查找的数据→A

CLR C ;清进位位

SUBB A,#0AAH ;待查找的数据是0AAH吗

JZ L1 ;是,转L1

INC R0 ;不是,地址增1,指向下一个待查数据

DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找

MOV 51H,#00H ;等于0,未找到,00H→51H

RET

L1:MOV 51H,#01H ;找到,01H→51H

RET

26、编程查找内部RAM的20H-50H单元中出现00H的次数并将结果存入51H中。

MOV R2,#31H ;数据块长度→R2

MOV R0,#20H ;数据块首地址→R0

LOOP:MOV A,@R0 ;待查找的数据→A

JNZ L1 ;不为0,转L1

INC 51H ;为0,00H个数增1

L1:INC R0 ;地址增1,指向下一个待查数据

DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找

RET

27、外部数据RAM中有一个数据块,首地址为SOURCE,要求将该数据传送到内部RAM以DIST开头的区域在,直到遇到数字字符¥时结束。

MOV DPTR,#SOURCE ;源首地址→DPTR

MOV R0,#DIST ;目的首地址→R0

LOOP:MOVX A,@DPTR ;传送一个字符

MOV @R0,A

INC DPTR ;指向下一个字符

INC R0

CJNE A,#24H,LOOP ;传送的是“$”字符吗?不是,传送下一个字符

RET

28、已知R3和R4中存有一个十六位的二进制数,高位在3中,低位在4中,编程求其补,并存回原处。

MOV A,R3 ;取该数高8位→A

ANL A,#80H ;取出该数符号判断

JZ L1 ;是正数,转L1

MOV A,R4 ;是负数,将该数低8位→A

CPL A ;低8位取反

ADD A,#01H ;加1

MOV R4,A ;低8位取反加1后→R4

MOV A,R3 ;将该数高8位→A

CPL A ;高8位取反

ADDC A,#00H ;加上低8位加1时可能产生的进位

MOV R3,A ;高8位取反加1后→R3

L1: RET

29、已知30H和31H中存有一个十六位的二进制数,高位在前,低位在后,编程将它们乘2,并存回原处。

CLR C ;清进位位C

MOV A,31H ;取该数低8位→A

RLC A ;带进位位左移1位

MOV 31H,A ;结果存回31H

MOV A,30H ;取该数高8位→A

RLC A ;带进位位左移1位

MOV 30H,A ;结果存回30H

30、内存中有两个4字节以压缩的BCD码形式存放的十进制数,一个放在30H-33H的单元中,一个放在40H-43H 的单元中,编程求他们的和,结果放在30H-33H的单元中。

MOV R2,#04H ;字节长度→R2

MOV R0,#30H ;一个加数首地址→R0

MOV R1,#40H ;另一个加数首地址→R1

CLR C ;清进位位

LOOP:MOV A,@R0 ;取一个加数

ADDC A,@R1 ;两个加数带进位位相加

DA A ;十进制调整

MOV @R0,A ;存放结果

INC R0 ;指向下一个字节

INC R1 ;

DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找

RET

31、编程,把片外RAM从2000H开始存放的8个数传送到片内30H开始的单元中。

MOV R2,#08H ;数据块长度→R2

MOV R0,#30H ;数据块目的地址→R0

MOV DPTR,#2000H ;数据块源地址→DPTR

LOOP:MOVX A,@ DPTR ;传送一个数据

MOV @R0,A

INC DPTR ;指向下一个数据

INC R0 ;

DJNZ R2,LOOP ;数据块长度减1,没传送完,继续传送

RET

35、解:(1000H)=53H (1001H)=54H (1002H)=41H

(1003H)=52H (1004H)=54H (1005H)=12H

(1006H)=34H (1007H)=30H (1008H)=00H

(1009H)=70H

36、阅读下列程序说明其功能

MOV R0,#40H ;40H→R0

MOV A,@R0 ;98H→A

INC R0 ;41H→R0

ADD A,@R0 ;98H+(41H)=47H→A

INC R0

MOV @R0,A ;结果存入42H单元

CLR A ;清A

ADDC A,#0 ;进位位存入A

INC R0

MOV @R0,A ;进位位存入43H

功能:将40H,41H单元中的内容相加结果放在42H单元,进位放在43H单元,(R0)=43H,(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H

37、同上题

MOV A,61H ;F2H→A

MOV B,#02H ;02H→B

MUL AB ;F2H×O2H=E4H→A

ADD A,62H ;积的低8位加上CCH→A

MOV 63H,A ;结果送62H

CLR A ;清A

ADDC A,B ;积的高8位加进位位→A

MOV 64H,A ;结果送64H

功能:将61H单元的内容乘2,低8位再加上62H单元的内容放入63H,将结果的高8位放在64H单元。(A)=02H,(B)=01H,(61H)=F2H,(62H)=CCH,(63H)=B0H,(64H)=02H

39、MOV A,XXH

ORL A,#80H

MOV XXH,A

40、(2)MOV A,XXH

MOV R0,A

XRL A,R0

第五章

1、什么是中断和中断系统?其主要功能是什么?

答:当CPU正在处理某件事情的时候,外部发生的某一件事件请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件,中断服务处理完该事件以后,再回到原来被终止的地方,继续原来的工作。这种过程称为中断,实现这种功能的部件称为中断系统。功能:

(1)使计算机具有实时处理能力,能对外界异步发生的事件作出及时的处理

(2)完全消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率

(3)实现实时控制

2、试编写一段对中断系统初始化的程序,使之允许INT0,INT1,TO,串行口中断,且使T0中断为高优先级中断。解:MOV IE,#097H

MOV IP,#02H

3、在单片机中,中断能实现哪些功能?

答:有三种功能:分时操作,实时处理,故障处理

4、89C51共有哪些中断源?对其中端请求如何进行控制?

答:(1)89C51有如下中断源

① :外部中断0请求,低电平有效

② :外部中断1请求,低电平有效

③T0:定时器、计数器0溢出中断请求

④T1:定时器、计数器1溢出中断请求

⑤TX/RX:串行接口中断请求

(2)通过对特殊功能寄存器TCON、SCON、IE、IP的各位进行置位或复位等操作,可实现各种中断控制功能

5、什么是中断优先级?中断优先处理的原则是什么?

答:中断优先级是CPU相应中断的先后顺序。原则:

(1)先响应优先级高的中断请求,再响应优先级低的

(2)如果一个中断请求已经被响应,同级的其它中断请求将被禁止

(3)如果同级的多个请求同时出现,则CPU通过内部硬件查询电路,按查询顺序确定应该响应哪个中断请求查询顺序:外部中断0→定时器0中断→外部中断1→定时器1中断→串行接口中断

6、说明外部中断请求的查询和响应过程。

答:当CPU执行主程序第K条指令,外设向CPU发出中断请求,CPU接到中断请求信号并在本条指令执行完后,中断主程序的执行并保存断点地址,然后转去响应中断。CPU在每个S5P2期间顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如果查询到某个中断标志为1,将在接下来的机器周期S1期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。中断服务完毕后,CPU返回到主程序第K+1条指令继续执行。

7、89C51在什么条件下可响应中断?

答:

(1)有中断源发出中断请求

(2)中断中允许位EA=1.即CPU开中断

(3)申请中断的中断源的中断允许位为1,即中断没有被屏蔽

(4)无同级或更高级中断正在服务

(5)当前指令周期已经结束

(6)若现行指令为RETI或访问IE或IP指令时,该指令以及紧接着的另一条指令已执行完毕

8、简述89C51单片机的中断响应过程。

答:CPU在每个机器周期S5P2期间顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在接下来的机器周期S1期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。一旦响应中断,89C51首先置位相应的中断“优先级生效”触发器,然后由硬件执行一条长调用指令,把当前的PC值压入堆栈,以保护断点,再将相应的中断服务的入口地址送入PC,于是CPU接着从中断服务程序的入口处开始执行。对于有些中断源,CPU在响应中断后会自动清除中断标志。

9、在89C51内存中,应如何安排程序区?

答:主程序一般从0030H开始,主程序后一般是子程序及中断服务程序。在这个大家还要清除各个中断的中断矢量地址。

10、试述中断的作用及中断的全过程。

答:作用:对外部异步发生的事件作出及时的处理

过程:中断请求,中断响应,中断处理,中断返回

11、当正在执行某一个中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?

答:(1)符合以下6个条件可响应新的中断请求:

a)有中断源发出中断请求

b)中断允许位EA=1,即CPU开中断

c)申请中断的中断源的中断允许位为1,即中断没有被屏蔽 d)无同级或更高级中断正在被服务

e)当前的指令周期已结束

f)若现行指令为RETI或访问IE或IP指令时,该指令以及紧接着的另一条指令已被执行完

12、89C51单片机外部中断源有几种触发中断请求的方法?如何实现中断请求?

答:有两种方式:电平触发和边沿触发

电平触发方式:CPU在每个机器周期的S5P2期间采样外部中断引脚的输入电平。若为低电平,使IE1(IE0)置“1”,申请中断;若为高电平,则IE1(IE0)清零。

边沿触发方式:CPU在每个机器周期S5P2期间采样外部中断请求引脚的输入电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断请求为高电平,接着下一个机器周期采样到外部中断请求为低电平,则使IE1(IE0)置“1”申请中断;否则,IE1(IE0)置0。

13、89C51单片机有五个中断源,但只能设置两个中断优先级,因此,在中断优先级安排上受到一定的限制。试问以下几种中断优先顺序的安排(级别由高到低)是否可能:若可能,则应如何设置中断源的中断级别:否则,请简述不可能的理由。

⑴定时器0,定时器1,外中断0,外中断1,串行口中断。

可以,MOV IP,#0AH

⑵串行口中断,外中断0,定时器0,外中断1,定时器1。可以,MOV IP,#10H

⑶外中断0,定时器1,外中断1,定时器0,串行口中断。

不可以,只能设置一级高级优先级,如果将INT0,T1设置为高级,而T0级别高于INT1.

⑷外中断0,外中断1,串行口中断,定时器0,定时器1 。可以,MOV IP,#15H

⑸串行口中断,定时器0,外中断0,外中断1,定时器1。不可以

⑹外中断0,外中断1,定时器0,串行口中断,定时器1 。不可以

⑺外中断0,定时器1,定时器0,外中断1,串行口中断。可以,MOV IP,#09H

14、89C51各中断源的中断标志是如何产生的?又是如何清0的?CPU响应中断时,中断入口地址各是多少?

答:各中断标志的产生和清“0”如下:

(1)外部中断类

外部中断是由外部原因引起的,可以通过两个固定引脚,即外部中断0和外部中断1输入信号。

外部中断0请求信号,由P3.2脚输入。通过IT0来决定中断请求信号是低电平有效还是下跳变有效。一旦输入信号有效,则向CPU申请中断,并且使IE0=1。硬件复位。

外部中断1请求信号,功能与用法类似外部中断0

(2)定时中断类

定时中断是为满足定时或计数溢出处理需要而设置的。当定时器/计数器中的计数结构发生计数溢出的,即表明定时时间到或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志位。这种中断请求是在单片机芯片内部发生的,无需在芯片上设置引入端,但在计数方式时,中断源可以由外部引入。

TF0:定时器T0溢出中断请求。当定时器T0产生溢出时,定时器T0请求标志TF0=1,请求中断处理。使用中断时由硬件复位,在查询方式下可由软件复位。

TF1:定时器T1溢出中断请求。功能与用法类似定时器T0

(3)串行口中断类

串行口中断是为串行数据的传送需要而设置的。串行中断请求也是在单片机芯片内部发生的,但当串行口作为接收端时,必须有一完整的串行帧数据从RI端引入芯片,才可能引发中断。

RI或TI:串行口中断请求。当接收或发送一串帧数据时,使内部串行口中断请求标志RI或TI=1,并请求中断。响应后必须软件复位。

CPU响应中断时,中断入口地址如下:

中断源入口地址

外部中断0 0003H

定时器T0中断 000BH

外部中断1 0013H

定时器T1中断 001BH

串行口中断 0023H

15、中断响应时间是否为确定不变的?为什么?

答:中断响应时间不是确定不变的。由于CPU不是在任何情况下对中断请求都予以响应的;此外,不同的情况对中断响应的时间也是不同的。下面以外部中断为例,说明中断响应的时间。

在每个机器周期的S5P2期间,端的电平被所存到TCON的IE0位,CPU在下一个机器周期才会查询这些值。这时满足中断响应条件,下一条要执行的指令将是一条硬件长调用指令“LCALL”,使程序转入中断矢量入口。调用本身要用2个机器周期,这样,从外部中断请求有效到开始执行中断服务程序的第一条指令,至少需要3个机器周期,这是最短的响应时间。

如果遇到中断受阻的情况,这中断响应时间会更长一些。例如,当一个同级或更高级的中断服务程序正在进行,则附加的等待时间取决于正在进行的中断服务程序:如果正在执行的一条指令还没有进行到最后一个机器周期,附加的等待时间为1~3个机器周期;如果正在执行的是RETI指令或者访问IE或IP的指令,则附加的等待时间在5个机器周期内。

若系统中只有一个中断源,则响应时间为3~8个机器周期。

16、中断响应过程中,为什么通常要保护现场?如何保护?

答:因为一般主程序和中断服务程序都可能会用到累加器,PSW寄存器及其他一些寄存器。CPU在进入中断服务程序后,用到上述寄存器时,就会破坏它原来存在寄存器中的内容;一旦中断返回,将会造成主程序的混乱。因而在进入中断服务程序后,一般要先保护现场,然后再执行中断处理程序,在返回主程序以前再恢复现场。

保护方法一般是把累加器、PSW寄存器及其他一些与主程序有关的寄存器压入堆栈。在保护现场和恢复现场时,为了不使现场受到破坏或者造成混乱,一般规定此时CPU不响应新的中断请求。这就要求在编写中断服务程序时,注意在保护现场之前要关中断,在恢复现场之后开中断。如果在中断处理时允许有更高级的中断打断它,则在保护现场之后再开中断,恢复现场之前关中断。

17、清叙述中断响应的CPU操作过程,为什么说中断操作是一个CPU的微查询过程?

答:在中断响应中,CPU要完成以下自主操作过程:

a) 置位相应的优先级状态触发器,以标明所响应中断的优先级别 b) 中断源标志清零(TI、RI除外)

c) 中断断点地址装入堆栈保护(不保护PSW)

d) 中断入口地址装入PC,以便使程序转到中断入口地址处

在计算机内部,中断表现为CPU的微查询操作。89C51单片机中,CPU在每个机器周期的S6状态,查询中断源,并按优先级管理规则处理同时请求的中断源,且在下一个机器周期的S1状态中,响应最高级中断请求。

但是以下情况除外:

a) CPU正在处理相同或更高优先级中断

b)多机器周期指令中,还未执行到最后一个机器周期

c) 正在执行中断系统的SFR操作,如RETI指令及访问IE、IP等操作时,要延后一条指令

18、在中断请求有效并开中断状况下,能否保证立即响应中断?有什么条件?

答:在中断请求有效并开中断状况下,并不能保证立即响应中断。这是因为,在计算机内部,中断表现为CPU的微查询操作。89C51单片机中,CPU在每个机器周期的S6状态下,查询中断源,并按优先级管理规则处理同时请求的中断源,且在下一个机器周期的S1状态中,响应最高级中断请求。

在以下情况下,还需要有另外的等待:

a) CPU正在处理相同或更高优先级中断

b) 多机器周期指令中,还未执行到最后一个机器周期

c)正在执行中断系统的SFR操作,如RETI指令及访问IE、IP等操作时,要延后一条指令

第6章习题答案

1、定时器模式2有什么特点?适用于什么场合?

答:(1)模式2把TL0(或TL1)配置成一个可以自动重装载的8位定时器/计数器。TL0计数溢出时不仅使溢出中断标志位TF0置1,而且还自动把TH0中的内容重新装载到TL0中。TL0用作8位计数器,TH0用以保存初值。

(2)用于定时工作方式时间(TF0溢出周期)为,用于计数工作方式时,最大计数长度(TH0初值=0)为28=256个外部脉冲。

这种工作方式可省去用户软件重装初值的语句,并可产生相当精确定时时间,特别适于作串行波特率发生器。

2、单片机内部定时方式产生频率为100KHZ等宽矩形波,假定单片机的晶振频率为12MHZ,请编程实现。

答:

T0低5位:1BH

T0高8位:FFH

MOV TMOD,#00H ;设置定时器T0工作于模式0

MOV TL0,#1BH ;设置5ms定时初值

MOV TH0,#0FFH

SETB TR0 ;启动T0

LOOP:JBC TF0,L1;查询到定时时间到?时间到转L1

SJMP LOOP ;时间未到转LOOP,继续查询

L1:MOV TL0,#1BH;重新置入定时初值

MOV TH0,#0FFH

CPL P1.0 ;输出取反,形成等宽矩形波

SJMP LOOP ;重复循环

3、89C51定时器有哪几种工作模式?有何区别?

答:有四种工作模式:模式0,模式1,模式2,模式3

(1)模式0:选择定时器的高8位和低5位组成一个13位定时器/计数器。TL低5位溢出时向TH进位,TH 溢出时向中断标志位TF进位,并申请中断。

定时时间t=(213-初值)×振荡周期×12;计数长度位213=8192个外部脉冲

(2)模式1:与模式0的唯一差别是寄存器TH和TL以全部16位参与操作。定时时间t=(216-初值)×振荡周期×12;计数长度位216=65536个外部脉冲

(3)模式2:把TL0和TL1配置成一个自动重装载的8位定时器/计数器。TL用作8位计数器,TH用以保存初值。TL计数溢出时不仅使TF0置1,而且还自动将TH中的内容重新装载到TL中。

定时时间t=(28-初值)×振荡周期×12;计数长度位28=256个外部脉冲

(4)模式3:对T0和T1不大相同

若设T0位模式3,TL0和TH0被分为两个相互独立的8位计数器。TL0为8位计数器,功能与模式0和模式1相同,可定时可计数。

TH0仅用作简单的内部定时功能,它占用了定时器T1的控制位TR1和中断标志位TF1,启动和关闭仅受TR1控制。定时器T1无工作模式3,但T0在工作模式3时T1仍可设置为0~2。

4、89C51内部设有几个定时器/计数器?它们是由哪些特殊功能寄存器组成?

答:89C51单片机内有两个16位定时器/计数器,即T0和T1。

T0由两个8位特殊功能寄存器TH0和TL0组成;T1由TH1和TL1组成。

5、定时器用作定时器时,其定时时间与哪些因素有关?作计数器时,对外界计数频率有何限制?

答:定时时间与定时器的工作模式,初值及振荡周期有关。

作计数器时对外界计数频率要求最高为机器振荡频率的1/24。

6、简述定时器4种工作模式的特点,如何选择设定?

答:

(1)模式0:选择定时器的高8位和低5位组成一个13位定时器/计数器。TL低5位溢出时向TH进位,TH 溢出时向中断标志位TF进位,并申请中断。

定时时间t=(213-初值)×振荡周期×12;计数长度位213=8192个外部脉冲

置TMOD中的M1M0为00

(2)模式1:与模式0的唯一差别是寄存器TH和TL以全部16位参与操作。定时时间t=(216-初值)×振荡周期×12;计数长度位216=65536个外部脉冲

置TMOD中的M1M0为01

(3)模式2:把TL0和TL1配置成一个自动重装载的8位定时器/计数器。TL用作8位计数器,TH用以保存初值。TL计数溢出时不仅使TF0置1,而且还自动将TH中的内容重新装载到TL中。

定时时间t=(28-初值)×振荡周期×12;计数长度位28=256个外部脉冲

置TMOD中的M1M0为10

(4)模式3:对T0和T1不大相同

若设T0位模式3,TL0和TH0被分为两个相互独立的8位计数器。TL0为8位计数器,功能与模式0和模式1相同,可定时可计数。

TH0仅用作简单的内部定时功能,它占用了定时器T1的控制位TR1和中断标志位TF1,启动和关闭仅受TR1控制。定时器T1无工作模式3,但T0在工作模式3时T1仍可设置为0~2。

置TMOD中的M1M0为11

7、当T0用作模式3时,由于TR1已被T0占用,如何控制T1的开启和关闭?

答:用T1控制位C/T切换定时器或计数器工作方式就可以使T1运行。定时器T1无工作模式3,将T1设置为工作模式3,就会使T1立即停止计数,关闭。

8、以定时器/计数器1进行外部时间计数,每计数1000个脉冲后,定时器/计数器1转为定时工作方式,定时10ms 后又转为计数方式,如此循环不止。假定为6WHZ,用模式1编程。

解:T1为定时器时初值:

T1为计数器时初值:

所以:

L1:MOV TMOD,#50H ;设置T1为计数方式且工作模式为1

MOV TH1,#0FCH ;置入计数初值

MOV TL1,#18H

SETB TR1 ;启动T1计数器

LOOP1:JBC TF1,L2 ;查询计数溢出?有溢出(计数满1000个)转L2

SJMP LOOP1 ;无溢出转LOOP1,继续查询

L2:CLR TR1 ;关闭T1

MOV TMOD,#10H ;设置T1为定时方式且工作与模式1

MOV TH1,#0ECH ;置入定时10ms初值

MOV TL1,#78H

SETB TR1 ;启动T1定时

LOOP2:JBC TF1,L1 ;查询10ms时间到?时间到,转L1

SJMP LOOP2 ;时间未到,转LOOP2,继续查询

9、一个定时器定时时间有限,如何实现两个定时器的串行定时以满足较长定时时间的要求?

答:当一个定时器溢出时,设置另一个定时器的初值为0开始定时。

10、使用一个定时器,如何通过软硬件结合方法实现较长时间的定时?

答:设定好定时器的定时时间,采用中断方式用软件设置计数次数,进行溢出次数累计,从而得到较长的时间。11、89C51定时器作定时和计数时其计数脉冲分别由谁提供?

答:作定时器时计数脉冲由89C51片内振荡器输出经12分频后的脉冲提供,作计数时计数脉冲由外部信号通过引脚P3.4和P3.5提供。

12、89C51定时器的门控信号GATE设置为1时定时器如何启动?

答:只有 (或 )引脚为高电平且由软件使TR0(或TR1)置1时,才能启动定时器工作。

13、已知89C51单片机的fosc=6MHz, 请利用T0和P1.0输出矩形波。矩形波高电平宽50μs,低电平宽300μs。解:T0采用模式2作为50μs定时时的初值:

所以作300μs定时时的初值:

MOV TMOD,#02H ;设置定时器T0工作于模式2

L2:CLR P1.0 ;P1.0输出低电平

MOV TH0,#6AH ;置入定时300μs初值

MOV TL0,#6AH

SETB TR0 ;启动T0

LOOP1:JBC TF0,L1;查询300μs时间到?时间到,转L1

SJMP LOOP1 ;时间未到,转LOOP1,继续查询

L1:SETB P1.0 ;P1.0输出高电平

CLR TR0 ;关闭T0

MOV TH0,#0E7H ;置入定时300μs初值

MOV TL0,# 0E7H

SETB TR0 ; 启动T0

LOOP2:JBC TF0,L2 ;查询50μs时间到?时间到,转L2

SJMP LOOP2 ;时间未到,转LOOP2,继续查询

14、已知89C51单片机的fosc=12MHz, 用T1定时。试编程由P1.0和P1.1引脚分别输出周期为 2ms和500μs的方波。

解:采用模式0作定时初值:

所以 MOV R2,#04H ;R2为“250μs”计数器,置入初值4

CLR P1.0 ;P1.0输出低电平

CLR P1.1 ;P1.1输出低电平

MOV TMOD,#00H

L2:MOV TH1,#0F8H ;置入定时250μs初值

MOV TL1,#06H

SETB TR1 ;启动T1

LOOP:JBC TF1,L1 ;查询250μs时间到?时间到,转L1

SJMP LOOP ;时间未到,转LOOP,继续查询

L1:CPL P1.1;P1.1输出取反,形成周期为500μs

CLR TR1 ;关闭T1

DJNZ R2,L2;“250μs”计数器减1,到1ms吗?未到转L2

CPL P1.0 ;P1.0输出取反,形成周期为2ms方波

MOV R2,#04H ;重置“250μs”计数器初值4

LJMP L2 ;重复循环

15、单片机8031的时钟频率为6MHz,若要求定时值分别为0.1ms,1ms,10ms,定时器0工作在模式0、模式1和模式2时,其定时器初值各应是多少?

解:

(1) 0.1ms

模式0:

T0低5位01110B=0EH

T0高8位:11111110B=FEH

模式1:

模式2:

(2) 1ms

模式0:

T0低5位01100B=0CH

T0高8位:11110000B=F0H

模式1:

模式2:

在此情况下最长定时为512μs,无法一次实现定时1ms,可用0.1ms循环10次

(3) 10ms

模式0:

T0低5位11000B=18H

T0高8位:01100011B=63H

模式1:

模式2:在此情况下最长定时为512μs,无法一次实现定时10ms,可用0.1ms循环100次

16、89C51单片机的定时器在何种设置下可提供三个8位计数器定时器?这时,定时器1可作为串行口波特率发生器。若波特率按9600b/s,4800b/s,2400b/s,1200b/s,600b/s,100b/s来考虑,则此时可选用的波特率是多少(允许存在一定误差)?设fosc=12MHz。

解:当T0为模式3,T1为模式2时,可提供3个8位定时器。

可选100b/s

17、试编制一段程序,功能为:当P1.2引脚的电平上跳时,对P1.1的输入脉冲进行计数;当P1.2引脚的电平下跳时,停止计数,并将计数值写入R6,R7。

解:

MOV TMOD,#05H ;T0为计数方式且工作于模式1

JNB P1.2,$ ;等待P1.2引脚电平上跳

MOV TH0,#00H ; P1.2电平上跳,置入计数初值

MOV TL0,#00H

SETB TR0 ;启动T0

JB P1.2,$ ;等待P1.2引脚电平下跳

CLR TR0 ;电平下跳,关闭T0

MOV R7,TH0 ;计数初值写入R7,R6

MOV R6,TL0

18、设fosc=12MHz。试编制一段程序,功能为:对定时器T0初始化,使之工作在模式2,产生200μs定时,并用查询T0溢出标志的方法,控制 P1.0输出周期为2ms的方波。

解:T0作定时器时初值:

所以

程序1:

CLR P1.0 ;P1.0输出低电平

MOV R2,#05H ;R2为“200μs”计数器,置入初值5,计1ms

MOV TMOD,#02H ;设定时器T0工作于模式2

L2:MOV TH0,#38H ;置入定时初值

MOV TL0,#38H

SETB TR0 ;启动T0

LOOP:JBC TF0,L1 ;查询200μs时间到?时间到,转L1

SJMP LOOP ;时间未到,转LOOP,继续查询

L1:CLR TR0 ;关闭T0

DJNZ R2,L2 ;“200μs”计数器减1,到1ms吗?未到,转L2

CPL P1.0 ;到1ms,P1.0取反,形成周期为2ms的方波

MOV R2,#05H ;重置“200μs”计数器初值

单片机课后习题答案部分筛选

第一章 2单片机具有哪些特点 (1)片内存储容量越来越大。 (2抗干扰性好,可靠性高。 (3)芯片引线齐全,容易扩展。 (4)运行速度高,控制功能强。 (5)单片机内部的数据信息保存时间很长,有的芯片可以达到100年以上。 第二章 6. 如何简捷地判断89C51正在工作? 答:用示波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路工作是否正常?) ALE(地址锁存允许)(Address Latch Enable)输出是fosc的6分频用示波器观察ALE是否有脉冲输出(判断 8051芯片的好坏?) 观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?) 因为/PSEN接外部EPROM(ROM)的/OE端子 OE=Output Enable(输出允许) 9. 读端口锁存器和“读引脚”有何不同?各使用哪种指令? 答:读锁存器(ANL P0,A)就是相当于从存储器中拿数据,而读引脚是从外部拿数据(如MOV A,P1 这条指令就是读引脚的,意思就是把端口p1输入数据送给A) 传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常用这些指令于外部通信,判断外部键盘等;字节交换XCH、XCHD算术及逻辑运算 ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制转移CJNE、DJNZ都属于读锁存器。 13. 内部RAM低128字节单元划分为哪3个主要部分?各部分主要功能是什么? 答:片内RAM低128单元的划分及主要功能: (l)工作寄存器组(00H~lFH) 这是一个用寄存器直接寻址的区域,内部数据RAM区的0~31(00H~lFH),共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0~R7。 (2)位寻址区(20H~2FH) 从内部数据RAM区的32~47(20H~2FH)的16个字节单元,共包含128位,是可位寻 址的RAM区。这16个字节单元,既可进行字节寻址,又可实现位寻址。 (3)字节寻址区(30H~7FH) 从内部数据RAM区的48~127(30H~7FH),共80个字节单元,可以采用间接字节寻址 的方法访问。 15. 开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?

单片机课后习题解答

练习练习练习 第二章单片机结构及原理 1、MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么? 答:(1)一个8bit CPU是微处理器的核心,是运算和逻辑计算的中心。 (2)片内震荡器及时钟电路:提供标准时钟信号,所有动作都依据此进行。 (3)4K ROM程序存贮器:存贮程序及常用表格。 (4)128B RAM 数据存贮器:存贮一些中间变量和常数等。 (5)两个16bit定时器/计数器:完全硬件定时器 (6)32根可编程I/O口线:标准8位双向(4个)I/O接口,每一条I/O线都能独立地作输入或输出。 (7)一个可编程全双工串行口。 (8)五个中断源。 2、什么是指令?什么是程序? 答:指令是规定计算机执行某种操作的命令。 程序是根据任务要求有序编排指令的集合。 3、如何认识89S51/52存储器空间在物理结构上可以划分为4个空间,而在逻辑上又可以划分为3个空间? 答:89S51/52存储器空间在物理结构上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。在逻辑上有3个存储器地址空间:片内、片外统一的64KB程序存储器地址空间,片内256B数据存储器地址空间,片外64KB的数据存储器地址空间。 4、开机复位后,CPU使用的是哪组工作寄存器?他们的地址是多少?CPU如何确定

和改变当前工作寄存器组? 答:开机复位后,CPU使用的是第0组工作寄存器,地址为00H~07H,CPU通过改变状态字寄存器PSW中的RS0和RS1来确定工作寄存器组。 5、什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针SP重新赋值?如果CPU在操作中要使用两组工作寄存器,SP应该多大? 答:堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。堆栈指针SP复位后指向07H单元,00H~1FH为工作寄存器区,20H~2FH 为位寻址区,这些单元有其他功能,因此在程序设计时,需要对SP重新赋值。如果CPU在操作中要使用两组工作寄存器,SP应该至少设置为0FH。 6、89S51/52的时钟周期、机器周期、指令周期是如何分配的?当振荡频率为8MHz 时,一个单片机周期为多少微秒? 答:时钟周期为时钟脉冲频率的倒数,他是单片机中最基本的、最小的时间单位。机器周期是指完成一个基本操作所需要的时间,一个机器周期由12个时钟周期组成。指令周期是执行一条指令所需要的时间,由若干个机器周期组成。 若fosc=8MHz,则一个机器周期=1/8×12μs=μs 7、89S51/52扩展系统中,片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突? 答:访问片外程序存储器和访问数据存储器使用不同的指令用来区分同一地址空间。 8、程序状态字寄存器PSW的作用是什么?常用状态标志有哪些位?作用是什么? 答:程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下: ):进位标志位。 (C y (AC):辅助进位标志位,又称为半进位标志位。

单片机课后答案

答:中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因而必须终止原程序的执行,转去完成相应的处理程序,待处理结束之后再返回继续执行被终止原程序的过程。中断源指向 CPU 提出中断申请的设备,包括中断请求信号的产生及该信号怎样被CPU 有效地识别,要求中断请求信号产生一次,只能被CPU 接收处理一次,即不能一 次中断申请被CPU 多次响应。当 CPU 正在执行中断服务程序时,又有中断优先级更高的中断申请产生,CPU 就会暂停原来的中断处理程序而转去处理优先级更高的中断请求,处理完毕后再返回原低级中断服务程序,这一过程称为中断嵌套.中断优先级指在实际应用系统中往往有多个中断源,且中断申请是随机的,有时还可能会有多个中断源同时提出中断申请,但CPU 一次只能响应一个中断源发出的中断请求,CPU 响应哪个中断请求,就需要用软件或硬件安排一个优先顺序,即中断优先级排队。 6-2 MCS-51 单片机提供了几个中断源有几级中断优先级别各中断标志是如何产生的又如何清除这些中断标志各中断源所对应的中断矢量地址是多少 答:(1)MCS-51 单片机提供了5 个中断源: INT0 、INT1 、T0、T1、串行口。 (2)MCS-51 系列单片机有两个中断优先级,每一个中断请求源均可编程为高优先级中 断或低优先级中断,从而实现两级中断嵌套。 (3)外部中断可以设置边沿触发或者电平触发,靠软件置位。边沿触发进入中断程序后硬件自动清中断标志。电平触发需要软件清除中断标志位,还需在中断响应后把中断请求信号引脚从低电平强制改变为高电平。 (4)定时器T0、T1 计数溢出产生中断,进入中断程序后由硬件自动清除标志位TF0 或TF1。(5)串行口发送完成或者接收到数据就触发中断,由于是两个中断标志共享一个中断向量,所以需要在中断程序里由软件判断是发送中断还是接受中断,并且只能由软件清除中断标志位。使用软件清除中断标志位的方法是: CLR TI ;清TI 标志位 CLR RI ;清RI 标志位 (6)各中断源对应的中断矢量地址分别为: 中断源中断矢量 外部中断 0 0003H 定时器T0 中断000BH 外部中断1 0013H 定时器T1 中断001BH 串行口中断0023H 定时器中断T2(仅52 系列有) 002BH 6-3 外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的中断过程有何不同怎样设定 答:采用中断电平触发方式时,中断请求标志IT0=0,CPU 在每个机器周期的S5P2 期间采样,一旦在( INT0 )引脚上检测到低电平,则有中断申请,使IE0 置位(置1),向CPU 申请中断。在电平触发方式中,在中断响应后中断标志位IE0 的清0 由硬件自动完成,但由于CPU 对( INT0 )引脚没有控制作用,使中断请求信号的低电平可能继续存在,在以后的机器周期采样时又会把已清0 的IE0 标志位重新置1,所以, 在中断响应后必须采用其它方法撤消该引脚上的低电平,来撤除外部中断请求信号,否则有可能再次中断造成出错。采用边沿触发方式时,IT0=1,CPU 在每个机器的S5P2 期间采样,当检测到前一周期为高电平,后一周期为低电平时,使标志IE0 置1,向CPU 申请中断,此标志位一直保持到CPU 响应中断后,才由硬件自动清除。在边沿触发方式中,为保证CPU 在两个机器周期内检测到由高到低的负跳变,高电平与低电平的持续时间不得少于一个机器周

单片机原理及应用习题答案 第三版

第一章习题参考答案 1-1:何谓单片机?与通用微机相比,两者在结构上有何异同? 答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路与相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。 单片机与通用微机相比在结构上的异同: (1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度与精度的进一步提高。例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度与精度也相对要低一些。例如,现在的单片机产品的CPU 大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。 (2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量与CPU对数据的存取速度。现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术与段、页等多种管理模式。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。 (3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠标、打印机、硬盘、光盘等)。用户通过标准总线连接外设,能达到即插即用。单片机应用系统的外设都就是非标准的,且千差万别,种类很多。单片机的I/O接口实际上就是向用户提供的与外设连接的物理界面。用户对外设的连接要设计具体的接口电路,需有熟练的接口电路设计技术。 另外,单片机的微处理器(CPU)、存储器、I/O接口电路集成在一块芯片上,而通用微机的微处理器(CPU)、存储器、I/O接口电路一般都就是独立的芯片 1-4 IAP、ISP的含义就是什么? ISP:In System Programable,即在系统编程。用户可以通过下载线以特定的硬件时序在线编程(到单片机内部集成的FLASH上),但用户程序自身不可以对内部存储器做修改。 IAP:In Application Programable,即在应用编程。用户可以通过下载线对单片机进行在线编程,用户程序也可以自己对内部存储器重新修改。 1-6 51单片机与通用微机相比,结构上有哪些主要特点? (1)单片机的程序存储器与数据存储器就是严格区分的,前者为ROM,后者为RAM; (2)采用面向控制的指令系统,位处理能力强; (3)I/O引脚通常就是多功能的; (4) 产品系列齐全,功能扩展性强; (5) 功能就是通用的,像一般微处理机那样可广泛地应用在各个方面。 1-7 51单片机有哪些主要系列产品? (1)Intel公司的MCS-51系列单片机:功能比较强、价格比较低、较早应用的单片机。 此系列三种基本产品就是:8031/8051/8751; (2)ATMEL公司的89系列单片机:内含Flash存储器,开发过程中可以容易地进行程

单片机课后习题答案

习题答案 习题0 1.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM 和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。 2.什么叫单片机?其主要特点有哪些? 将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。 单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。 3. 单片机有哪几个发展阶段? (1)第一阶段(1974—1976年):制造工艺落后,集成度低,而且采用了双片形式。典型的代表产品有Fairchild公司的F8系列。其特点是:片内只包括了8位CPU,64B的RAM 和两个并行口,需要外加一块3851芯片(内部具有1KB的ROM、定时器/计数器和两个并行口)才能组成一台完整的单片机。 (2)第二阶段(1977—1978年):在单片芯片内集成CPU、并行口、定时器/计数器、RAM和ROM等功能部件,但性能低,品种少,应用范围也不是很广。典型的产品有Intel 公司的MCS-48系列。其特点是,片内集成有8位的CPU,1KB或2KB的ROM,64B或128B的RAM,只有并行接口,无串行接口,有1个8位的定时器/计数器,中断源有2个。片外寻址范围为4KB,芯片引脚为40个。 (3)第三阶段(1979—1982年):8位单片机成熟的阶段。其存储容量和寻址范围增大,而且中断源、并行I/O口和定时器/计数器个数都有了不同程度的增加,并且集成有全双工串行通信接口。在指令系统方面增设了乘除法、位操作和比较指令。其特点是,片内包括了8位的CPU,4KB或8KB的ROM,128B或256B的RAM,具有串/并行接口,2个或3个16位的定时器/计数器,有5~7个中断源。片外寻址范围可达64KB,芯片引脚为40个。代表产品有Intel公司的MCS-51系列,Motorola公司的MC6805系列,TI公司的TMS7000系列,Zilog公司的Z8系列等。 (4)第四阶段(1983年至今):16位单片机和8位高性能单片机并行发展的时代。16位机的工艺先进,集成度高,内部功能强,运算速度快,而且允许用户采用面向工业控制的专用语言,其特点是,片内包括了16位的CPU,8KB的ROM,232B 的RAM,具有串/并行接口,4个16位的定时器/计数器,有8个中断源,具有看门狗(Watchdog),总线控制部件,增加了D/A和A/D转换电路,片外寻址范围可达64KB。代表产品有Intel公司的MCS-96系列,Motorola公司的MC68HC16系列,TI公司的TMS9900系列,NEC公司的783××系列和NS公司的HPC16040等。然而,由于16位单片机价格比较贵,销售量不大,大量应用领域需要的是高性能、大容量和多功能的新型8位单片机。 近年来出现的32位单片机,是单片机的顶级产品,具有较高的运算速度。代表产品有Motorola公司的M68300系列和Hitachi(日立)公司的SH系列、ARM等。 4.在实际应用中,如何选择单片机的类型? 选择原则:主要从指令结构、运行速度、程序存储方式和功能等几个方面选择单片机。 MCS-51为主流产品。 Motorola是世界上最大的单片机厂商。品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。 Microchip单片机是市场份额增长较快的单片机。它的主要产品是PIC系列8位单片机。其特点是运行速度快,低价位,适用于量大、档次低、价格敏感的产品。 美国德州仪器(TI)公司生产的MSP430系列单片机是一种特低功耗的Flash微控制器。主要用于三表及超低功耗场合。 1

单片机课后习题答案

单片机课后习题答案 1.89C51单片机内包含哪些主要逻辑功能部件? 答:80C51系列单片机在片内集成了以下主要逻辑功能部件: (l)CPU(中央处理器):8位(2)片内RAM:128B(3)特殊功能寄存器:21个(4)程序存储器:4KB (5)并行I/O口:8位,4个(6)串行接口:全双工,1个(7)定时器/计数器:16位,2个(8)片内时钟电路:1个 2.89C51的EA端有何用途? 答:/EA端接高电平时,CPU只访问片内flash Rom并执行内部程序,存储器。/EA端接低电平时,CPU只访问外部ROM,并执行片外程序存储器中的指令。/EA端保持高电平时,CPU执行内部存储器中的指令。 3.89C51的存储器分哪几个空间?如何区别不同空间的寻址? 答:ROM(片内ROM和片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits地址)(64KB)片外RAM(MOVX)(16bits地址)(64KB)片内RAM (MOV)(8bits地址)(256B) 4.简述89C51片内RAM的空间分配。 答:片内RAM有256B,低128B是真正的RAM区,高128B是SFR(特殊功能寄存器)区。 5.简述布尔处理存储器的空间分配,片内RAM中包含哪些可位寻址单元。 答:片内RAM区从00H~FFH(256B) 其中20H~2FH(字节地址)是位寻址区对应的位地址是00H~7FH 6. 如何简捷地判断89C51正在工作? 答:用示波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路工作是否正常?)ALE(地址锁存允许)(Address Latch Enable)输出是fosc的6分频 用示波器观察ALE是否有脉冲输出(判断8051芯片的好坏?) 观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?) 因为/PSEN接外部EPROM(ROM)的/OE端子OE=Output Enable(输出允许) 7. 89C51如何确定和改变当前工作寄存器组? 答:PSW(程序状态字)(Program Status Word)中的RS1和RS0 可以给出4中组合,用来从4组工作寄存器组中进行选择PSW属于SFR(Special Function Register)(特殊功能寄存器) 9.读端口锁存器和“读引脚”有何不同?各使用哪种指令? 答:读锁存器(ANLP0,A)就是相当于从存储器中拿数据,而读引脚是从外部拿数据(如MOV A,P1这条指令就是读引脚的,意思就是把端口p1输入数据送给A)传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常用这些指令于外部通信,判断外部键盘等;字节交换XCH、XCHD算术及逻辑运算 ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制转移CJNE、DJNZ

单片机原理及应用习题答案 第三版

第一章习题参考答案 1-1:何谓单片机?与通用微机相比,两者在结构上有何异同? 答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路和相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。 单片机与通用微机相比在结构上的异同: (1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。例如,现在的单片机产品的CPU大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。 (2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量和CPU对数据的存取速度。现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术和段、页等多种管理模式。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。 (3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠

单片机课后习题答案解析

一)填空题 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)1 KB = 1024×1024 B (B)1 MB = 1024×1024 B (C)1 KB = 1024 M B (D)1 MB = 1024 B 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单片机的硬件结构 (一)填空题

单片机课后习题答案

1.1 计算机经过了哪些主要发展阶段? 解:单片机的发展大致经历了四个阶段: 第一阶段(1970—1974年),为4位单片机阶段; 第二阶段(1974—1978年),为低中档8位单片机阶段; 第三阶段(1978—1983年),为高档8位单片机阶段; 第四阶段(1983年至今),为8位单片机巩固发展阶段及16位单片机、32位单片机推出阶段。 1.2 写出下列机器数的真值: (1)01101110 (2)10001101 (3)01011001 (4)11001110 解:(1)01101110的真值=+110 (2)10001101的真值=+141或-115 (3)01011001的真值=+89 (4)11001110的真值=+206或-50 说明:机器数是指计算机中使用的二进制数,机器数的值称为真值。机器数可表示为无符号数也可表示为带符号数,其中计算机中的带符号数一般为补码形式。10001101若为无符号数。则其真值为+141;若为带符号数,由于最高位(符号位)为1.所以为负数(补码形式),则其真值为-115。 1.4 写出下列二进制数的原码、反码和补码(设字长为8位)。 (1)010111 (2)101011 (3)-101000 (4)-111111 解:(1) [x]原=00010111 [x]反= 00010111 [x]补= 00010111 (2)[x]原=00101011 [x]反= 00101011 [x]补= 00101011 (3)[x]原=10101000 [x]反= 11010111 [x]补= 11011000 (4)[x]原=10111111 [x]反= 11000000 [x]补=11000001 1.5 已知X=10110110,Y=11001111,求X 和Y 的逻辑与、逻辑或和逻辑异或。 解:10000110X Y ?= 11111111X Y += 01111001X Y ⊕= 1.6 已知X 和Y ,试计算下列各题的[]X Y +补和[]-X Y 补(设字长为8位)。 (1)X=1011 Y=0011 (2)X=1011 Y=0101 (3)X=1001 Y=-0100 (4)X=-1000 Y=0101 (5)X=-1100 Y=-0100 解:(1)X 补码=00001011 Y 补码=00000011 [X+Y]补=00001110 [X-Y]补=00001000 (2)X 补码=00001011 Y 补码=00000101 [X+Y]补=00010000 [X-Y]补=00000110 (3)X 补码=00001001 Y 补码=11111100 [X+Y]补=00010000 [X-Y]补=00000110

单片机实验考核题目及答案

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

单片机课后习题答案(《单片机应用技术》C语言版)

MCS-51在通常应用情况下,使用振荡频率为的6MHz或12MHz的晶振,如果系统中使用了单片机的串行口通信,则一般采用振荡频率为11.059MHz的晶振。 1.11 答: 规定一个机器周期的宽度为12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。 当振荡脉冲频率为12 MHz时, 一个机器周期为1μs;当振荡脉冲频率为6 MHz时,一个机器周期为2 μs。 1.12 答: (a)上电复位电路(b)按键复位电路 单片机常见的复位电路 图(a)为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RST 端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。只要保证RST为高电平的时间大于两个机器周期,便能正常复位。 图(b)为按键复位电路。该电路除具有上电复位功能外,若要复位,只需按图(b)中的RESET键,此时电源VCC经电阻R1、R2分压,在RST端产生一个复位高电平。 习题2答案 2.1 单项选择题 (1)C (2)A (3)B (4)A (5)D 2.2 答: 单片机开发过程所用的设备与软件称为单片机开发系统或开发工具。 单片机开发系统包括计算机、单片机在线仿真器、开发工具软件、编程器等。连接方法如下图所示。 单片机开发系统连接方法示意图 2.3 答:单片机应用系统的开发过程如下: 设计电路图→制作电路板→程序设计→硬软件联调→程序下载→产品测试2.4 答: 1.在线仿真功能 在线仿真器(In Circuit Emulator,简称ICE)是由一系列硬件构成的设备,它能仿真用户系统中的单片机,并能模拟用户系统的ROM、RAM和I/O口。因此,在线仿真状态下,用户系统的运行环境和脱机运行的环境完全“逼真”。 2.调试功能 1)运行控制功能 开发系统应能使用户有效地控制目标程序的运行,以便检查程序运行的结果,对存在的硬件故障和软件错误进行定位。 2)单片机状态查看修改功能

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

单片机原理及应用课后习题参考答案1~6章(DOC)

《单片机原理及应用》习题答案 第一章计算机基础知识 1-1 微型计算机主要由哪几部分组成?各部分有何功能? 答:一台微型计算机由中央处理单元(CPU)、存储器、I/O接口及I/O设备等组成,相互之间通过三组总线(Bus):即地址总线AB、数据总线DB和控制总线CB来连接。 CPU由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。 存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。按其功能可分为RAM和ROM。 输入/输出(I/O)接口是CPU与外部设备进行信息交换的部件。 总线是将CPU、存储器和I/O接口等相对独立的功能部件连接起来,并传送信息的公共通道。 1-3 什么叫单片机?其主要由哪几部分组成? 答:单片机(Single Chip Microcomputer)是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。 1-4 在各种系列的单片机中,片内ROM的配置有几种形式?用户应根据什么原则来选用? 答:单片机片内ROM的配置状态可分四种: (1)片内掩膜(Mask)ROM型单片机(如8051),适合于定型大批量应用产品的生产; (2)片内EPROM型单片机(如8751),适合于研制产品样机; (3)片内无ROM型单片机(如8031),需外接EPROM,单片机扩展灵活,适用于研制新产品; (4)EEPROM(或Flash ROM)型单片机(如89C51),内部程序存储器电可擦除,使用更方便。 1-5 写出下列各数的另两种数制的表达形式(二、十、十六进制) 1-6 写出下列各数的BCD参与: 59:01011001,1996:0001100110010110,4859.2:0100100001011001.0010

C51单片机实验报告

实验报告册 课程名称:单片机原理与应用B 指导老师:xxx 班级:xxx 姓名:xxx 学号:xxx 学期:20 —20 学年第学期南京农业大学工学院教务处印

实验目录实验一:指示灯/开关控制器 实验二:指示灯循环控制 实验三:指示灯/数码管的中断控制 实验四:电子秒表显示器 实验五:双机通信

姓名:学号:班级:成绩: 实验名称:指示灯/开关控制器 一、实验目的: 学习51单片机I/O口基本输入/输出功能,掌握C语言的编程与调试方法。 二、实验原理: 实验电路原理图如图所示,图中输入电路由外接在P1口的8只拨动开关组成;输入电路由外接在P2口的8只低电平驱动的发光二极管组成。此外,还包括时钟电路、复位电路和片选电路。 在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。 三、软件编程原理为; (1)8只发光二极管整体闪烁3次

亮灯:向P2口送入数值0; 灭灯:向P2口送入数值0FFH; 闪烁3次:循环3次; 闪烁快慢:由软件延时时间决定。 (2)根据开关状态控制灯亮或灯灭 开关控制灯:将P1口(即开关状态)内容送入P2口;无限持续:无条件循环。 四、实验结果图: 灯泡闪烁:

按下按键1、3、5、7:

经检验,其余按键按下时亦符合题目要求。 五、实验程序: #include"reg51.h" void delay(unsigned char time) { unsigned int j=15000; for(;time>0;time--) for(;j>0;j--); } void main(){ key,char i; for(i=0;i<3;i++) { P2=0x00; delay(500); P2=0xff; delay(500) } while(1) { P2=P3;

单片机课后习题答案--胡汉才编

单片机部由哪几部分电路组成各部分电路的主要功能是什么 解:单片机部由CPU、存储器和I/O接口等电路组成。CPU的主要功能是对二进制数进行算术和逻辑运算、执行指令(从ROM中取指令,对指令译码,发各种控制信号使CPU和其他部分协调一致的工作,完成指令的功能),存储器由ROM和RAM组成,ROM的主要功能是存储单片机应用系统的程序,RAM的主要功能是存储实时数据或作为通用寄存器、堆栈、数据缓冲区。I/O接口的主要功能是负责单片机和外设、外部存储器间的通信。 第二章 存在的错别字问题:“振荡”写出“推荡”;“芯片”写成“蕊片”。 、程序状态字PSW各位的定义是什么 解:PSW的各位定义如下: @ Cy:进位标志位;AC:辅助进位位; F0:用户标志位;RS1、RS0:寄存器选择位; OV:溢出标志位;P:奇偶标志位; PSW1:未定义。 、什么叫堆栈8031堆栈的最大容量是多少MCS51堆栈指示器SP有多少位,作用是什么单片机初始化后SP中的容是什么 解:堆栈:符合“先进后出”或“后进先出”存取规律的RAM区域。 8031堆栈的最大容量是128B; 】 MCS-51堆栈指针SP有8位,作用是存放栈顶(/栈低)地址; 单片机初始化后(即单片机复位后)SP中的容是07H。 存在的问题:1、堆栈的定义中,未答出“RAM区域”,而用了“部件”; 2、只说了“单片机初始化后(即单片机复位后)SP中的容是栈底地址”,未说明具体值07H; 3、8031堆栈的最大容量错成128M或256B。 、数据指针DPTR有多少位,作用是什么 解:数据指针DPTR有16位;作用是存放ROM或外部RAM的地址。 | 、8051片RAM容量有多少可以分为哪几个区各有什么特点 解:8051的片RAM容量有128B;分为三个区:工作寄存器区、位寻址区和便笺区; 存在的问题:1、8051的片RAM容量错成256B。 、8051的特殊功能寄存器SFR有多少个可以位寻址的有哪些 解:8051的SFR有21个,可位寻址的有11个:ACC、B、PSW、IP、P3、IE、P2、SCON、P1、TCON 和P0。 存在的问题:SFR有21个错成了26个;可位寻址的SFR中多了一个T2CON,个别同学甚至在T2CON 用了一个“+”号。 :

单片机课后习题参考答案

单片机课后习题答案 1.26解:单片机内部由CPU、存储器和I/O接口等电路组成。CPU的主要功能是对二进制数进行算术和逻辑运算、执行指令(从ROM中取指令,对指令译码,发各种控制信号使CPU和其他部分协调一致的工作,完成指令的功能),存储器由ROM和RAM组成,ROM的主要功能是存储单片机应用系统的程序,RAM的主要功能是存储实时数据或作为通用寄存器、堆栈、数据缓冲区。I/O接口的主要功能是负责单片机和外设、外部存储器间的通信。 2.3、解:PSW的各位定义如下: PSW7PSW6PSW5PSW4PSW3PSW2PSW1PSW0 Cy AC F0RS1RS0OV_P Cy:进位标志位;AC:辅助进位位; F0:用户标志位;RS1、RS0:寄存器选择位; OV:溢出标志位;P:奇偶标志位; PSW1:未定义。 2.4、解:堆栈:符合“先进后出”或“后进先出”存取规律的RAM区域。 8031堆栈的最大容量是128B; MCS-51堆栈指针SP有8位,作用是存放栈顶(/栈低)地址; 单片机初始化后(即单片机复位后)SP中的内容是07H。 2.5、解:数据指针DPTR有16位;作用是存放ROM或外部RAM的地址。 2.7、解:8051的片内RAM容量有128B;分为三个区:工作寄存器区、位寻址区和便笺区; 2.8、解:8051的SFR有21个,可位寻址的有11个:ACC、B、PSW、IP、P3、IE、P2、SCON、P1、TCON和P0。 2.11、解:8051和片外RAM/ROM连接时,P0口用来分时地传送片外RAM/ROM的低8位地址信号和8位数据信号,P2口用来传送片外RAM/ROM的高8位地址信号;因为P0口在访问片外RAM/ROM的一个机器周期内,要先传送地址信号,后传送数据信号,所以P0口需要片外地址锁存器。 2.12、解:8051的ALE线用于锁存P0口输出的片外RAM/ROM的低8位地址;8051不和片外RAM/ROM相连时,ALE线上输出脉冲的频率是fosc/6(fosc是8051的时钟频率),该脉冲信号可用作外部时钟源或作为定时脉冲源使用。 2.13、解:PSEN:片外ROM的选通线; R D:片外RAM的读选通线; W R:片外RAM的写选通线。

单片机课后习题答案-第一至三章

第一章 一、计算题 1、①(10000111)2(87)16②(0 .101) 2(0.A) 16 ③(101111.1011) 2(2F.B) 16 2、①(430)10 (1AE) 16②(0.6875)10 (0.B) 16 ③(110.851563)10(6E.DA0008637BD058) 16 3、①(11101010110)2(1878)10 ②(1001000.0101101) 2(72.351563) 10 ③(0.010101) 2(0.328125) 10 4、①00011100B ②10000000B ③11110000B 5、原码反码补码 ①0010 0110 0010 0110 0010 0110 ②0100 0000 0100 0000 0100 0000 ③1111 0000 10001111 1001 0000 6、X Y X+Y X-Y ①00100110 00110111 01100101 10001001 真值101 -9 ②01001110 00001111 01011101 00111111 真值93 63 ③10110011 01100001 00101110 01101100s 真值46 108 7、(863) 10(895) 10(365) 10 8、414235H 434F4D5055544552H 5374756479H 二、问答题 1、什么是数制?为什么微型计算机要采用二进制?十六进制数能为计算机执行么?为什么要学习十六进制数。 答:数制就是计数方式,计算机中采用二进制是由计算机所使用的逻辑器件所决定。这种逻辑器件是具有两种状态的电路(触发器)好处是运算法则简单、实现方便,两个状态的系统具有稳定性。计算机中的数只能用二进制表示,十六进制适合于读写方便需要。 2、单片机的发展状况如何?它有哪些应用?试举例说明。 答:1971年微处理器研制成功。1974年,美国仙童公司研制出世界第一台单片微型计算机F8。该机由两块集成电路芯片组成,具有与众不同的指令系统,深受民用电器及仪器仪表领域的欢迎和重视。从此单片机开始迅速发展,应用领域也不断扩大。 目前,单片机正朝着高性能和多品种方向发展,但以MCS-51为主的8位单片机仍然占据着单片机的主导地位。单片机的应用日益广泛,如应用在仪器仪表、家用电器和专用装备的智能化以及过程控制等方面,单片机在人们的日常生活和工作中正扮演着越来越重要的角色。 (1)工业控制。单片机可以构成各种工业控制系统、数据采集系统等。如数控

相关文档
相关文档 最新文档