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

单片机课后习题答案

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

1.什么是单片机?

答:将中央处理器(Central Processing Unit,CPU)、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等微型计算机的主要部件集成在一块芯片上,使其具有计算机的基本功能,就叫做单片微型计算机(Single Chip Micro Computer,SCMC),简称单片机。由于单片机的指令功能是按照工业控制的要求设计,所以单片机又称为微控制器(Micro Controller Unit,MCU)。

2.单片机有哪些特点?

答: (1)单片机的存储器ROM和RAM是严格区分的。ROM称为程序存储器,只存放程序、固定常数及数据表格。RAM则为数据存储器,用作工作区及存放用户数据。

(2)采用面向控制的指令系统。

(3)单片机的I/O引脚通常是多功能的。

(4)单片机的外部扩展能力强。

(5)单片机体积小,成本低,运用灵活,易于产品化。

(6)面向控制,能有针对性地解决从简单到复杂的各类控制任务,因而能获得最佳的性能价格比。

(7)抗干扰能力强,适用温度范围宽。

(8)可以方便地实现多机和分布式控制,使整个控制系统的效率和可靠性大为提高。

3.单片机的应用有哪些?

答: (1)工业控制。单片机可以构成各种工业控制系统、数据采集系统等。如数控机床、自动生产线控制、电机控制、测控系统等。

(2)仪器仪表。如智能仪表、医疗器械、数字示波器等。

(3)计算机外部设备与智能接口。如图形终端机、传真机、复印机、打印机、绘图仪、磁盘/磁带机、智能终端机等。

(4)商用产品。如自动售货机、电子收款机、电子秤等。

(5)家用电器。如微波炉、电视机、空调、洗衣机、录像机、音响设备等。(6)消费类电子产品。

(7)通讯设备和网络设备。

(8)儿童智能玩具。

(9)汽车、建筑机械、飞机等大型机械设备。

(10)智能楼宇设备。

(11)交通控制设备。

4.常见的单片机有哪些类型?

答: 1.AVR单片机;2.Motorola单片机;3.MicroChip单片机;

4.Scenix单片机;5.EPSON单片机;7.GMS90单片机;8.华邦单片机9.Zilog单片机;10.NS单片机;11.AX1001单片机

1.MCS-51单片机内部包含哪些主要逻辑功能部件?

答:(1)1个8位的微处理器CPU。

(2)8KB的片内程序存储器Flash ROM(51子系列的Flash ROM为4KB),用于烧录运行的程序、常数数据。

(3)256B的片内数据存储器RAM(51子系列的RAM为128B),在程序运行时可以随时写入数据和读出,用于存放函数相互传递的数据、接收的外部数据、中间结果、最后结果以及显示的数据等。

(4)3个16位的定时器/计数器(51子系列仅有2个定时器),每个定时器/计数器可以设置为计数方式,用于对外部事件信号进行计数,也可以设置为定时方式,满足各种定时要求。

(5)有一个管理6个中断源(51子系列1是5个中断源)、两个优先级的中断控制器。

(6)4个8位并行I/O端,每个端口既可以用作输入,也可以用于输出。

(7)一个全双工的UART(通用异步接收发送器)串行I/O口,用于单片机之间的串行通信,或者单片机与PC机、其它设备、其它芯片之间的串行通信。(8)片内振荡电路和时钟发生器,只需外面接上一晶振或输入振荡信号就可产生单片机所需要的各种时钟信号。

(9)有一个可寻址64KB外部数据存储器、还可以寻址64KB外部程序存储器的三总线的控制电路。

2.MCS-51单片机的EA引脚有何功能?信号为何种电平?

答: EA为片外程序存储器选择输入端。该引脚为低电平时,使用片外程序存储器,为高电平时,使用片内程序存储器。

3.MCS-51单片机的ALE引脚有何功能?信号波形是什么?

答: ALE为地址锁存信号,每个机器周期输出两个正脉冲。在访问片外存储器时,下降沿用于控制外接的地址锁存器锁存从P0口输出的低8位地址。在没有接外部存储器时,可以将该引脚的输出作为时钟信号使用。

4.MCS-51单片机的存储器分为哪几个空间?如何区分不同空间的寻址?

答: MCS-51单片机有4个存储空间,它们是片内程序存储器和数据存储器,在片外可以扩展的程序存储器和数据存储器。这4个存储空间可以分成三类:片内数据存储空间(256B的RAM和128B的特殊功能寄存器)、片外数据存储空间(64KB)、片内和片外统一编址的程序存储空间(64KB)。不同的存储空间,它们有各自的寻址方式和访问指令。片内数据存储空间用MOV指令访问。片外数据存储空间用MOVX指令访问。片内和片外统一编址的程序存储空间用MOVC指令访问。

5.简述MCS-51单片机片内RAM的空间分配。内部RAM低128字节分为哪几个主要部分?各部分主要功能是什么?

答: 片内数据存储器按照寻址方式,可以分为三个部分:低128字节数据区,高128字节数据区间,特殊功能寄存器区。低128字节数据区分为三个区域:工作

寄存器区,位寻找区和通用数据区。工作寄存器区4组工作寄存器;位寻找区既可以做位操作,也可以字节操作;通用数据区用于堆栈和存放程序运行时的数据和中间结果。

6.简述MCS-51单片机布尔处理器存储空间分配,片内RAM包含哪些可以位寻址的单元。位地址7DH与字节地址7DH如何区别?位地址7DH具体在片内RAM中的什么位置?

答:低128字节数据区的位寻找区和高128字节数据区的某些可位寻址的特殊功能寄存器。位地址7DH与字节地址7DH可通过不同的指令来区别,位地址7DH 用位寻址指令来访问,字节地址7DH用字节寻址指令来访问,位地址7DH在低128字节数据区的位寻找区的2FH字节。

7.MCS-51单片机的程序状态寄存器PSW的作用是什么?常用标志有哪些位?作用是什么?

答:PSW是一个8位寄存器,用于设定CPU的状态和指示指令执行后的状态。

CY(PSW.7):进位标志。在执行加减运算指令时,如果运算结果的最高位(D7)发生了进位或借位,则CY由硬件自动置1。

AC(PSW.6):半进位标志位,也称为辅助标志位。在执行加减运算指令时,如果运算结果的低半字节(D3)发生了向高半字节进位或借位,则AC由硬件自动置1。

F0、F1(PSW.5 和PSW.1):用户标志位。用户可以根据需要对F0、F1赋予一定的含义,由用户置1和清0,作为软件标志。

RS1、RS0(PSW.4 和PSW.3):工作寄存器组选择控制位。通过对这两位设定,可以从4个工作寄存器组中选择一组作为当前工作寄存器。

OV(PSW.2):溢出标志位,有两种情况影响该位。一是执行加减运算时,如果D7或D6任一位,并且只一位发生了进位或借位,则OV自动置1,P(PSW.0):奇偶标志位。每条指令执行完后,该位都会指示当前累加器A 中1的个数。如果A中有奇数个1,则P自动置1。

8.MCS-51单片机复位后,CPU使用哪组工作寄存器?它们的地址是什么?用户如何改变当前工作寄存器组?

答: MCS-51单片机复位后,CPU使用0组工作寄存器。它们的地址是08H~0FH。通过程序状态字PSW中的RS1、RS0标志位改变当前工作寄存器组。

9.什么叫堆栈?堆栈指针SP的作用是什么?

答: 堆栈是在RAM专门开辟的一个特殊用途的存储区。堆栈是按照“先进后出”(即先进入堆栈的数据后移出堆栈)的原则存取数据。堆栈指针SP是一个8位寄存器,其值为栈顶的地址,即指向栈顶,SP为访问堆栈的间址寄存器。

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

答: PC与DPTR都是16位的寄存器。PC由两个8位的计数器PCH和PCL组成。PC实际是程序的字节地址计数器,它的内容是将要执行的下一条指令的地址,具有自加1功能。改变PC的内容就可以改变程序执行的方向。DPTR的高字节寄存器用DPH表示,低字节寄存器用DPL表示。DPTR既可以作为一个16位寄存器使用,也可以作为两个独立的8位寄存器使用。DPTR主要用于存放16位地址,

以便对64KB的片外RAM和64KB的程序存储空间作间接访问。

11.测试哪个引脚,可以快捷地判断单片机是否正在工作?

答: 若要检查单片机是否工作,可以使用示波器查看ALE引脚是否有脉冲信号输出。

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

答: 一种是读取锁存器原来的输出值,另一种情况是打开端口的缓冲器读取引脚上的信号,读端口锁存器,用MOV A,Pi指令。“读引脚”,要先用MOV Pi,#0FFH 对相应端口写FFH,使输出场效应管T截止,才能够正确输入,再用MOV A,Pi 指令。

13.MCS-51单片机的P0~P3口结构有何不同?用作通用I/O口输入数据时应注意什么?

答: P2口是一个双功能口,一是通用I/O口,二是以总线方式访问外部存储器时作为高8位地址口。其端口某一位的结构如图2-11所示,对比图2-10知,与P1口的结构类似,驱动部分基本上与P1口相同,但比P1口多了一个多路切换开关MUX和反相器3。P3口是一个多功能口,其某一位的结构见图2-12。与P1口的结构相比不难看出,P3口与P1口的差别在于多了“与非门”3和缓冲器4。正是这两个部分,使得P3口除了具有P1口的准双向I/O口的功能之外,还可以使用各引脚所具有的第2功能。P0多了一路总线输出(地址/数据)、总线输出控制电路(反相器3和与门4)、两路输出切换开关MUX及开关控制C,并且把上拉电阻换成了场效应管T1,以增加总线的驱动能力。用作通用I/O口输入数据时应注意要先用MOV Pi,#0FFH对相应端口写FFH,使输出场效应管T截止,才能够正确输入。

14.P0口用作通用I/O口输出数据时应注意什么?

答: P0口与其它端口不同,它的输出级无上拉电阻。当把它用作通用I/O口时,输出级是开漏电路,故用其输出去驱动NMOS输入时外接上拉电阻,这时每一位输出可以驱动4个LS型TTL负载。用作输入时,应先向端口锁存器写1。

15.什么叫时钟周期?什么叫机器周期?什么叫指令周期?时钟周期、机器周期与振荡周期之间有什么关系?

答: 时钟周期即振荡周期:为晶振的振荡周期,是最小的时序单位。状态周期:是振荡频率2分频后的时钟周期。显然,一个状态周期包含2个振荡周期。机器周期(MC):1个机器周期由6个状态周期、即12个振荡周期组成,是量度指令执行时间的单位。指令周期:是执行一条指令所需要的时间。一个指令周期由1~4个机器周期组成。

16.MCS-51单片机常用的复位电路有哪些?复位后机器的初始状态如何?

答: 复位电路有两种方式:上电自动复位电路和手动复位电路。复位后,程序计数器PC变为0000H,使单片机从程序存储器地址0000H单元开始执行。除P0~P3为FFH;SP为07H;SBUF为不确定。大部分特殊功能寄存器清零。

17.MCS-51单片机有几种低功耗工作方式?如何实现,又如何退出?

答: MCS-51单片机有空闲和掉电两种低功耗工作方式。当CPU执行完置IDL=1的指令后,系统就进入空闲方式。进入空闲方式之后,有两种方法可以退出。一种是任何中断请求被响应都可以由硬件将IDL位清0而结束空闲方式。另一种退出空闲方式的方法是硬件复位。当CPU执行完置PD=1的指令后,系统就进入掉电工作方式。对于一般的单片机来说,退出掉电方式的唯一方法是由硬件复位。

第3章习题答案

1.简述MCS-51汇编指令格式。

答:MCS-51汇编语言指令由四部分组成,其一般格式如下:

[标号:] 操作码 [操作数] [;注释]

格式中的方括号意为可以没有相应部分,可以没有标号、操作数和注释,至少要有操作码。其操作数部分最多可以是两项:

[第1操作数] [,第2操作数]

2.何谓寻址方式?MCS-51单片机有哪些寻址方式,是怎样操作的?各种寻址方式的寻址空间和范围是什么?

答:MCS-51单片机有7种寻址方式:立即数寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、位寻址和指令寻址。可以分为两类:操作数寻址和指令寻址。

立即数寻址的寻址空间和范围是:在程序存储空间,随指令读入MOV A,#46H 直接寻址的寻址空间和范围是:片内RAM中,低128字节和SFR MOV A,46H

寄存器寻址的寻址空间和范围是:使用R0~R7、A、B、C、DPTR MOV A,R2

寄存器间接寻址的寻址空间和范围是:片内RAM:使用@Ri,SP;范围为256B,不含SFR,片外RAM:使用@Ri,@DPTR;范围为64KB MOV A,@R0 MOVX A,@DPTR 变址寻址的寻址空间和范围是:使用@A+PC,@A+DPTR;在程序存储器中;

范围分别为PC之后256B之内和64KB全空间MOVC A,@A+DPTR

位寻址的寻址空间和范围是:使用位地址;在位寻址空间;RAM的20H~2FH和SFR SETB 36H

指令绝对寻址的寻址空间和范围是:操作数是目标地址;在程序存储空间;

范围为2KB或64KB全空间AJMP FIRST LJMP SECON

指令相对寻址的寻址空间和范围是:操作数是相对地址;在程序存储空间;范围﹣128~127 SJMP LOOP

3.访问片内RAM低128字节使用哪些寻址方式?访问片内RAM高128字节使用什么寻址方式?访问SFR使用什么寻址方式?

答: 访问片内RAM低128字节使用直接寻址,寄存器间接寻址,位寻址;访问片内RAM高128字节使用寄存器间接寻址;访问SFR使用直接寻址,位寻址。

4.访问片外RAM使用什么寻址方式?

答: 访问片外RAM使用寄存器间接寻址

5.访问程序存储器使用什么寻址方式?指令跳转使用什么寻址方式?

答: 访问程序存储器使用指令绝对寻址,指令相对寻址。指令跳转使用指令绝对寻址,指令相对寻址。

6.分析下面指令是否正确,并说明理由。

MOV R3,R7 错,两个操作数不能同时为工作寄存器

MOV B,@R2 对

DEC DPTR 错,不存在

MOV 20H.8,F0 错,位传送指令必须用C

PUSH DPTR

CPL 36H 错,不存在

MOV PC,#0800H 错,PC不能访问

7.分析下面各组指令,区分它们的不同之处。

MOV A,30H 与MOV A,#30H

前者表示:(30H)→A 后者表示:30H→A

MOV A,R0 与MOV A,@R0

前者表示:(R0)→A 后者表示:((R0))→A

MOV A,@R1 与MOVX A,@R1

前者表示:在片内数据存储器((R1))→A

后者表示:在片外数据存储器((R1))→A

MOVX A,@R0 与MOVX A,@DPTR

前者R0表示8位地址后者DPTR表示16位地址

MOVX A,@DPTR 与MOVC A,@A+DPTR

前者表示:((DPTR))→A 后者表示:((DPTR)+(A))→A

8.在MCS-51单片机的片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。请说明下面各是什么指令和寻址方式,以及每条指令执行后目的操作数的结果。

MOV A,40H ;数据传送,直接寻址,(A)=48H

MOV R0,A ;数据传送,寄存器寻址,(R0)=48H

MOV P1,#0FH ;数据传送,立即数寻址,(P1)=0FH

MOV @R0,30H ;数据传送,直接寻址,(48H)=38H

MOV DPTR,#1234H ;数据传送,立即数寻址,(DPTR)=1234H

MOV 40H,30H ;数据传送,直接寻址,(40H)=38H

MOV R0,38H ;数据传送,直接寻址,(R0)=40H

MOV P0,R0 ;数据传送,直接寻址,(P0)=40H

MOV 28H,#30H ;数据传送,立即数寻址,(28H)=30H

MOV A,@R0 ;数据传送,寄存器间接寻址,(A)=38H

9.已知(A)=23H,(R1)=65H,(DPTR)=1FECH,片内RAM(65H)=70H, ROM (205CH)=64H。试分析下列各条指令执行后目标操作数的内容。

MOV A,@R1 ;(A)=70H

MOVX @DPTR,A ;(1FECH)=70H

MOVC A,@A+DPTR ;(A)=64H

XCHD A,@R1 ;(A)=65H

10.已知(A)=76H,(R1)=76H,(B)=4,CY=1,片内RAM(76H)=0D0H,(80H)=6CH。试分析下列各条指令执行后目标操作数的内容和相应标志位的值。

ADD A,@R1 ;(A)=46H,CY=1

SUBB A,#75H ;(A)=0D0H,CY=1

MUL AB ;(A)=40H,(B)=03H

DIV AB ;(A)=15H,(B)=01H

ANL 76H,#76H ;(76H)=50H

ORL A,#0FH ;(A)=1FH

XRL 80H,A ;(80H)=73H

11.已知(A)=83H,(R0)=17H,(17H)=34H,试分析当执行完下面程序段后累加器A、R0、17H单元的内容。

ANL A,#17H ;(A)=03H

ORL 17H,A ;(17H)=37H

XRL A,@R0 ;(A)=34H

CPL A ;(A)=0CBH

12.阅读下面程序段,说明该段程序的功能。

MOV R0,#40H

MOV R7,#10

CLR A

LOOP:

MOV @R0,A

INC A

INC R0

DJNZ R7,LOOP

SJMP $

答:把0,1,2,3……数列送到40H开始的10个单元中。

13.阅读下面程序段,说明该段程序的功能。

MOV R0,#40H

MOV A,R0

INC R0

ADD A,@R0

MOV 43H,A

CLR A

ADDC A,#0

MOV 42H,A

SJMP $

答:40H加41H单元的数,结果送42H:43H

14.阅读下面程序段,说明该段程序的功能。

MOV A,30H

MOV B,#5

MUL AB

ADD A,31H

MOV 33H,A

CLR A

ADDC A,B

MOV 32H,A

SJMP $

答:(30H)×5+(31H)→(32H:33H)

15.编写程序,用位处理指令实现“P1.4=P1.0∨(P1.1∧P1.2)∨P1.3”的逻辑功能。

MOV C,P1.1

ANL C,P1.2

ORL C,P1.0

ORL C,P1.3

MOV P1.3,C

16.编写程序,若累加器A的内容分别满足下列条件,则程序转到LABLE存储单元。设A中存放的的无符号数。

(1)A≥10;(2)A>10;(3)A≤10。

(1)

CJNE A,#10,NEXT

LJMP LABLE

NEXT:

JNC LABLE

(2)

CJNE A,#10,NEXT

LJMP NEXT2

NEXT:

JNC LABLE

NEXT2:

(3)

CJNE A,#10,NEXT

LJMP LABLE

NEXT:

JC LABLE

17.编写程序,查找片内RAM的30H~50H单元中是否有55H这一数据,若有,则51H单元置为FFH;若未找到,则将51H单元清0。

MOV R0,29H

NEXT:

INC R0

CJNE R0,#51H,NEXT2

MOV 51H,#0FFH

AJMP OVER

NEXT2:

CJNE @R0,#55H,NEXT

MOV 51H,#0

OVER:

18.编写程序,查找片内RAM的30H~50H单元中出现0的次数,并将查找的结果存入51H单元。

MOV R0,30H

MOV 51H,#0

NEXT:

CJNE @R0,#00H,NEXT2

INC 51H

NEXT2:

INC R0

CJNE R0,#51H,NEXT

19.在片外RAM中有一个数据块,存有若干字符、数字,首地址为SOURCE要求将该数据块传送到片内RAM以DIST开始的区域,直到遇到字符“$”时结束($也要传送,它的ASCII码为24H)。

MOV DPTR,#SOURCE

MOV R0,#DIST

NEXT:

MOVX A,@DPTR

MOV @R0,A

INC DPTR

INC R0

CINE A,#24H,NEXT

20.片内RAM的30H和31H单元中存放着一个16位的二进制数,高位在前,低位在后。编写程序对其求补,并存回原处。

CLR C

MOV A,#0

SUBB A,31H

MOV 31H,A

MOV A,#0

SUBB A,30H

MOV 30H,A

21.片内RAM中有两个4字节压缩的BCD码形式存放的十进制数,一个存放在30H~33H单元中,另一个存放在40H~43H单元中。编写程序将它们相加,结果的BCD码存放在30H~33H中。

CLR C

MOV R0,#30H

MOV R1,#40H

MOV R2,#4

NEXT:

MOV A,@R0

ADDC A,@R1

MOV @R0,A

INC R0

INC R1

DJNZ R2,NEXT

22.编写程序,把片外RAM从2000H开始存放的16字节数据,传送到片内从30H 开始的单元中。

MOV DPTR,#2000H

MOV R0,#30H

MOV R1,#0

NEXT:

MOVX A,@DPTR

MOV @R0,A

INC DPTR

INC R0

INC R1

CINE R1,#16H,NEXT

第4章习题答案

1.用C51编程较汇编语言有哪些优势?

答:(1)编程容易

(2)容易实现复杂的数值计算

(3)容易阅读、调试、维护程序

(4)容易实现模块化开发

(5)程序可移植性好

2.C51字节数据、整型数据以及长整型数据在存储器中的存储方式各是怎样的?答:字符变量(char)无论是unsigned char数据还是signed char数据,均为1个字节,即8位,因此被直接存储在RAM中,可能存储在0~0x7f区域(包括位寻址区域),也可能存储在0x80~0xff区域,与变量的定义有关。

整型变量(int)不管是unsigned int数据还是signed int数据,均为2个字节,即16位,其存储方法是高位字节保存在低地址(在前面),低位字节保存在高地址(在后面)。

长整型变量(long)为4个字节,即32位,其存储方法与整型数据一样,是最高位字节保存的地址最低(在最前面),最低位字节保存的地址最高(在最后面)。

3.C51定义变量的一般格式是什么?变量的4种属性是什么?特别要注意存储区属性。

答:[存储类型] 数据类型 [存储区] 变量名1[=初值] [,变量名2[=初值]] [,…]

变量的4种属性是存储类型,数据类型,存储区,变量名

4.C51的数据存储区域类型有哪些?各种存储区域类型是哪种存储空间,存储范围是什么?如何将变量定义存储到确定的位置?

答:bit 片内数据区的位寻找区,位地址0x00~0x7f,128位(字节地址0x20~0x2f)

data 直接寻址片内数据区的低128字节

bdata 片内数据区的位寻址区0x20~0x2f,也可字节访问,16字节

idata 间接寻址片内数据区的256字节,与MOV @Ri 对应

pdata 分页寻址片外数据区的256字节,与MOVX @Ri 对应,P2不变

xdata 片外数据区的全空间,64KB

code 全部程序存储空间,64KB

绝对定位关键字_at_ ,指针,库函数的绝对定位宏。

5.C51位变量的定义格式是什么?如何定义bdata型字节变量的位变量?

答:[存储类型] bit 位变量名1[=初值] [,位变量名2[=初值]] [,…] sbit 位变量名= bdata型变量名^位号常数

6.如何定义8位字节型特殊功能寄存器?如何定义16位特殊功能寄存器?如何定义特殊功能寄存器的位变量?

答:sfr 特殊功能寄存器名=地址常数

sfr16 特殊功能寄存器名=地址常数

sbit 位变量名=特殊功能寄存器名^位号常数

7.C51专用指针定义的一般格式是什么?如何确定专用指针定义的指向空间和指针变量本身存储的空间?

答:[存储类型] 数据类型指向存储区 *[指针存储区] 指针名 1 [,*[指针存储区] 指针名2,…]

*的左面是指向存储区,*的右面是指针存储区

8.C51函数定义的一般形式是什么?如何定义中断处理程序?如何选择工作寄存器组?

答:返回类型函数名(形参表) [函数模式] [reentrant] [interrupt m] [using n]

{

局部变量定义

执行语句

}

[interrupt m]字段中的m定义中断处理程序的中断号

[using n]字段中的n选择工作寄存器组

9.在C51中,对汇编语言函数的命名规则是怎样的,具体地说:不传递参数的函数名格式是什么?通过寄存器传递参数的函数名格式是什么?传递参数重入函数的函数名格式是什么?

答:?PR?函数名?模块名//不传递参数

?PR?_函数名?模块名//通过寄存器传递参数

?PR?_?函数名?模块名//对重入函数通过堆栈传递参数

10.在C51中,函数返回值传递的规则是什么?

答:(1)调用时参数的传递

分三种情况:少于等于3个参数时通过寄存器传递(寄存器不够用时通过存储区传递),多于3个时有一部分通过存储区传递,对于重入函数参数通过堆栈传递。通过寄存器传递速度最快。

(2)函数返回值的传递

当函数有返回值时,其传递都是通过寄存器

11.在C51中,怎样嵌入汇编语言程序?怎样进行处理实现混合编程?

答:其方法是用编译控制指令“#pragma src”、“#pragma asm”和“#pragma endasm”实现。编译控制命令“#pragma src”是控制编译器将C源文件编译成汇编文件,“#pragma src”要放在文件的开始;“#pragma asm”和“#pragma endasm”指示汇编语言程序的开始和结束,分别放在汇编程序段的前面和后面。

对于函数的调用方法,与调用汇编语言中的函数一样,

在C语言文件中调用汇编语言中的函数,必须先声明再调用。声明格式如下:extern 返回值类型函数名(参数表);

12.在C51中如何定义模块名?在C51文件中的模块名是什么?

答:模块定义格式如下:

NAME 模块名

13.在汇编语言文件中:怎样声明函数段?怎样声明公共函数?怎样声明引用函数?怎样声明引用变量?定义函数的格式是什么?

答:对本模块定义的函数段作声明,其格式为:

?PR?函数名?模块名 SEGMENT CODE

公共函数声明。声明格式为:

PUBLIC 函数名

引用声明。声明格式为:

EXTRN CODE(函数名)

引用声明。声明格式为:

EXTRN 存储区域类型(变量名)

汇编语言函数的格式如下:

RSEG ?PR?函数名?模块名

函数名:

14.在C51中怎样把函数定义到确定的位置?

答:对函数的定位方法,

CSEG AT 001BH

15.如何在C51文件和汇编语言文件中相互调用对方文件中的函数?

答:汇编语言文件中对于函数的调用方法,与调用汇编语言中的函数一样,如:LCALL DISPLAY

在C语言文件中调用汇编语言中的函数,必须先声明再调用。声明格式如下:extern 返回值类型函数名(参数表);

例如: extern unsigned char right_shift ( char, char );

16.在C51中,如何访问DATA空间、PDATA空间、XDATA空间、CODE空间某个确定地址单元?

答:用指针定义的访问存储器的宏

使用时需要用预处理命令把该头文件包含到文件中,形式为:#include

(1)按字节访问存储器宏的形式

宏名[地址]

(2)按整型数访问存储器宏的形式

宏名[下标]

17.在某程序中需要定义如下变量:

(1)定义数码管的显示0~9的共阴极显示代码(0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07, 0x7f, 0x6f)数组dis_code,将其定义在CODE区。

(2)定义定时器/计数器0的赋计数值的高、低字节变量TL0_L和TH0_H,将其定义在DATA去区的0x30、0x31处。

(3)定义长度为20的无符号字符型数组data_buf于IDATA区中。

(4)定义长度为100的无符号字符型数组data_array于XDATA区中。

(5)先定义一个无符号字符型变量status于BDATA区中,再定义8个与status 的8个位对应的位变量flag_lamp1、flag_lamp2、flag_machine1、flag_machine2、flag_port1、flag_port2、flag_calcu1和calcu2(从低位到高位)。

答:(1)unsigned char code dis_code[10]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f};

(2)unsigned char data TL0_L _at_ 0x30, TH0_H _at_ 0x31; (3)unsigned char idata data_buf[20];

(4)unsigned char xdata data_array[100];

(5)unsigned char bdata status;

sbit flag_lamp1=status^0;

sbit flag_lamp2=status^1;

sbit flag_machine1=status^2;

sbit flag_machine2=status^3;

sbit flag_port1=status^4;

sbit flag_port2=status^5;

sbit flag_calcu1=status^6;

sbit flag_calcu2=status^7;

18.在89C52单片机中增加了定时器/计数器2(T2),修改头文件“REG51.H”,添加如下内容:

(1)特殊功能寄存器T2CON、T2MOD、RCAP2L、RCAP2H、TL2、TH2,地址分别为0xc8~ 0xcd。

(2)对T2CON的8个位分别定义位变量CP_RL2、C_T2、TR2、EXEN2、TCLK、RCLK、EXF2、和TF2(从低位到高位)。

(3)定义位变量T2、T2EX对应于P1口的第0位和第1位;定义位变量ET2对应于EI的第5位;定义位变量PT2对应于IP的第5位;

(4)对P1口的8个位分别定义位变量P0_0、P0_1、P0_2、P0_3、P0_4、P0_5、P0_6和P0_7(从低位到高位)。

答:(1)

sfr T2CON=0xc8;

sfr T2MOD=0xc9;

sfr RCAP2L=0xca;

sfr RCAP2H=0xcb;

sfr TL2=0xcc;

sfr TH2=0xcd;

(2)

sbit CP_RL2=T2CON^0;

sbit C_T2=T2CON^1;

sbit TR2=T2CON^2;

sbit EXEN2=T2CON^3;

sbit TCLK=T2CON^4;

sbit RCLK=T2CON^5;

sbit EXF2=T2CON^6;

sbit TF2=T2CON^7;

(3)

sbit T2=P1^0;

sbit T2EX=P1^1;

sbit ET2=EI^5;

sbit PT2=IP^5;

(4)

sbit P0_0=P0^0;

sbit P0_1=P0^1;

sbit P0_2=P0^2;

sbit P0_3=P0^3;

sbit P0_4=P0^4;

sbit P0_5=P0^5;

sbit P0_6=P0^6;

sbit P0_7=P0^7;

19.编写一C51函数,把从键盘输入的5位十进制数数转换成一个无符号整型数(假设未超出整型数范围)。设从键盘输入的数存放在一无符号数组中,低位数为低下标元素。

unsigned char data key_buffer[5];

unsigned int trans_int(void)

{

unsigned char data i;

unsigned int data temp=0;

for(i=0;i<5;i++)

{

temp=temp*10+key_buffer[i]-0x30;

}

return temp;

}

20.编写一C51函数,把一整型数按十进制数将其各位分离,分离后放在一无符号数组中,便于显示。要求把低位数作为低下标元素。

unsigned char data shu[5];

void main(unsigned int x)

{

unsigned int temp;

unsigned char i;

for(i=0;i<4;i++)

{

shu[i]=temp%10;

temp=temp/10;

}

shu[4]=temp;

}

21.编写一C51函数,使用专用指针,把片外数据存储器中从0x100开始的30个字节数据,传送到片内从0x40开始的区域中。

void main()

{

unsigned char data i,*dpt;

unsigned char xdata *xdpt;

dpt=0x40;

xdpt=0x100;

for(i=0;i<30;i++)

*(dpt+i)=*(xdpt+i);

}

22.编写一C51程序,实现从P1口输出产生的流水灯,要求用汇编语言函数实现数据左移或右移。

#pragma src

#include

void main()

{

unsigned char temp,i;

while(1)

{

temp=0x55;

P1=temp;

delay();

#pragma asm

MOV A,temp

RR A

MOV temp,A

#pragma endasm

P1=temp;

delay();

}

}

23.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数值,从0开始逐渐增大,到某一最大值后逐渐减小,直到0,然后再从0逐渐增大,一直这样输出。试编写一函数,使从P2口输出的值产生三角波,并且使三角波的周期和最大值通过入口参数能够改变。

#include

#define DAC0832 XBYTE[0x7FFF]

void san(unsigned char max1,unsigned char zhou1)

{

unsigned char i,j,max,zhou;

max=max1;

zhou=zhou1;

while(1)

{

for(i=0;i<=max,i++)

{

DAC0832=i;

for(j=0;j

delay();

}

for(i=max-1;i>0,i--)

{

DAC0832=i;

for(j=0;j

delay();

}

}

24.在数字滤波中有一种叫做“中值滤波”技术,就是对采集的数据按照从大到小或者从小到大进行排序,然后取其中在中间位置的数作为采样值。试编写一函数,对存放在片内数据存储器中从0x50开始的20个单元的采样数据用冒泡法排序进行中值滤波,把得到的采样数据存放到0x4f单元中。

void midf()

{

unsigned char data temp,i,j,*ptr,*ptr1;

ptr=0x50;

ptr1=0x4f;

for(j=20;j>1,j--)

{

for(i=0;i

{

if(*(ptr+i)>*(ptr+i+1))

{

temp=*(ptr+i+1);

*(ptr+i+1)=*(ptr+i);

*(ptr+i)=temp;

}

}

}

*ptr1=*(ptr+20/2);

}

25.在数字滤波中有一种叫做“去极值平均滤波”技术,就是对采集的数据按照从大到小或者从小到大进行排序,然后去掉相同数目的极大值和极小值,对中间部分数据求算术平均值作为采样值。试编写一函数,对存放在片外数据存储器中从0x150开始的16个单元的采样数据,用选择法进行“去极值平均滤波”,把得到的采样数据存放到0x14f单元中。

void teaf()

{

unsigned char xdata *ptr;

unsigned char data temp,i,j,*ptr1;

ptr=0x150;

ptr1=0x4f;

for(j=16;j>1,j--)

{

for(i=0;i

{

if(*(ptr+i)>*(ptr+i+1))

{

temp=*(ptr+i+1);

*(ptr+i+1)=*(ptr+i);

*(ptr+i)=temp;

}

}

}

temp=0;

for(i=0;i<16-2;i++)

temp=temp+*(ptr+i+1);

*ptr1=temp/(16-2);

}

26.利用库函数_getkey编写一函数,实现从单片机串行口接收数据的C51程序,把接收的数据存放在片内数据存储器从0x40开始的区域,遇到回车符CR(ASCII 码是0x0d)结束。

include

void main()

{

unsigned char data *dpt;

unsigned char i=0,temp;

dpt=0x40;

while(1)

{

temp=_getchar();

if(temp==0x0d)

break;

*(dpt+i)=temp;

i++;

}

}

27.利用库函数scanf编写一函数,实现从单片机串行口接收数据的C51程序,把接收的数据存放在片外数据存储器从0x240开始的区域,遇到回车符CR(ASCII 码是0x0d)结束。

include

void main()

{

unsigned char xdata *xdpt;

unsigned char i=0,temp;

xdpt=0x240;

while(1)

{

scanf(“%c”,&temp);

if(temp==0x0d)

break;

*(xdpt+i)=temp;

i++;

}

}

28.利用库函数putchar编写一函数,实现从单片机串行口发送数据的C51程序,发送的数据存放在片内数据存储器从0x50开始的区域,遇到回车符CR(ASCII 码是0x0d)结束。

include

void main()

{

unsigned char data *dpt;

unsigned char i=0;

dpt=0x50;

while(*(dpt+i)!=0x0d)

{

putchar(*(dpt+i));

i++;

}

}

29.利用库函数printf编写一函数,实现从单片机串行口发送数据的C51程序,发送的数据存放在片外数据存储器从0x100开始的区域,遇到回车符CR(ASCII 码是0x0d)结束。

include

单片机课程设计心得体会

单片机课程设计心得体会 本页是网最新发布的《单片机课程设计心得体会》的详细范文参考文章,感觉写的不错,希望对您有帮助,为了方便大家的阅读。 单片机课程设计心得体会 结束了两周的电视机实训,我们又迎来了单片机课程设计实训,真是让我们受益匪浅啊?学到了很多东西,不管怎么样,先感谢学校给我的这么多机会。真正的学到了东西。为期一周的单片机课程设计让我们受益匪浅。此次课程设计软件与硬件相结合,考察了我们的焊接水平与编程能力。对于我们应用电子技术的学生而言焊接是不成问题,也很顺利;可到了编程时就出现了很大的障碍,先开始的显示时钟还算顺利,下面的报警部分就花费了相当长的时间,还有加上报警时的音乐也是我们到图书馆里查阅资料由汇编转化成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. 简述微型计算机硬件系统组成。

单片机课后习题

第一章 1. 给出下列有符号数的原码、反码和补码(假设计算机字长为8位)。 +45 -89 -6 +112 答:【+45】原=00101101,【+45】反=00101101,【+45】补=00101101 【-89】原=11011001,【-89】反 =10100110,【-89】补=10100111 【-6】原=10000110,【-6】反=11111001,【-6】补=11111010 【+112】原=01110000,【+45】反=01110000,【+45】补=01110000 2. 指明下列字符在计算机内部的表示形式。AsENdfJFmdsv120 答:41H 73H 45H 4EH 64H 66H 4AH 46H 6DH 64H 73H 76H 31H 32H 30H 10. 什么是单片机? 答:单片机是把微型计算机中的微处理器、存储器、I/O接口、定时器/计数器、串行接口、中断系统等电路集成到一个集成电路芯片上形成的微型计算机。因而被称为单片微型计算机,简称为单片机。 11. 单片机的主要特点是什么?答:主要特点如下: 1) 在存储器结构上,单片机的存储器采用哈佛(Harvard)结构 2) 在芯片引脚上,大部分采用分时复用技术 3) 在内部资源访问上,采用特殊功能寄存器(SFR)的形式 4) 在指令系统上,采用面向控制的指令系统 5) 内部一般都集成一个全双工的串行接口 6) 单片机有很强的外部扩展能力 12. 指明单片机的主要应用领域。 答:单机应用:1) 工业自动化控制;2) 智能仪器仪表;3) 计算机外部设备 和智能接口;4) 家用电器 多机应用:功能弥散系统、并行多机处理系统和局部网络系统。 第二章 1. MCS-51单片机由哪几个部分组成? 答:MCS-51单片机主要由以下部分组成的:时钟电路、中央处理器(CPU)、存储器系统(RAM和ROM)、定时/计数器、并行接口、串行接口、中断系统及一些特殊功能寄存器(SFR)。 2. MCS-51的标志寄存器有多少位,各位的含义是什么? 答:MCS-51的标志寄存器PSW有8位; D D 6 5 4 3 2 1 0 c 0 S1 R so R V 含义如下: C(PSW.7):进位或借位标志位。 AC(PSW.6):辅助进位或借位可标志位。 F0(PSW.5):用户标志位。是系统预留给用户自己定义的标志位。 RS1、RS0(PSW.4、PSW.3):寄存器组选择位。可用软件置位或清零,用于从四组工作寄存器中选定当前的工作寄存器组。 OV(PSW.2):溢出标志位。在加法或减法运算时,如运算的结果超出8位二进制数的范围,则OV置1,标志溢出,否则OV清零。 P(PSW.0):奇偶标志位。用于记录指令执行后累加器A中1的个数的奇偶性。若累加器A中1的个数为奇数,则P置位,若累加器A中1的个数为偶数,则P清零。 其中PSW.1未定义,可供用户使用。 3. 在8051的存储器结构中,内部数据存储器可分为几个区域?各有什么特点? 答:片内数据存储器按功能可以分成以下几个部分:工作寄存器组区、位寻址区、一般RAM区和特殊功能寄存器区,其中还包含堆栈区。工作寄存器组区,00H~1FH单元,可用R0~R7等8个寄存器访问;位寻址区,20H~2FH单元,可按位方式访问;一般RAM区,30H~7FH单元;堆栈区,可从08到7F单元;特殊功能寄存器区位于80H~FFH单元。 4. 什么是堆栈?说明MCS-51单片机的堆栈处理过程。 答:堆栈是按先入后出、后入先出的原则进行管理的一段存储区域。CS-51单片机的堆栈是向上生长型的,存入数据是从地址低端向高端延伸,取出数据是从地址高端向低端延伸。入栈和出栈数据是以字节为单位的。入栈时,SP指针的内容先自动加1,然后再把数据存入到SP指针指向的单元;出栈时,先把SP指针指向单元的数据取出,然后再把SP指针的内容自动减1。 5. 简述内部ROM的工作寄存器组情况,系统默认是第几组? 答:51单片机有4组工作寄存器,每组8个,用寄存器R0~R7表示,标志寄存器PSW的RS1、RS03两位用于从四组工作寄存器中选定当前的工作寄存器组,默认是第0组。 6. 51单片机的程序存储器64KB空间在使用时有那几个特殊地址? 答:51单片机程序存储器的64KB存储空间使用时有7个特殊的地址,第一个是0000H,它是系统的复位地址,51单片机复位后PC的值为0000H,复位后从0000H单元开始执行程序,由于后面几个地址的原因,用户程序一般不直接从0000H单元开始存放,而是放于后面,通过在0000H单元放一条绝对转移指令转到后面的用户程序。后面6个为6个中断源的入口地址,51单片机中断响应后,系统会自动的转移到相应中断

单片机课程设计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

89C52单片机课程设计

1. 设计任务及要求 1.1 设计任务 (1)完成基本焊接任务 (2)单片机开发板功能正确 (3)完成指定的实验 (4)完成课程设计报告 1.2 要求 (1)元件面:元器件位置正确、排列整齐有序,元件整形恰当。 焊接面:整洁、清爽,焊点圆润、无虚焊,引脚修整合适。 (2)能够下载程序、运行演示程序。 (3)完成3个程序的编写、下载及演示功能。 (4)报告格式规范、文字流畅、思路清晰。 2.方案设计与论证 2.1 方案设计 方案一:仿照周立功实验箱自行设计电路,然后完成焊接,实现各功能。 https://www.doczj.com/doc/bb7123100.html,单片机仿真器、编程器、实验仪三合一综合开发平台方案二:采用JB-MCS 51-V8.0电路板,直接焊接相关元器件并实现各功能。 2.2论证 经验证https://www.doczj.com/doc/bb7123100.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单片机的硬件结构 (一)填空题

单片机课后习题解答

练习练习练习 第二章单片机结构及原理 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应该多大? 答:堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。堆栈为位寻址区,这些单元有其他2FH~20H为工作寄存器区,1FH~00H单元,07H复位后指向SP 指针. 功能,因此在程序设计时,需要对SP重新赋值。如果CPU在操作中要使用两组工作寄存器,SP 应该至少设置为0FH。 6、89S51/52的时钟周期、机器周期、指令周期是如何分配的?当振荡频率为8MHz时,一个单片机周期为多少微秒? 答:时钟周期为时钟脉冲频率的倒数,他是单片机中最基本的、最小的时间单位。机器周期是指完成一个基本操作所需要的时间,一个机器周期由12个时钟周期组成。指令周期是执行一条指令所需要的时间,由若干个机器周期组成。 若fosc=8MHz,则一个机器周期=1/8×12μs=μs 7、89S51/52扩展系统中,片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突? 答:访问片外程序存储器和访问数据存储器使用不同的指令用来区分同一地址空间。 8、程序状态字寄存器PSW的作用是什么?常用状态标志有哪些位?作用是什么? 答:程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指

单片机课后习题-答案~

习题答案 习题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微控制器。主要用于三表及超低功耗场合。

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

第一章 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.程序框图

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

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

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