51单片机入门总结

1-1 单片机简介

单片机 MCU

51单片机的故事起始于20世纪80年代,它的起源与美国英特尔公司息息相关。最初,英特尔在1980年推出了一个重要的单片机产品——Intel 8051。这款单片机是基于其早期产品如8048和8031等型号发展的,尤其是8031单片机因其简单可靠且性能良好而备受好评。8051单片机相较于前代产品有了显著的改进,它集成了更强大的功能,比如4KB的程序存储器(ROM)、128字节的数据存储器(RAM)、定时器/计数器、中断系统以及串行接口等,这些特性使其非常适合于各种控制应用。

由于8051架构的成功,它逐渐成为了事实上的行业标准。后续,虽然英特尔不再继续生产基于8051的单片机,但“51单片机”这一名称成为了所有兼容Intel 8051指令集的单片机的统称。这包括了不同厂家生产的多种变体,如Atmel、Philips(现在的NXP)、Silicon Labs等,它们在保持基本指令集兼容的基础上,增加了诸如更大容量的存储器、更快的时钟速度、更低的功耗以及集成更多外设等功能。

随着技术的进步,特别是Flash ROM技术的发展,使得单片机能够更容易地进行程序编写和重复擦写,进一步推动了51单片机的应用普及。在教育领域,由于其结构相对简单和学习资源丰富,51单片机成为了许多高校教学单片机原理和嵌入式系统开发的首选平台。

尽管现在市场上出现了许多更先进的单片机,如ARM Cortex-M系列的STM32等,但51单片机凭借其长期积累的生态系统、低成本和稳定性,在一些特定领域如工业控制、消费电子产品、教学实验等仍然占据着一席之地。随着物联网、人工智能等新技术的发展,51单片机也在不断适应新的需求,持续发挥其作用。

单片机的应用场景

单片机,作为一种集成度高、体积小、功耗低的微控制器,广泛应用于几乎所有的电子设备和控制系统中。以下是单片机的一些典型应用场景:

  • 1. 家用电器:单片机在现代家庭中无处不在,从基本的电饭煲、洗衣机、空调、冰箱到高端的智能家居设备如智能灯泡、智能门锁、智能插座等,都依赖单片机进行控制和智能化管理。
  • 2. 工业控制:在工业自动化领域,单片机用于构建数控机床、自动化生产线、电机控制、温度控制、数据采集系统以及各种报警和监控系统,提高生产效率和安全性。
  • 3. 仪器仪表:无论是实验室的精密测量设备还是医疗领域的各种分析仪、监护仪、超声诊断设备,单片机都是实现设备智能化、精确测量和数据显示的核心。
  • 4. 汽车与航空航天:从汽车的引擎控制、刹车系统、信息娱乐系统到飞机上的各种传感器和控制模块,单片机负责复杂的控制任务和数据处理。
  • 5. 通信设备:现代通信基础设施,包括路由器、交换机以及移动电话基站等,广泛使用单片机进行信号处理、协议控制和数据传输。
  • 6. 消费电子产品:手机、平板电脑、智能穿戴设备(如智能手表、健康监测手环)、高清视频处理设备等,单片机控制着用户界面、电源管理、传感器数据处理等功能。
  • 7. 医疗设备:除了上述提到的监护仪等,还包括病床呼叫系统、呼吸机、输液泵等,单片机确保设备准确响应患者需求和安全操作。
  • 8. 办公设备:打印机、复印机、扫描仪、投影仪等办公自动化设备内部,单片机负责控制各种操作流程和用户交互界面。
  • 9. 广告与显示系统:户外LED广告牌、室内显示屏等,单片机控制着图像和视频的播放,实现动态展示效果。
  • 10. 教育与科研:在教学实验、机器人竞赛、科研项目中,单片机作为学习和创新的基础平台,帮助学生和研究人员快速原型设计和验证想法。

单片机的应用场景极其广泛,几乎涉及所有需要电子控制的领域,随着技术进步,其应用范围还在不断扩大,尤其是在物联网、人工智能等新兴领域中展现出更大的潜力。

单片机能够做什么

51 单片机结构简单,成本低,生产多,不过时也不会被淘汰

如何学习单片机

  • 1:动手实践
  • 2:需要的工具:电烙铁,万用表,单片机书籍,c语言书籍,数字电子技术,模拟电子技术,所用到的器件的芯片手册
  • 3:一边学习单片机一边学习相关电子电路的知识“零基础开始学,同步的学习”
  • 4:软件的安装默认略过,stc烧录软件默认略过

单片机的封装

单片机的封装是指将单片机芯片包裹在外部保护材料中,并通过引脚或接触点与外界电路相连的方式。不同的封装形式适用于不同的应用场景,主要受到空间限制、散热需求、成本、生产效率等因素的影响。下面是几种常见的单片机封装类型及其特点:

1. DIP (Dual In-line Package):双列直插式封装,是最传统的封装形式之一,引脚分布在芯片两侧,适合手工焊接和面包板实验,但体积较大,不适合高密度的电路板设计。


2. SOP (Small Outline Package):小外形封装,是一种表面贴装技术(SMT)封装,引脚从封装两侧伸出,形状类似海鸥展翅,适用于空间受限的场合。


3. PLCC (Plastic Leaded Chip Carrier):带引线的塑料芯片载体,也是一种SMT封装形式,引脚从封装的四个侧面引出,常用于需要一定强度和可更换性的应用中。


4. QFP (Quad Flat Package):塑料方型扁平式封装,所有引脚均匀分布在芯片四周,适合需要大量引脚的复杂单片机,也是SMT封装,适用于高密度电路板。


5. PGA (Pin Grid Array package):插针网格阵列封装,引脚以矩阵形式排列在底部,通常用于需要高性能散热或高引脚数的单片机,多见于插槽式安装。

......
6. BGA (Ball Grid Array Package):球栅阵列封装,底部有众多焊球作为接触点,大大提高了引脚密度,适用于高端单片机或需要极小体积的设计,但焊接和维修较为复杂。

每种封装形式都有其优势和局限性,设计者需根据具体需求选择合适的封装类型。例如,对于原型开发和教学,DIP封装因便于手工焊接而受欢迎;而在商业产品设计中,SOP、QFP、BGA等小型化封装则更常见,以满足产品的小型化和高性能需求。

1-2 TTL电平特性

基础知识必备-数字电路中只有0和1,TTL电平特性

模拟电路中电压是连续的:0,0.3,1.2,4.5等

数字电路中只有两种电平状态,一种是高电平用 1 表示,一种是低电平用 0 表示

(定义单片机)的电源和IO口为TTL电平

高电平【1】 表示 + 5V         低电平【0】 表示 0V

如果使用3.3V的单片机高电平【1】 表示 + 3.3V         低电平【0】 表示 0V

RS232:计算机的串口,才有负逻辑高 -12V ,低电平 +12V

注:计算机与单片机之间通讯时需要加电平转换芯片MAX232(开发板的串口旁)

Voh 表示输出高电平的最低值,Vih表示输入高电平的可以检测到的最低值,Vil输入低电平的最高值,Vol输出低电平的最高值。

1-3 数的进制与位权

10进制数的位权

2进制数的位权

16进制数的位权

进制之间的转换(单片机基础必备知识)

注 :单片机中只有两种电平0和1,所以内部存储,运算全部都是二进制的方式

单片机中存储的最小结构(寄存器)是字节(Byte),1个字节  = 8 位 (bit)

使用8421法将二进制后数转换为10进制数,使用8421的方法进行转换(具体可以参考这张图)

二进制,10进制和16进制的转换内容

电脑中的计算器

 1-4 进制间的转换

二进制,八进制,十六进制

二进制转换为16进制,从最低位,每4位一个区间,把各区间的4位二进制数依照表转换为16进制

注:从低位起将二进制数每4为划分为一个区间,再将它转换为16进制数。

进制间的转换练习

进制转换之间的练习

二进制位运算--------------------与,或,非

与: 实现的是必须都有,否则都没有,【也就是全真为真,有假为假】

C语言中的运算符:&

【0 & 0 = 0 ,    0 & 1 = 0 , 1 & 0 = 0, 1 & 1 = 1】

当两个字节运算时,按位对齐,依次运算,如 c = a & b;

二进制运算-----------------------------------或运算

或:实现  “只要其中有1就有”

c语言中的运算符:| 【键盘上面的\shift + \】

0 | 1 = 1, 1 | 1 = 1, 1 | 0 = 1, 0 | 0 = 0.

当两个字节运算时,按位对齐,依次运算,如:c = a | b

或在数字电路中的符号

二进制运算 --------------------------------------- 非运算

非的运算符号是【~】-----> 就是C语言中的取反,相同为0,不同为1

C语言中的运算符 ~

没有 0 ~ 0 = 0  0 ~ 1 = 1 这种写法

只有 A = ~B

如: b =~a

二进制的非运算实现的是取反的操作

二进制的位运算----------------------- 按位异或运算【^】

按位异或:实现“必须不同,否则就没有”,相同为0不同为1

C语言中的运算符:^

**0 ^ 0 = 0; 1 ^0 = 1, 1 ^ 0 = 1 ,1 ^1 = 0;**

当两个字节异或运算时,按位对齐,依次运算

如: C = a ^ b

二进制位运算 ---- 同或(C语言中不存在)

同或:实现“必须相同,否则就没有”

C语言中是没有同或运算的

0 同或 0 = 1, 0 同或 1  = 0, 1 同或 0 = 0, 1 同或 1 = 1.

当两个字节同互运算时,按位对齐,依次运算

如:c = a通过b

注:可以通过对异或取反的操作得到同或运算

1-5 单片机的内部工作原理

单片机的内部结构图

C语言编写代码实现单片机点亮led灯

#include <REGX52.H>

// 位定义
sbit LED1 = P1^0;

void main(void){
    
	while(1){
	  // 赋值为0点亮第一个LED灯
	  LED1 = 0;
	}
}

单片机烧录软件stc-isp

C语言的预处理指令

#include  预处理指令,在c语言中.h文件统称为头文件

【编译---------链接 -----------运行】

从源代码(.c或.h)到执行文件(hex)的转换过程叫“编译”,做这件工作的程序叫“编译器”,“编译”细分为“预处理”+“编译”+“链接”。

预处理指令:#include #define #undef

\#include 被称为源代码包含指令,简称:包含指令

\#define #undef 宏定义指令【后面再讲】

**有两种表示方法:#include <Header.h> #include “Header.h”**

处理过程:就是将头文件的内容插入到该命令所在的位置,从而把头文件和当前源文件连接成一个源文件,与复制粘贴的效果相同;

区别:使用尖括号< >,编译器会到系统路径下查找头文件;

使用双引号“”,编译器首先在当前目录下查找头文件,如果没有找到,再到系统路径下查找。

Sbit的作用:定义一个可以进行位寻址的特殊功能寄存器

在keil中对应的位寻址定义

注:只有具备位寻址的特殊功能寄存器才能被sbit定义

sbit P2_0 = 0xA0;
sbit P2_1 = 0xA1;
sbit P2_2 = 0xA2;
sbit P2_3 = 0xA3;
sbit P2_4 = 0xA4;
sbit P2_5 = 0xA5;
sbit P2_6 = 0xA6;
sbit P2_7 = 0xA7;

头文件的作用

单片机内部对于特殊功能寄存器的定义与操作特殊功能寄存器中的位

C语言中main函数的含义

注:main函数是函数的入口,程序从main函数开始执行,每个C语言程序有且只有一个main函数

-----------------------------**main 函数的含义**-------------------------------------------

void main(){

}

函数的格式

【注:函数和方法的命名不要是 C语言的关键字】

注:main函数在c语言中是程序的入口,任何一个C语言程序有且只有一个main函数,如果出现两个main函数程序会报错。


1-6 单片机IO口的功能与定义

STC89C52管脚定义原理图 16页

Vcc --------表示的是电源

所有的单片机引脚都是按组分的左边的1-8引脚表示的是P1组

右边的39 - 32 是P0口

还有P3口与P2口等

GND 表示的是接地

T2EX/P1.1 表示的是这个引脚有第二个功能(可以理解为引脚的服用)

18 - 19 引脚是时钟的输入端

29 - 30 - 31 没有内部flash需要外部的flash外部添加引脚

引脚功能定义图:23页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值