当前位置:文档之家› 周国运版51单片机课后习题答案

周国运版51单片机课后习题答案

周国运版51单片机课后习题答案
周国运版51单片机课后习题答案

第1章习题答案

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单片机

第2章习题答案

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位地址口。与P1口的结构类似,驱动部分基本上与P1口相同,但比P1口多了一个多路切换开关MUX和反相器3。P3口是一个多功能口,与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

第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

void main()

{

unsigned char xdata *xdpt;

unsigned char i=0;

xdpt=0x100;

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

{

printf(“%c”,*(xdpt+i));

i++;

}

}

30.编写一定时器/计数器0定时100ms中断处理函数,使函数实现时钟的功能,即产生时钟的秒、分钟和小时。设定时初值的高、低字节分别为TIMER_H和TIMER_L。

设fosc=6mhz

#include

sfr TIMER_H=0x8b;

sfr TIMER_L=0x8a;

unsigned char data shi,fen,miao,bfm;

void main()

{

TMOD=0x01;

TIMER_H=15536/16;

TIMER_L=15536%16;

ET0=1;

EA=1;

TR0=1;

while(1);

}

void time0_int() interrupt 1

{

TIMER_H=15536/16;

TIMER_L=15536%16;

bfm++;

if(bfm==10)

{

bfm=0;

miao++;

}

if(miao==60)

{

miao=0;

fen++;

}

if(fen==60)

{

fen=0;

shi++;

}

if(shi==24)

{

shi=0;

}

}

31.在Keill C的调试状态下,如何使用跟踪运行、单步运行、跳出函数运行命令?

答:Step命令和Step Over命令的区别:当遇到调用函数时,前者将跟踪进入函数,而后者是一步执行完函数。

如果用全速运行命令Go,可以使用Stop Running命令停止运行。

欲退出调试状态,可以再次点击Debug菜单下的Start/Stop Debug Session命令或相应的按钮。

32.在Keill C的调试状态下,如何设置断点和删除断点?

答:方法1:用鼠标双击。在需要设置的行的最前面,双击鼠标左键,即可设置或清除断点。

方法2:用命令或命令按钮。先将光标移到需要设置的行,然后点击Debug菜单下的Insert/Remove Breakpoint命令或工具栏中的相应按钮,即可设置或清除断点。

另外还有断点禁用和全部清除命令及按钮。

33.在Keill C的调试状态下,如何观察和修改寄存器?

答:寄存器窗口、在线帮助窗口和工程管理器是同一个窗口,在工程管理器窗口下包含3个标签,即包含3个区域。在调试状态下,点击View菜单下的Project Window命令或对应的按钮,就会显示或隐藏工程管理器窗口,然后点击窗口下边的寄存器标签,即显示出寄存器窗口。

除了sec和states之外,其它寄存器的值都可以改变。改变的方式有两种:一是用鼠标直接点击左键进行修改;二是在调试命令窗口直接输入寄存器的值,如输入“A=0x32”,则寄存器A的值立即显示0x32。

34.在Keill C的调试状态下,如何观察和修改变量?

答:在调试状态下,点击View菜单下的Watch & Call Stack Window命令或对应的按钮,就会显示出或隐藏起变量窗口。变量窗口包含有4个标签,即4个显示区,可以分别显示局部变量(Locals标签)、指定变量(Watch #1和Watch #2两个标签)、及堆栈调用(Call Stack标签)。

在局部变量区,显示的是当前函数中的变量,这些变量不用设置,自动出现在窗口中。为了观察其它变量,可以在Watch#1或Watch#2标签按F2输入变量名。在程序运行中,可以观察这些显示的变量的变化,也可以用鼠标点击修改它们的

值。

另外还有更简单的方法观察变量的值,在程序停止运行时,将光标放到要观察的变量上停大约1秒,就会出现对应变量的当前值,如operate=0x32。

35.在Keill C的调试状态下,如何观察和修改data区、idata区、xdata区的数据?如何观察code区的数据?

答:在调试状态下,点击View菜单下的Memory Window命令或对应的按钮,就会显示出或隐藏起存储器窗口。存储器窗口包含4个标签,即4个显示区,分别是Memory#1、…、Memory#4。

在4个显示区上边的“Address”栏输入不同类型的地址,可以观察不同的存储区域。

1)设置观察片内RAM直接寻址的data区,在Address栏输入D:xx(xx为十六进制的两位数,下同),便显示从xx地址开始的数据。高128字节显示的是特殊功能寄存器的内容。

2)设置观察片内RAM间接寻址的idata区,在Address栏输入I:xx,便显示从xx地址开始的数据。高128字节显示的也是数据区的内容,而不是特殊功能寄存器的内容。

3)设置观察片外RAM xdata区,在Address栏输入X:xxxx,便显示从xxxx地址开始的数据。

4)设置观察程序存储器ROM code区,在Address栏输入C:xxxx,便显示从xxxx 地址开始的程序代码。

在显示区域中,默认的显示形式为十六进制的字节。

除了程序存储器中的数据不能修改之外,其它3个区域的数据均可修改。修改方法是,用鼠标对准欲修改的单元,点击鼠标右键,在弹出的菜单中对Modify Memory at 0x…命令点击鼠标左键,会弹出的文本输入栏输入数据,然后用鼠标左键点击“OK”即可。

36.在Keill C的调试状态下,如何观察各个片内外设的运行状态?如何修改它们的设置?

答:在调试状态下,点击Peripherals菜单下的不同外设选项命令,就会显示或隐藏对应外设的观察窗口。如显示定时器0窗口,点击Peripherals菜单下的Timer下面的Timer0选项,便会显示出定时器/计数器0状态窗口。

在程序运行时,各个片内外设的状态会不断地变化,为了随时观察它们的变化,可以启用View菜单下的Periodic Windows Update命令,让Keil C自动周期刷新各个调试窗口。另外,也可以在窗口中对设备直接进行设置,与程序中的命令设置一样,并且立即生效。

第5章习题答案

1.什么是中断和中断系统?计算机采用中断系统带来了哪些优越性?

答:当CPU当CPU正在处理某事件的时候,外部或者内部发生的某一事件请求CPU 迅速去处理,于是CPU暂时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件后,再返回到原来被中止的地方继续原来的工作,这样的过程称为中断。

1.CPU与外设同步工作

2.实时处理

3.故障处理

2.MCS-51共有几个中断源?各中断标志是如何产生的,又如何清零的?CPU响应中断时,中断入口地址各是多少?

答:MCS-51共有5个中断源。各中断标志是通过中断请求产生的,通过指令或硬件清零的。CPU响应中断时,中断入口地址各是03H,0BH,13H,1BH,23H。

3.编写一段对中断系统那个初始化的程序,使之允许INT0、INT1、T1、串行口中断,且使串行口中断为高优先级。

EX0=1;

EX1=1;

ET1=1;

ES=1;

EA=1;

PS=1;

4.什么是中断优先级?什么是中断嵌套?处理中断优先级的原则是?

答:中断响应的优先次序是中断优先级。当一个中断处理的过程中又响应了更高优先级的中断是中断嵌套。处理中断优先级的原则是先高级中断,后低级中断。同级的按自然优先级排序。

5.MCS-51在什么情况下可以响应中断?中断响应的过程是?

答:响应中断的条件

(1)中断源有中断请求;

(2)中断总允许位EA=1;

(3)请求中断的中断源的中断允许位为1;

在满足以上条件的基础上,若有下列任何一种情况存在,中断响应都会受到阻断。

(1)CPU正在执行一个同级或高优先级的中断服务程序。

(2)正在执行的指令尚未执行完。

(3)正在执行中断返回指令 RETI或者对专用寄存器IE、IP进行读/写的指令。CPU在执行完上述指令之后,要再执行一条指令,才能响应中断请求。

中断请求被响应后,有内部长调用(LCALL)将程序转向对应的中断矢量地址,执行执行中断服务程序。

6.中断响应过程中,为什么通常要保护现场?如何保护和哪些信息要进行保护?答:因为中断服务程序会用到寄存器和存储器的数据会被覆盖,而中断是要返回的,所以通常要保护现场。方法是把要保护的内容压入到堆栈。

7.MCS-51的ROM中,应如何安排程序区?

答:程序区从00H到32H的存储区依次存放主程序入口和各中断服务程序的入口。

8.外部中断触发方式有几种?它们的特点是什么?

答:外部中断触发方式有2种。它们的特点是低电平触发方式,边沿触发方式,上一个机器周期检测为高电平,接下来的下一个机器周期为低电平。

51单片机基础知识试题题库(复习资料)

单片机原理与应用复习资料 第二章习题参考答案 一、填空题: 1、当MCS-51引脚ALE有效时〃表示从P0口稳定地送出了低8位地址。(备注:ALE 为地址锁存控制信号,书上P22) 2、MCS-51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域。(p25 更具体些是在内部存储器的用户RAM区开辟的) 3、当使用8751且EA=1〃程序存储器地址小于1000H 时〃访问的是片内ROM。 4、MCS-51系统中〃当PSEN信号有效(备注:低电平为有效信号)时〃表示CPU要从外部程序存储器读取信息。(p22) 5、MCS-51有4组工作寄存器(p23 备注:称为通用寄存器或者工作寄存器)〃它们的地址范围是00H~1FH 。(延伸:通用寄存器占去32个单元,位寻址区占去16个单元,用户RAM区占去80个单元,三者总共为128个单元,组成内部数据存储器的低128单元区) 6、MCS-51片内20H~2FH(即为位寻址区)范围内的数据存储器〃既可以字节寻址又可 以位寻址。(p24) 7、PSW中RS1 RS0=10时〃R2的地址为12H 。 8、PSW中RS1 RS0=11时〃R2的地址为1AH 。(p27 查表2.3即可) 9、单片机系统复位后〃(PSW)=00H〃因此片内RAM寄存区的当前寄存器是第0 组〃8个寄存器的单元地址为00H ~ 07H 。(p27 参考下一题) 10、PC复位后为0000H 。(p38 查表2.6即可,有各种寄存器的初始化状态) 11、一个机器周期= 12 个振荡周期= 6 个时钟周期。(p37) 12、PC的内容为将要执行的下一条指令地址。(p30)

根据C51单片机的键盘及LCD显示

基于C51单片机的键盘及LCD显示 一、实验目的 1.掌握矩阵式键盘的数字键和功能键的编程方法。 2.掌握LCD的接口技术和编程方法。 3.掌握仪器监控程序设计和调试方法。 二、预习与参考 1. 结合ST7920 控制器系列中文图形液晶模块有关资料手册,详细了解ST7920接口设计技术。 2. 参考资料 1)实验板说明书 2)ST7920 控制器系列中文图形液晶模块资料手册 三、设计指标 利用实验板上提供的键盘电路,LCD显示电路,设计一人机界面,能实现以下功能: 1.LCD上显示“重庆科技学院” 2.按键至少包括0-9的数字键 3.LCD显示按键值 4.电子钟显示:时,分,秒(选作) 四、实验要求 1.以单片机为核心,设计4*4非编码键盘及LCD的硬件电路,画出电路原理图。 2.设计4*4非编码键盘及LCD的控制软件,画出流程图,编写控制程序。

五、实验仪器设备和材料清单 单片机实验板、连接导线、ST7920图形液晶模块、PC机; Keil c51软件 六、实验设计及实施的指导 1.实验课前布置实验任务,提出实验要求,预习相关资料,完成硬件草图设计和软件流程图备查。 2.经指导教师检查,预习达到要求者进入实验室实验。 3.按照设计的电路连线,构建键盘及显示系统,经检查无误方可进入下一步。 4.在指导教师指导下调试LCD显示程序。 5.在指导教师指导下调试按键程序。 6.综合调试直到满足设计要求。 七、实验成绩评定方法 实验成绩包括预习、实验完成质量、实验报告质量4部分组成,各部分所占比例分别为30%、30%、40%。 八、实验报告要求 1.实验报告格式: 一.实验名称 二.实验目的 三.实验内容 四.设计思想 五.硬件设计 六.程序代码

[业务]51单片机期末考试试卷及答案2

[业务]51单片机期末考试试卷及答案2 一、填空题 1、设X=5AH,Y=36H,则X与Y“或”运算为7EH,X与Y的“异或”运算为 6CH。 2、若机器的字长为8位,X=17,Y=35,则X,Y=110100,X,Y=11101110(要求 结果写出二进制形式)。 3、单片机复位后,堆栈指针SP的值是07h。 4、若采用6MHz的晶体振荡器,则MCS-51单片机的振荡周期为1/6us,机器周期为2us。 5、一个函数由两部分组,即说明部分和语句部分。 6、C语言中输入和输出操 作是由库函数scanf和printf等函数来完成。 7.当MCS-51引脚 ALE 信号有效时,表示从Po口稳定地送出了低8位地址. 8.MCS-51的堆栈是软件填写堆栈指针临时在_片内数据存储_器内开辟的区域. 9.MCS-51有4组工作寄存器,它们的地址范围是 00H-1FH 。 10.MCS-51片内 20H-2FH 范围内的数据存储器,既可以字节寻址又可以位寻址. 11.计算机的系统总线有数据总线、地址总线、控制总线。 12.一个机器周期等于 6个状态周期,振荡脉冲2分频后产生的时钟信号的周期定义为状态周期。 13、单片机的复位操作是_高电平,寄存器IE的值是_EA、ES、ET1、EX1、 ET0、EX0_。 14、若选择内部程序存储器,应该设置为高电平(高电平/低电平),那么,PSEN信号的处理方式为不用。 15、单片机程序的入口地址是0000H ,外部中断1的入口地址是0013H 。 16、片机的内部RAM区中,可以位寻址的地址范围是20H-2FH ,特殊功能寄存器中,可位寻址的地址是能被8整除的地址。

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

基于51单片机的PS2键盘的单片机编程

PS2键盘的单片机编程 在单片机系统中,经常使用的键盘都是专用键盘.此类键盘为单独设计制作的,成本高、使用硬件连接线多,且可靠性不高,这一状况在那些要求键盘按键较多的应用系统中更为突出.与此相比,在PC系统中广泛使用PS/2键盘具有价格低、通用可靠,且使用连接线少(仅使用2根信号线)的特点,并可满足多种系统的要求.因此在单片机系统中应用PS/2键盘是一种很好的选择. 文中在介绍PS/2协议和PS/2键盘工作原理与特点的基础上,给出了一个在单片机上实现对PS/2键盘支持的硬件连接与驱动程序设计实现.该设计实现了在单 片机系统中对PS/2标准104键盘按键输入的支持.使用Keil C51开发的驱动程序接口和库函数可以方便地移植到其他单片机或嵌入式系统中.所有程序在 Keil uVision2上编译通过,在单片机AT89C51上测试通过. 1 PS/2协议 目前,PC机广泛采用的PS/2接口为mini-DIN 6pin的连接器,如图1所示. PS/2设备有主从之分,主设备采用Female插座,从设备采用Male插头.现在广泛使用的PS/2键盘鼠标均在从设备方式下工作.PS/2接口的时钟 与数据线都是集电极开路结构,必须外接上拉电阻(一般上拉电阻设置在主设备中).主从设备之间数据通信采用双向同步串行方式传输,时钟信号由从设备产生. 1.1 从设备到主设备的通信 当从设备向主设备发送数据时,首先检查时钟线,以确认时钟线是否为高电平.如果是高电平,从设备就可以开始传输数据;反之,从设备要等待获得总线的控制权,才能开始传输数据.传输的每一帧由11位组成,发送时序及每一位的含义如图2 所示. 每一帧数据中开始位总是为0,数据校验采用奇校验方式,停止位始终为1.从设 备到主设备通信时,从设备总是在时钟线为高时改变数据线状态,主设备在时钟 下降沿读人数据线状态.

51单片机原理及应用期末考试试题汇总7

一、选择题 从下列各题4个备选答案中选出一个或二个正确答案 并将其代号写在题干后面的括号内。 1、8051基本型单片机内部程序存储器容量为 C 。 A、16KB B、8KB C、4KB D、128B 2、8051基本型单片机内部RAM容量为D。 A、16KB B、8KB C、4KB D、128B 3、当优先级的设置相同时 若以下几个中断同时发生 A 中断优先响应。 A、外部中断0 B、T1 C、串口 D、T0 4、在80C51单片机应用系统中 可以作为时钟输出的是 C 引脚。 A、EA B、RST C、ALE D、PSEN 5、当CPU响应外部中断1 的中断请求后 将自动转向 B 。 A、0003H B、0013H C、000BH D、001BH 6、为了能够使MCS-51单片机在正常工作中及时服务于多个外设 以下传送方式最适用的是 D 。 A、异步 查询 传送 B、同步 无条件 传送 C、DMA传送 D、中断传送 7、已知1只共阴极LED显示器 其中a笔段为字形代码的最低位 若需显示数字1 它的字形代码应为(A )。A、06H B、0F9H C、30H D、0CFH 8、已知1只共阳极LED显示器 其中a笔段为字形代码的最低位 若需显示小数点“.” 它的字形码应为(A)。A、7FH B、0F9H C、30H D、80H 9、已知1只共阴极LED显示器 其中a笔段为字形代码的最低位 若需显示小数点“.”共阳极 它的字形码应为(A )。A、80H B、0F9H C、30H D、7FH 10、下列数据字定义的数表中 (C、D)是错误的。 A、DW “AA” B、DW “A” C、DW “OABC” D、DW 1ABC2H 11、若P1口接有一个4×4的行列键盘 则P1口一定有 C、D 。 A、8位输入口 B、8位输出口 C、4位输入口 D、4位输出口 12、以下指令中能够产生WR信号的是 B、D 。 A、MOV @R0,A B、MOVX @R0,A C、MOVX A @DPTR D、MOVX @DPTR,A 13、8031单片机的定时器T1用作定时方式时是 A、B 。 A、以内部时钟频率为定时基准 12个时钟周期加1 B、以内部时钟频率为定时基准 1个机器周期加1 C、以外部脉冲为定时基准 12个脉冲加1 D、以外部脉冲为定时基准 每个脉冲加1 14、DAC0832在单片机系统中是一种 B、D 器件。 A、输入 B、输出 C、将数字量转换成模拟量 D、将模拟量转换成数字量 15、家用电器中使用的单片机应属于计算机的 B 。 A、辅助设计应用B.测量、控制应用C.数值计算应用 D.数据处理应用 16、对程序存储器的读操作 只能使用 D 。 A MOV指令 B. PUSH指令 C. MOVX指令 D. MOVC指令 17、若82C55的PC口接有一个4×4的行列键盘 则PC口一定有 C、D 。 A、8位输入口 B、8位输出口 C、4位输入口 D、4位输出口 18、下列说法正确的是 A、B 。 A、立即数寻址方式是操作数本身就在指令中 而不是它的地址在指令中。

51单片机基础知识及期末复习

51单片机简答题部分(经典) 1、什么叫堆栈? 答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。 2、进位和溢出? 答:两数运算的结果若没有超出字长的表示范围,则由此产生的进位是自然进位;若两数的运算结果超出了字长的表示范围(即结果不合理),则称为溢出。 3、在单片机中,片内ROM的配置有几种形式?各有什么特点? 答:单片机片内程序存储器的配置形式主要有以下几种形式:(1)掩膜(Msak)ROM型单片机:内部具有工厂掩膜编程的ROM,ROM中的程序只能由单片机制造厂家用掩膜工艺固 化,用户不能修改ROM中的程序。掩膜ROM单片机适合于 大批量生产的产品。用户可委托芯片生产厂家采用掩膜方法 将程序制作在芯片的ROM。 (2)EPROM型单片机:内部具有紫外线可擦除电可编程的只读存储器,用户可以自行将程序写入到芯片内部的EPROM 中,也可以将EPROM中的信息全部擦除。擦去信息的芯片 还可以再次写入新的程序,允许反复改写。 (3)无ROM型单片机:内部没有程序存储器,它必须连接程序存储器才能组成完整的应用系统。 无ROM型单片机价格低廉,用户可根据程序的大小来选择外接 程序存储器的容量。这种单片机扩展灵活,但系统结构较复 杂。 (4)E2ROM型单片机:内部具有电可擦除叫可编程的程序存储器,使用更为方便。该类型目前比较常用 (5)OTP(One Time Programmable)ROM单片机:内部具有一次可编程的程序存储器,用户可以在编程器上将程序写入片内程 序存储器中,程序写入后不能再改写。这种芯片的价格也较 低。 4、什么是单片机的机器周期、状态周期、振荡周期和指令周期?它们之间是什么关系? 答:某条指令的执行周期由若干个机器周期(简称M周期)构成,一个机器周期包含6个状态周期(又称时钟周期,简称S周期),而一个状态周期又包含两个振荡周期(P1和P2,简称P周期)。也就是说,指令执行周期有长有短,但一个机器周期恒等于6个状态周期或12个振荡周

C51单片机复习题

C51单片机试卷1 一、填空题(每小题1分,共30分) 1、8031的 P2 口为高8位地址总线口, P3 口为双功能口。 2、单片机的复位操作是_____RST_____引脚,要在此引脚加 __高______电平才能复位动作。 3、C51定义可寻址位,使用关键字为___sbit_ ,定义特殊功能寄存器当中的某位用关键字____sfr________ 。 4、已知P3=0X7F,要实现将P3口的值循环右移的指令是____ ,循环右移3次后,P3=___________ 。 5、有指令unsigned char mm[]={0X01,0X02,0X03},此指令中数组元素mm[1]的值为________ 。 6、串口工作方式2接收的第9位数据放到了_SCON____ 寄存器的______位中。 7、若采用6MHz的晶体振荡器,则MCS-51单片机的振荡周期为________,机器周期为 ____________。 8、单片机并行接口中,要作为输出口必须外接上拉电阻的端口是______,其原因在于输出级是________开路电路。 9、由AT89C51构成的单片机最简系统中,只给单片机提供VCC和GND单片机是不会工作的,必须提供的__________、___________和________辅助形成一个最简系统。 10、若只需要开串行口中断,则其对应的源中断允许控制位是__________,若需要将外部中断0设置为下降沿触发,则执行的语句为_____________。 11、C51中 0x75 | 0x42 运算结果是_________ 。 12、-25的原码是___________、反码是___________、补码是_________。 13、对于51子系列单片机,主要有________、___________、_________三种机型。 14、修饰符interrupt?m中m的取值为0对应的中断情况是__________中断。 15、TCON中IT0(IT1)表示__________。 16、5l子系列单片机片内有两个____位的定时计数器。 二、选择题(每小题1分,共20分) 1、一字节补码所能表示的整数范围是( A )。 A、-128~+127???? B、-127~+127???? C、-129~+128???? D、-128~+128 2、12MHz晶振的单片机在定时工作方式下,定时器计一个数所用的定时时间是(A) A、1μs???????? B、2μs?????? C、4μs???????? D、8μs 3、通过串行口发送或接收数据时,发送或接收的数据暂存在(D)寄存器中。 A、SCON B、PCON C、TMOD D 、SUBF 4、在单片机扩展系统中,8051做为地址总线和数据总线分时复用的端口是(A ) A、P0口??????????????? B、P1口?????????? C、P2口??????? D、P3口 5、MCS-51单片机的定时器/计数器工作方式1是(B)。

51单片机独立按键程序查询法和外部中断两种

//以下程序都是在VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是STC89C52RC,但是在所有的51 52单片机上都是通用的。51只是一个学习的基础平台,你懂得。 //程序在关键的位置添加了注释。 //用//11111111111111111代表第一个程序。//2222222222222222222222222代表第二个程序,以此类推 //1111111111111111111111111111111111111111111111111111111111111111111 //1111111111111111111111111111111111111111111111111111111111111111111 /****************************************************************************** * * 实验名: 左右流水灯实验 * 使用的IO : LED使用P2,键盘使用P3.1 * 实验效果: 按下K1键, * 注意: ******************************************************************************* / #include #include #define GPIO_LED P2 sbit K1=P3^1; void Delay10ms( ); //延时10ms /****************************************************************************** * * 函数名: main * 函数功能: 主函数 * 输入: 无 * 输出: 无 ******************************************************************************* / void main(void) { unsigned int i,j; j=0xfe; //1111_1110 while(1) { GPIO_LED=j; if(K1==0) //检测按键K1是否按下 { Delay10ms(); //消除抖动 if(K1==0) {

51单片机原理期末考试题

1.若累加器A中的数据为67H,则PSW中的P=_1__。 2. 一个机器周期= _6_个状态周期=12个振荡周期。 3.89C51的堆栈是按照先进后出的原则进行存取的RAM区。 4. 用一条指令实现以下功能: 若A中数据不等于200,则程序转至PROM_ CJNZ A,#200H,PROM__。 5. 为了使10H—17H作工作寄存器使用RS1, RS0的取值为__1,0。 6. 89C51中21个特殊功能寄存器,其地址凡是能被8整除的都有位寻址功能。 7. 89C51单片机有片内ROM容量_4KB , RAM容量128。 8. 某串行通信中有1个起始位,8个数据位和1个停止位,应选择的异步串行通信方式为方式1。 9. 在89C51单片机初始化时,SP存放的是07H。 10. 当89C51引脚ALE信号有效时,表示从P0口稳定地送出了_数据和地信息。 四、判断题(每小题2分,共20分) 1.如果发生除法溢出错误,则PSW标志位P置1。(∨) 5.对于89C51单片机,当CPU对内部程序存储器寻址超过4K时,系统会自动在外部程序存储器中寻址(∨)。 6.外加晶振频率越高,系统运算速度也就越快,系统性能也就越好(∨)。 7. 位TF0是定时器T1的溢出中断标志位。(∨) 8.在定时器T0和外部中断1都设为高优先级时,外部中断1优先级高于定时器T0。(×) 9.子程序的返回指令是RETI ,中断程序的返回指令是RET。(×) 10.波特率是数据传输的速率,指每秒传送的字节数。(∨) 3、51有 5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器 IP 加以选择 4、中断请求信号有电平触发和脉冲触发两种触发方式。 6、74LS273通常用来作简单输出接口扩展;而74LS244则常用来作简单输入接口扩展。 7、A/D转换器的三个重要指标是转换速度、分辨率和转换精度。 二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。每题2分,共10分) 1、MCS-51单片机外扩存储器芯片时,4个I/O口中用作数据总线的是( B )。 (A)P0和P2口(B)P0口(C)P2和P3口(D)P2口 2、访问外部数据存储器时,不起作用的信号是( C )。 (A)RD (B) WR (C) PSEN (D)ALE 3、使用定时器T1时,有几种工作模式( C )。 (A)1种(B)2种(C)3种(D)4种 4、MCS-51响应中断时,下面哪一个条件不是必须的( C )。 A、当前指令执行完毕 B、中断是开放的 C、没有同级或高级中断服务 D、必须有RETI指令 5、当MCS-51进行多机通讯时,串行接口的工作方式应选为( C )。 (A)方式0 (B)方式1 (C)方式2 (D)方式0或方式2 三、简答题(每题15分,共30分) 1、MCS-51单片机内部有几个定时/计数器?它们由哪些寄存器组成? 答:MCS-51单片机内部有两个16位可编程的定时/计数器,简称定时器0(T0)和定时器1(T1)。它们分别由方式寄存器TMOD、控制寄存器TCON和数据寄存器TH0、TL0,TH1、TL1组成。

单片机期末考试试题7(带答案)

试题7 一、填空(25分,每空1分) 1. PSW中的RS0、RS1=01B,此时R2的字节地址为( 0AH )。 2. 假定DPTR的内容1000H,A中的内容为40H,执行指令: 2000H: MOVC A,@A+DPTR 后,送入A的是程序存储器( 2040 H )单元的内容。 3. 假定A中的内容为79H,R5中的内容为78H,执行指令: ADD A,R5 DA A 的内容为( 1 )。 后,累加器A的内容为( 5E )H,C Y 4.当AT89S51单片机响应中断后,必须用软件清除的中断请求标志是( TI,RI )。 5.TMOD中的GATEx=1时,表示由两个信号TRx和( INT1(F非) )控制定时器的启停。 6.在AT89S51单片机的RESET端出现(持续时间大于两个机器周期)的高电平后,便可以可靠复位,复位后的PC中的内容为( 00000 )H。 7.当AT89S51单片机与慢速外设进行数据传输时,最佳的传输方式是(查询方式)。 8.DA转换器的两个最重要的技术指标为(分辨率)和(建立时间)。 9.在存储器扩展中,无论是线选法还是译码法,最终都是为扩展芯片的( 片选 )端提供(片选)信号。 10. 波特率定义为 ( 每秒传送的位数 )。串行通信对波特率的基本要 求是互相通信的甲乙双方必须具有 ( 相同 ) 的波特率。 11. 若串行通信按方式1传送,每分钟传送3000个字符(8位/每字符),其波特率是(400bit/s )。 12. AT89S51片内( 20H-2FH )地址范围内的数据存储器,既可以字节寻址又可以位寻址。 13.8KB RAM存储器的首地址若为1000H,则末地址为(2FFFH)H。 14.AT89S51单片机控制TPμP-40A/16A微型打印机打印英文或数字时,要把打印字符的()码送给微型打印机。 15.已知8段共阴极LED显示器显示字符“H”的段码为76H,则8段共阳极LED显示器显示字符“H”的段码为()。 16.当键盘的按键数目少于8个时,应采用()式键盘。当键盘的按键数目

51单片机基础知识 (问答题)

1、单片机的机器周期、状态周期、振荡周期和指令周期之间是什么关系? 答:一个机器周期恒等于6个状态周期或12个振荡周期,即1M=6S=12P。 2、存储器中有几个保留特殊功能的单元用做入口地址?作用是什么? 答:MCS-51系列单片机的存储器中有6个保留特殊功能单元; 作用:0000H为复位入口、0003H为外部中断0入口、000BH为T0溢出中断入口、0013H为外部中断1入口、001BH为T1溢出中断入口、0023H为串行接口中断入口。 3、开机复位后,CPU使用是的哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工 作寄存器组? 答:开机复位后,CPU使用的是第0组工作寄存器。 它们的地址是00H~07H。CPU通过对程序状态字PSW中RS1、RS0的设置来确定和改变当前工作寄存器组。如:RS1、RS0为00则指向第0组;为01则指向第1组;为10则指向第2组;为11则指向第3组。 4、MCS-51的时钟周期、机器周期、指令周期的如何分配的?当振荡频率为8MHz时,一个单片 机时钟周期为多少微秒? 答:MCS-51的时钟周期是最小的定时单位,也称为振荡周期或节拍。一个机器周期包含12个时钟周期或节拍。不同的指令其指令周期一般是不同的,可包含有1~4个机器周期。 当振荡频率为8MHz时,一个单片机时钟周期为0.125μs 。 5、EA/V 引脚有何功用?8031的引脚应如何处理?为什么? PP 答:EA/V PP是双功能引脚: (1)EA接高电平时,在低4KB程序地址空间(0000H~0FFFH),CPU执行片内程序存储器的指令,当程序地址超出低4KB空间(1000H~FFFFH)时,CPU将自动执行片外程序存储器的指令。 (2)EA接低电平时,CPU只能执行外部程序存储器的指令。 8031单片机内部无ROM,必须外接程序存储器。因此,8031的EA引脚必须接低电平。 在对8751单片机内部的EPROM编程时,此引脚V PP外接+12V电压,用于固化EPROM程序。 6、单片机对中断优先级的处理原则是什么? 答:⑴低级不能打断高级,高级能够打断低级; ⑵一个中断以被响应,同级的被禁止; ⑶同级,按查询顺序,INT0→T0→INT1→T1→串行接口。 7、MCS-51的外部中断的触发方式有哪两种?他们对触发脉冲或电平有什么要求? 答:有电平触发和脉冲触发。

51单片机基础知识试题题库(考试用含答案)

第二章习题参考答案 一、填空题: 2、MCS-51的堆栈是软件填写堆栈指针临时在片内RAM数据存储器内开辟的区域。 INCDEC都不影响PSW 堆宅操作只有一条寻址方式直接寻址方式 3、当使用8751且EA=1 〃程序存储器地址小于1000H时〃访问的是片内 ROM 7、PSW中RS1RSO=10寸〃R2 的地址为12H。 8、PSW中RS1RS0=11 时〃R2的地址为1AH。 17、使用8031芯片时〃需将/EA引脚接低电平〃因为其片内无ROM存 22、但单片机的型号为8031/8032时〃其芯片引线EA一定要接di电平

7、单片机8031的ALE引脚是()。 A、输出高电平 B、输出矩形脉冲〃频率为fosc的1/6 C、输出低电平 D、输出矩形脉冲〃频率为fosc的1/2 11、单片机上电复位后〃堆栈区的最大允许范围是()个单兀。 A、64 B、120 C、128 D、256 12、单片机上电复位后〃堆栈区的最大允许范围是内部RAM的() A、OOH—FFHB 001■— 07HC 071■— 7FHD 08H— 7FH 13、对于8031单片机〃其内部RAM()O A、只能位寻址 B、只能字节寻址 C、既可位寻址又可字节寻址 D、少部分能位寻址 18、单片机8051的XTAL1和XTAL2引脚是()弓I脚。 A、外接定时器 B、外接串行口 C、外接中断 D、外接晶振 23、MC—51的专用寄存器SFR中的堆栈指针SP是一个特殊的存贮区〃用来()〃它是按后进先出的原则存取数据的。 A、存放运算中间结果 B、存放标志位 C、暂存数据和地址存放待调试的程序

(完整word版)C51单片机-期末复习题

期末复习题 一、选择题(每题4分,共10题) 1. 下列哪种文件后缀名是可以烧结至单片机中( ) A . uv2 B . c C. HEX D . inc 2. AT89C52单片机(双列直插封装)有多少引脚() A.20 B. 28 C. 40 D. 44 3. AT89C52单片机的地址总线有多少位() A.2 B. 8 C. 16 D. 32 4. 下面哪个引脚单片机的串行接受引脚() A.XTAL1 B. RXD C. REST D. ALE 5. 若采用的时钟晶体的频率是12MHz,那么单片机的机器周期是多少( ) A. 1/2微秒 B. 1/6微秒 C. 1微秒 D. 1-4微秒 6. 十六进制0xe5转换成二进制应该为( ) A. 1111 1101 B. 1110 0011 C. 1110 0101 D. 1111 1010 7. 在下列寄存器中,与定时/ 计数控制无关的是() A . TCON (定时控制寄存器) B. TMOD (工作方式控制寄存器) C. SCON (串行控制寄存器) D. IE (中断允许控制寄存器) 8. MCS-51单片机的外部中断1的中断请求标志是。( ) A. TR1 B. IE1 C. IT1 D. TF1 9. 定时器/计数器工作方式1是。 ( ) A. 8位计数器结构 B. 2个8位计数器结构 C. 13位计数结构 D. 16位计数结构 10. 已知1只共阳极LED显示器,其中a笔段为字形代码的最低位,若需显示数字E,则它的字形代码应为。 ( )

A. 06H B. F9H C. 86H D. 79H 11. 对程序计数器PC 的操作( ) A. 是自动进行的 B. 是通过传送进行的 C . 是通过加1 指令进行的 D. 是通过减1 指令进行的 12. 下列计算机语言中,CPU能直接识别的是。() A. 自然语言 B. 高级语言 C. 汇编语言 D. 机器语言 13. A T89C52单片机的数据总线有多少位() A.2 B. 8 C. 16 D. 32 14. 下面哪个引脚单片机的地址锁存引脚() A.XTAL1 B. RXD C. REST D. ALE 15. 若采用的时钟晶体的频率是12MHz,那么单片机的时钟周期是多少( ) A. 1/2微秒 B. 1/6微秒 C. 1微秒 D. 1-4微秒 16. 当外部中断请求的信号方式为脉冲方式时,要求中断请求信号的高电平状态和低电平状态都应至少维持。( ) A. 1个机器周期 B. 2个机器周期 C. 4个机器周期 D. 8个机器周期 17. 二进制0110 1101转换成十六进制应该为( ) A. 0xe5 B. 0x6E C. 0x7E D. 0x6D 18. 在下列寄存器中,与定时/ 计数控制无关的是() A . TCON (定时控制寄存器) B. TMOD (工作方式控制寄存器) C. SCON (串行控制寄存器) D. IE (中断允许控制寄存器) 19. MCS-51单片机的外部中断1的中断请求标志是。( ) A. TR1 B. IE1 C. IT1 D. TF1 20. 已知1只共阴极LED显示器,其中a笔段为字形代码的最低位,若需显示数字E,则它的字形代码应为。 ( ) A. 06H B. F9H C. 86H D. 79H

51单片机键盘设置

\\\§8.3 键盘接口技术 一、键盘输入应解决的问题 键盘是一组按键的集合,它是最常用的单片机输入设备. 操作人员可以通过键盘输入数据或命令,实现简单的人机通讯。 键是一种常开型按钮开关,平时(常态)键的二个触点处于断开状态,按下键时它们才闭合(短路)。 键盘分编码键盘和非编码键盘。 键盘上闭合键的识别由专用的硬件译码器实现并产生编号或键值的称为编码键盘, 如:ASCⅡ码键盘、BCD码键盘等; 靠软件识别的称为非编码键盘。 在单片机组成的测控系统及智能化仪器中用得最多的是非编码键盘。 本节着重讨论非编码键盘的原理、接口技术和程序设计。 键盘中每个按键都是—个常开关电路,如图所示。

1.按键的确认:P1.7=1 无按键; P1.7=0 有按键; 2.去抖动 去抖动的方法: ①硬件去抖动采用RS触发器: 优点: 速度快,实时, 缺点: 增加了硬件成本 ②软件去抖动采用延时方法 延时5—10ms 延时5—10ms P1.7=0 确认P1.7=0 P1.7=1 (去前沿抖动) (去后沿抖动) 二、独立式键盘

每个I/O口连接一个按,S1 P1.0 S2 P1.1 ………………………. S8 P1.7 软件: START:MOV P1,#0FFH ;置P1口为高电平 JNB P1.0, RS1 ; S1按下,程序去执行RS1 JNB P1.1, RS2 ; S2按下,程序去执行RS2

JNB P1.2, RS3 ; S3按下,程序去执行RS3 JNB P1.3, RS4 ; S4按下,程序去执行RS4 JNB P1.4, RS5 ; S5按下,程序去执行RS5 JNB P1.5, RS6 ; S6按下,程序去执行RS6 JNB P1.6, RS7 ; S7按下,程序去执行RS7 JNB P1.7, RS8 ; S8按下,程序去执行RS8 AJMP START ; 继续扫描按键 …………. RS1: AJMP PK1 ; RS2: AJMP PK2 ; RS3: AJMP PK3 ; RS4: AJMP PK4 ; RS5: AJMP PK5 ; RS6: AJMP PK6 ; RS7: AJMP PK7 ; RS8: AJMP PK8 ; AJMP START ; 无键按下,继续扫描………………… PK1: ……….. ;按键S1功能处理程序 AJMP START ;处理S1按键后, 继续扫描PK2: ……….. ;按键S2功能处理程序

山东大学单片机原理与应用期末试卷及答案

一、填空 1、MCS51单片机的控制信号线有 2、MCS51单片机内部RAM的位寻址空间有位,位寻址空间对应 的字节地址为,位地址为 3、MCS51单片机并行口P0的用途是 P2口的用途是 4、指令MOV P1,@R0中两操作数的寻址方式分别是 5、 2764为芯片,地址线条,可扩展 K空 间,地址从0000H至 H 6、外部中断INT1的中断入口地址为,在同级 优先级中串行口中断的优先级排在第位。 7定时/计数器有四种工作方式:方式0的功能为:,方式1的功能 为:,方式2的功能为: ,方式3的功能为: 8、若晶振为12MHz,则一个机器周期为:,一条双字节单周 期指令的执行时间是。 9、 MCS51单片机的堆栈设置在区内,堆栈的最深深度为 字节。 二、请写出完成下列功能的指令(可用多条语句实现) 1、将R0内容送入R7 2、将位地址50H内容送入SMOD位 3、将外部EPROM 1000H单元内容送入外部RAM 3000H 单元

4、用单条指令完成累加器ACC 清零,有几种方法。 5、设RS1=0,RS0=1,将R1内容入栈 三、 读程序,填写执行结果 1、 MOV 40H,#36H MOV R0,#40H SETB C ADDC A,#0F9H C AC F0 RS1 RS0 OV P 2、 MOV SP,#50H MOV DPTR,#1050H MOV A,#88H PUSH DPL PUSH DPH PUSH ACC POP DPL POP DPH POP ACC 3 、 MOV A,#40H SWAP A INC A MOVC A,@A+PC S0: AJMP S0 TAB: DB 10H,11H,12H,13H,14H,15H DB 16H,17H,18H,1AH,19H,1BH 四、 程序设计 编程序完成下列逻辑功能 B C A ABC F ?+?=)(

51单片机考试试题带答案

单片机原理及应用试卷A 一、填空题(每空1分,共20分) 1、单片微型计算机由CPU、存储器和I/O 三部分组成。 2、MCS-51系统中,当PSEN信号有效时,表示从P0口稳定地送出了低8位地址。 3、访问8031片外数据存储器采用的是寄存器间接寻址方式。 4、累加器(A)=80H,执行完指令ADD A,#83H后,进位位CY= 1 。 5、指令LCALL 37B0H,首地址在2000H,所完成的操作是2003H入栈,37B0H送入PC。 6、51有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器IP加以选择。 7、在变址寻址方式中,以A作为变址寄存器,以PC或DPTR作基址寄存器。 8、中断请求信号有电平触发和脉冲触发两种触发方式 9、用串行口扩展并行口时,串行接口的工作方式应选为方式0。 10、74LS273通常用来作简单输出接口扩展;而74LS244则常用来作简单输入接口扩展。 11、51的并行I/O口信息有读引脚和读锁存器两种读取方法,读—改—写操作是针对 并行I/O口内的锁存器进行的。 12、A/D转换器的三个重要指标是转换速度、分辨率和转换精度。 二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。每题1.分,共10分) 1、计算机能识别的语言是( C )。 (A)汇编语言(B)自然语言(C)机器语言(C)高级语言 2、MCS-51单片机外扩存储器芯片时,4个I/O口中用作数据总线的是( B )。 (A)P0和P2口(B)P0口(C)P2和P3口(D)P2口

3、在中断服务程序中,至少应有一条( D )。 (A )传送指令 (B )转移指令 (C )加法指令 (D )中断返回指令 4、访问外部数据存储器时,不起作用的信号是( C )。 (A )RD (B )WR (C )PSEN (D )ALE 5、以下指令中,属于单纯读引脚的指令是( C )。 (A )MOV P1,A (B )ORL P1,#0FH (C )MOVC C , (D )DJNZ P1,LAB 6、使用定时器T1时,有几种工作模式( C )。 (A )1种 (B )2种 (C )3种 (D )4种 7、若MCS-51中断源都编程为同级,当它们同时申请中断时,CPU 首先响应( B )。 (A )1INT (B )0INT (C )T1 (D )T0 8、MCS-51响应中断时,下面哪一个条件不是必须的( C )。 A 、当前指令执行完毕 B 、中断是开放的 C 、没有同级或高级中断服务 D 、必须有RETI 指令 9、如果8255端口A 设置为方式2,则端口B 设置为( A )。 (A )只可以方式0 (B )也可以方式2 (C )除方式2外,其它方式均可 (D )任意方式 10、当MCS-51进行多机通讯时,串行接口的工作方式应选为( C )。 (A )方式0 (B )方式1 (C )方式2 (D )方式0或方式2 三、简答题 (每题5分,共20分) 1、MCS-51单片机内部包括哪些主要逻辑功能部件 答:MCS-51单片机主要由下列部件组成: 1个8位CPU ; 1个片内振荡器及时钟电路; 4KBROM 程序存储器,256BRAM ; 21个特殊功能寄存器; 2个16位定时/计数器; 4个8位并行I/O 口及1个可编程全双工串行接口; 可寻址64KB 的外部数据存储器空间; 5个中断源、两个优先级中断嵌套中断结构。 2、 MCS-51单片机内部有几个定时/计数器它们由哪些寄存器组成 答:MCS-51单片机内部有两个16位可编程的定时/计数器,简称定时器0(T0)和定时器1(T1)。

基于某51单片机地键盘盘可调万年历

开放性实验报告 题目: 基于80C51的万年历设计_ 院系:

专业班级: 学号: 姓名: 指导老师:________________________ 时间:2014年9月8号 摘要 电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周、时、分、秒进行计时,还具有闰年补偿等多种功能。本系统选用DALLAS 公司生产的日历时钟芯片DS1302来作为实时时数字万年历采用直观数字显示,可以同时显示年、月、日、周、时、分、秒等信息,还具有键盘时间校准等功能。该电路采用AT89C52单片机作为核心,用以5V电压供电。 本系统硬件部分由AT89C52单片机、DS1302时钟芯片、LCD1602液晶显示环境下以C51语言编写,包括时间设置、时间显示、时间修正等功能。在仿真的时候,以Proteus 与Keil uVision4软件为基础,编写了MCS-51单片机对LCD1602显示控制的软件,绘制其原理图,并使用Proteus软件与Keil uVision4软件建立联合仿真。本设计主要论述了原理图各个模块的作用,以及控制软件的各个模块的编程。

关键词:时钟芯片DS1302;单片机AT89C52;液晶显示1602;独立键盘等

目录 第1章绪论 (1) 1.1实时万年历的简介 (1) 1.2系统所实现的功能 (3) 第2章开发工具软件简介 (4) 2.1K EIL U V ISION4软件简介 (4) 2.2P ROTEUS软件简介 (4)

2.3K EIL U V ISION4与P ROTEUS软件联合仿真 (5) 第3章LCD1602显示控制技术 (6) 3.11602字符型LCD简介 (6) 3.2LCD1602功能 (7) 3.3 LCD1602的指令说明及时序 (8) 3.4LCD1602的RAM地址映射及标准字库表 (7) 3.5 LCD1602的一般初始化(复位)过程 (8) 第4章系统硬件概况 (13) 4.1系统概况 (13) 4.2 MCS-51单片机最小系统模块 (14) 4.3 DS1302时钟芯片控制与键盘设置时间模块 (15) 4.4 LCD1602显示模块 (16) 第5章软件控制系统概况 (18) 5.1程序流程概况 (18) 5.2 流程图 (18) 5.3 源程序代码 (19) 参考文献 (25)

51单片机原理及应用期末考试试题汇总6

广西工学院2010—2011 学年第2 学期课程考核试题 考核课程单片机技术(B卷)考核班级通信081,082 考核类型闭卷学生人数80人打印份数85份 一、填空题(每小题2分,共20分) 1.若累加器A中的数据为67H,则PSW中的P=_1__。 2. 一个机器周期=_6_个状态周期=12个振荡周期。 3.89C51的堆栈是按照先进后出的原则进行存取的RAM区。 4. 用一条指令实现以下功能: 若A中数据不等于200,则程序转至PROM_ CJNZ A,#200H,PROM__。 5. 为了使10H—17H作工作寄存器使用RS1,RS0的取值为__1,0。 6. 89C51中21个特殊功能寄存器,其地址凡是能被8整除的都有位寻址功能。 7. 89C51单片机有片内ROM容量_4KB , RAM容量128。 8. 某串行通信中有1个起始位,8个数据位和1个停止位,应选择的异步串行通信方式为方式1。 9. 在89C51单片机初始化时,SP存放的是07H。 10. 当89C51引脚ALE信号有效时,表示从P0口稳定地送出了_数据和地信息。 四、判断题(每小题2分,共20分) 1.如果发生除法溢出错误,则PSW标志位P置1。(∨) 5.对于89C51单片机,当CPU对内部程序存储器寻址超过4K时,系统会自动在外部程序存储器中寻址(∨)。 6.外加晶振频率越高,系统运算速度也就越快,系统性能也就越好(∨)。 7. 位TF0是定时器T1的溢出中断标志位。(∨) 8.在定时器T0和外部中断1都设为高优先级时,外部中断1优先级高于定时器T0。(×)9.子程序的返回指令是RETI ,中断程序的返回指令是RET。(×) 10.波特率是数据传输的速率,指每秒传送的字节数。(∨) 3、51有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器IP 加以选择 4、中断请求信号有电平触发和脉冲触发两种触发方式。 6、74LS273通常用来作简单输出接口扩展;而74LS244则常用来作简单输入接口扩展。 7、A/D转换器的三个重要指标是转换速度、分辨率和转换精度。 二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。每题2分,共10分) 1、MCS-51单片机外扩存储器芯片时,4个I/O口中用作数据总线的是( B )。 (A)P0和P2口(B)P0口(C)P2和P3口(D)P2口 2、访问外部数据存储器时,不起作用的信号是( C )。 (A)(B)(C)(D)ALE 3、使用定时器T1时,有几种工作模式( C )。 (A)1种(B)2种(C)3种(D)4种 4、MCS-51响应中断时,下面哪一个条件不是必须的( C )。 A、当前指令执行完毕 B、中断是开放的 C、没有同级或高级中断服务 D、必须有RETI 指令 5、当MCS-51进行多机通讯时,串行接口的工作方式应选为( C )。

相关主题
相关文档 最新文档