单片机的学习归纳和总结(一):单片机基础知识

1、单片机的最小系统由三部分组成:

(1)晶振电路

(2)复位电路

(3)电源电路(实现:供电、程序下载、串口通信)。

2、单片机简介:单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。

3、单片机发展历史:单片机诞生于1971年,经历了SCM、MCU、SoC三大阶段。

(1)SCM即单片微型计算机阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。

(2)MCU即微控制器阶段,主要的技术发展方向是:不断扩展满足嵌入式应用。

(3)SoC嵌入式系统阶段,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决。

4、单片机的应用:凡是与控制或简单计算有关的电子设备都可以用单片机来实现,根据具体实际情况还可以选择不同性能的单片机,如:ATMEL、STC、PIC、AVR、凌阳、STM32、ARM等

5、8051系列单片机介绍:8051是一种8位的单芯片微控制器。

6、80C51单片机特点:集成8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器、5个中断源、2个中断优先级。外部ROM和RAM寻址范围64KB,并有控制功能较强的布尔处理器。

7、总线:是计算机各部件之间传送信息的公共通道。微机中有内部总线和外部总线两类。内部总线是CPU内部之间的连线。外部总线是指CPU与其他部件之间的连线。外部总线有三种:数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线(CBControl Bus)

8、STC89C51RC/RD+系列单片机简介:

9、GPIO与上下拉电阻:GPIO即通用I/O口,通过设置P0、P1、P2、P3,就可以控制对应I/O外围引脚的输出逻辑电平“0(低电平)”和“1(高电平)”;

10、上下拉电阻:就是将不确定的信号通过一个电阻拉到高电平,同时此电阻起到一个限流的作用。下拉电阻就是下拉到低电平。OC门要输出高电平,外部必须加上拉电阻。

11、上拉电阻的作用:

(1)加大普通IO口的驱动能力

(2)起到限流的作用

(3)抵抗电磁干扰

12、上下拉电阻选取原则:

(1)从降低功耗方面考虑应该足够大,因为电阻越大,电流越小。

(2)从确保足够的引脚驱动能力考虑应该足够小,电阻越小,电流才能越大。

(3)开漏输出时,过大的上拉电阻会导致信号上升沿变缓。

13、两个电流概念:

(1)灌电流:MCU被动输入的电流

(2)拉电流:MCU主动输出的电流

14、机器周期与指令周期

(1)振荡周期:也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期,即开发板所使用的“晶振频率”的倒数。

(2)状态周期:每个状态周期为时钟周期的2倍,是振荡周期经二分频后得到的。

(3)机器周期:一个机器周期包含6个状态周期S1~S6,也就是12个时钟周期。在一个机器周期内,CPU可以完成一个独立的操作。

指令周期:它是指CPU完成一条操作所需的全部时间。每条指令执行时间都是有一个或几个机器周期组成。MCS-51系统中,有单周期指令、双周期指令和四周期指令。

15、数字电路基础知识

(1)电平特性:

数字电路中只有两种电平:高电平和低电平

高电平:5V或者3.3V,取决单片机电源

低电平:0V

RS232电平:计算机串口的电平

高电平:-12V

低电平:+12V

因此在RS232串口通信时,需要使用一个电平转换的芯片,将正负12V转换为5V/3.3V和0V。

(2)逻辑运算

“与”运算:1 & 1 = 1;1 & 0 = 0;0 & 0 = 0

“或”运算:1 | 1 = 1;1 | 0 = 0;0 | 0 = 0

“非”运算:~1 = 0; ~0 = 1

“异或”运算:1 ^ 1 = 0; 0 ^ 1 = 1; 0 ^ 0 = 0; 1 ^ 0 = 1;

16、嵌入式C语言的所引进的数据类型

1)sfr:特殊功能寄存器声明

sfr 变量名 = 地址值

例如:sfr SCON = 0X98

特殊功能寄存器在REGtenxTM52F5278B.h这个头文件里面都帮我们定义好了,所以平时我们就不要自己去定义寄存器的名字。

2)sbit:特殊功能位声明,在给某个引脚取名的时候经常会用到。

sbit 变量名 = 地址值

例如:sbit led = P2^0;

3)bit:位变量声明,用来定义位数据变量。

17、C51中常见的一些预处理命令下:

(1)#define

eg: #define A P0(注意后面不用加分号)

(2)#typedef

eg:typedef unsigned char uint; (后面要加分号)

重新定义一些常用的关键词,可以增强程的可移植性,因为在不同的编译软件上面,C语言的数据类型的关键词的位宽是不一样的。

(3)#ifndef...#endif

条件编译,常用于头文件的定义还有一些程序条件编译

(4)#if(1/0)...#endif

(0)

相关推荐