文档库 最新最全的文档下载
当前位置:文档库 › 单片机原理与C51程序设计基础教程3

单片机原理与C51程序设计基础教程3

第3章单片机指令系统

重点内容:

z单片机的指令系统概述

z单片机的寻址方式

z单片机的指令说明

z本章小结

一、单片机的指

1、指令格式

令系统概述

汇编语言是我们后面所讲的指令系统的一个子集,只要指令按格式书写就构成了程序的基本格式。在程序中,指令格式由以下几部分组成:

操作码[目的操作数],[源操作数] ;[注释]

对各部分的解释如下:

●操作码:操作码用助记符表示,它代表了指令的操作功能。操作码是指令的必需部分,是指令的核心,不可缺少。

●操作数(目的操作数和源操作数):是指参加操作的数据或数据的地址。操作数的个数可以是0~3个。操作数与操作码之间用空格分隔,操作数与操作数之间用逗号“,”分隔。

●注释:注释属于非必需项,是为便于阅读,对指令功能作的说明和注解。注释必

须以“;”开始。注释的长度不限,当一行不够时,可以换行后接着书写,但是换行时应以分号“;”开始。

一、单片机的指

2、符号说明

令系统概述

为了方便后面指令系统的学习和记忆,我们需要对51单片机指令系统中的一些常用符号进行了解。常用符号的说明如下:

(1)#data:8位立即数;

(2)#data16:16位立即数;

(3)Rn:工作寄存器,R0~R7,n为0~7;

(4)Ri:工作寄存器,0或1,i=0或1;

(5)@Ri:寄存器Ri间接寻址8位存储单元00H~FFH;

(6)direct:8位直接寻址,可以是特殊功能寄存器SFR的80H~FFH或内部存储单元00H~7FH;

(7)addr11:11位目的地址。用于AJMP和ACALL指令,均在2KB地址内转移或调用;

一、单片机的指

2、符号说明

令系统概述

(8)addr16:16位目的地址。用于LJMP和LCALL指令,可在64KB地址内转移或调用;

(9)rel:带符号的8位偏移地址,主要应用于所有的条件转移指令和SJMP。其范围是相对于下一条指令的第一字节地址-128 ~ +127字节;(10)bit:位地址。片内RAM中的可寻址位和专用寄存器中的可寻址位;(11)DPTR:数据指针,可用于16位的地址寄存器;

(12)@:间接寄存器或者是基址寄存器的前缀。如:@DPTR,@Ri,

@A+PC,@A+DPTR;

(13)A:累加器ACC;

(14)B:通用寄存器,常用于乘法MUL和除法DIV的指令;

(15)Cy:进位标志位或者布尔处理器中的累加器。

二、单片机的寻

1、立即寻址

址方式

立即寻址就是直接将需要访问的数据在指令中给出,这样的寻址方式就是立即寻址。立即寻址的方式为:

MOV A #dataH

就是一条立即寻址方式的传送指令,通常我们把出现在指令中的操作数data称之为立即数。假如立即数是0F4H,则指令为:

MOV A #4BH

指令功能是把数据4BH传送到累加器A中。

值得注意的一点是:在立即数寻址中立即数前面必须要加上一个“#”号。

二、单片机的寻

2、直接寻址

址方式

直接寻址就是直接在指令中指定操作数的地址,-比如:

MOV A,3AH

其功能就是将地址为3AH的存储单元中数据取出来传送给累加器A。这里的操作数就是直接通过数据存储器的地址3AH来指定的。

直接寻址方式的寻址范围仅限于内部数据存储器。对于内部数据存储器的低128个字节可以直接通过地址的方式来指定,而对于高128个字节除了可以通过地址的方式来指定外还可以通过特殊功能寄存器的寄存器符号给出。

二、单片机的寻

3、寄存器寻址

址方式

寄存器寻址方式就是操作数存储在寄存器中,指定寄存器就得到了操作数,例如:MOV A,R0

其功能是将寄存器R0中的数据传送到累加器A中,这样通过直接指定寄存器的方

式进行寻址即为寄存器寻址。可以采用这种方式进行寻址分寄存器包括通用寄存器和部分专用寄存器,比如工作寄存器R0-~R7、累加器ACC、通用寄存器B 、数据指针DPTR、位累加器Cy。

二、单片机的寻

4、间接寻址

址方式

寄存器间接寻址就是通过寄存器指定数据存储单元的地址,寄存器中存储的是地址。采用用寄存器间接寻址方式时应在寄存器前加上@符号。比如:MOVE A,@R0

它的功能就是将R0中所存储的地址所指向的存储单元中的数据取出来传送到累加器中去。对于这种寄存器间接寻址,用来存储地址的寄存器只能为R0或R1或DPTR。其中R0和R1用来访问片内数据存储器的低128字节和片外数据存储器的低256字节,DPTR用来访问片外数据存储器。比如:MOVX A ,@DPTR它的功能是将外RAM DPTR所指存储单元中的数据传送至累加器A 中。

二、单片机的寻

5、变址寻址

址方式

变址寻址是以某个寄存器的内容为基础,然后在这个基础上再加上地址偏移量,形成真正的操作数地址,需要特别指出的是用来作为基础的寄存器可以是PC或是DPTR,地址偏移量存储在累加器A中比如:

MOV A,@A+DPTR

MOV A,@A+PC

JMP @A+DPTR

前2条意思就是分别将DPTR、PC内存储的地址和累加器A里面的偏移量相加最后根据得到的地址来查找相应的存储单元。最后一条是无条件转移指令。

二、单片机的寻

6、相对寻址

址方式

相对寻址主要是针对跳转指令而言的。对于跳转指令,跳转去的目标指令的地址是通过正在执行的指令地址来确定的,一般是采用正在执行的指令地址加上偏移量的方式。即:

转移目的地址=当前PC值+转移指令字节数+相对偏移量rel

我们后面所讲的条件转移指令都是相对寻址方式,如:

JZ rel;若(A)= 0,则PC←(PC)+ 2 + rel

;若(A)≠0,则PC←(PC)+ 2 JNZ rel;若(A)≠0,则PC←(PC)+ 2 + rel

;若(A)= 0,则PC←(PC)+ 2

由于这2条指令都是二字节指令,所以转移指令字节数为2。

偏移量可以是正也可以是负,偏移量是采用有符号数的存储形式即补码的形式来存储的,所能表示的范围是-128~+128。

二、单片机的寻

7、位寻址

址方式

位寻址方式是指将要访问的数据是一个单独的位,指定位数据的方式有:通过位地址、通过字节地址加点及位数、通过寄存器名加点及位数以及通过位的名称等方式。例如:

MOV C,07H

这条指令的功能是把07H位的状态送进进位位C。

位寻址的范围是有限制的,下面将讲述位寻址的寻址范围

二、单片机的寻

7、位寻址

址方式

1.内部RAM中的位寻址区

单元地址为20H~2FH,共16个单元128位,位地址是00H~7FH。对这个128个位的寻址使用直接位地址表示。位寻址区中的位有两种表示方法,一种是位地址;另一种是单元地址加位。

2.专用寄存器的可寻址位

可供位寻址的专用寄存器共有11个,实有寻址位83位。对这些寻址位在指令中有如下4中表示方法:

●直接使用位地址。例如PSW寄存器位5地址为0D5H。

●位名称表示方法。例如PSW寄存器位5是F0标志位,则可使用F0表示该位。

●单元地址加位数的表示方法。例如0D0H单元(即PSW寄存器)位5,表示为0D0H.5。

●专用寄存器符号加位数的表示方法。例如PSW寄存器的位5,表示为PSW.5。

二、单片机的寻

8、寻址方式总汇

址方式

寻址方式可以做如下小结。

对于片内程序存储器只能使用变址寻址方式,或者反过来说,变址寻址是一种专门用于程序存储器的寻址方式。

三、单片机的指

1、数据传送类指令

令说明

1.内部RAM中数据传送指令

单片机内部的数据传送指令运用频率最高。寄存器、累加器、RAM单元及专用寄存器之间的数据可相互传送。这类指令使用助记符MOV。

(1)以累加器A为目的字节的传送指令(4条)

MOV A,@Ri;(Ri)→A,i=0、1

MOV A,Rn;Rn→A,n=0~7

MOV A,#data;data→A

MOV A,direct;(direct)→A

这组指令的功能是将源操作数所指定的内容送入累加器A。源操作数可以采用寄存器寻址、直接寻址、寄存器间接寻址和立即寻址4种方式。

三、单片机的指

1、数据传送类指令

令说明

(2)以工作寄存器Rn为目的字节的传送指令(3条)

MOV R,A;A→Rn,n=0~7

MOV Rn,direct;(direct)→Rn,n=0~7 MOV Rn,#data ;data→Rn,n=0~7

这组指令的功能是把源操作数所指定的内容送到当前工作寄存器组R0~R7中的某个寄存器中。源操作数有寄存器寻址、直接寻址、立即寻址3种方式。

例如下面三条指令:

MOV R0,A ;把累加器A的内容传送给R0

MOV R2,80H ;把80H单元的内容传给R2

MOV R6,#60H ;把立即数60H传给R6

三、单片机的指

1、数据传送类指令

令说明

(3)以直接地址为目的字节的传送指令

MOV direct,A ;A→(direct)

MOV direct,Rn ;Rn→(direct),n=0~7

MOV direct,@Ri ;(Ri)→(direct),i=0、1

MOV direct1,direct2;(direct2)→(direct1)

MOV direct,#data;data→(direct)

这组指令的功能是把源操作数所指定的内容送入由直接地址direct所指出的片内存储单元中。源操作数有寄存器寻址、直接寻址、寄存器间接寻址、立即寻址等方式。

例如下面五条指令:

MOV 3FH,#3FH ;把立即数3FH传送给内部RAM的3FH单元

MOV 3FH,A ;把累加器A中的内容传送给内部RAM的3FH单元MOV 3FH,R0 ;把寄存器R0中的内容传送给内部RAM的3FH单元

三、单片机的指

1、数据传送类指令

令说明

(4)以寄存器间址为目的字节的传送指令(3条)

MOV @Ri,A ;A→(Ri),i=0、1

MOV @Ri,direct;(direct)→(Ri),i=0、1

MOV @Ri,#data;data→(Ri),i=0、1

这组指令的功能是把源操作数所指定的内容送入以R0或R1为地址指针的片内存储单元中。源操作数有寄存器寻址、直接寻址和立即寻址3种方式。与上一组指令功能类似,不再举例。

(5)16位数据传送指令(1条)

MOV DPTR,#data16;data16→DPTR

这是唯一的16位立即数传送指令。其功能是把16位常数送入DPTR中。

三、单片机的指

1、数据传送类指令

令说明

2.外部RAM数据传送指令

累加器A与片外数据存储器之间的数据传送是通过P0口和P2口进行的。片外数据存储器的地址总线低8位和高8位分别由P0口和P2口送出,数据总线也是通过P0口与低8位地址总线分时传送。

外部RAM中数据传送均是通过间接寻址的方式来实现的,使用操作码助记符MOVX,共有四条指令:

MOVX A,@DPTR;A←(DPTR)

MOVX A,@Ri;A←(Ri)

MOVX @DPTR,A;(DPTR)←A

MOVX @Ri,A;(Ri)←A

前两条指令为外部数据存储器读指令,后两条指令为外部数据存储器写指令。这四条指令共同特点都要经过累加器A,外RAM的低8位地址均由P0传送,高8位地址均由P2传送,其中8位数据也需P0传送。

三、单片机的指

1、数据传送类指令

令说明

3.查表指令

51系列单片机的程序存储器除了存放程序外,还可存放一些常数,被称为表格。在单片机指令系统提供了两条访问程序存储器的指令,称为查表指令,该指令使用助记符MOVC,只能通过累加器A来实现。共两条指令:MOVC A,@A+PC;PC←(PC)+1,A←(A)+PC

MOVC A,@A+DPTR;A←(A+DPTR)

前一条指令由PC作为基址寄存器,它虽然提供16位地址,但其基址值是固定的,A+PC中的PC是程序计数器的当前内容(查表指令的地址加1),所以它的查表范围是查表指令后256B的地址空间。

后一条指令采用DPTR作为基址寄存器,它的寻址范围为整个程序存储器的64KB空间,所以表格可以放在程序存储器的任何位置。缺点是若DPTR已有它用,在上式表首地址之前必须保护现场,执行完查表后再执行恢复。

三、单片机的指

1、数据传送类指令

令说明

数据交换指令

数据交换主要用在累加器和其它内部RAM中的数据交换,数据交换指令分为三类:

(1)整字节交换指令

XCH A,Rn;A←→Rn

XCH A,@Ri;A←→(Ri)

XCH A,direct;A←→(direct)

(2)半字节交换指令:

XCHD A,@Ri ;A3~0←→(Ri)3~0。

SWAP A;A7~4←→A3~0

C51单片机编程基本知识

C51单片机编程基本知识 全文选段:该控制指令将C文件编译生成汇编文件(.SRC),该汇编文件可改名后,生成汇编.ASM文件,再用A51进行编译。 第三节 Keil C51软件包中的通用文件 在C51\LiB目录下有几个C源文件,这几个C源文件有非常重要的作用,对它们稍事修改,就可以用在自己的专用系统中。 1. 动态内存分配 init_mem.C:此文件是初始化动态内存区的程序源代码。它可以指定动态内存的位置及大小,只有使用了init_mem( )才可以调回其它函数,诸如malloc calloc,realloc等。 calloc.c:此文件是给数组分配内存的源代码,它可以指定单位数据类型及该单元数目。 malloc.c:此文件是malloc的源代码,分配一段固定大小的内存。 realloc.c:此文件是realloc.c源代码,其功能是调整当前分配动态内存的大小。 全文内容: 本章讨论以下内容: l 绝对地址访问 l C与汇编的接口 l C51软件包中的通用文件 l 段名转换与程序优化 第一节绝对地址访问 C51提供了三种访问绝对地址的方法: 1. 绝对宏: 在程序中,用“#include〈absacc.h〉”即可使用其中定义的宏来访问绝对地址,包括: CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD 具体使用可看一看absacc.h便知 例如: rval=CBYTE[0x0002];指向程序存贮器的0002h地址 rval=XWORD [0x0002];指向外RAM的0004h地址 2. _at_关键字 直接在数据定义后加上_at_ const即可,但是注意: (1)绝对变量不能被初使化; (2)bit型函数及变量不能用_at_指定。 例如: idata struct link list _at_ 0x40;指定list结构从40h开始。 xdata char text[25b] _at_0xE000;指定text数组从0E000H开始 提示:如果外部绝对变量是I/O端口等可自行变化数据,需要使用volatile关键字进行描述,请参考absacc.h。 3. 连接定位控制 此法是利用连接控制指令code xdata pdata \data bdata对“段”地址进行,如要指定某具体变量地址,则很有局限性,不作详细讨论。 第二节 Keil C51与汇编的接口 1. 模块内接口 方法是用#pragma语句具体结构是: #pragma asm 汇编行

第5章《单片机原理与C51基础》赵丽清(课后习题及答案)

思考题: 【5-1】51系列单片机的内部设有几个定时/计数器? 有几个特殊功能寄存器与定时/计数相关? 其功能是? 【5-2】如果采用的晶振频率为6 MHz,定时器/计数器工作在方式0、1、2下,其最大定时时间各为多少? 【5-3】定时器/计数器用作定时器模式时,其计数脉冲由谁提供?定时时间与哪些因素有关?【5-4】定时器/计数器用作计数器模式时,对外界计数频率有何限制? 【5-5】采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。定时1 ms后,又转为计数工作方式,如此循环不止。假定AT89S51单片机的晶体振荡器频率为6MHz,请使用方式1实现,要求编写程序。 【5-6】已知51系列单片机的系统晶振频率为6MHz,请利用定时器T1和P1.2输出矩形脉冲,其波形如下: 【5-7】51系列单片机的T0和T1在模式3时有何不同? 【5-8】当定时器T0用于方式3时,应该如何控制定时器T1的启动和关闭? 【5-9】编写程序,要求使用T0,采用方式2定时.在P1.0输出周期为400μs,占空比为10:1的矩形脉冲。 【5-10】定时器/计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为6 MHz,求允许测量的最大脉冲宽度是多少? 【5-11】编写一段程序,功能要求;当P1.0引脚的电平正跳变时,对P1.1的输入脉冲进行计数;当P1.2引脚的电平负跳变时,停止计数,并将计数值写人R0、R1(高位存R1,低位存R0)。 第五章思考题答案: 【5-1】解答:51系列单片机的内部有2个定时/计数器T0和T1。有2个特殊功能寄存器与其相关,分别是TMOD和TCON,TMOD是定时/计数器的工作方式控制寄存器,用来确定工作方式和功能;TCON是定时/计数器的控制寄存器,用来控制T0、T1的启动和停止及设置溢出标志。 【5-2】解答:如果采用的晶振频率为6MHz,一个机器周期则为2μs,则定时器/计数器工作在方式0、1、2下,其最大定时时间各为16.384ms、131.072ms、0.512ms。 【5-3】解答:定时器/计数器用作定时器模式时,其计数脉冲来自内部时钟脉冲。每个机器周期计数值增1,所以计数值乘以机器周期就是定时时间,因此计数频率为振荡频率的1/12,因此定时时间与计数值和振荡频率有关。 【5-4】解答:定时器/计数器用作计数器模式时,其计数脉冲来自相应的外部输入引脚T0(P3.4)或T1(P3.5)。当输入信号发生由1至0的负跳变时,计数器(TH0,TL0或TH1,TL1)的值增1。计数的最高频率一般为振荡频率的1/24。 【5-5】解答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用

第2章《单片机原理与C51基础》赵丽清(课后习题及答案)

思考题: 【2-1】80C51单片机由哪几部分组成,试说明ROM和RAM的功能分别是什么? 【2-2】在程序运行中,PC的值是。() A)当前正在执行指令的前一条指令的地址 B)当前正在执行指令的地址 C)当前正在执行指令的下一条指令的首地址 D)控制器中指令寄存器的地址 【2-3】判断下列说法是否正确。 (1)PC可以存放一个16位二进制数,因此其寻址范围为0000H~7FFFH。() (2)单片机系统复位时PC的内容为0000H,因此CPU从程序存储器0000H地址单元取指令,开始执行程序。() (3)PC可以看成是程序计时器() (4)PC可以看成是程序存储器的地址指针。() 【2-4】试计算当振荡频率为12 MHz和6 MHz时,一个机器周期的长度?试辨析振荡周期、状态周期、机器周期、指令周期之间的关系。 【2-5】单片机的ROM必须具有掉电存储功能,这句话是否正确? 【2-6】单片机对RAM的根本要求是快,但掉电可丢失数据,这个表述正确吗? 【2-7】试说出80C51的两种时钟电路模式,如果是只有一个单片机工作常使用的是哪一种?如果是两个以上的单片机工作使用哪一种? 【2-8】80C51单片机的EA信号有何功能?在使用8031时,EA信号引脚应如何处理?现在使用的80C51系列单片机内部一般均含有ROM,其EA引脚应该怎么接? 【2-9】80C51系列单片机的三总线结构包括哪三种?其中作地址总线指的是?作数据总线指的是?属于控制总线的有?P0口的分时复用功能需要依靠锁存器的锁存功能,试举1种常用的低功耗锁存器并将其与单片机正确连接? 【2-10】片内RAM低128单元一般划分为哪三个主要部分?对应的字节地址空间是?内部RAM中,可作为工作寄存器区的单元地址为()H~()H。 【2-11】80C51单片机任何一个时间4组通用工作寄存器中只能有一组工作,具体哪一组工作由什么来决定?如何设置才能选用0组通用寄存器? 【2-12】80C51单片机具有很强的位(布尔)处理功能,内部RAM中共有多少单元可以位寻址,试写出其字节范围和位地址范围? 【2-13】位地址00H与字节地址00H在内存中的位置有什么区别?片内字节地址为2AH单元最低位的位地址是();片内字节地址为88H单元的最低位的位地址为()。 【2-14】80C51单片机可位寻址的范围包括两个区域,即可位寻址的特殊功能寄存器和内部RAM字节地址是20H-2FH的单元,这句话表述的是否正确? 【2-15】可位寻址的特殊功能寄存器的最低位位地址与字节地址形式不同,这句话表述是否正确?【2-16】堆栈遵循的原则是什么?SP的名称是?初始化时SP的值是多少?通过堆栈操作实现子程序调用时,首先要把()的内容入栈,以进行断点保护;调用子程序返回指令时,再进行出栈保护,把保护的断点进回到()。 【2-17】程序状态字PSW的作用是什么?常用的状态标志有哪几位,其作用是什么?若A中的内容为63H,那么P标志位的值为();单片机复位后,PSW=(),这时当前的工作寄存器区是()组工作寄存器区R4所对应的存储单元的地址为()。 【2-18】判断下列说法是否正确。

最新第6章《单片机原理与C51基础》赵丽清(课后习题及答案)

思考题:【7-1】什么是并行通信和串行通信?各有什么特点? 它们分别适用于什么场合? 【7-2】什么是串行同步通信?串行异步通信的数据帧格式是怎样的?同步通信传送的是数据块这种表达是否正确? 【7-3】同步通信和异步通信二者哪种传送数据效率高?哪种对收、发双方的时钟同步性要求低? 【7-4】51单片机的串行口属于异步通信方式这个判断是否正确? 【7-5】51单片机的串行口数据传送方向属于半双工方式这种判断是否正确? 【7-6】80C51系列单片机的串行口除可以实现串行异步通信,还可以作为同步移位寄存器使用,这种说法是否正确? 【7-7】51系列单片机的串行口包括几个缓冲器?其占有的地址相同在使用中如何区分?【7-8】51系列单片机的串行口控制寄存器SCON中的TI、RI均为零时,CPU执行MOV SBUF,A指令可以启动发送?执行MOV A,SBUF可以启动接收? 【7-9】51系列单片机串口工作在接收状态时,MOV A,SBUF什么情况下使用,功能是什么?【7-10】何谓波特率? 某异步通信,串行口每秒传送250个字符,每个字符由11位组成,其波特率应为多少? 【7-11】51单片机串行口有几种工作模式?其中方式0是否工作在全双工异步串行通信方式? 【7-12】51单片机4种工作模式的波特率如何确定? 【7-13】为什么定时器T1用做串行口波特率发生器时,常采用工作模式2?若已知系统晶振频率、通信选用的波特率,应如何计算其初值? 【7-14】试绘图说明如何利用51单片机串行口扩展并行输入口和输出口? 【7-15】试绘制AT89S51单片机进行双机通信时,通信距离小于1.5m的电路连接图。 【7-16】试简述51单片机在双机通信中TTL电平通信接口、RS-232C、RS-422A、RS-485的应用特点?

c51单片机基础知识选择题教学提纲

c51单片机基础知识 选择题

单片机基础知识选择题 1.在MCS-51单片机中,当采用4MHZ晶振频率时,一个机器周期等于()微秒。 A.1 B.2 C.3 D.4 答案:C 2.如果某51单片机系统的定时/计数器0的中断服务程序放在程序存储区的3000H地址开始的一段空间内,此时跳转到定时/计数器0的中断服务程序的指令LJMP 3000H应放在()开始的中断地址区。 A.0003H B.0013H C.0023H D.000BH 答案:D 3.MCS-51单片机的字长是()。 A.2位 B.4位 C.8位 D.16位 答案:C 4.单片机复位时,程序计数器PC的值为()。 A.0000H B.0030H C.4000H D.4100H 答案:A 5.某存储器芯片有12根地址线,8根数据线,该芯片有()个存储单元。 A.1 KB B.2 KB C.3 KB D.4 KB 答案:D 6.MCS-5l单片机的堆栈区是设置在( )中。 A.片内ROM区 B.片外ROM区 C.片内RAM区 D.片外RAM区 答案:C 7.在单片机中,()是数据存储器,()是程序存储器。 A.ROM B.EPROM C.RAM D.EEPROM

答案:C; A、B、D 8.单片机在与外部I/O口进行数据传送时,将使用()线。

A.ALE INT0 B.PSEN ALE C.WR RD ALE D.ALE INT1 答案:C 9.下列计算机语言中,CPU能直接识别的是()。 A.自然语言 B.高级语言 C.汇编语言 D.机器语言 答案:D 10.MCS-5l单片机的堆栈区是设置在( )中。 A.片内ROM区 B.片外ROM区 C.片内RAM区 D.片外RAM区 答案:C 11.当MCS-51单片机接有外部存储器,P2口可作为 ( )。 A.数据输入口 B.数据的输出口 C.准双向输入/输出口 D.输出高8位地址 答案:C 12.下列关于栈的描述中错误的是()。 A.栈是先进后出的先性表 B.栈只能顺序存储 C.栈具有记忆作用 D.对栈的插入和删除操作中,不需要改变栈底指针 答案:C 13.调用子程序、中断响应过程及转移指令的共同特点是()。 A.都能返回 B.都通过改变PC实现转移 C.都将返回地址压入堆栈 D.都必须保护现场 答案:B 14.下面哪一个器件是同相OC门电路。() A.74LS04 B.74LS14 C.74LS07 D.74LS06 答案:C 15.14根地址的寻址范围可达()KB。 A.8 B.16

单片机原理与C51语言程序设计与基础教程课后习题答案

单片机原理与C51语言程序设计与基础教 程课后习题答案 习题 填空题 1.一般而言,微型计算机包括、、、四个基本组成部分。 2.单片机是一块芯片上的微型计算机。以为核心的硬件电路称为单片机系统,它属于地应用范畴。 3.Atmel 公司生产的CMOS型51系列单片机,具有内核,用 代替ROM作为程序存储器, 4.单片机根据工作温度可分为、和三种。民用级的温度范围是0℃一70℃,工业级是-40℃~85℃,军用级是-55℃-125℃(不同厂家的划分标推可能不同。 5.在单片机领域内,ICE的含义是。 选择题 1.单片机的工作电压一般为V? A 5V B 3V C 1V D 4V 2.单片机作为微机的一种,它具有如下特点: A 具有优异的性能价格比 B 集成度高、体积小、可靠性高 C 控制功能强,开发应用方便 D 低电压、低功耗。 3.民用级单片机的温度范围是: A -40℃~85℃ B 0℃一70℃ C -55℃-125℃ D 0℃一50℃ 4.MCS-51系列单片机最多有个中端源。 A 3 B 4 C 5 D 6 5.下列简写名称中不是单片机或单片机系统的是 A MCU B SCM C ICE D CPU 问答题 1.单片机常用的应用领域有哪些? 2.我们如何学习单片机这么技术? 3.单片机从用途上可分成哪几类?分别由什么用处? 答案 填空题 1.运算器、控制器、存储器、输入输出接口

2.单片机嵌入式系统 3.MCS-51 Flash ROM 4.民用级(商业级) 工业级军用级 5.在线仿真器 选择题 1.A 2.ABCD 3.B 4.C 5.D 问答题 1.单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: (1)在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。 (2)在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。 (3)在家用电器中的应用 可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。 (4)在计算机网络和通信领域中的应用 现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。 (5)单片机在医用设备领域中的应用 单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。2.首先,大概了解单片机的机构,例如本书的第2章则是主要讲了单片机的内部结构以及资源。对单片机的内部结构有了初步了解之后,读者就可以进行简单的实例练习,从而加深对单片机的认识。 其次,要有大量的实例练习。其实,对于单片机,主要是软件设计,也就是编程。目前最流行的用于51系列单片机地编程软件是Keil。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

单片机C51基础知识汇总

单片机C51基础知识汇总 李小鹏 2019.12.24

目录 1、标识符 2、数据类型 3、变量 4、常量 5、二进制、八进制、十进制、十六进制 6、运算符 7、语句 8、注释 9、if语句 10、switch--case语句 11、for循环 12、while循环 13、do—while循环 14、循环控制 15、一维数组 16、二维数组 17、字符数组与字符串数组 18、函数 19、函数重入与递归 20、预处理 21、宏

22、条件编译指令 23、指针(*) 24、结构(struct) 25、联合(union) 26、枚举(enum) 主要内容 1 .标识符 标识符就是编程时使用的表示某个事情名称的符号,如函数名、变量名、引脚名、特殊功能寄存器名等。标识符有系统标识符和用户自定义标识符之分。 标识符的命名规则: (1) 标识符第一个字符必须是字母或下划线。 (2) 标识符只能由字母、数字和下划线三类字符组成。 (3) 标识符是区分大小写的。如A 和a 是两个不同的标识符。 (4) 标识符有效长度不超过32 个字符。 (5) 标识符不能是C51 的关键字。 2 .数据类型 char有符号字符型,一字节,值域-128~127。 int 有符号整型,两字节,值域-32768~32767。

long有符号长整型,四字节,值域-2147483648~2147483647 unsigned char无符号字符型,一字节,值域0~255 unsigned int无符号整型,两字节,值域0~65535 unsigned long无符号长整型,四字节,值域0~4294967295 float浮点型(都是有符号的),四字节,±1.175494E-38~±3.402823E+38 bit位变量,一个二进制位,值域0~1。 sbit51 单片机特殊功能寄存器位,值域0~1。 Sfr 51 单片机特殊功能寄存器,值域0~255。 sfr1651 单片机特殊功能寄存器,如DPTR,值域0~65535。bit,sbit,sfr,sfr16不是标准C 的内容,是51 单片机及C51 编译器特有的,不能用指针对它们进行操作。 3 .变量 C51 规定所有变量在使用前都必须加以说明。变量说明语句由数据类型、可选的存储类型和其后的一个或多个变量名组成,形式如下: 数据类型[存放类型] 变量表; 变量的作用范围:在花括号内说明(也称声明或定义)的变量,其作用范围仅限该花括号内,称为局部变量;在所有函数外面定义的变量,其作用范是整个程序,称为全局变量。 静态变量:在类型前加关键词static 说明的变量,称静态变量。在函数内部定义的静态变量也是局部变量,但它在函数下次调用时,能保存上次调用的值。在函数外面定义的静态变量,是全局变量,但

stc80c51单片机基础知识,汇编,c51方面的

单片机结构图: 1、ACC:累加器,常常用A表示。这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后我们将学到指令,能发现,所有的运算类指令都离不开它。 2、B:一个寄存器。在做乘、除法时8 放乘数或除数,不做乘除法时,随你怎么用。 3、PSW:程序状态字。这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们能了解CPU的当前状态,并作出对应的处理。它的各位功能请看表2 D7 D6 D5 D4 D3 D2 D1 D0 CY AC F0 RS1 RS0 OV P 表2 PSW也称为标志寄存器,了解这个对于了解单片机原理非常的重要,存放各有关标志。其结构和定义如下: 下面我们逐一介绍sfr各位的用途 (1)CY:进位标志。用于表示Acc.7有否向更高位进位。8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。

例:78H+97H(01111000+10010111) (2)AC:辅助进位标志也叫半进位标志。用于表示Acc.3有否向Acc.4进位 例:57H+3AH(01010111+00111010) (3)F0:用户标志位,由我们(编程人员)决定什么时候用,什么时候不用。 (4)RS1、RS0:工作寄存器组选择位。这个我们已知了。 RS1、RS0 = 00 —— 0区(00H~07H) RS1、RS0 = 01 —— 1区(08H~0FH) RS1、RS0 = 10 —— 2区(10H~17H) RS1、RS0 = 11 —— 3区(18H~1FH) (5)0V:溢出标志位。表示Acc在有符号数算术运算中的溢出,什么是溢出我们稍后再谈吧。 (6)P:奇偶校验位:它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,不然为0。 例:某运算结果是78H(01111000),显然1的个数为偶数,所以P=0。 4、DPTR(DPH、DPL):数据指针,能用它来访问外部数据存储器中的任一单元,如果不用,也能作为通用寄存器来用,由我们自已决定如何使用。16位,由两个8位寄存器DPH、DPL 组成。主要用于存放一个16位地址,作为访问外部存储器(外RAM和ROM)的地址指针。5、P0、P1、P2、P3:这个我们已经知道,是四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。 6、SP:堆栈指针。(专用于指出堆栈顶部数据的地址。) 单片机管脚图:

c51单片机基础知识选择题

单片机基础知识选择题 1.在MCS-51单片机中,当采用4MHZ晶振频率时,一个机器周期等于()微秒。 A.1 B.2 C.3 D.4 答案:C 2.如果某51单片机系统的定时/计数器0的中断服务程序放在程序存储区的3000H地址开始的一段空间内,此时跳转到定时/计数器0的中断服务程序的指令LJMP 3000H应放在()开始的中断地址区。 A.0003H B.0013H C.0023H D.000BH 答案:D 3.MCS-51单片机的字长是()。 A.2位 B.4位 C.8位 D.16位 答案:C 4.单片机复位时,程序计数器PC的值为()。 A.0000H B.0030H C.4000H D.4100H 答案:A 5.某存储器芯片有12根地址线,8根数据线,该芯片有()个存储单元。 A.1 KB B.2 KB C.3 KB D.4 KB 答案:D 6.MCS-5l单片机的堆栈区是设置在( )中。 A.片内ROM区 B.片外ROM区 C.片内RAM区 D.片外RAM区 答案:C 7.在单片机中,()是数据存储器,()是程序存储器。 A.ROM B.EPROM C.RAM D.EEPROM

答案:C; A、B、D 8.单片机在与外部I/O口进行数据传送时,将使用()线。 A.ALE INT0 B.PSEN ALE C.WR RD ALE D.ALE INT1 答案:C 9.下列计算机语言中,CPU能直接识别的是()。 A.自然语言 B.高级语言 C.汇编语言 D.机器语言 答案:D 10.MCS-5l单片机的堆栈区是设置在( )中。 A.片内ROM区 B.片外ROM区 C.片内RAM区 D.片外RAM区 答案:C 11.当MCS-51单片机接有外部存储器,P2口可作为 ( )。 A.数据输入口 B.数据的输出口 C.准双向输入/输出口 D.输出高8位地址 答案:C 12.下列关于栈的描述中错误的是()。 A.栈是先进后出的先性表 B.栈只能顺序存储 C.栈具有记忆作用 D.对栈的插入和删除操作中,不需要改变栈底指针 答案:C 13.调用子程序、中断响应过程及转移指令的共同特点是()。 A.都能返回 B.都通过改变PC实现转移 C.都将返回地址压入堆栈 D.都必须保护现场 答案:B 14.下面哪一个器件是同相OC门电路。() A.74LS04 B.74LS14 C.74LS07 D.74LS06 答案:C 15.14根地址的寻址范围可达()KB。

单片机学习,C51单片机入门经典30课

单片机学习,C51单片机入门经典30课 前言 提交者电子007在 2008-2-29 15:41:11 上一篇下一篇 温馨提示 作为一个初学者,如何单片机入门?我需要那些知识和设备? 知识上,其实不需要多少东西,会简单的C语言,知道51单片机的基本结构就可以了。一般的大学毕业生都可以了,自学过这2门课程的高中生也够条件。 设备上,一般是建议购买一个仿真器,这样才可以进行实际的,全面的学习。日后在工作上,仿真器也大有用处。 还有,一般光有仿真器是不行,还得有一个实际的电路,即学习板。学习板一般价格都比较贵,而且许多学习板配套程序和讲解不够完善。 这里介绍的是最简单的学习板,4个按键加4个LED发光管,一个蜂鸣器,一个24c02即可,这是购买DX516仿真器时赠送的试验板。

可别小看了这个小试验板。通过这30个教程,初学者可以学到:单片机控制外部设备,读取外部设备状态,外部中断的应用,中断的深入理解,变量和标记的灵活应用,定时器的灵活应用,可编程自动控制的方法,按键控制设备动作的方法,PWM输出的设计,存储器的读写,延时报警器的设计,各种报警音的设计,音乐播放的设计,程序模块化的设计等等知识。(每个教程都附有作业,请务必做完这些作业,并将作业调试成功。) 虽然,这些知识的覆盖面有限,但是,当你学习并掌握了这30个试验之后,您就会豁然开朗,单片机的编程控制如此简单!学习完后,您就已经完全地入门了,并可以自主地对其它的单片机知识进行学习、试验,甚至进行项目开发! 所以,正因为作者呕心沥血地详细地设计编写这些教程,才赋予了这块小小的试验板无穷的生命力!这是一些教程不丰富不详细的其它试验板无法相比的! 硬件连接的电路图请在第一课中查看。

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