单片机C51基础知识汇总

单片机C51基础知识汇总
单片机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 说明的变量,称静态变量。在函数内部定义的静态变量也是局部变量,但它在函数下次调用时,能保存上次调用的值。在函数外面定义的静态变量,是全局变量,但

它只在当前C 文件中有效。这可以防止多个C 文件中同名冲突。(函数加了关键词static,可以定义成静态函数,静态函数只能被同一个C 文件的程序调用。)

4 .常量

常量的意思就是不可改变的量,是一个常数。同变量一样,常量也可以有各种数据类型。常量可以用以下几种方式定义:

(1)宏定义

#define OFF 1 /*定义常量标识符OFF,其值为1*/ (2)使用CODE 空间

char code array[]={1,2,3,4};

/*定义一个常数表,存放在程序存储器中*/ (3)常量定义关键词const

Const int MAX = 60;

(4) enum 枚举常量

enum switchENUM {ON,OFF}; /*ON 值为0,OFF 值为1*/ 5 .二进制,十进制,八进制,十六进制

(1)C 语言中没有二进制的直接表示方法。

(2)以数字“0”开头的数为八进制,如067。

(3)以“0x”或“0X”开头的数为十六进制,如0x3F。

(4)八进制及十六进制与二进制都可以直接转换,八进制每 1 位数对应3 位二进制数。十六进制的每1 位对应4 位二进制数。(5)用四位二进制数来表示的十进制数称BCD 码。

6 .运算符

(1 )赋值运算符(=)

‘=’赋值语句的作用是把某个常量或变量或表达式的值赋值给另一个变量。

注意:这里并不是等于的意思,只是赋值,等于用‘==’表示。例如:

count=5;

total1=total2=0; //同时赋值给两个变量

(2)算术运算符(+,-,*,/,%,++,--)

+ 加,单目正;- 减,单目负;* 乘法;/ 除法;% 取模;

++ 自加1(++a,先自加,再赋值;a++,先赋值,再自加)

- - 自减1(- -a,先自减,再赋值;a- -,先赋值,再自减)

(3)逻辑运算符(&&,||,!)

逻辑运算符是根据表达式的值来返回“真”或“假”。非0 为真值,0 为假值。

&& 逻辑与;|| 逻辑或;! 逻辑非

(4)关系运算符(>,<,>=,<=,==,!=)

关系运算符是对两个表达式进行比较,返回一个真、假值。

> 大于,如(4>5)的值为0,(4>2)的值为1。

< 小于

>= 大于等于

<= 小于等于

== 等于

!= 不等于

这些运算符很简单,但要注意等于“==”和赋值“=”的区别,看下面的代码:

条件判断:if(a = 3) {……}

应该是:if(a==3) {……}

(5)位运算(&,|,^,~,>>,<<)

& 按位逻辑与,如0x0f & 0x33 结果是0x03。

| 按位逻辑或,如0x0f | 0x33 结果是0x3f。

^ 按位逻辑异或,如0x0f ^ 0x33 结果是0x3c。

~ 按位取反,如~0x33 结果是0xcc。

>> 右移,移出丢去,移入补0。如0x33>>1 结果是0x19。

<< 右移,移出丢去,移入补0。如0x33<<2 结果是0xcc。(6)复合赋值运算符(+=,-=,*=,/=,%=,<<=,>>=,&=,|=,^=)

a+=b 相当于a=a+b

a-=b 相当于a=a-b

a*=b 相当于a=a*b

a/=b 相当于a=a/b

a%=b 相当于a=a%b

a<<=b 相当于a=a<

a>>=b 相当于a=a>>b

a&=b 相当于a=a&b

a|=b 相当于a=a|b

a^=b 相当于a=a^b

(7)问号表达式(?:)

<表达式1>?<表达式2>:<表达式3>

在运算中,首先对第一个表达式进行检验,如果为真,则返回表达式2 的值;如果为假,则返回表达式3 的值。这是一种“二选一”的表达式。

例如:

a = (b>0)? (2*3):7; //当b>0 时,a=6;当

b 不大于0 时,a=7。(8)逗号运算符(,)

多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。

b=1;

c=2;

d=3;

a1=(++b,c--,d+3); //选括号,再赋值,a1 取d+3,即a1=6

a2=++b,c--,d+3; //赋值优先级高,所以a2 取++b,即a2=2 (9)运算符的优先级

7 .语句

(1)赋值语句

如:A=1+2;

T=Counter/3+5;

Area=Height*Width;

赋值不是“代数方程”,特别注意:

Num=Num+1;

//这显然不是一个等式,这是把Num+1 的值赋给变量Num (2)用逗号分隔开的声明语句

Char Area, Height, Width;

也可以把标识符写在不同的行上,如:

Vfloat Area,

Height,

Width;

这样便于给每个标识符后边加上注释。

在声明变量的时候,也可以直接给变量赋值,这叫做变量的初始化。如:int a=3;

也可以只初始化部分变量,如:int a=3, b, c=5;

int a=3,b=a,c=5;

(3)关于标准输入输出语句

51 单片机的C 语言程序中可以使用控制台格式化输入、输出函数scanf()和printf(),但因为单片机程序使用这两个函数不是很方便,所以不做介绍。

8 .注释

(1)单行注释

一行中,在“//”后面的内容,被解释为注释。

(2 )多行注释

以“/*”开头,用“*/”结尾,即/*……*/中间的内容被解释为注释。

9 .if 语句

(1 )形式1

if(表达式) 语句1;

(2 )形式2

if(表达式)

{

语句1;

语句2;

……

语句N;

}

(3)if—else 形式

if(表达式) 语句1;

else 语句2;

(4)if--else if—else 形式

if(表达式1)

语句1;

else if(表达式2)

语句2;

else if(表达式3)

语句3;

……

else

语句n;

10 .switch--case

switch(变量)

{

case 常量1:

语句1 或空;

case 常量2:

语句2 或空;

……

case 常量n:

语句n 或空;

default:

语句n+1 或空;

}

执行switch 开关语句时,首选测试变量的值,并直接跳到与变量值相等的case 常量处开始往下执行。若不与任何一个常量相等,则执行default 后面的语句。

注意:

A.switch 中变量可以是数值,也可以是字符,但必须是整数。

B.case 的个数可以根据需要增减,也可以不使用default。

C.每个case 或default 后的语句可以有很多,但不需要使用“{”和“}”括起来。

D.执行完一个case 语句后面的程序后它并不主动跳出switch 的花括号,而是继续往下,顺序执行。除非利用break 来跳出。

11 .for 循环

for(<初始化>; <条件表达式>; <增量>)

{

语句组;

}

For 的执行流程是:初始化→条件表达式为“真”→语句组→增量→条件表达式为“真”→……语句组→增量→条件表达式为“真”→语句组→增量→条件表达式为“假”→结束。

初始化是进入循环时执行的语句,通常是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;“增量”可以控制循环次数,定义循环控制变量每循环一次后按什么方式变化。注意,这三个部分之间用“;”分开,而不是“,”号。

例如:

for(i=1;i<=10;i++)

j=i*3;

上例中先给i 赋初值1,判断i 是否小于等于10,若是则执行语句

j=i*3,之后i 值增加1。再重新判断,直到条件为假,即i>10 时,结束循环。

注意:

A.语句组如果是一条语句,“{”和“}”可以省略。

B.for 循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但“;”不能缺省。省略了初始化,表示不对循环控制变量赋初值。省略了条件表达式,则不做判断,便成为死循环。省略了增量,则不对循环控制变量进行操作,这时可在语句组中加入修改循环控制变量的语句。初始化、条件表达式和增量可以是对不同的变量进行测试,也可以是复合语句,以期获得特殊的循环效果。

C.for 循环可以有多层嵌套。

12 .while 循环

while(条件)

{

语句组;

}

while 循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。while 循环总是在循环的头部检验条件,这就意味着循环可能什么也不执行就退出。

注意:

A.在while 循环体内也允许空语句。

B.可以有多层循环嵌套。

C.语句组如果是一条语句,“{”和“}”可以省略。

13 .do--while 循环

do {

语句块;

} while(条件);

这个循环与while 循环的不同在于,它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次循环语句。

14 .循环控制

(1)break 语句

break 语句通常用在循环语句和开关语句中。程序遇上break 语句时,会跳出当前循环或switch 语句。通常break 语句总是与if 语句联在一起,即满足某条件时便跳出。

注意:

A.break 语句对if-else 的条件语句不起作用。

B.在多层循环中,一个break 语句只向外跳一层。

C.如果有多层嵌套的循环,想从最里层跳出到最外层之外时,可用goto 语句。

(2)continue 语句

continue 语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。即结束本次循

环,根据条件进入下一轮循环。

(3)goto 语句

goto 语句是一种无条件转移语句,格式为:

goto 标号;

“标号”,函数内部用一个有效的“标识符”,后面跟一个冒号“:”,这样标识的行可以用goto 做的跳转目标。执行goto 语句后,程序将跳转到该标号处并执行其后的语句。标号必须与goto 语句同处于一个函数中,但可以不在一个循环层中。通常goto 语句与if 条件语句连用,当满足某一条件时,程序跳到标号处运行。不提倡使用goto 语句,它将使程序层次不清,但在多层嵌套退出时,用goto 语句则比较合理。所有的goto 语句其实都是可以用break,continue 代替的。

15 .一维数组

(1)数组就是数据类型相同的一组数,这组数可以通过“索引号”来存取。声明数组与声明变量方法相似,只要在名称后用一对方括号说明它容纳的元素个数即可:

数据类型数组名[元素个数];

例如:

char Array1[5]; //声明一个能存储5 个字符元素的数组,没有初值。

Int Array2[]={5,2,13,4}; //声明一个整型数组,并存入4 个初始值。(2)用下标访问数组元素

声明数组时,方括号中的数据是数组元素个数;存取数据时,方

括号中的数据是数组元素编号(下标)。数组下标从0 开始编号。上面的Array2 数组中,Array2[0]=5,Array2[1]=2,Array2[2]=13,Array2[3]=4。

若用指令:

Array2[2]=100;

则:把值100 赋给数组Array2 的2 号元素(第3 个),2 号元素原来的13 变为100。

若用指令:

char x= Array2[1];

则,把数组1 号元素的值赋给变量x,即x=2。

16 .二维数组

例如:

char a[3][8]; //这个数组有3 行,8 列

char b[3][2]={ {1,2}, {4,5}, {9,0} }; //定义一个3 行,2 列的二维数组,

上式中:b[0][0]=1; b[0][1]=2; b[1][0]=4; b[1][1]=5; b[2][0]=9; b[2][1]=0;

17 .字符数组与字符串数组

(1)字符数组

char chArray[]={’A’, ’r’, ’r’, ’a’, ’y’, ’4’};

//数组元素为字符的ASCII 码

(2 )字符串数组

char strArray[]=”Array”; //将字符串“Array”共5 个字符的ASCII 码

存入数组,并最后存入0 值,来表示字符串结束。char strHZ[]=”单片机”; //将汉字内码存入数组,一个汉字占两个字节(两个元素),同样以0 结束。

18 .函数

函数是C 语言的基本单元。

(1 )普通过函数

[函数返回值类型] 函数名(参数表) [using 寄存器组号]

{

语句组;

}

(2 )中断函数

void 函数名(void) interrupt 中断号[using 寄存器组号]

{

语句组;

}

(3 )任务函数

void 函数名(void) _task_ 任务号[using 寄存器组号]

《单片机控制装置安装与调试》电子工业出版社

{

语句组;

}

以上[using 寄存器组号] 是可选项。函数与变量一样,需要先定义,

再使用。如果“定义”在其它C 文件中,或者在使用它的语句后面,则需要先进行“说明”。

(4 )函数参数传递

A.形式参数和实际参数

函数定义中的参数是形式参数(简称形参),函数的调用者提供给函数的参数叫实际参数(简称实参)。可以理解为,在函数调用之前,实参的值将赋值给形参,做为形参的初值。

B.形参与实参的作用范围

形参是属于函数内部的局部变量;实参是函数外部即函数调用者的变量。

C.参数传递

形参和实参可能不只一个,如果多于一个时,函数声明、调用、定义的形式都要一一对应,不仅个数要对应,参数的数据类型也要对应。参数传递有传值和传地址之分。当函数参数为普通变量,常数时,传递的是值。如果参数是指针,数组,结构等时,传递的是它们的地址。(5 )函数值的返回

如果函数定义了返回值,则可以把函数当作一个变量。函数执行完成后,就会得到一个值。

注意:

A.有返回值的函数声明函数时,函数名前面不是void,而是返回值类型。

B.函数必须用return 语句来返回一个值。return 语句在函数中可

以不只出现一次,但是一旦遇上它,函数立即结束并返回。

C.函数的返回值可以赋给一个变量,也可以将函数放在一个表达式中参与运算。

19 .函数重入与递归

(1)重入

函数正在运行,还没有结束,又被调用,称为重入。在中断函数系统、多任务操作系统编程时,容易出现这种情况。

(2)递归

递归,就是函数自己调用了自己,或者在自己函数调用的下级函数中调用自己。递归是重入的一种特殊情况。递归函数必须确保有一个终止条件来结束递归下降过程,并且返回到顶层。递归通常都可以用循环来实现,但很多时候使用递归比使用循环要简单。

20 .预处理

预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。下面是部分预处理指令:

#include 包含一个源代码文件

#define 定义宏

#undef 取消已定义的宏

#if 如果给定条件为真,则编译下面代码

#ifdef 如果宏已经定义,则编译下面代码

#ifndef 如果宏没有定义,则编译下面代码

#elif 如果前面的#if 给定条件不为真,当前条件为真,则编译下面代码

#endif 结束一个#if……#else 条件编译块

#error 停止编译并显示错误信息

21 .宏

宏定义了一个代表特定内容的标识符。预处理过程会把源代码中出现的宏标识符替换成宏定义时的值。宏最常见的用法是定义代表某个值的全局符号。宏的第二种用法是定义带参数的宏,这样的宏可以象函数一样被调用,但它是在调用语句处展开宏,并用调用时的实际参数来代替定义中的形式参数。

(1)#define 指令

#define 预处理指令是用来定义宏的。该指令神明一个标识符,然后给出这个标识符代表的代码。

例如:

01 #define MAX_NUM 10 /* 定义符号MAX_NUM 代表10 */

02 int array[MAX_NUM]; /* 利用符号MAX_NUM 声明数组的容量*/

03 for(i=0;i

宏定义的符号具有一定的字面意义,便于程序阅读理解。作为一

最新单片机重点知识点整理

1单片机内部RAM 256个单元功能划分 通用工作寄存器区:用于存放操作数及中间结果 位寻址区:作为一般RAM单元使用,进行字节操作,也可对单元中每一位进行操作 用户区:供用户一般使用 特殊功能寄存器区:共专用寄存器使用 同步通信,依靠起始位和停止位实现同步 异步通信,依靠同步字符实现同步 1.方式0 串行接口工作方式0为同步移位寄存器方式,多用于I/O口的扩展,其波特率是固定的,为fosc/12。TXD引脚输出同步移位脉冲,RXD引脚串行输入/输出。 2.方式1 在方式l时,串行口被设置为波特率可变的8位异步通信接口。发送/接收1帧数据为10位,其中1位起始位、8位数据位(先低位后高位)和1位停止位。 3.方式2 串行口工作为方式2时,被定义为9位异步通信接口。发送/接收1帧数据为11位,其中1位起始位、8位数据位、1位控制/校验位和1位停止位。控制/校验位为第9位数据。 4.方式3 方式3为波特率可变的11位异步通信方式,除了波特率有所区别之外,其余同方式 3产品设计的步骤 1明确设计任务和性能指标2总体设计3硬件测试4软件设计5产品调试 4指令的寻址方式、分类,会举例 (1)立即数寻址指令本身直接含有所需要的8位或16位的操作数。 将此数称为“立即数”(使用#标明)。 MOV A,#5FH ;将(8位)立即数送累加器A (2)直接寻址指令直接给出了操作数的地址。 MOV A,3AH ;将RAM3AH单元内容送累加器 (3)寄存器寻址当所需要的操作数在内部某一个寄存器Rn中时,将此寄存器名Rn直接写在指令的操作数的位置上。 MOV A,R0 注意:寄存器寻址方式的指令大多是单字节指令。指令本身并不带有操数,而是含有存放操作数的寄存器的3位代码。以MOV A,Rn为例,使用R7寄存器,所以rrr=111,既指令的机器码为:0EFH (4)寄存器间接寻址指令中含有保存操作数地址的寄存器Ri。 MOV A,@Ri ( i=0、1) 如:MOV R0,#3AH ;立即数送R0寄存器 (5)变址寻址;指令使用DPTR或PC中的内容作为基地址,再与累加器A的内容相加,和作为操作数地址。 指令使用DPTR或PC中的内容作为基地址,再与累加器A的内容相加,和作为操作数地址。 MOVX A,@A+PC ;PC内容与A的内容相加得操作数地址并将此操作数送A

单片机原理及应用课后习题参考答案~章

《单片机原理及应用》习题答案 第一章计算机基础知识 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参与: 第二章MCS-51单片机的硬件结构 2-1 8052单片机片内包含哪些主要逻辑功能部件? 答:8052单片机片内包括: ①8位中央处理器CPU一个 ②片内振荡器及时钟电路 ③256B数据存储器RAM。 ④8KB片内程序存储空间ROM ⑤21个特殊功能寄存器SFR ⑥4个8位并行I/O端口(32条线) ⑦1个可编程全双工串行口 ⑧可寻址64KB的外部程序存储空间和外部数据存储空间 ⑨3个16位的定时器/计数器

(完整word版)单片机知识点总结

第一部分硬件基础 1、单片机的组成; 2、单片机的并行I/O口在使用时,有哪些注意的地方? 3、单片机的存储器;程序存储器和数据存储器的寻址范围,地址总线和数据总线的位数;数据存储器内存空间的分配;特殊功能寄存器区; 4、时钟及机器周期; 5、单片机的控制总线、地址总线及数据总线等。 例: 一、填空 1.MCS-51单片机有4个存储空间,它们分别是:、、、。 2、MCS-51单片机的一个机器周期包括个状态周期,个振荡周期。设外接12MHz晶振,则一个机器周期为μs。 3.程序状态字PSW由位组成。 4.在MCS-51单片机内部,其RAM高端128个字节的地址空间称 为区,但其中仅有个字节有实际意义。 5. MCS-51 系列单片机为位单片机,其数据总线为位,地址总线为位,可扩展的地址范围为。 6. MCS-51 单片机的4 个并行I/O 口若作为普通I/O 口使用时,输入操作分为读引脚和读锁存器,需要先向端口写“1”的操作是。 7. MCS-51 单片机的特殊功能寄存器分为可位寻址和不可位寻址两种,那么IE 为,TMOD 为。 8.通常MCS-51单片机上电复位时PC= H、SP= H、通用寄存器采用第组,这一组寄存器的地址范围 是 H。 9.MCS-51单片机堆栈遵循的数据存储原则。 10.在MCS-51单片机中,使用P2、P0口传送信号,且使用P0口来传送信号,这里采用的 是技术。 11.MCS-51单片机位地址区的起始字节地址为。

12.对于并行口在读取端口引脚信号时,必须先对端口写。13.PC的内容是。 14、MCS-51 单片机运行出错后需要复位,复位的方法是在复位引脚上加一个持续时间超过个时钟周期的高电平。 15、具有4KBytes 储存容量之存储器,其至少需具有根地址线。 二、问答 1.简述MCS-51 单片机的P0、P1、P2 和P3 口的功能。 2.MCS-51单片机的三总线是由哪些口线构成的。 3.MCS-51单片机的位寻址区的字节地址范围是多少?位地址范围是多少? 4. MCS-51单片机存储器在结构上有什么特点?在物理上和逻辑上各有那几个地址空间? 5.简述MCS-51单片机00H-7FH片内RAM的功能划分,写出它们的名称以及所占用的地址空间,并说明它们的控制方法和应用特性。 6.请写出MCS-51单片机的五个中断源的入口地址。 第二部分 C51程序设计 1、C51的指令规则;C51编程语句及规则; 2、C51表达式和运算符; 3、顺序程序、分支程序及循环程序设计; 4、C51的函数; 5、中断函数。 例: 1.程序的基本结构有。 2.C51的存储器模式有、、。 3.C51中int型变量的长度为,其值域为;unsigned char型变量的长度为位,其值域为。 4.C51中关键字sfr的作用,sbit的作 用。 5.函数定义由和两部分组成。 6.C51的表达式由组成。C51表达式语句由表达式和组成。

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 汇编行

单片机原理及应用课后答案

第1章单片机概述参考答案 1.1 答:微控制器,嵌入式控制器 1.2 答:CPU、存储器、I/O口、总线 1.3 答:C 1.4 答:B 1.5 答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。 嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。嵌入式微处理器相当于通用计算机中的CPU。与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。而嵌入式微处理器仅仅相当于单片机中的中央处理器。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。 1.6 答:MCS-51系列单片机的基本型芯片分别:8031、8051和8071。它们的差别是在片内程序存储器上。8031无片内程序存储器、8051片内有4K字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM。 1.7 答:因为MCS-51系列单片机中的"MCS"是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。 1.8 答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash存储器取代了87C51片内的4K字节的EPROM。 1.9 单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。单片机在嵌入式处理器市场占有率最高,最大特点是价格低,体积小。 DSP是一种非常擅长于高速实现各种数字信号处理运算(如数字滤波、FFT、频谱分析等)的嵌入式处理器。由于对其硬件结构和指令进行了特殊设计,使其能够高速完成各种复杂的数字信号处理算法。广泛地用于通讯、网络通信、数字图像处理,电机控制系统,生物信息识别终端,实时语音压解系统等。这类智能化算法一般都是运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP的长处所在。与单片机相比,DSP具有的实现高速运算的硬件结构及指令和多总线,DSP处理的算法的复杂度和大的数据处理流量以及片内集成的多种功能部件更是单片机不可企及的。 嵌入式微处理器的基础是通用计算机中的CPU,它的地址总线数目较多能扩展较大的存储器空间,所以可配置实时多任务操作系统(RTOS)。RTOS是嵌入式应用软件的基础和开发平台。正由于嵌入式微处理器能运行实时多任务操作系统,所以能够处理复杂的系统管理任务和处理工作。因此,广泛地应用在移动计算平台、媒体手机、工业控制和商业领域(例如,智能工控设备、ATM机等)、电子商务平台、信息家电(机顶盒、数字电视)以及军事上的应用。 1.10 广义上讲,凡是系统中嵌入了"嵌入式处理器",如单片机、DSP、嵌入式微处理器,都称其为"嵌入式系统"。但多数人把 "嵌入"嵌入式微处理器的系统,称为"嵌入式系统"。目前"嵌入式系统"还没有一个严格和权威的定义。目前人们所说的"嵌入式系统",多指后者。 第2章 AT89S51单片机的硬件结构 1.答:AT89S51单片机的片内都集成了如下功能部件:(1)1个微处理器(CPU);(2)128

第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在计数和定时工作完成后,均采用中断方式工作。除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用

单片机原理及应用第三版(张毅刚)1-6章全

第1章思考题及习题1参考答案 一、填空 1. 除了单片机这一名称之外,单片机还可称为或。答:微控制器,嵌入式 控制器. 2.单片机与普通微型计算机的不同之处在于其将、、和三部分,通 过内部连接在一起,集成于一块芯片上。答:CPU、存储器、I/O口、总线 3. AT89S52单片机工作频率上限为 MHz。答:33 MHz。 4. 专用单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低和提 高。答:成本,可靠性。 二、单选 1. 单片机内部数据之所以用二进制形式表示,主要是 A.为了编程方便B.受器件的物理性能限制 C.为了通用性D.为了提高运算速度 答:B 2. 在家用电器中使用单片机应属于微计算机的。 A.辅助设计应用B.测量、控制应用 C.数值计算应用D.数据处理应用 答: B 3. 下面的哪一项应用,不属于单片机的应用范围。 A.工业控制 B.家用电器的控制 C.数据库管理 D.汽车电子设备 答:C 三、判断对错 1. STC系列单片机是8051内核的单片机。对 2. AT89S52与AT89S51相比,片内多出了4KB的Flash程序存储器、128B的RAM、1个中断 源、1个定时器(且具有捕捉功能)。对 3. 单片机是一种CPU。错 4. AT89S52单片机是微处理器。错

5. AT89C52片内的Flash程序存储器可在线写入,而AT89S52则不能。错 6. 为AT89C51单片机设计的应用系统板,可将芯片AT89C51直接用芯片AT89S51替换。对 7. 为AT89S51单片机设计的应用系统板,可将芯片AT89S51直接用芯片AT89S52替换。对 8. 单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能则是DSP 的长处。对 四、简答 1. 微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别? 答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。 2. AT89S51单片机相当于MCS-51系列单片机中的哪一型号的产品?“S”的含义是什么? 答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash存储器取代了87C51片内的4K字节的EPROM。 3. 单片机可分为商用、工业用、汽车用以及军用产品,它们的使用温度范围各为多少? 答:商用:温度范围为0~+70℃;工业用:温度范围为-40~+85℃;汽车用:温度范围为-40~+125℃;军用:温度范围为-55~+150℃。 4. 解释什么是单片机的在系统编程(ISP)与在线应用编程(IAP)。 答:单片机的在系统编程ISP(In System Program),也称在线编程,只需一条与PC机USB口或串口相连的ISP下载线,就可把仿真调试通过的程序代码从PC机在线写入单片机的Flash存储器内,省去了编程器。在线应用编程(IAP)就是可将单片机的闪存内的应用程序在线修改升级。 5. 什么是“嵌入式系统”? 系统中嵌入了单片机作为控制器,是否可称其为“嵌入式系统”? 答:广义上讲,凡是系统中嵌入了“嵌入式处理器”,如单片机、DSP、嵌入式微处理器,都称其为“嵌入式系统”。但多数人把“嵌入”嵌入式微处理器的系统,称为“嵌入式系统”。目前“嵌入式系统”还没有一个严格和权威的定义。目前人们所说的“嵌入式系统”,多指后者。 6. 嵌入式处理器家族中的单片机、DSP、嵌入式微处理器各有何特点?它们的应用领域有何 不同? 答:单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,

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

第二章习题参考答案 一、填空题: 1、当MCS-51引脚ALE有效时,表示从P0口稳定地送出了低8位地址。 2、MCS-51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域。 3、当使用8751且EA=1,程序存储器地址小于1000H 时,访问的是片内ROM。 4、MCS-51系统中,当PSEN信号有效时,表示CPU要从外部程序存储器读取信息。 5、MCS-51有4组工作寄存器,它们的地址范围是 00H~1FH 。 6、MCS-51片内20H~2FH范围内的数据存储器,既可以字节寻址又可以位寻址。 7、PSW中RS1 RS0=10时,R2的地址为 12H 。 8、PSW中RS1 RS0=11时,R2的地址为 1AH 。 9、单片机系统复位后,(PSW)=00H,因此片内RAM寄存区的当前寄存器是第 0 组,8个寄存器的单元地址为 00H ~ 07H 。 10、PC复位后为 0000H 。 11、一个机器周期= 12 个振荡周期= 6 个时钟周期。 12、PC的内容为将要执行的的指令地址。 13、在MCS-51单片机中,如果采用6MHz晶振,1个机器周期为 2us 。 14、内部RAM中,位地址为30H的位,该位所在字节的字节地址为 26H 。 15、若A中的内容为63H,那么,P标志位的值为 0 。 16、8051单片机复位后,R4所对应的存储单元的地址为 04H ,因上电时PSW= 00H 。这时当前的工作寄存器区是第 0 工作寄存器区。 17、使用8031芯片时,需将/EA引脚接低电平,因为其片内无程序存储器。 18、片内RAM低128个单元划分为哪3个主要部分:工作寄存器区、位寻址区 和用户RAM区。 19、通过堆栈操作实现子程序调用,首先就要把 PC 的内容入栈,以进行断点保护。调用返回时,再进行出栈保护,把保护的断点送回到 PC 。 20、MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS -51的PC是16位的,因此其寻址的范围为 64 KB。 21、MCS-51单片机片内RAM的寄存器共有 32 个单元,分为 4 组寄存器,每组 8 个单元,以R0~R7作为寄存器名称。 22、但单片机的型号为8031/8032时,其芯片引线EA一定要接低电平。 二、选择题: 1、当MCS-51复位时,下面说法正确的是( A )。 A、 PC=0000H B、 SP=00H C、 SBUF=00H D、 P0=00H 2、PSW=18H时,则当前工作寄存器是( D )。 A、 0组 B、 1组 C、 2组 D、 3组 3、MCS-51上电复位后,SP的内容应是( B )。 A、 00H B、 07H C、 60H D、 70H 4、当ALE信号有效时,表示( B )。 A、从ROM中读取数据 B、从P0口可靠地送出低8位地址 C、从P0口送出数据 D、从RAM中读取数据 5、MCS—51单片机的CPU主要的组成部分为( A )。 A、运算器、控制器 B、加法器、寄存器 C、运算器、加法器 D、运算器、译码器

(完整版)单片机原理及应用考试复习知识点

单片机原理及应用考试复习知识点 第1章计算机基础知识 考试知识点: 1、各种进制之间的转换 (1)各种进制转换为十进制数 方法:各位按权展开相加即可。 (2)十进制数转换为各种进制 方法:整数部分采用“除基取余法”,小数部分采用“乘基取整法”。 (3)二进制数与十六进制数之间的相互转换 方法:每四位二进制转换为一位十六进制数。 2、带符号数的三种表示方法 (1)原码:机器数的原始表示,最高位为符号位(0‘+’1‘-’),其余各位为数值位。 (2)反码:正数的反码与原码相同。负数的反码把原码的最高位不变,其余各位求反。 (3)补码:正数的补码与原码相同。负数的补码为反码加1。 原码、反码的表示范围:-127~+127,补码的表示范围:-128~+127。 3、计算机中使用的编码 (1)BCD码:每4位二进制数对应1位十进制数。 (2)ASCII码:7位二进制数表示字符。0~9的ASCII码30H~39H,A的ASCII码41H,a的ASCII码61H。 第2章80C51单片机的硬件结构 考试知识点: 1、80C51单片机的内部逻辑结构 单片机是把CPU、存储器、输入输出接口、定时/计数器和时钟电路集成到一块芯片上的微型计算机,主要由以下几个部分组成。 (1)中央处理器CPU 包括运算器和控制器。 运算电路以ALU为核心,完成算术运算和逻辑运算,运算结果存放于ACC中,运算结果的特征存放于PSW中。 控制电路是单片机的指挥控制部件,保证单片机各部分能自动而协调地工作。程序计数器PC是一个16位寄存器,PC的内容为将要执行的下一条指令地址,具有自动加1功能,以实现程序的顺序执行。 (2)存储器 分类: 随机存取存储器RAM:能读能写,信息在关机后消失。可分为静态RAM(SRAM)和动态RAM(DRAM)两种。 只读存储器:信息在关机后不会消失。 掩膜ROM:信息在出厂时由厂家一次性写入。 可编程PROM:信息由用户一次性写入。

第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】判断下列说法是否正确。

单片机基础及其应用习题.doc

1. X1 = +42、X2=-82,则/1]反= B, ^2]补= 2. 3. MOV RO, 30H 中,30H 的寻址方式称之为 4. MOV C, 30H 源操作数寻址方式为 寻址。 5. MCS-51的雄栈是在— 一中开辟的。 6. MCS-51片内20H-2FH 范围内的数据存储器,即可以字节寻址又可以 寻址。 7. 8051单片机读片外程序存储器MOVC 指令采用的是— 一寻址方式。 8. 若系统晶振频率为6MHz,则MUL AB 指令的周期为— _ps 9. 12根地址线可?选择 存储单元,32KB 存储单元需要 根地址线。 10. 设(A) =55H, (R5) =0AAH,贝ij 执行ANL A, R5指令后的结果是<A)= ,( R5) 11. 12. MCS-51中T1中断服务程序入I I 地址为 13. 14. 通常单片机上电复位时PC = H 、SP = Ho A 、P0 I I 和 P2 I I B 、P0 I I C 、P2 I I 和 P3 I I 3. 在单片机内部, 反应林序运行状态或反应运算结果的一个特征奇存器是( A 、 PC B 、PSW C 、A D 、SP 4. 在堆栈操作中, 当进栈数据全部弹出后,这时SP 应指向( ) A 、 C 、栈底单元地址加 1 D 、栈底单兀地址减1 单片机基础及其应用习题(含答案) 2011-06-02 21:57:031分类:款认分类|标斜 |字号大中小订阅 填空题 PSW 中RS1=1. RS0=0,则当前工作寄存器为 组通用寄存器(从第0组排起)o 若用传送指令访bd MCS-51的程序存储器,它的操作码助记符应为 欲对300个外部事件计数,可以选用定时器/计数器的工作模式. 选择题 1. 8031单片机内部RAM 中既可位寻址又可字节寻址的单元字节地址是 A. 20H B.30H C.OOH D.70H 2. MCS-51系列单片机外部扩展存储器芯片时,4个l/OI I 中用作数据总线的是( B 、7FH 单元

单片机基础知识点总结

单片机基础知识点总结 单片机基础知识点总结 第1章 1、微型计算机通常由哪些部分组成?各有哪些功能? 答:微型计算机通常由控制器、运算器、存储器、输入输出接口电路、输入设备和输出设备组成。控制器的功能是负责从内部存储器中取出指令 并对指令进行分析、判断、并根据指令发出控制信号,使计算机有条不紊 的协调工作;运算器主要完成算数运算和逻辑运算;存储器用于存储程序 和数据;输入输出接口电路完成CPU与外设之间相连;输入和输出设备用于和计算机进行信息交流的输入和输出。 2、单片微型计算机与一般微型计算机相比较有哪些区别?有哪些特点? 答:与通用微型计算机相比,单片机的硬件上,具有严格分工的存储器ROM和RAM和IO端口引脚具有复用功能;软件上,采用面向控制的 指令系统和硬件功能具有广泛的通用性,以及品种规格的系列化。单片机 还具备体积小、价格低、性能强大、速度快、用途广、灵活性强、可靠性 高等特点。 3、单片机的几个重要指标的定义。 答:单片机的重要指标包括位数(单片机能够一次处理的数据的宽度)、存储器(包括程序存储器、数据存储器)、IO口(与外界进行信息交换)、速度(每秒执行多少条指令)、工作电压(通常是5V)、功耗和温度。

4、单片微型计算机主要应用在哪些方面? 答:单片机的主要应用领域有智能化产品、智能化仪表、智能化测控系统、智能化接口等方面。 5、单片机的特点 存储器ROM和RAM严格分工;采用面向控制的指令系统;输入输 出端口引脚具有复用功能;品种规格的系列化;硬件功能具有广泛的通用 性 6、水塔水位的控制原理 (1)当水位上升达到上限时,B、C棒与A棒导电,从而与+5V电源连通。b、c两端均呈高电平状态,这时应使电机和水泵停止工作,不再给水 塔供水。(2)当水位降到下限以下时,B、C棒不与A棒导电,从而断开与 +5 V电源的连通。b、c两端均呈低电平状态。这时应启动电机,带动水泵工作给水塔供水。(3)当水位处于上下限之间时,B棒与A棒导电,而C棒不与A棒导电。b端呈高电平状态,c端呈低电平状态。这时无论是电机已在运转还是停止,都应维持电机和水泵的现有工作状态,直到水位上升到 水位上限或下降到水位下限。 第2章 1、MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么? 答:MCS-51单片机在一块芯片中集成了CPU、RAM、ROM、定时计数器、多功能IO口和中断控制等基本功能部件。1)单片机的核心部分是CPU,CPU是单片机的大脑和心脏。2)程序存储器用于存放编好的程序或表格常数。数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。3)

最新第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的应用特点?

单片机基础及应用项目五课后习题及答案

一、填空题 1.51单片机中有(2)个(16)位的定时/计数器,可以被设定的工作方式有(四)种。 2.51单片机的定时器/计数器有四种工作方式,其中方式0是(13)位计数器;方式1为 (16)位计数器;方式2为(自动重装初值)的(8)位计数器;只有定时器(T0)才能选作组合方式3,此时将形成2个(8)位的计数器。 3.单片机中,常用作地址锁存器的芯片是(74HC373),常用作地址译码器芯片的是 (74HC138)。 4.若要启动定时器T0开始计数,则应将TR0的值设置为(1)。 5.若系统晶振频率为12MHz,则T0工作方式1时最多可以定时(65536)us。 6.TMOD中M1M0=11时,定时器工作方式(3)。 7.单片机工作于定时状态时,计数脉冲来自(单片机内部的时钟脉冲)。 8.单片机工作于计数状态时,计数脉冲来自(单片机外部的时钟脉冲) 二、选择题 1.单片机的定时器/计数器设定为工作方式1时,是(D) A、8位计数器结构 B、2个8位计数器结构 C、13位计数器结构 D、16位计数器结构 2.定时器/计数器有4种工作模式,它们由(B)寄存器中的M1、M0状态决定 A、TCON B、TMOD C、PCON D、SCON 3.若单片机的振荡频率为6MHz,设定时器工作在方式1需要定时1ms,则定时器初值 应为(C) A、500 B、1000 C、216-500 D、216-1000 4.定时器1工作在计数方式时,其外加的计数脉冲信号应连接到(D)引脚 A、P3.2 B、P3.3 C、P3.4 D、P3.5 5.74LS138芯片是(B) A、驱动器 B、译码器 C、锁存器 D、编码器 6.在下列寄存器中,与定时/计数控制无关的是(C) A、TCON B、TMOD C、SCON D、IE 7.启动定时器0开始计数的指令是使TCON的(B) A、TF0位置1 B、TR0位置1 C、TR0位置0 D、TR1位置0 8.用定时器T1方式1计数,要求每计满10次产生溢出标志,则TH1、TL1的值是(A) A、FFH、F6H B、F6H、F6H C、F0H、E0H D、FFH、DFH 9.与开启定时器0中断无关的是(C) A、TR0=1 B、ET0=1 C、ES0=1 D、EA=1 10.多位数码管显示时,(D)负责输出字型码,控制数码管的显示内容。 A、显示端 B、公共端 C、位选端 D、段选端 11.若要采用定时器0,方式1,如何设置TMOD(B) A.00H B.01H C.10H D.11H 12.单片机采用方式0时是13位计数器,它的最大定时时间是多少?(B) A.81.92ms B.8.192ms C.65.536ms D.6.5536ms 13.单片机的定时器,若用软件启动,应使TMOD中的(C) A.GATE位置1 B.C/T位置1 C.GATE位置0 D.C/T位置0 14.下面哪一种工作方式仅适用于定时器T0(D)

单片机基础知识点提问汇总

1.什么是单片机? 2.单片机有哪些用途?(举例说明) 3.十进制数117对应的二进制,十六进制为多少? 4. -74的原码、反码、补码分别为多少? 5. 描述与0和1分别进行与、或、异或操作的效果 6. 说明单片机系统开发使用的软件名称,下载软件名称 7. MCS-51单片机的ROM,RAM的容量分别为多少? 8. MCS-51单片机I/O的数量,P0,P1,P2,P3的各自特点? 9. 12MHZ晶振的单片机系统,时钟周期,机器周期分别为多少? 10.P3.0~P3.7的第二功能分别是什么? 11. CPU复位后所有I/O口的状态? 12. 作为普通I/O口,哪组I/O口没有内部上拉电阻? 13. 用来改变工作寄存器组的是通过那个寄存器的哪几位设置? 14. MCS-51单片机内部RAM的位寻址区的地址范围是? 15. 在进行外部存储器扩展时,由哪些口构成16位地址总线? 16. 单片机c语言程序的标识符命令有什么规则? 17. 构成单片机最小系统,哪些引脚必须连接,如何连接? 18. 单片机复位后程序计数器PC的值为多少? 19. 描述利用keil软件进行单片机开发的过程? 20. proteus仿真软件应调入keil软件生成的那个文件运行程序? 21.单片机片内RAM的三个组成部分? 22.单片机的复位端是什么电平复位,复位电平要持续多长时间以上? 23.单片机复位电路有哪两种形式? 24.数据类型unsigend char,unsigned int,unsigned long表示数据范围分别为? 25.字符常量‘A’与字符串常量“A”有什么区别? 26.存储器类型data,bdata, xdata,code分别表示哪种存储器类型? 27.数组名和指针的相同点与不同点? 28.编写程序提取某个小于100的数据x的十位数和个位数存到变量shi,ge中。 29.利用按位与(&)按位或(|)按位异或(^)实现P1.2,P1.3口同时清零,置1和取反功能。 30.利用if条件语句编程实现考试通过与否的判断,成绩变量score大于等于60时,位变量pass_fg为1,否则为0. 31.某温度采集系统,采集了十个温度值存放在数组temper[10]中,请利用循环语句求出10个温度值的平均值,并将该平均值存放在temper_avr变量中。 32.十个学生参加测验,批卷教师对十份卷进行批阅后得出十个成绩,假设这十个成绩存放在数据score[10]中,请利用循环语句查找出该十个成绩的最高分和最低分分别存到变量score_max 和score_min中。 33. 共阳极数码管的a,b,c,d,e,f,g,p分别与单片机的P0.0~P0.7相连,请列些数码管显示’0’~’9’数值的代码表。

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

相关文档
最新文档