当前位置:文档之家› 单片机课后习题解答

单片机课后习题解答

单片机课后习题解答
单片机课后习题解答

第二章单片机结构及原理

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=1.5μs

7、89S51/52扩展系统中,片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突?

答:访问片外程序存储器和访问数据存储器使用不同的指令用来区分同一地址空间。

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

答:程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下:

PSW.7(C y):进位标志位。

PSW.6(AC):辅助进位标志位,又称为半进位标志位。

PSW.5(F0):用户标志位。

PSW.4、PSW.3(RS1和 RS0):寄存器组选择位。

PSW.2(OV):溢出标志位。

PSW.1(空缺位):此位未定义。

PSW.0(P):奇偶校验位。

9、位地址7CH和字节地址7CH有何区别?位地址7CH具体在内存中什么位置?

答:字节地址7CH是片内数据存储器中的一个地址单元,该地址单元中可以存放8位二进制数,位地址7CH是内部数据存储器中位寻址区中的一位,该地址单元中可以存放1位二进制数。位地址

7CH具体在片内数据存储器字节地址为2FH中的第4位(2FH.4)。

10、89S51/52中4个I/O端口的作用是什么?89S51/52的片外三总线是如何分配的?

答:I/O端口是单片机与外界联系的重要通道,实现与外部设备的信息的传输。总线分配:片外数据总线(8根)通过P0口输出,片外地址总线(16根)通过P0口(低8位)和P2口(高8位)输出,片外控制总线(PSEN ,ALE , RD ,WR ,EA)主要通过P3口。

11、89S51/52中4个I/O端口在结构上有何异同?

89S51/52单片机的4个I/O口在结构上是基本相同的,但又各具特点。这四个端口都是8位双向口,每个端口都包括一个锁存器、一个输出驱动器和输入缓冲器。在无片外扩展存储器的系统中,这四个端口的每一位都可以作为双向通用I/O端口使用。在作为一般的通用I/O输入时,都必须先向锁存器写入“1”,使输出驱动场效应管FET截止,以免误读数据。各自特点如下:(1)P0口为双向8位三态I/O口,它既可作为通用I/O口,又可作为外部扩展时的数据总线及低8位地址总线的分时复用口。作为通用I/O口时,输出数据可以得到锁存,不需外接专用锁存器;输入数据可以得到缓冲,增加了数据输入的可靠性。每个引脚可驱动8个TTL负载。

(2)P1口为8位准双向I/O口,内部具有上拉电阻,一般作通用I/O口使用,它的每一位都可以分别定义为输入线或输出线,作为输入时,锁存器必须置1。每个引脚可驱动4个TTL负载。

(3)P2口为8位准双向I/O口,内部具有上拉电阻,可直接连接外部I/O设备。它与地址总线高8位复用,可驱动4个TTL负载。一般作为外部扩展时的高8位地址总线使用。

(4)P3口为8位准双向I/O口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱动4个TTL 负载。作为通用I/O口时,功能与P1口相同,常用第二功能。

12、复位的作用是什么?有几种复位方法?复位后单片机的状态如何?

答:复位是单片机的初始化操作。单片机在RST引脚产生两个机器周期(即24个时钟周期)以上的高电平即可实现复位。主要的复位方法有上电自动复位和按键手动复位两种。按键手动复位又分:按键电平复位和按键脉冲复位。

第三章指令系统

1、简述下列名词术语的基本概念:指令、指令系统、程序、汇编语言指令

答:指令:规定单片机进行某种操作的命令称为指令。

指令系统:单片机能够执行的各种指令的集合。

程序:一系列指令的有序集合称为程序。

汇编语言指令:用助记符形式来表示机器指令。

2、80C51单片机有哪几种寻址方式?这几种寻址方式是如何寻址的?

答:共7种寻址方式,分别为:寄存器寻址,直接寻址,寄存器间接寻址,立即寻址,变址寻址,位寻址和相对寻址。

寄存器寻址方式:由指令指出某一寄存器的内容做为操作数。

直接寻址方式:指令中操作数直接以单元地址的形式给出。

寄存器间接寻址方式:寄存器间接寻址方式,寄存器中存放的则是操作数的地址,即操作数是通过寄存器间接得到的。

立即寻址方式:操作数在指令中直接给出。

变址寻址方式:变址寻址是为了访问程序存储器中的数据和表格。MCS-51的变址寻址是以DPTR或PC作基址寄存器,以累加器A作变址寄存器,并以两者内容相加形成的16?位地址做为操作数地址,以达到访问数据和表格的目的。

位寻址方式:指对片内RAM的位寻址区和某些可寻址的特殊功能寄存器进行位操作的寻址方式。

相对寻址方式:相对寻址方式是为解决程序转移而专门设置的,为转移指令所采用。

3、要访问特殊功能寄存器和片外数据寄存器,应采用哪些寻址方式?

答:访问特殊功能寄存器可以采用直接寻址、立即寻址、寄存器寻址和位寻址(针对可以进行位寻址的特殊功能寄存器)方式。访问片外数据存储器可采用寄存器间接寻址方式。

4、80C51单片机的指令系统可以分为哪几类?说明各指令的功能。

答:51单片机指令系统按功能可分为5类:

(1)数据传送指令主要进行数据的传送、交换等;

(2)算术运算指令主要进行基本的加减乘除运算;

(3)逻辑运算指令主要实现逻辑运算与移位运算;

(4)控制转移指令主要是实现对程序流程的控制;

(5)位操作指令

5、外部数据传送指令有哪几条?有和区别?

答:外部数据传送指令有读指令和写指令两类,每类指令的寻址范围不同,分别为:读外部存储器指令:MOVX A,@Ri ;寻址范围为256字节

MOVX A,@DPTR ;寻址范围为64K字节

写外部存储器指令:MOVX @Ri,A ;寻址范围为256字节

MOVX @DPTR,A ;寻址范围为64K字节

6、在89S51片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H,请分别分析下段程序按序执行后的结果。

MOV A,40H ;A=48H

MOV R0,A ;R0=48H

MOV P1,#0FFH ;P1=FFH

MOV @R0,30H ;(48H)=38H

MOV DPTR,#1246H ;DPTR=1246H

MOV 40H,38H ;(40H)=40H

MOV R0,30H ;R0=38H

MOV 90H,R0 ;(90H)=38H

MOV 48H,#30H ;(48H)=30H

MOV A,@R0 ;A=40H

MOV P2,P1 ;P2=38H

7、略

8、DA A 指令的作用是什么?怎样使用?

答:对十进制BCD数作加法时进行调整,当结果的低4位A0~A3>9,或半进位AC=1,则A0~A3+6,否则不加;当结果的高4位A4~A7>9,或进位CY=1,则A4~A7+6,否则不加;这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正,使其仍为BCD码表示形式。

9、试编程将片外数据存储器60H中的内容传送到片内RAM54H单元中。

答:MOV R0,#60H

MOVX A,@R0

MOV 54H,A

10、试编程将寄存器R7的内容传送到R1中去。

MOV R1,A

11、已知当前PC值为210H,请用两种方法将程序存储器2F0H中的常数送入累加器A中。

答:(1)以程序计数器PC作为基址寄存器

MOV A,#0E0H

MOVC A,@A+PC

(2)以数据指针DPTR作为基址寄存器

MOV DPTR,#02F0H

MOV A,#00H

MOVC A,@A+DPTR

12、试说明下段程序中每条指令的作用,并分析当指令执行完后,R0中的内容是什么?

MOV R0,#0A7H ;R0=A7H,立即数送寄存器R0

XCH A,R0 ;A=A7H,累加器A中的数据与R0中的数据进行交换

SWAP A ;A=7AH,累加器A中的高低四位进行交换

XCH A,R0 ;R0=7AH,数据交换回R0

13、请用两种方法实现累加器A与寄存器B的内容交换。

答:(1)MOV R0,A

MOV A,B

MOV B,R0

(2)MOV R0,B

XCH A,R0

14、试编程将片外RAM中40H单元的内容与R1的内容交换。

答:MOV R0,#40H

MOVX A,@R0

XCH A,R1

MOVX @R0,A

15、已知:A=0C9H,B=8DH,CY=1。

执行指令 ADDC A,B结果如何? A=57H,CY=1,OV=1,AC=1,P=1

执行指令 SUBB A,B结果如何? A=3BH,CY=0,AC=1,OV=1

16、试编程将片外RAM中30H和31H单元中的内容相乘,结果存放在32H(低位)和33H(高位)单元中。

答:MOV R0,#30H

MOVX A,@R0

MOV B,A

INC R0

MOVX A,@R0

MUL AB

INC R0

MOVX @R0,A

MOV A,B

INC R0

MOVX @R0,A

17、试用3种方法将累加器A中的无符号数乘2.

答:(1)MOV R0,A

ADD A,R0

MUL AB

(3)RL A

18、分析依次执行下列指令的结果:

MOV 30H,#0A4H ;(30H)=A4H

MOV A,#0D6H ;A=D6H

MOV R0,#30H ;R0=30H

MOV R2,#47H ;R2=47H

ANL A,R2 ;A=46H

ORL A,@R0 ;A=E6H

SWAP A ;A=6EH

CPL A ;A=91H

XRL A,#0FFH ;A=6EH

ORL 30H,A ;(30H)=EEH

19、求下列指令执行后,累加器A及PSW中进位CY、奇偶位P和溢出位OV的值。

(1)当A=5BH时;ADD A,#8CH

(2)当A=5BH时;ANL A,#7AH

(3)当A=5BH时;XRL A,#7FH

(4)当A=5BH,CY=1时;SUBB A,#0E8H

答:(1)A=E7H,CY=1,P=0,OV=0

(2)A=5AH ,P=0

(3)A=24H ,P=0

(4)A=72H,CY=1,P=0,OV=0

20、把累加器A中的低4位数据送到外部数据存储器的2000H单元。

答:ANL A,#OFH

MOV DPTR,#2000H

MOVX @DPTR,A

21、试说明指令CJNE @R1,#7AH,10H的作用,若本指令地址为250H,其转移地址是多少?

答:指令作用:如果以R1内容为地址的单元中的数据等于7AH,则程序顺序执行,否则转移后继续执行。若本指令地址为250H,则转移地址为250H+03H+10H= 263H。

22、将累加器A中的数据由0递增,加到50,结果在累加器A中。

答:CLR A

MOV R0,#50

L1: INC A

DJNZ R0,L1

23、试说明压栈指令和弹栈指令的作用及执行过程。

答:压栈(入栈或进栈)指令的作用是将数据存入堆栈中,其执行过程是先将堆栈指针SP的内容加1,然后将直接地址单元中的数据压入SP指向的单元中。若数据已推入堆栈,则SP指向最后推入数据所在的存储单元(即指向栈顶)。

弹栈(出栈)指令的作用是将数据从堆栈中取出,其执行过程为先将堆栈指针SP所指出单元的内容送入直接寻址单元中,然后将SP的内容减1,此时SP指向新的栈顶。

24、下述程序执行后,SP=?,A=?,B=?。

ORG 2000H

MOV SP,#40H

LCALL 250H ;下条指令地址2008H送41H、42H,SP=42H

ADD A,#10H

MOV B,A ;地址为200AH

L1: SJMP L1

ORG 250H

MOV DPTR,#200AH

PUSH DPL ;SP+1=43H,DPL→(43H)

PUSH DPH ;SP+1=44H,DPH→(44H)

RET ;200AH→PC

答:上述程序执行后,SP=42H,A=30H,B=30H。

25、发光二极管点亮规律:先是第1和第8个亮,延时一段时间后,第2和第7个亮,延时后,再是第3和第6个亮,延时后,最后是第4和第5个点亮,延时后循环。

26、若系统晶振频率为6MHz,求子程序DELAY的延时时间,若想加长或缩短时间,应该怎样修改?答:DELAY: MOV R2,#0FAH

L1: MOV R3,#0FAH

L2: DJNZ R3,L2

DJNZ R2,L1

RET

总时间计算:T=4μs+(250×4μs+4μs)×250+4μs=251.008ms

估算:T=250×4μs×250=250ms

若想加长延时时间,可以增加循环次数或再加一重循环;

若想减小延时时间,可以减少循环次数或较少一重循环。

27、P1口连接8个共阳极连接的发光二极管,是编制灯亮移位程序。

答:MOV A,#0FEH

L1: MOV P1,A

RL A

LCALL DELAY ;DELAY子程序同上题

SJMP L1

28、试编一程序,将外部数据存储器2100H单元中的高4位置“1”,其余位清“0”。

答:MOV DPTR,#2100H

MOVX A,@DPTR

ORL A,#0F0H

ANL A,#0F0H

MOVX @DPTR,A

29、试编程将片内数据存储器40H单元的第0为和第7位置1,其余取反。

答:MOV A,40H

CPL A

SETB ACC.0

SETB ACC.7

MOV 40H,A

30、将A.5与80H位相与的结果,通过P1.4输出。

MOV C,80H

ANL C,ACC.5

MOV P1.4,C

31、请用位操作指令,求下列逻辑方程。 (1)2.3)1.20.(0.7.1P P B ACC P ++?= MOV C ,B.0 ORL C ,P2.1 ANL C ,ACC.0 ORL C ,/P3.2

MOV

P1.7,C

(2)1.15.2.3.15.P B ACC P PSW ?+?= MOV C ,P1.3 ANL C ,ACC.2 MOV 20H ,C MOV C ,B.5 ANL C ,/P1.1 ORL C ,20H

MOV

PSW.5,C

(3)0.17.4.5.13.2P ACC B P P ?+?= MOV C ,B.4 ANL C ,/P1.5 MOV 20H ,C MOV C ,P1.0 ANL C ,/ACC.7

ORL

C ,20H ( 下一行)MOV P2.3,C

第四章 汇编语言程序设计

1、编程将片内40H ~60H 单元中的内容送到以3000H 为首的存储区内。 答: MOV R1,#40H MOV R2,#21H MOV DPTR ,#3000H L1: MOV A ,@R1 MOVX @DPTR ,A INC R1 INC DPTR DJNZ R2,L1

2、编程计算下列算式的程序 (1)23H+45H+ABH+03H= MOV A ,#23H ADD A ,#45H ADD A ,#0ABH

XCH A ,B ;溢出处理 ADDC A ,#00H XCH A ,B

ADD A ,#03H ;A 中为结果低位,B 中为高位 (2)CDH+15H-38H-46H=

MOV A,#0CDH

ADD A,#15H

SUBB A,#38H

SUBB A,#46H

(3)1234H+8347H=

MOV A,#34H

ADD A,#47H

MOV 30H,A

MOV A,#12H

ADDC A,#83H

MOV 31,A ;30H存结果低位,31H存结果高位

(4)AB123H-43ADCH=

CLR C

MOV A,#23H

SUBB A,DCH

MOV 30H,A

MOV A,#0B1H

SUBB A,#3AH

MOV 31H,A

MOV A,#0AH

SUBB A,,#04H

MOV 32H,A ;30H为低位,32H为高位

3、设有两个4位BCD码,分别存放在23H、22H单元和33H、32H单元中,求他们的和,并送入43H、42H单元中(低位在低字节,高位在高字节)。

答:MOV A,22H

ADD A,32H

MOV 42H,A

MOV A,23H

ADDC A,33H

MOV 43H,A

4、略

5、编程计算片内RAM区50H~59H单元中数的平均值,结果存放在5AH中。

答:MOV R0,#8

MOV R1,#50H

MOV A,#00H

L1: ADD A,@R1

INC R1

DJNZ R0,L1

MOV B,#8

DIV AB

MOV 5AH,A

6、编写计算下式的程序。设乘积和平方结果均小于255。a 、b值分别存在片外3001H和3002H

单元中,结果存于片外3000H单元中。

(1)??

?

??÷?=b a b a Y 25

b a b a b a ><=,,,

MOV DPTR ,#3001H MOVX A ,@DPTR MOV 30H ,A ;a 暂存30H 单元

INC DPL

MOVX A ,@DPTR CJNE A ,30H ,L1 ;是否a=b

MOV A ,#25 SJMP SAVE L1: JNC L2 MOV B ,30H MUL AB SJMP SAVE L2: MOV B ,A MOV A ,30H DIV AB

SAVE: MOV DPTR ,#3000H

MOVX

@DPRT ,A

(2)??

???-++++=10)()(10)(22

2b a b a b a Y 10)(,10)(,10)(,2

22>+=+<+b a b a b a

MOV DPTR ,#3001H

MOVX A ,@DPTR MOV 30H ,A INC DPTR MOVX A ,@DPTR ADD A ,30H MOV B ,A

MUL AB ; (a +b)2

MOV 31H ,A CJNE A ,#10,L1 SJMP SAVE L1: JC L2 CLR C

SUBB A ,#10 SJMP SAVE L2: ADD A ,#10

SAVE: MOV DPTR ,#3000H MOVC @DPTR ,A

7、设有两个长度均为15的数组,分别存放在以200H 和210H 为首地址的存储区中,试编程求其对应项之和,结果存放到以220H 为首地址的存储区中。

答:MOV DPH,#02H

MOV R1,#15

MOV R2,#00H ;数组1首地址低位

MOV R3,#10H ;数组2首地址低位

MOV R4,#20H ;和首地址低位

L1: MOV DPL,R2

MOVX A,@DPTR

MOV R1,A

MOV DPL,R3

MOVX A,@DPTR

ADD A,R1

MOV DPL,R4

MOVX @DTPR,A

INC R2

INC R3

INC R4

DJNZ R1,L1

SJMP $

8、设有100个无符号数,连续存放在以2000H为首地址的存储区中,试编程统计正数、负数和零的个数。

答:MOV 30H,#00H ;正数计数器

MOV 31H,#00H ;负数计数器

MOV 32H,#00H ;零计数器

MOV DPTR,#2000H

MOV R1,#100

L4: MOVX A,@DPTR

INC DPTR

CJNE A,#0,L1

INC 32H

SJMP L2

L1: JC L3

INC 30H

SJMP L2

L3: INC 31H

L2: DJNZ R1,L4

SJMP $

9、将片外数据存储器地址为1000H~1030H的数据块,全部搬迁到片内RAM 30H~60H中,并将原数据块区域全部清零。

答:MOV R0,#30H

MOV R2,#31H

MOV DPTR ,#1000H

LP: MOVX A,@DPTR

MOV @R0,A

AND A,#00H

MOVX @DPTR,A

INC R0

INC DPTR

DJNZ R2,LP

SJMP $

10、试编写一子程序,是R1、R0指向的两个片外RAM连续单元中的高4位二进制数,合并成一个字节,装入累加器A中。已知R0指向低地址,并要求该单元高四位放在A中高四位。

答:MOVX A,@R1

ANL A,#0F0H

SWAP A

MOV R2,A

MOVX A,@R0

ANL A,#0F0H

ORL A,R2

11、试编程把以2040H为首地址的连续50个单元的无符号数按降序排列,存放到以3000H为首地址的存储区中。

答:MOV R2,#50

MOV R3,#20H

MOV R4,#40H ;源地址

MOV R5,#30H

MOV R6,#00H ;目的地址

SEND: MOV DPH,R3 ;SEND将2040H数据块移入3000H存储区MOV DPL,R4

MOVX A,@DPTR

INC DPTR

MOV R3,DPH

MOV R4,DPL

MOV DPH,R5

MOV DPL,R6

MOVX @DPTR,A

INC DPTR

MOV R5,DPH

MOV R6,DPL

DJNZ R2,SEND

MOV R2,#49 ;重复次数

CMP1: MOV DPTR,#3000H

MOV R3,#49 ;比较次数

CMP2: MOVX A,@DPTR

MOV B,A

INC DPTR

MOVX A,@DPTR

CJNE A,B,L1

L1: JC NOMOVE

MOV 30H,A

CLR C

MOV A,DPL

SUBB A,#01H

MOV DPL,A

MOV A,30H

MOVX @DPTR,A

INC DPTR

MOV A,B

MOVX @DPTR,A

NOMOVE: DJNZ R3,CMP2 ;50个数重复一遍?

DJNZ R2,CMP1 ;排序结束?

LJMP $

12、试编一查表程序,从首地址为2000H,长度为100的数据块中找出ASCII码为A,将其地址送到20A0H和20A1H单元中。

答:MOV DPTR,#2000H

MOV R2,#100

GO_ON: MOVX A,@DPTR

CJNE A,#41H,IFEND

MOV A,DPH

MOV B,DPL

MOV DPTR,#20A0H

MOVX @DPTR,A

INC DPTR

XCH A,B

MOVX @DPTR,A

SJMP OVER

IFEND: INC DPTR

DJNZ R2,GO_ON

OVER: SJMP OVER

13、设在200H~204H单元中,存放5个压缩BCD码,编程将他们转换成ASCII码,存放到以205H 单元为首地址的存储区。

答:MOV R2,#05H

MOV R3,#02H

MOV R4,#00H

MOV R5,#02H

MOV R6,#05H

CHLP: MOV DPH,R3

MOV DPL,R4

MOVX A,@DPTR

INC DPTR

MOV R3,DPH

MOV R4,DPL

MOV B,A

SWAP A

ANL A,#0FH

ORL A,#30H

MOV DPH,R5

INC DPTR

MOV A,B

ANL A,#0FH

ORL A,#30H

MOVX @DPTR,A

MOV R5,DPH

MOV R6,DPL

DJNZ R2,CHLP

14、有一无符号数据块长度在30H单元中,其首地址为31H单元,求出数据块中最大值,并存入40H中。

答:MOV R0,#31H

MOV R1,30H

MOV 40H,#00H

LOOP: MOV A,@R0

CJNE A,40H,L1

SJMP AGAIN

L1: JNC L2

SJMP AGAIN

L2: MOV 40H,A

AGAIN: INC R0

DJNZ R1,LOOP

SJMP $

15、略

16、在以2000H为首地址的存储区内,存放20个用ASCII码表示的0~9之间的数,试编程,将它们转换成BCD码,并以压缩BCD码的形式存在3000H~3009H单元中。

答:MOV R2,#10

MOV R3,#20H

MOV R4,#00H

MOV R5,#30H

MOV R6,#00H

LP: MOV DPH,R3

MOV DPL,R4

MOVX A,@DPTR

ANL A,#0FH

SWAP A

XCH A,B

INC DPTR

MOVX A,@DPTR

ANL A,#0FH

ORL A,B

INC DPTR

MOV R3,DPH

MOV R4,DPL

MOVX @DPTR ,A INC DPTR MOV R5,DPH MOV R6,DPL DJNZ R2,LP SJMP $

17、试编程实现下列逻辑表达式功能。设P1.7~P1.0为8个变量的输入端,而其中P1.7又作为变量的输出端。

;输入端定义

X0 EQU P1.0

X1 EQU P1.1 X2 EQU P1.2 X3 EQU P1.3 X4 EQU P1.4 X5 EQU P1.5 X6 EQU P1.6

X7 EQU P1.7

(1)76543210X X X X X X X X Y +++= MOV C ,X0 ANL C ,X1 ANL C ,/X2 ORL C ,X3 MOV 00H ,C MOV C ,X4 ANL C ,X5 ANL C ,X6 ORL C ,/X7 ORL C ,00H

MOV

P1.7,C

(2)76543210X X X X X X X X Y ++= MOV C ,X0 ANL C ,X1 CPL C

MOV 00H ,C MOV C ,X2 ANL C ,X3 ANL C ,X4 CPL C

MOV 01H ,C MOV C ,X5

ANL C ,X6

ANL C,X7

CPL C

ORL C,O1H

CPL C

ORL C,00H

MOV P1.7,C

18、略

19、略

20、试编写延时1s、1min、1h子程序。

;单片机时钟fosc=12MHz,计算为近似值

;1s延时子程序

DLY_1S: MOV R0,#10

L3: MOV R1,#200

L2: MOV R2,#250

L1: DJNZ R2,L1

DJNZ R1,L2

DJNZ R0,L3

RET

;延时1min

DLY_1M: MOV R3,#60

L4: LCALL DLY_1S

DJNZ R3,L4

RET

;延时1h

DLY_1H: MOV R4,#60

L5: LCALL DLY_1M

DJNZ R4,L5

RET

21、用程序实现c=a2+b2。设a、b均小于10,a存在31H单元中,b存在32H单元中,c存33H单元。

答:ORG 1000H

SR:MOV A,31H

ACALL SQR

MOV R1,A

MOV A,32H

ACALL SQR

ADD A,R1

MOV 33H,A

SJMP $

;求平方子程序如下(采用查平方表的方法)

SQR: INC A

MOVC A, @A+PC

RET

TABLE: DB 0, 1, 4, 9, 16

DB 25,36,49,64,81

END

22、如何实现将内存单元40H~60H的数逐个对应传到片外2540H~2560H单元中?

答:MOV R0,#40H

MOV DPTR,#2540H

MOV R2,#21H

L1: MOV A,@R0

MOVX @DPTR,A

INC R0

INC DPTR

DJNZ R2,L1

SJMP $

23、参考21题24、参考21题25、参考实验程序26、参考实验程序

第五章定时/计数器

1、89S51单片机内部有几个定时/计数器,他们有哪些专用寄存器组成?

答:89S51单片机内部有两个16位定时/计数器,为定时器0(T0)和定时器1(T1)。在定时器/计数器的16位的计数器是由两个8位的专用寄存器TH0、TL0,TH1、TL1组成。

2、89S51单片机的定时/计数器有哪几种工作方式,各有什么特点?

答:定时器/计数器有四种工作方式:方式0,方式1,方式2,方式3。其中,方式3只适用于T0。

以T0为例:①方式0,16位寄存器只用了13位,TL0的高三位未用。由TH0的8位和TL0的低5位组成一个13位计数器;②方式1,和方式0的工作相同,唯一的差别是TH0和TL0组成一个16位计数器;③方式2,把TL0配置成一个可以自动恢复初值的8位计数器,TH0作为常数缓冲器。TH0由软件预置值。当TL0产生溢出时,一方面使溢出标志TF0置1,同时把TH0中的8位数据重新装入TL0中;④方式3,将使TL0和TH0成为两个相互独立的8位计数器,TL0利用T0本身的一些控制,它的操作与方式0和方式1类似。而TH0被规定为只用作定时器功能,对机器周期计数,并借用了T1的控制位TR1和TF1。在这种情况下TH0控制了T1的中断。这时T1还可以设置为方式0~2,用于任何不需要中断控制的场合,或者用作串行口的波特率发生器。

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

答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。定时时间与时钟频率和定时初值有关。

定时/计数器作计数时,由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。

4、当定时器T0用作方式3时,由于TR1位已被T0占用,如何控制定时器T1的开启和关闭?答:定时器T0用作方式3时,由于TR1位已被T0占用,此时通过控制位C/T切换其定时或计数器工作方式。当设置好工作方式时,定时器T1自动开始运行,若要停止,只需送入一个置定时器T1为方式3的方式字。

5、已知89S51单片机系统时钟频率为24MHz,请利用定时器T0和P1.2输出矩形脉冲。矩形波高电平宽度50μs,低电平宽度350μs。

答:ORG 1000H

MOV TMOD,#02H ;设置工作方式

MOV TH0,#09CH ;设置定时器初值

MOV TL0,#09CH

SETB TR0 ;启动定时器

LOOP:SETB P1.2 ;P1.0输出高电平

MOV R0,#07H

DEL:JBC TF0 ,REP ;定时是否到?

AJMP DEL

REP:SETB P1.2 ;P1.0输出低电平

DJNZ R0,DEL

AJMP LOOP

END

6、在89S51单片机中,已知时钟频率为12MHz,请编程使P1.0和P1.1分别输出周期为2ms和500μs的方波。

答:选择方式2,用定时器T1

MOV TMOD,#20H

MOV TH1,#06H

MOV TL1,#06H

SETB TR1

L1: MOV R2,#04H

L2: JNB TF1,$

CLR TF1,

CPL P1.1

DJNZ R2,L2

CPL P1.0

LJMP L1

7、设系统时钟为24MHz,试用定时器T0做外部计数器,编程实现每计到1000个脉冲,是T1开始2ms定时,定时时间到后,T0又开始计数,循环往复。

答:MOV TMOD,#15H ;T1定时方式1,T0计数方式1

L1: MOV TH0,#0FCH

MOV TL0,#18H

SETB TR0

JNB TF0,$

CLR TR0

CLR TF0

MOV TH1,# H

MOV TL1,# H

SETB TR1

JNB TF1,$

CLR TR1

CLR TF1

LJMP L1

8、略 9、略

第六章 80C51的串行接口

1、什么是串行异步通信?他有哪些特点?有哪几种帧格式?

答:串行通信即所传输数据的各位按顺序一位一位的发送或接收。串行通信分为同步和异步两种方式。

在异步通信中数据或字符是一帧一帧地传送的。帧定义为一个字符的完整的通信格式,通常也称为帧格式。

它的主要特点:由于异步通信每传送一帧有固定的格式,通信双方只需按约定的帧格式来发送和接收数据,所以硬件结构比同步通信方式简单;此外它还能利用校验位检测错误。

帧格式的一般形式是先用一个起始位“0”表示字符的开始,然后是数据位,其后是奇偶校验位,最后是停止位,用以表示字符结束。

2、某异步通信接口按方式3传送,已知其每分钟传送3600个字符,计算其传送波特率。

答:设每个字符由1个起始位、8个数据位、1个可编程位和1个结束位组成,其传送波特率为: 11b×3600/60s=660bps

3、80C51单片机的串行口由哪些基本功能部件组成?

答: 80C51单片机的串行口基本功能部件主要有:两个数据缓冲寄存器SBUF,一个串行口控制寄存器SCON,一个输入移位寄存器。

4、80C51单片机的串行口有几种工作方式?几种帧格式?如何设置不同方式的波特率?

答:80C51单片机的串行口有四种工作方式,由串行口控制寄存器中的SM0、SM1控制。

80C51单片机的串行通信有8位、10位、11位三种帧格式。

波特率设置:4种工作方式波特率的计算方法不同,其中方式0和方式2的波特率是固定的,方式1和方式3的波特率是可变的,均由定时器T1的溢出率控制。具体计算如下:方式0:波特率固定为时钟频率的1/12,不受SMOD的影响。(SMOD为波特率倍增位)

方式1的波特率=2SMOD/32×定时器T1的溢出率

方式2的波特率=2SMOD/64×fosc

方式3的波特率=2SMOD/32×定时器T1的溢出率

5、为什么定时器T1用作串行口波特率发生器时,常采用工作方式2?

答:在串行通信中,收发双方对发送或接收的数据速率(即波特率)要有一定的约定。串口有四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,有定时器T1的溢出率控制。定时器T1用作串行口波特率发生器时,因为工作方式2是自动重装载方式,因而定时器T1作波特率发生器常采用工作方式2.

6、已知定时器T1设置成方式2,用作波特率发生器,系统时钟频率为24MHz,求可能产生的最高和最低的波特率是多少?

答:最高波特率:TH1=0FFH,TL1=0FFH

波特率最高=2/32×24M/(12×(256-255))bps=0.125Mbps

最低波特率:TH1=00H,TL1=00H

波特率最低=1/32×24M/(12×(256-0))bps=244bps

7、略(参见教材相关例题)

8、利用AT89S51串行口控制8个发光二极管工作,要求发光二极管每隔1S交替的亮灭,画出电路并编写程序。

答:电路如下图所示

实验程序如下:

CLR P1.0 ;清输出

SETB P1.0 ;允许串行移位

MOV SCON,#00H

MOV A,#55H ;显示初值

AGAIN: MOV SBUF,A

JNB TI ,$ CLR TI LCALL DLY_1S RR A LJMP AGAIN DLY_1S: MOV R1,#20 L3: MOV R2,#200 L2: MOV R3,#250 L1: DJNZ R3,L1 DJNZ R2,L2 DJNZ R1,L3 RET

9、串行口异步通信时,ASCII 码“3”的字符格式(10位)如何?

答:串行口异步通信时,10位的数据帧结构为:一个起始位(0),8个数据位(先低位后高位),一个停止位(1)。

故ASCII 码“3” 的字符格式为:0110011001B 。

10、若选用定时器T1作波特率发生器,设fosc=6MHz ,计数初值为0FDH ,SMOD=1,求波特率是多少?

答:若选用定时器 T1作波特率发生器,波特率由下式确定:

波特率=(定时器T1溢出率)/n

公式中:①n 为32或16,取决于特殊功能寄存器PCON 中的SMOD 位的状态。若SMOD=0,则n=32。若SMOD=1,则n=16。②定时器T1溢出率=定时器T1的溢出次数/秒。 由题可知:f osc =6MHz ,计数初值为0FDH ,SMOD=1,故

()

kHz 42.10FDH 02561216MHz

6=-??

第七章 中断系统

1、什么是中断?在单片机中中断能实现哪些功能?

答:中断是通过硬件来改变CPU 程序运行方向。计算机在执行程序过程中,由于CPU 以外的原因,有必要尽快终止当前程序的执行,而去执行相应的处理程序,待处理结束后,在回来继续执行被终止的原程序。这种程序在执行过程中由于外界的原因而被中间打断的情况成为“中断”。

中断能实现的功能:(1)能实现中断及返回。(2)能实现优先权的排队。

(3)能实现中断的嵌套。

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

答:通常,在系统中会有多个中断源,有时会出现两个或更多个中断源同时提出中断请求的情况,这就要求计算机能区分各个中断源的请求,有能确定首先为哪一个中断源服务。为了解决这一问题,通常给各中断源规定了优先级别,称为优先权或中断优先级。

中断优先级处理原则:两个或两个以上的中断源同时提出中断申请时,计算机首先为中断优先权最高的中断服务,服务结束以后,再响应级别较低的中断源。

3、80C51有几个中断源,各中断标志如何产生的,又如何清“0”的?CPU 响应中断时,中断入口地址各是多少?

答:8051单片机有5个中断源,分别是:外部中断0、定时器T0中断、外部中断1、定时器T1中断、串行口中断。

中断标志产生与清“0”:

(1)外部中断:外部中断由外部原因引起,可以通过两个固定的引脚(10INT INT 和)输入信号。一旦输入信号有效,则向CPU 申请中断并使IE0(或IE1)=1。硬件复位。

(2)定时器中断:定时器中断是为了满足定时或计数溢出处理的需要而设置的。当定时/计数器的计数结构发生计数溢出时,即表明定时时间到或计数次数到,此时就以计数器溢出信号作为中断请求,去置一个溢出标志位(TF0或TF1=1)。使用中断时通过硬件复位,在查询方式下可由软件复位。

(3)串口中断:串行中断请求是在单片机内部产生的。当发送完数据或接收完数据后,就会置相应标志位(TI 或RI=1)。一旦响应中断,必须由软件进行复位。

中断入口地址:外部中断0、定时器T0中断、外部中断1、定时器T1中断、串行口中断的入口地址依次为:0003H ,000BH ,0013H ,001BH ,0023H 。 4、中断响应时间是否确定不变的?为什么?

答:中断响应时间不是确定不变的。由于CPU 不是在任何情况下都可以中断请求予以响应,不同情况对中断响应的时间也是不一样的。中断信号会在每个机器周期的S5P2时刻对相应中断标志位进行置位,若CPU 在下一个机器周期才能查询到中断请求,如果满足中断响应的条件,下一条指令将是一硬件长调用指令,使程序转入中断矢量入口,调用本身需要2个机器周期,因此响应中断至少需要3个机器周期。如遇正在执行的指令,或有同级、更高级的中断服务正在进行,则需更长时间。若系统中只有一个中断源,则响应时间为3~8个机器周期。

5、用定时器T1定时,要求在P1.6口输出一个方波,周期为1min ,晶振为12MHz ,请用中断方式实现,并分析采用中断后的优点。

答:使用定时器T1,工作在方式1,定时50ms ORG 0000H LJMP MAIN ORG 001BH LJMP T1_SER ORG 0100H

MAIN: MOV TMOD ,#10H

MOV R0,#20 ;1s 定时次数 MOV R1,#30 ;定时30s MOV TH1,#3CH MOV TL1,#0B0H SETB ET1 SETB EA SETB TR1 SETB P1.6 SJMP $ 0RG 0200H T1_SER: MOV TH1,#3CH MOV TL1,#0B0H DJNZ R0,L1 MOV R0,#20 DJNZ R1,L1 MOV R1,#30 CPL P1.6 L1: RETI

单片机课后习题解答

练习练习练习 第二章单片机结构及原理 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):辅助进位标志位,又称为半进位标志位。

单片机课程设计心得体会

单片机课程设计心得体会 本页是网最新发布的《单片机课程设计心得体会》的详细范文参考文章,感觉写的不错,希望对您有帮助,为了方便大家的阅读。 单片机课程设计心得体会 结束了两周的电视机实训,我们又迎来了单片机课程设计实训,真是让我们受益匪浅啊?学到了很多东西,不管怎么样,先感谢学校给我的这么多机会。真正的学到了东西。为期一周的单片机课程设计让我们受益匪浅。此次课程设计软件与硬件相结合,考察了我们的焊接水平与编程能力。对于我们应用电子技术的学生而言焊接是不成问题,也很顺利;可到了编程时就出现了很大的障碍,先开始的显示时钟还算顺利,下面的报警部分就花费了相当长的时间,还有加上报警时的音乐也是我们到图书馆里查阅资料由汇编转化成c语言得来的。本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手,理解流程是有思维的前提。单片机是我们上学期开设的课程,所以很多专业知识也都忘记了。不过经过我们一步步的努力,花费的时间与精力终于没有白费,效果渐渐地出现了。其实本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱,在仔细修改程序之后,终于一步步地达到效果了。

我们将各个部分的程序编好后怎么都连不起来,出不了预期的效果。对于硬件在编程过程中pcb板的接触又是一个头疼的问题,在进行编译的时候,数码显示管上什么都没有,按一下旁边与之相连的元器件时就有显示了,所以也花费了好多时间在pcb 板的重新焊接上。对于软件我们在时钟完成后就对其加入了报警系统,可加了之后发现程序乱了,以前的时钟也不可以控制了。网经过反复研究,发现接地接错了位置,导致了用来报警的红灯跟绿灯根本不亮,然后就将接地线重新焊接了一下,功夫不负有心人,红灯亮了,配合编好的程序,用纸板挡住了发射管与接收管之间的信号传输,数码显示管出现闪烁的效果,并且没信号的时候绿灯亮,有信号的时候红灯就亮了,这个现象让我们喜出望外。经过修改时钟程序和报警系统都被使用上了,可更大的难题就是如何让它报警?这困扰了我们,数码显示管上终于有了闪烁的效果,可报警声还没加的上去。老师的要求是除了蜂鸣器上的报警声再加一段音乐。翻阅了图书馆里的书籍,查出来的音乐程序都是用汇编编的,要将此程序放到主程序中就必须将汇编程序改编成c语言程序。这再次困扰了我们,虽然以前也学过汇编跟c 之间的互换,可都是简单的,从没涉及到这么复杂的程序过,改编很是有压力,经过研究,我们将汇编程序舍弃了,到网上下载了一段音乐程序,是c语言编的。要让音乐在我们的红外报警系统中唱出来可不是什么简单的事情,虽然找到了音乐程序,但要让音乐程序跟我们的主程序融合在一起得花费点心思了。

单片机课后答案

答:中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因而必须终止原程序的执行,转去完成相应的处理程序,待处理结束之后再返回继续执行被终止原程序的过程。中断源指向 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 在两个机器周期内检测到由高到低的负跳变,高电平与低电平的持续时间不得少于一个机器周

单片机原理与应用教程第3版习题课后答案

《单片机原理及应用程序》(第三版)习题参考答案 第一章 1. 为什么计算机要采用二进制数?学习十六进制数的目的是什么? 在计算机中,由于所采用的电子逻辑器件仅能存储和识别两种状态的特点,计算机部一切信息存储、处理和传送均采用二进制数的形式。可以说,二进制数是计算机硬件能直接识别并进行处理的惟一形式。十六进制数可以简化表示二进制数。 2. (1) 01111001 79H (2) 0.11 0.CH (3) 01111001.11 79.CH (4) 11101010.101 0EA.AH (5)01100001 61H (6) 00110001 31H 3. (1) 0B3H (2)80H (3) 17.AH (4) 0C.CH 4. (1)01000001B 65 (2) 110101111B 431 5. (1) 00100100 00100100 00100100 (2) 10100100 11011011 11011100 (5) 10000001 11111110 11111111 6. 00100101B 00110111BCD 25H 7. 137 119 89 8.什么是总线?总线主要有哪几部分组成?各部分的作用是什么? 总线是连接计算机各部件之间的一组公共的信号线。一般情况下,可分为系统总线和外总线。 系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB) 地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信

息由地址总线输出,然后经地址译码单元处理。地址总线为16位时,可寻址围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的围。在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。 控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。 数据总线(DB):CPU是通过数据总线与存储单元或外部设备交换数据信息的,故数据总线应为双向总线。在CPU进行读操作时,存储单元或外设的数据信息通过数据总线传送给CPU;在CPU进行写操作时,CPU把数据通过数据总线传送给存储单元或外设9.什么是接口电路? CPU与接口电路连接一般应具有哪些信号线?外部设备与接口电路连接一般应具有哪些信号线? CPU通过接口电路与外部输入、输出设备交换信息, 一般情况下,外部设备种类、数量较多,而且各种参量(如运行速度、数据格式及物理量)也不尽相同。CPU为了实现选取目标外部设备并与其交换信息,必须借助接口电路。一般情况下,接口电路通过地址总线、控制总线和数据总线与CPU连接;通过数据线(D)、控制线(C)和状态线(S)与外部设备连接。 10. 存储器的作用是什么?只读存储器和随机存储器有什么不同? 存储器具有记忆功能,用来存放数据和程序。计算机中的存储器主要有随机存储器(RAM)和只读存储器(ROM)两种。随机存储器一般用来存放程序运行过程中的中间数据,计算机掉电时数据不再保存。只读存储器一般用来存放程序,计算机掉电时信息不会丢失。 11.某存储器的存储容量为64KB,它表示多少个存储单元?64×1024 12. 简述微型计算机硬件系统组成。

单片机课后习题答案

习题答案 习题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

单片机课程设计stc89c52+nrf24l01

武汉纺织大学
单片机原理与应用 课 程 设 计
设计题目: 学 班 姓 QQ 院: 级: 名: 号: nrf24l01 数据传送 电子与电气工程学院 电子 11201 张啸宇 胡安凯 1272779714
1

目录
一、思想出路: .............................................................................. 3 二、设计方案: .............................................................................. 3 2.1、硬件设计方案: ............................................................... 3 2.2、软件设计方案: ............................................................... 3 1.驱动文件: ........................................................................ 3 2.发送端主程序 .................................................................... 4 3.接收端主程序 .................................................................... 5 2.3、接线: ............................................................................... 6 三、选题方案 .................................................................................. 7 四、系统原理图 .............................................................................. 7 4.1、发射端: ........................................................................... 7 4.2、接收端: ........................................................................... 8 五、程序精选 .................................................................................. 8 六、总结 ......................................................................................... 8 6.1、功能总结: ....................................................................... 8 6.2、功能完善: ....................................................................... 9 6.3、自我总结: ....................................................................... 9 七、展望:...................................................................................... 9
2

单片机课后习题答案

单片机课后习题答案 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 计算机经过了哪些主要发展阶段? 解:单片机的发展大致经历了四个阶段: 第一阶段(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

89C52单片机课程设计

1. 设计任务及要求 1.1 设计任务 (1)完成基本焊接任务 (2)单片机开发板功能正确 (3)完成指定的实验 (4)完成课程设计报告 1.2 要求 (1)元件面:元器件位置正确、排列整齐有序,元件整形恰当。 焊接面:整洁、清爽,焊点圆润、无虚焊,引脚修整合适。 (2)能够下载程序、运行演示程序。 (3)完成3个程序的编写、下载及演示功能。 (4)报告格式规范、文字流畅、思路清晰。 2.方案设计与论证 2.1 方案设计 方案一:仿照周立功实验箱自行设计电路,然后完成焊接,实现各功能。 https://www.doczj.com/doc/668120060.html,单片机仿真器、编程器、实验仪三合一综合开发平台方案二:采用JB-MCS 51-V8.0电路板,直接焊接相关元器件并实现各功能。 2.2论证 经验证https://www.doczj.com/doc/668120060.html,实验平台所需元器件无法找齐,且体积过大不便于携带等原因,最终决定采用方案二。 3.单元电路原理

各单元电路原理图4.总原理图及元器件清单 4.1 总原理图 4.2 元器件清单

5 硬件安装与调试 在安装硬件的过程中要注意硬件的排列有序,焊点圆润、无虚焊,引脚修剪整齐。在硬件安装完毕后,对作品进行调试。通过STC软件对作品进行调试以及程序的下载,具体步骤如下: (1)选择单片机型号 (2)选择程序 (3)选择串口,安装USB驱动程序后,可在设备管理器中看到多出的串口(每台电脑不一样)。

然后在软件中选择相应的串口 (4)选择波特率,一般情况下这都是默认的,最高波特率选择115200,最低波特率选择1200。 (5)以上步骤完成后,就点击Download/下载,按左下角的提示进行操作。

单片机课后习题答案解析

一)填空题 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单片机的硬件结构 (一)填空题

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

第一章 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设计要求 1.1 设计任务 (1)实现计时范围00.00-99.99秒表 (2)实现秒表精确到0.01秒 (3)实现秒表的三个控制键;开启计时键,暂停键和复位键 1.2 设计要求 用单片机设计一个计时范围在00.00致99.99的秒表,秒表精确在0.01秒 秒表有三个控制键分别是;秒表计时开启键,计时暂停键和秒表复位键。 1.3 方案论证 方案一:用AT89C51作为主要芯片,采用排阻,并用汇编语言写程序,采用硬件消抖 方案二:采用三极管驱动数码管,C语言编写程序,在编写程序时进行软件消抖 相比之后方案二更简便,因为软件消抖更容易,C语言程序更容易懂,易修改,硬件电路更简单。 2 设计思想 2.1 硬件设计思想 数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。 设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零、启动等。主控制器采用单片机AT89C52,显示电路采用四位共阳极LED数码管显示计时时间。由于本实验有四位数码管,如果采用静态显示要占用全部的I/O端口,所以本次试验采用静态显示, 建立最小单片机系统,在AT89C51单片机的P2端通过三极管接上4位七段共阴极数码管,P2.0脚接第一位数码管片选端,P2.1脚接第二位数码管片选端,P2.2脚接第三位数码片选端,P2.3脚接第四位数码管片选端,这四位分别显示秒时间的十位,个位,小数点后一位,小数点后两位显示的片选控制端。P2.4脚接小数点控制端。 秒表控制键盘。用P3.0接键盘开启计时键,P3.1接键盘计时暂停键,P3.2 接键盘计时复位键。

单片机原理及应用课后习题参考答案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

51单片机练习题

一.闪烁灯 1.实验任务 如图4.1.1所示:在端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1)延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为秒,相对于微秒来说,相差太大,所以我们在执行 某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是 如何设计呢下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个22+2×248=49820× DJNZ R7,$ 2个2×248(498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。如本实验要求秒=200ms,10ms×R5 =200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当端口输出高电平,即=1时,根据发光二极管的单向导 电性可知,这时发光二极管L1熄灭;当端口输出低电平,即=0时,发 光二极管L1亮;我们可以使用SETB指令使端口输出高电平,使用CLR 指令使端口输出低电平。 5.程序框图

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

单片机部由哪几部分电路组成各部分电路的主要功能是什么 解:单片机部由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 用了一个“+”号。 :

单片机课程设计

浙江工业大学之江学院 题目:数字时钟逻辑电路课程设计 班级:测控901 学号:200920540104 姓名:侯晓明 指导老师:刘勤贤 时间:2011年12月26日-2012年1月3日

设计背景 数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。 单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。 课程设计目的 (1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力; (2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力; (3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。 89C51及各管脚介绍:带4K字节闪烁可编程可擦除只读存储器低电压、高性能CMOS8位微处理器

VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。P1口:一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P2口:一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。P3口:管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。 74LS273相关介绍:带有清除端的8D触发器,只有在清除端保持高电平时,才具有锁存功能,锁存控制端为11脚CLK,采用上升沿锁存。 CPU 的ALE信号必须经过反相器反相之后才能与74LS273的控制端CLK 端相连。 1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。

相关主题
文本预览
相关文档 最新文档