当前位置:文档之家› 单片机复习提纲1

单片机复习提纲1

单片机复习提纲一、项目准备篇(一)C51语言及语法1. 数据类型(1)常用数据类型名称、占用字节数、取值范围。

如:char型 1字节 -128~+127int型 2字节 -32768~+32767等。

(2)sbit类型和bit类型的区别:前者可以定义特殊功能寄存器中的位,后者用于定义51单片机内部位地址空间中的位。

如:sbit P1_1=P1^1;bit flag;2. 变量定义和作用域(1)变量必须先定义后使用,变量的定义格式;(2)变量的作用域:全局变量:在函数外部定义,函数可以用全局变量传递多个数据结果;函数中用return只能传递一个数据结果。

局部变量:在函数内部定义,函数外部不可见。

(3)关键字的概念例:下列标识符中哪些是C51编程时使用的关键字?A、integerB、defineC、breakD、sbit3. C51语言运算符要求对常用运算能熟练掌握。

例题:(1)a=0xff,b=0x07, a | b = ?2)i=1234, k=i%10, k=?(3)设x=0x81,x=x<<2,x=0x04(4)a=0x77,b=0x99, a & b =0x11(5)P1=~0x11,P1= 0xEE(6)a1=0xff,y = !a1, y= 1(7)tmp=0x15,tmp=tmp>>4,tmp= 0x01(8)x=0x80,y=0x7f, 则x && y = 1(9)a=0x1f,b=0x01,c = a + a||b + b%10= ?c = a + (a||b) + (b%10)= 0x30(10)i=0x21, y = --i ,y =i =0x21;i--;y=i;(11)i=0x21,y=i--,y=?i =0x21;y=i; i--;重点关注:/,%,++,--(++,--放在变量前与后之间的区别),按位运算,以及关系和逻辑运算中真/假的概念。

4. C51语句和流程控制(1) for(;;)语句合法吗?合法for(;;){;}(2)if(x=66) {P0=0x12;}表达的含义是什么?/P0 被无条件赋值 0x12/ if(x == 66) {P0=0x12;}// 在x等于66时,P0被赋值0x12 (3)在C51语言中,循环语句结束的条件是什么?// 循环条件不成立(4)形如while(TF0){}语句的书写正确吗?正确(5)分析下面程序的输出结果。

main(){int x=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1) x=1;else if (ok2) x=10;x= -1;pr inf(“%d\n”, x );//输出打印x的值}等效:main(){int x=100,a=10,b=20,ok1=5,ok2=0;if(a<b) {if(b!=15) {if(!ok1) { x=1;}else if (ok2) { x=10; }}}x= -1;p rinf(“%d\n”, x );//输出打印x的值}5. 函数(1)函数与变量类似,必须先定义后使用,当被调用函数定义在调用函数之后时,必须进行函数声明;(本书例程中主函数均放置在最后,避免了函数声明)(2)函数类型的意义;函数的返回值。

int add();int sum;sum = add();int add(){….return (int)1;}(3)主函数。

例题:(1)C51源程序总是从哪里开始执行的?Main 函数(2)若一个函数的返回类型为void,则该函数有返回值吗?无返回值(3)所有定义在主函数之后的函数需要进行声明吗?是(4)C51语言中,函数调用结束后通过return语句传递返回值可以有几个?只能一个(5)在用C51语言编写单片机应用程序时,可以用多个main()函数来实现不同的功能吗?不能6. 数组和头文件(1)C51数组的下标是从0开始的。

(2)包含头文件的格式有2种,如:#include <reg52.h>与#include“reg52.h”(3)支持写入单片机或仿真程序调试的目标程序的文件格式是xx.hex。

二、项目准备篇(二)MCS-51单片机硬件结构1. 单片机结构(1)8051单片机CPU是几位的?8位(2)8051单片机共有几个并口?每个并口有几位?P0(8)、P1(8)、P2(8)、P3(8)(3)CPU主要包括运算器和存储器两部分。

2. 存储器(1)半导体存储器分成RAM(数据存储器)和ROM (程序存储器)两大类。

其中前者具有易失性,常用于存储临时性数据。

(2)从逻辑空间上看,MCS-51单片机存在几个独立的存储器空间?片内外统一编址的程序存储器,空间大小64kB 片内数据存储器,空间大小256B片外数据存储器,空间大小64kB(3)单片机应用程序一般存放在什么存储器中?程序存储器(4)存储器分成片内存储和片外存储两大部分,其中89C51最大可支持的片外程序存储器容量为多少?64kB(5)MCS-51单片机的程序存储器只能用来存放程序吗?不是,例如const u8 tmp[]={,,,,}(6)在MCS-51单片机应用系统中,为了使用片外程序存储器,引脚EA必须如何连接?高电平(7)89C51单片机什么存储器实行片内及片外统一编址?程序存储器(8)80C51单片机的工作寄存器共有4组,它们是特殊功能寄存器的一部分吗?不是(9)片内RAM的20H~2FH为位寻址区,所包含的位地址是多少?P51,图2-3-2(10)可以位寻址的特殊功能寄存器是哪些?P53,表2-3-2(11)MCS-51的堆栈只可设置在什么存储区?堆栈寄存器SP是几位寄存器?p54,上数8行(12)特殊功能寄存器的名字,在C51程序中,全部大写还是小写?大写(13)程序状态字寄存器是可以直接寻址的专用寄存器,它的符号是什么?PSW(14)单片机的数据存储器可用于存放中间结果吗?是(15)在MCS-51单片机内部,其RAM高端128个字节地址空间称为特殊功能寄存器区或SFR区,但其中仅有多少个字节有实际意义?48个(STC15)3. 单片机引脚和片外总线及复位(1)哪个端口在作为地址总线使用时,提供的是高8位地址?p69图2-4-9,P2口(2)哪个端口的带负载能力最强?如何表示?P1口(8051),4个TTL//都一样(STC15),25mA (3)80C51单片机的某些脚可以具有两种功能?是(4)单片机复位加电后,片内数据存储的内容不全为0x00H吗?对,例如SP=0x07(5)单片机的复位操作是高电平还是低电平?且其上所加的复位电平的信号至少持续多少个机器周期?高电平,2个机器周期(p45)(6)8051单片机中,输入/输出引脚中用于专门的第二功能的引脚是(D)A.P0 B.P1 C.P2 D.P3(7)MCS-51单片机的P0与P3端口除了可以进行数据的输入与输出外,通常还用来构建系统的什么?外部存储器(8)P2端口既可以作为I/O使用,又可以作地址/数据复用口使用吗?否(9)MCS-51单片机复位操作的主要功能是把PC初始化为0x0FFFH吗?0x0,p50倒数2行(10)当MCS-51上电复位时,堆栈指针SP=00H吗?0x074. 时钟及最小系统(1)设某单片机的晶振频率为12 MHz,则其机器周期为多少?1us(2)单片机的最小应用系统由哪几部分组成?单片机、时钟电路、复位电路、电源(3)最小系统是单片机仅用本身有的资源就可以工作,不需要外接任何部件吗?是(4)8051单片机的一个机器周期包含几个时钟周期?12个(5)当单片机系统晶体振荡器频率为6MHz时,其机器周期为多少微秒?2us(6)80C51单片机的机器周期为2uS,则其晶振频率fosc为多少MHz?6MHz三、流水灯篇(1)单片机定时器初始值寄存器中的值越大,定时溢出时间越短吗?对(2)定时器与计数器的工作原理均是对输入脉冲进行计数吗?对(3)80c51单片机定时/计数器T0、T1都可以工作在方式3下吗?不能(4)MCS-51单片机的定时和计数都使用同一计数机构,所不同的只是计数脉冲的来源:来自于单片机内部的是定时,而来自于外部的则是计数。

这个说法正确吗?对(5)定时/计数器T0的M1MO=00时,定时计数器的最大计数值是多少?2^13(8051),2^16(STC15)(6)采用软件控制定时器T0工作在方式2时,TMOD 可以设定为TMOD=?T0 方式2 TMOD = 0x02T1 方式2 TMOD = 0x20(7)6MHz晶振的单片机在定时工作方式下,定时器计一个数所用的定时时间为多少?2us(8)80C51单片机共有几个定时器/计数器?T0、T1、T2(9)语句TMOD=(TMOD & 0X0F)|0X20;请问定时器T1工作在什么方式?方式2(10)语句TMOD=(TMOD&0XF0)|0X02;请问定时器T0工作在什么方式?(11)定时器T1工作在方式1,若输入一个定时计数脉冲后即发生溢出,则计数器初始值为多少?2^16-1=65535(12)要使定时器T1工作,除设置TMOD和向TH1、TL1置初值外,还应置什么?TR1 = 1(13)定时器/计数器采用自动重装初始值的工作方式是方式几?方式2(8051)、方式0、2(STC15)(14)使用定时器T1时,有几种工作模式?0、1、2,共三种(15)MCS-51单片机定时器T0的溢出标志TF0,若计数满产生溢出时,其值为多少?TF0 = 1。

相关主题