单片机考试
基本概念
1.1 定时器长定时 ?
= 方波
一种非正弦曲线波形,与电子和讯号处理时出现
= PWM占空比 50%
中断 / 查询
1.2 串行通讯
= 方式:同步(开关、灯) / 异步
异步传输和同步传输
发送端和接收端保持步调一致,否则数据传输出错,解决出错方法有异步传输和同步传输
异步传输:字符之间异步,字符各位间同步,字符和字符之间通信没有定时要求,字符可以连续一个个发送,也可以不连续随机发送
同步传输:一种连续传输数据通信方式,一次通信传送多个字符数据,称为一帧信息,发送端和接收端严格同步
SCON :串口一控制寄存器
PCON :电源控制寄存器
简答题
-
单片机定义
是一种集成电路芯片,通过超大规模集成电路技术将CPU,RAM,ROM,IO接口,定时器计数器等功能的元件集成到一块硅片上的小而完善微型计算机系统
-
编程硬件
IO接口,硬盘接口,CPU,内存,输入输出设备,存储器,控制器,运算器,外设,寄存器,总线
-
存储器
RAM ROM 存储单元集合
-
最小系统
尽可能少的外部电路条件下,使单片机独立工作系统,复位电路,晶振电路,供电电路
-
中断四个过程
中断请求,中断响应,中断处理,中断返回
程序题
-
数码管 (动、静)
静态
#include "Delay.h“ #include "HC595.h" unsigned char code SMG_Array[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void main(void) { unsigned char i = 0; P6 = 0x00; while(1) { for (i = 0;i < 16;i++) { HC595_WrOneByte(SMG_Array[i]); DelayMS(500);} } }动态
#include "HC595.h" #include "Delay.h" unsigned char code Bit_Tab[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //位选数组 unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07}; //段码数组 void main(void) { unsigned char i = 0; while(1) { for (i = 0;i < 8;i++) { HC595_WrOneByte(Disp_Tab[i]); // 依次送入8个段码数据 P6 = Bit_Tab[i]; // 依次送入8个位选数据 DelayMS(x); // 延时一小段时间,以便观察 } } } -
LED(跑马灯,流水灯)
跑马灯
#include "stc15.h" #include "intrins.h" void Delay100ms() { unsigned char i, j, k; _nop_(); _nop_(); i = 5; j = 52; k = 195; do { do { while (--k); } while (--j); } while (--i); } void main(void) { unsigned char led= 0xFE; while(1) { P0 = led; led = _crol_(led,1) ; Delay100ms(); } }流水灯
#include "stc15.h" #include "intrins.h" void Delay100ms() { unsigned char i, j, k; _nop_(); _nop_(); i = 9; j = 104; k = 139; do { do { while (--k); } while (--j); } while (--i); } void main(void) { unsigned char i = 0; while(1) { P0 = 0xff; for (i = 0; i < 8; i++) { P0 <<= 1; Delay100ms(); } } } -
消除鬼影
void Display() { unsigned char QianNum,BaiNum,ShiNum,GeNum; GeNum = g_uiNum % 10; // 分类各个数位 ShiNum = g_uiNum /10% 10; BaiNum = g_uiNum /100% 10; QianNum = g_uiNum /1000; P6 = Bit_Tab[3]; // 送位选数据 HC595_WrOneByte(Disp_Tab[GeNum]); // 送段选数据 HC595_WrOneByte(0x00); // 消除鬼影现象 P6 = Bit_Tab[2]; HC595_WrOneByte(Disp_Tab[ShiNum]); HC595_WrOneByte(0x00); P6 = Bit_Tab[1]; HC595_WrOneByte(Disp_Tab[BaiNum]); HC595_WrOneByte(0x00); P6 = Bit_Tab[0]; HC595_WrOneByte(Disp_Tab[QianNum]); HC595_WrOneByte(0x00); } -
按键 - 消抖程序
# include "FsBSP_HC595.h" # include "FsBSP_Delay.h" sbit Key1 = P4^1; sbit K6 = P4^4; unsigned char code SMG_Array[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void main(void){ unsigned char ucNum = 0; Key1 = 0; P6 = 0x00; while(1){ if(K6 == 0){ DelayMS(10); if(0 == K6){ while(!K6); ucNum++; if(ucNum >= 10){ ucNum = 0; } HC595_WeOneByte(SMG_Array[ucNum]); } } } }
一些知识点
第一章 单片机概述
1.MCU:单片机 EMPU:嵌入式微处理器
2.使用二进制的主要原因是 受器件的物理性能限制
3.手机中的双核是指: EMPU DSP
4.单片机与普通微型计算机的不同之处是其将CPU、存储器、I/O口三部分,通过内部总线连接在一起,集成在一块芯片上。
5.AT89S51型号中的“S”含义是: 含有串行下载的Flash存储器
6.在家用电器中,单品机是测量、控制应用。
7.中国的芯片科技公司有:凌阳科技、华邦电子、宏晶科技
8.8位单片机系列产品有MCS-51系列、PIC系列、AVR系列,ARM不是8位单片机
9.51单片机发展阶段主要以CPU的位数的发展来区分的。
10.单品机使用温度范围:
商用:0-70℃
工业:-40-85℃
汽车:-40-125℃
军用:-55-150℃
11.以下公司都生产mcs-51系列单片机。
ATMEL、ANALOG、Maxim、DEVICES
Philips、Cygnal、DALLAS、LG、ADI
宏晶科技、台湾华邦、凌阳科技
1.AT89S52不是微处理器
2.STC系列单片机是8051内核的单片机
3.AT89S51内的Flash程序存储器可在线写入(ISP),而AT89S52不行
4.为AT89C51单片机设计的应用系统板,可将芯片AT89C51直接用芯片AT89S51替换;为AT89S51单片机设计的应用系统板,可将芯片用AT89S52替换。
5.单片机不是CPU
6.AT89S52与AT89S51相比,片内多出了4KB的Flash程序存储器、128B的RAM、1个中断源、1个定时器(且具有捕捉功能)
7.单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能是DSP的长处
8.AT89S51片内的Falsh程序存储器可在线写入(ISP),而AT89C52不能。
嵌入式处理器单片机 DSP 嵌入式微处理器有何特点?应用领域有何不同?
1. 单片机体积小,价格低,易于掌握和普及,容易嵌入到各种通用系统中,实现各种方式检测和控制。单片机在嵌入式处理器市场占有率高,价格低,体积小,应用广泛
2. DSP告诉实现数字信号处理运算嵌入式处理器,高速完成复杂数字信号处理算法,功能部件单片机多
3. 嵌入式微处理器基础是通用计算机CPU,地址总线数目多,扩展容量大的存储器,配置多任务操作系统
什么是单片机系统编程和在线应用编程?
1. ISP只需要PC机USB口和下在线,省去编译器
2. 运行一个存储体上用户程序,可对另一个存储体重新编程,之后控制从一个存储体流向另一个
微处理器,微计算机,微处理,CPU,单片机,嵌入式处理器之间联系和区别?
微处理器,微处理机,CPU 对中央处理器不同称呼,微处理器芯片本身不是计算机,微计算机,单片机都是一个完整计算机系统,单片机集成在一个芯片上的单片为计算机
嵌入式系统概念?系统嵌入单片机作为控制器,是否称其为嵌入式系统?
凡是系统中嵌入了嵌入式处理器,单片机,DSP,嵌入式微机,都是嵌入式系统
第二章 51单片机片内构造
1.程序在运行中,当前PC的值是: 当前正在执行指令的下一条指令的首地址
2.PC不可寻址;单片机的主频越高,运算速度越快;AT89S51单片机的一个机器周期是12/11.0592US,一个机器周期等于12个时钟周期
3.特殊功能寄存器是SFR
4.AT89S51单片机使用片外振荡器作为时钟信号时,引脚XTAL1接“片外振荡器的输出信号”,引脚XTAL的接法是“悬空”
5.在51单片机的内部RAM中,由四组工作寄存器区,共32字节,其地址范围位00H-1FH
1.在AT89S51单片机中,如果采用6MHz晶振,一个机器周期为2us。
2.AT89S51单片机复位后,R4所对应的存储单元的地址为 04H,因上电时PSW中 00H,这时当前工作寄存器区是第 0 组工作寄存器区。
3.AT89S51单片机程序存储器的寻址范围是由程序计数器PC的位数决定的,因为AT89S51单片机的PC是16位的,因此其寻址范围为 64KB
。
4.通过堆栈操作实现子程序调用时,首先要把“堆栈”的内容入栈,以进行断点保护。调用子程序返回指令时,再进行出栈保护,把保护的断点送回到“PC”,先弹出的是原来“PCH”中的内容
5.AT89S51单片机复位时,堆栈指针SP中的内容为“07H”,程序指针PC中的内容为“0000H”
6.AT89S51单片机复位时,P0-P3口的各引脚为“高”电平
7.区分片外程序存储器和片外数据存储器的最可靠的方法时看其内存时RAM还是ROM?????????
1.再AT89S51单片机中,为使准双向的I/O口工作在输入方式,必须事先预置为1
2.PC可以看成是程序存储器的地址指针
3.AT89S51单片机中特殊功能寄存器(SFR)使用片内RAM的部分字节地址
4.片内RAM的位寻址区,可以供位寻址使用,也可以进行字节寻址
5.AT89S51单片机进入空闲模式,CPU停止工作。片内的外围电路(如中断系统给、串行口和定时器)仍将继续工作
6.AT89S51单片机共有26个特殊功能寄存器,它们的位都是可以用软件设置的,这26个SFR中,只有地址为0或8的才能位寻址,共11个
7.使用AT89S51单片机且引脚*EA=1时,可以外扩外部程序,只能使用地址1000H以上共60KB的空间
8.AT89S51单片机不论是进入空闲模式还是掉电运行模式后,片内RAM和SFR中的内容均保持原来的状态
9.片内RAM的位寻址区为20H-2FH,共16个单元,既可以以字节为单位使用进行字节寻址,又可以以位为单位进行寻址
10.AT89S51单片机进入掉电运行模式,CPU和片内的外围均停止工作。
11.单片机的堆栈本身就是内部RAM的一部分
12.AT89S51单片机中特殊功能寄存器(SFR)使用片内RAM的部分字节地址(80H-FFH)
13.AT89S51单片机的掉电运行模式不可以采用响应中断方式退出。
14.PC可以看成是成存储器的地址指针
15.AT89S51单片机中,为使准双向的I/O口工作在输入方式,必须事先预置为1
简述51单片机内集成那些部件?
1个8位CPU
128BRAM数据存储器
4KB Flash ROM程序存储器
21个特殊功能寄存器
4个8位可编程并行IO接口
1个串行口
2个16位定时器,计数器
中断系统 5个中断源 2个优先级
第三章 C51语言基础
1.与汇编语言相比,C51语言具有:可读性好,可移植性好,模块化开发与资源共享,生成的代码效率高 的优点
2.Keil C51种对变量完整的定义格式如下:
[存储种类] 数据类型 [存储器类型]变量名表;
其中
存储种类:作用域
数据类型:存储空间大小
存储器类型:存储区域
3.C51语言头文件包括的内容有8051单片机“片内外设硬件资源 相应的特殊功能寄存器“
4.C51用“*”和“&”运算符来分别提取指针的 内容和地址
5.如果在变量定义时略去存储器类型标识符,编译器会自动默认存储器类型,进一步由SMALL、COMPACT和LARGE模式指令限制,例如,若变量X的声明语句仅为char x;则在分别使用SMALL、COMPACT和LARGE存储模式下,x被默认定义在data,idata,xdata区种。
6.C51提供了“xdata pdata”两种不同的数据存储类型来访问片外数据存储区
7.关于Keil C51变量的存储器类型,以下对应关系正确的有
1.data---直接寻址的片内数据存储器
2.bdata---可位寻址的片内数据存储器
3.idata---间接访问的片内数据存储器
4.pdata---分页寻址的片外数据存储器
5.xdata---片外数据存储器
6.code---程序存储区
1.C51语言处理单片机的中断是由专门的中断函数来处理的。
2.绝对地址包含头文件absacc.h定义了几个宏,用来确定各类存储空间的绝对地址。
3.C51支持基于存储器的指针和一般指针两种指针类型。当定义一个指针变量时,若未给出它所指向的对象的存储器类型,则被认为是一般指针,反之若给出了它所指向对象的存储器类型,则被认为是基于存储器的指针
4.在C51语言编程中,编写中断服务函数时“不”需要考虑如何进行现场保护、阻断其他中断、返回时自动恢复现场的编写。(编译系统自动完成以上操作)
C51在C基础上,扩展4中数据类型
bit sfr sfr16 sbit
C51数据存储类型 data idata bdata xdata pdata code
数据存储类型idata对应片内RAM256字节
code对应存储取
xdata对应RAM取
pdata对应RAM取
bit和sbit区别
bit不指定地址,由系统随机分配
sbit类型位变量一般位特殊功能寄存器某个可寻址位
第四章 开发与仿真工具
1.Proteus软件是英国Lab Center Electronic公司出版的“EDA”工具软件,能够很好的仿真单片机及外围器件,以及其他电子元器件。
2.世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台是“Proteus”
3.Keil uVision4是Keil Software公司出品的兼容51系列单片机以及ARM处理器的软件开发系统,集成了C51编译器,支持C语言和汇编语言开发。具有,编译器、汇编器、项目管理器、调试器、实时操作系统的功能
第五章 单片机与开关、键盘以及显示器件的接口设计
1.AT89S51单片机任何一个端口要想获得较大的驱动能力,要采用“低”电平输出。
2.为保证发光二极管(LED)正常工作,同时减少功耗,限流电阻选择十分重要。若供电电压为+5V,则限流电阻可选择1-3kΩ
3.使用并行接口方式连接键盘,对独立式键盘而言,8根I/O口线可以接8个按键,而对矩阵式键盘而言,8根I/O口线最多可接16个按键
4.当按键数目少于8个时,应采用“独立”式按键。当按键数目为64个时应采用“矩阵”式按键
5.LED数码管静态显示方式的优点是:显示“无”闪烁,亮度较“高”,软件控制比较“容易”,占用的I/O口线较“多”
6.“8”字型的LED数码管如果不包括小数点段共计“7”段,每一段对应一个发光二极管,有“共阴极”和“共阳极”两种。(共阴极当阳极为高电平数码管亮,共阳极当阴极为低电平数码管亮)
7.LCD1602是“字符”型液晶显示模块,再其显示字符时,只需将待显示字符的“ASCII”码由单片机写入LCD1602的显示数据RAM,内部控制电路就可将字符再LCD上显示出来
8.行/列扫描不是非编码键盘扫描方式。
9.LCD1602显示一个字符的操作过程为:首先“读忙标志位BF”,然后“写命令”,随后“写显示字符”,最后“自动显示字符”
判断题
1.LCD1602液晶显示模块中“16”和“2”的含义是每行16个字符,可显示2行
2.P1-P3口作为输入端口用时,必须先向端口寄存器写入1
3.键盘主要分为两类:非编码键盘和编码键盘。非编码键盘常见的有:独立式键盘和矩阵式键盘两种结构。
4.LED数码管动态扫描显示只要控制好每位数码管点亮显示的时间,就可造成“多位同时亮”的假象,达到多位LED数码管同时显示的效果
5.按键消抖常用的有软件延时消抖和使用专用接口芯片的硬件电路消抖两种方式
6.PC机的键盘属于编码键盘
7.确定矩阵式键盘上某个键被按下常用行/列扫描法
8.P0-P3口的驱动能力是不同的,P0口每位可驱动8geLSTTL输入;而P1-p3口的每一位驱动能力,只有P0口一半
9.动态显示的数码管,任意时刻只有一个LED数码管处于点亮状态,是LED的余辉与人眼的“视觉暂留”造成的“假象”
10.PO口作为总线端口使用时,它是一个双向口;PO作为通用I/O端口使用时,外部引脚必须接上拉电阻,因此它是一个准双向口
11.当显示的LED数码管位数较多时,一般采用动态显示方式,这样可以降低成本,减少占用I/O口的数目
12.LED数码管的字型码不是固定不变的,有共阴和共阳之分
LED动态显示和动态显示区别?
静态显示同一时刻所有数码管都能够显示,动态显示数据同时送到每一个LED上,不一定显示哪一个
优缺点:
静态显示亮度高,无闪烁,编辑简单,单口线占用多
动态口占用少,需要,亮度低,CPU占用多
第六章 中断系统的工作原理及应用
1.51单片机的SFR中与中断请求标志有关的SFR是: TCON和SCON
2.51系列单片机串行口中断的中断入口地址为“0023H”,位于“内部ROM”,在C51编程时其对应的中断类型号为4
3.51系列单片机外部中断0的中断入口地址为“0003H”,位于“内部ROM”,在C51编程时其对应的中断类型号为“0”
4.51系列单片机外部中断1的中断入口地址为“0013H”,位于“内部ROM”,在C51编程时其对应的中断类型号为“2”
5.AT89S51单片机复位后,中断优先级最高的中断源是“外部中断0”
6.在AT89S51的中断请求源中,需要外加电路实现中断撤销的是“电平方式的外部中断请求”
7.51系列单片机定时器中断1的中断入口为“001BH”,位于“内部ROM”,在C51编程时其对应的中断型号为“3"
8.当AT89S51单片机响应”定时器中断0和1",后其中断请求标志“TF0/TF1”必须用软件清除
9.51单片机的SFR中与中断允许控制有关的SFR是IE
10.51系列单片机定时器中断0的中断入口地址为000BH,位于“内部ROM”,在C51编程时其对应的中断类型号为“1”
11.某51单片机允许响应外部中断0、串行口中断,其余中断均不允许响应,则IE应当初始化为“0x91”
12.某51单片机系统要求外部中断1、定时器中断1设为高优先级,其余中断设为低优先级,则IP初始化为0x0C
13.各中断源发出的中断请求信号,都会标记在AT89S51的TCON、SCON寄存器中
14.同一级别的中断请求按时间的先后顺序响应;低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求可以中断低优先级中断请求;同级中断不能嵌套。
15.51单片机的SFR中与中断优先级设置有关的SFR是IP;
1.同为高中断优先级,外部中断0和外部中断1同时产生时,外部中断0优先被响应。
2.中断函数不可以像普通函数一样被直接调用
3.必须有中断源发出中断请求,并且CPU开中断,CPU才可能响应中断
4.在开中断的前提下,中断源发出中断请求,CPU不会立刻响应中断
5.定时器T0中断可以被外部中断0中断
6.AT89S51单片机中的同级中断不能嵌套
7.同为高中断优先级,外部中断0不能打断正在执行的外部中断1的中断服务程序。
第七章 定时器/计数器的工作原理及应用
1.定时器T0工作在方式3时,定时器T1有3种工作方式
2.T0工作在方式0/1/2/3时,其计数器分别为13/16/8/8位
3.AT89S52单片机的晶振为6MHz,若利用定时器T1的方式1定时2ms,则TH1=FCH,TL1=18H
4.定时器T0、T1的GATEx=1,其计数器是否计数的条件时取决于*INTx的状态
5.定时器T0/T1工作在自动重载方式时,其计数器为8位
6.要想测量*INT0引脚上的正单脉冲的宽度,特殊功能寄存器TMOD的内容可以为09H
7.定时器/计数器用作定时器模式时,其计数脉冲由“机器周期”提供,用作计数器使用时,其计数脉冲由“T0/T1引脚引入的外部信号”
8.定时器/计数器T1测量某正单脉冲的宽度,采用“1”方式可得到最大量程,若时钟频率为6MHz,求允许测量的最大脉冲宽度为131.072ms
特殊功能寄存器SCON,和定时器计数器控制无关
定时器计数器初始化?
设定工作方式
写计数初值
设置优先级
启动
定时时间因素
工作方式,初值,晶振频率
第八章 串行口的工作原理及应用
1.起始位、停止位、有效数据的字符编码格式、数据校验形式属于串行通信协议中数据格式内容
2.AT89S51单片机的通讯接口有串行和并行两种型式。在串行通讯中,发送时要把(并)型数据转换成(串)行数据;接收时又需把(串)行数据转换成(并)行数据
3.在串行异步传送中,CPU和外设之间事先必须约定双方必须遵守的通信协议。通信协议一般包括“数据包格式和波特率”
4.在串行通信中,收发双方对波特率的设定必须相同
5.相比于并行通信,串行通信具有传输距离远,传输速度快的特点
6.当用串行口进行串行通信时,为减少波特率误差,单片机使用的时钟频率一般为“11.0592”MHz。
7.奇偶校验、代码和校验、循环冗余码是串行口常用的数据校验方法。
8.AT89S51的串行口扩展并行I/O口时,串行接口工作方式选择方式0
9.控制串行口工作方式的寄存器是SCON
10.AT89S51单片机串行口的4种工作方式中,方式1和方式3的波特率是可调的,与定时器/计数器T1的溢出率有关,另外两种方式的波特率是相对固定的,主要有时钟频率决定。
11.某串行口接口传送速率为每秒120帧,每帧含1个起始位、8个数据位、1个校验位、1个停止位,则其波特率为1320bit/s
12。AT89S51的串行异步通信接口为全双工
1.串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定。
2.51单片机串行通信方式2或方式3接收时,接收数据的第9位会被接受进SCON寄存器的RB8位中????????????
3.串行口的发送缓冲器和接收缓冲器只有1个单元地址,单实际上它们是两个不同的寄存器
4.AT89S51单片机进行串行通信时,不一定要占用一个定时器作为波特率发生器
5.51单片机串行通信方式2或方式3发送时,发送数据的di9数据位的内容是在SCON寄存器的T8位中预先准备好的。

浙公网安备 33010602011771号