锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

51单片机入门教程上(新手的保姆级教程)

时间:2022-10-06 02:00:00 50v直插电容器二极管用来发送脉冲直插三极管a1293直插三极管s9013h电感5p1直插三极管h669hc

? 简介:盐烤小星球_wyb,电子信息工程专业的大学生.
?? 个人主页:盐烤小星球_wyb的主页.
?? 如果文章的知识点有错误,请纠正!和你一起学习,一起进步
?? 如果你觉得博主的文章还不错,请关注、表扬、收集三连支持博主
?? 人生格言:天行健,君子自强不息 --《周易》
每日推荐歌曲:毛不易-《胡言》
我一直想写一篇初学者入门最快的文章。希望大家能尽快掌握51单片机!(后续文章会更新)

学习目录

  • 前言
  • 一、入门学习路线
    • 1. 电路基础
    • 2. C语言基础
    • 3. 单片机基础
    • 5. Altium Designer的使用
  • 二、前期准备工作
    • 1.所需软件
      • (1)Keil 5
      • (2)STC-ISP
      • (3)Proteus Professional 8
    • 2.所需硬件
      • (1)普中科技A2开发板
      • (2)其它开发板
  • 正文
  • 一、单片机最小系统
    • 1.复位电路
    • 2.晶振电路
    • 3.单片机I/O口
      • (1)基本工作条件引脚
      • (2)输入/输出(I/O)引脚
      • (3)控制引脚
  • 二、单片机内部结构
  • 三、单片机可控外设
    • 1.LED流水灯
    • 2.矩阵键盘和数字管显示
    • 3.LCD1602液晶和DS18B20温度传感器
    • 4.DS1302时钟芯片
    • 5.超声波模块
  • 总结


前言


提示:以下是本文序言的内容

一、入门学习路线

路线:电路基础—— C语言基础-单片机基础—— Altium Designer

1. 电路基础

如果你是一名电子大学生,你应该在大一的时候学习电路基础或电气技术。我希望你能努力学习,为将来学习模拟电路和数字电路奠定基础。(如果你有研究生入学考试的计划,你可以看到关邱源的电路是大多数电子或自动化专业的研究生入学考试课程)。

关于《电路基础》需要掌握基本的电路模型和电路定理如欧姆定律、叠加定理、替代定理、戴维南定理、诺顿定理等,需要分析和掌握一些电路元件,如:电阻、电容、继电器LED灯、二极管、三极管MOS管道、电感、按钮、晶体振动只是。最好知道一些放大器的电路。

当然,学习单片机最重要的是能够了解电路原理图,按钮检测原理、蜂鸣器驱动、单片机外围电路等基本模块电路可以理解。如果你是其他专业的学生,你可以简单地理解51单片机开发板的电路图。

百度条目:电路基础课程是电子和电气信息专业本科生必修的重要学科基础课程,在整个电气信息专业人才培训计划和课程体系中发挥着重要作用,培养学生的辩证思维能力,综合运用电路理论分析和解决实际问题,为学生未来的学习、创新和科研工作奠定坚实的理论基础。

2. C语言基础

C语言是一种面向过程的抽象通用程序设计语言,广泛应用于底层开发。C语言可以简单地编译和处理低级存储器。C语言是一种高效的程序设计语言,只产生少量的机器语言,不需要任何操作环境的支持。虽然C语言提供了许多低级处理功能,但它仍然保持着跨平台的特点。标准规格编写的C语言程序可以在许多计算机平台上编译,包括嵌入式处理器和超级计算机。

学习建议:单片机和C语言可以一起学习,但学习时间相对较长,很容易长时间看不到自己的学习成绩。emmm~~博主建议还是先学C语言,学单片机,俗话说磨刀不误砍柴工,数据类型-操作表达式-控制语句-方法定义-指针,然后理解宏定义的一些概念。

3. 单片机基础

目前市场上主流的单片机是51单片机和STM32,我们要先学51后学STM32。为什么要先学51?因为51单片机外设相对较少,所以很容易上手(GPIO、Timer、中断、USART、IIC、ADC),而STM32因为比较复杂,学习常用的外设(GPIO、Timer、中断、USART、IIC、SPI、PWM、DMA、ADC)没关系。其他像什么?CAN、USB是的,在需要工作的时候学习也可以。

5. Altium Designer的使用

AD画原理图和PCB作为一个单片机软件开发,软件只需要能够看到或绘制原理图。还有一幅著名的国画PCB叫嘉立创,我还是建议大家先学AD也就是Altium Designer,然后用嘉立创软件。

二、前期准备工作

1.所需软件

(1)Keil 5

Keil C51是美国Keil Software与汇编相比,公司生产的51系列兼容单片机C语言软件开发系统,C语言在功能、结构、可读性、可维护性等方面具有明显优势,易学易用。Keil通过集成开发环境,提供C编译器、宏汇编、链接器、库管理和强大的模拟调试器等完整的开发方案(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、WIN2000、WINXP等待操作系统。如果使用C语言编程,Keil这几乎是你最好的选择。即使你只使用汇编语言编程而不使用C语言,它方便易用的集成环境和强大的软件仿真调试工具也会事半功倍。

下载链接:
「Keil5安装包」等文件 https://www.aliyundrive.com/s/eXirSmS7R4K 提取码: fr25

Keil5是一款优秀的单片机代码编写软件,以后学习STM32离不开它,我们主要用它来写程序将文件编译成二进制.hex然后通过文件ISP如图所示:
在这里插入图片描述

(2)STC-ISP

STC-ISP 是单片机下载编程烧录软件STC可下载设计的系列单片机STC89系列、12C2052系列和12C5410等系列的STC单片机,使用方便。

下载链接:
「stc-isp-15xx-v6.89C」https://www.aliyundrive.com/s/yttB7YTQe81 提取码: 6wc7

STC-ISP是国内一家叫宏晶的公司开发的软件,我们主要用这个软件将写好的程序下载到单片机,如图所示:

(3)Proteus Professional 8

Proteus Professional 8.8是一款专业易用的电路仿真软件,即EDA这是工具软件proteus 8.7升级版,软件为用户提供完美的电路仿真和PCB设计过程解决方案涵盖了从原理图布图、代码调试到单片机与外围电路协同模拟的操作过程,新版本的proteus8051支持处理器模型。HC11、PIC10/12/16/24/DsPIC33、AVR、ARM、8086和MSP新版本的430等Proteus 8.8还带来了全新的功能。

安装下载教程:
https://blog.csdn.net/weixin_44543463/article/details/116203188

本软件主要用于模拟电路。如图所示:

2.所需硬件

(1)普中科技A2开发板

为了大家更方便的学习单片机建议大家手里准备一个普中科技A2的开发板,至于为什么选这个板子,原因是因为普中科技的板子设计的比较好,在者就是玩的人比较多,(建议大家去白嫖,天天去实验室看看,说不定有师兄师姐不用的板子就是你的拉!哈哈哈!)如图所示:

原理图如下:

下载链接:
「A2开发板原理图.pdf」https://www.aliyundrive.com/s/afic46BCXgL 提取码: st38
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

(2)其他开发板

博主在这里就不推荐了!

好了,到目前为止如果你手有板而且电脑上的软件也安装好的话就可以开始学习了!
给大家展示一下一个好玩的成果:

浅浅的展示一下单片机吧!

正文

提示:以下是本篇文章正文内容

一、单片机的最小系统

单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。 如图所示:

1.复位电路

在左侧下方是一个按键复位电路,接到了单片机的 9 脚 RST(Reset)复位引脚上,这个复位电路如何起作用我们后边再讲,现在着重讲一下复位对单片机的作用。单片机复位一般是 3种情况:上电复位、按键复位、程序自动复位

假如我们的单片机程序有 100 行,当某一次运行到第 50 行的时候,突然停电了,这个时候单片机内部有的区域数据会丢失掉,有的区域数据可能还没丢失。那么下次打开设备的时候,我们希望单片机能正常运行,所以上电后,单片机要进行一个内部的初始化过程,这个过程就可以理解为上电复位,上电复位保证单片机每次都从一个固定的相同的状态开始工作。这个过程跟我们打开电脑电源开电脑的过程是一致的。

当我们的程序运行时,如果遭受到意外干扰而导致程序死机,或者程序跑飞的时候,我们就可以按下一个复位按键,让程序重新初始化重新运行,这个过程就叫做按键复位,最典型的就是我们电脑的重启按钮。

当程序死机或者跑飞的时候,我们的单片机往往有一套自动复位机制,比如看门狗,具体应用以后再了解。在这种情况下,如果程序长时间失去响应,单片机看门狗模块会自动复位重启单片机。还有一些情况是我们程序故意重启复位单片机。

2.晶振电路

晶振电路由一个晶振和两个电容构成。晶振,又叫晶体振荡器,从这个名字我们就可以看出来,它注定一生都要不停振荡的。他起到的作用是为单片机系统提供基准时钟信号,类似于我们身体的心脏,单片机内部所有的工作都是以这个时钟信号为步调基准来进行工作的。STC89C52单片机的 18 脚和 19 脚是晶振引脚,我们接了11.0592M 的晶振(它每秒钟振荡 11,059,200 次),外加两个 20pF到30pF 的电容,电容的作用是帮助晶振起振,并维持振荡信号的稳定。

3.单片机I/O口

我们所选用的 STC89C52,它需要 5V 的供电系统,我们的开发板是使用 USB 口输出的5V 直流直接供电的。在下面的图中可以看到,供电电路在 40 脚和 20 脚的位置上,40 脚接的是+5V,通常也称为 VCC 或 VDD,代表的是电源正极,20 脚接的是 GND,代表的是电源的负极。+5V 和 GND 之间还有个电容,作用我们下节介绍。

这个地方我们还要普及一个看原理图的知识。电路原理图是为了表达这个电路的工作原理而存在的,很多器件在绘制的时候更多考虑的是方便原理分析,而不是表达各个器件实际位置。比如原理图中的单片机引脚图,引脚的位置我们是可以随意放的,但是每个引脚上有一个数字标号,这个数字标号代表的才是单片机真正的引脚位置。一般情况下,这种双列直插封装的芯片,左上角是 1 脚,逆时针旋转引脚号依次增加,一直到右上角是最大脚位,我们现在选用的单片机一共是 40 个引脚,因此右上角就是 40(在表示芯片的方框的内部),如图所示,大家要分清原理图引脚标号和实际引脚位置的区别。

MCS-51系列单片机的40个引脚根据功能可以分作3类: 基本工作条件引脚、 输入/输出(I/O) 引脚和控制引脚。

(1)基本工作条件引脚

基本工作条件引脚有电源引脚、 复位引脚和时钟引脚, 只有具备了基本工作条件, 单片机才能开始工作。

电源引脚 40脚为电源正极引脚(VCC) , 20脚为电源负极引脚(VSS) 。 电源正极引脚一般接5V电源, 电源负极引脚接地。

复位引脚 9脚为复位引脚(RST/VPD) 。在单片机接通电源后, 为了使内部电路正常工作, 需要复位电路为它提供复位信号,使内部电路进入初始状态, 然后才开始工作。 MCS-51 系列单片机采用高电平复位, 即外接复位电路给复位引脚送入高电平信号后, 就可以对单片机内部电路进行复位。
9脚还具有掉电保持功能, 为了防止掉电使单片机内部RAM中的数据丢失, 可在该脚再接一个备用电源, 掉电时, 由备用电源为该脚提供4.5~5.5V的电压, 可保持RAM中的数据不会丢失。

时钟引脚 18、19脚为时钟引脚(XTAL2、 XTAL1) 。单片机内部有大量的数字电路, 这些数字电路工作时需要时钟信号进行控制, 才能有次序、 有节拍地工作。 单片机内部的时钟振荡器与时钟引脚外接的定时电路构成时钟振荡电路, 产生时钟信号供给内部电路使用; 另外, 也可以由外部的振荡器产生时钟信号, 通过时钟引脚送入单片机, 供给内部电路。

(2)输入/输出(I/O)引脚

MCS-51系列单片机有P0、P1、P2和P3共4组I/O接口,每组接口又有8个引脚:P0端口引脚P0.0~P0.7,P1端口引脚P1.0~P1.7,P2端口引脚P2.0~P2.7,P3端口引脚P3.0~P3.7。

这4组接口既可用作输入端口将外部信号输入单片机, 也可以用作输出端口将信号从单片机内输出。另外,这些接口还具有一些其他功能, 具体说明如下。
P0端口(32~39脚) 的功能有: 输入8路信号, 输出8路信号, 用作8位数据总线, 或用作16位地址总线中的低8位地址总线。
P1端口(1~8脚)的功能有:输入8路信号, 输出8路信号。
P2端口(21~28脚)的功能有:输入8路信号, 输出8路信号, 用作16位地址总线中的高8位地址总线。
P3端口(10~17脚)的功能有:输入8路信号, 输出8路信号。

P3端口的8个引脚还具有其他功能,也叫复用功能, 具体说明如下。
P3.0: 用作串行数据输入端(RXD)。
P3.1: 用作串行数据输出端(TXD)。
P3.2: 用作外部中断0请求信号输入端(INT0 ) 。
P3.3: 用作外部中断1请求信号输入端(INT1 ) 。
P3.4: 用作定时器/计数器T0的外部脉冲信号输入端(T0) 。
P3.5: 用作定时器/计数器T1的外部脉冲信号输入端(T1) 。
P3.6: 该端在写片外RAM时, 输出写控制信号(WR)。
P3.7: 该端在读片外RAM时, 输出读控制信号(WD)。

P0、 P1、 P2、 P3端口具有多种功能, 具体应用哪一种功能, 由单片机内部的程序来决定。 需要注意的是, 在某一时刻, 端口的某一引脚只能用作一种功能。

(3)控制引脚

控制引脚的功能主要有: 当单片机外接存储器(RAM或ROM)时,通过控制引脚控制外接存储器, 使单片机能像使用内部存储器一样使用外接存储器; 在向单片机编程(即向单片机内部写入编好的程序)时, 编程器通过控制引脚使单片机进入编程状态, 然后才能将程序写入单片机。

控制引脚的功能说明如下。
EA/VPP (31脚) : 存储器使用控制输入端/编程电压输入端。
当EA=1(高电平) 时, 单片机使用内部存储器; 当EA=0(低电平) 时, 单片机使用外接存储器。 在用编程器往单片机写入程序时, 要在该脚加12~25V的编程电压。
PSEN (29脚) : 程序存储允许输出端。
它是外部ROM读选通控制端, 当单片机要从外接ROM 中读取信息时, 该端要输出一个低电平给外接ROM。
ALE/ (30脚) : 低8 位地址
存允许信号输出端/编程脉冲输入端。
在外接存储器时, 如图所示, 该脚输出控制信号到单片机的外接锁存器, 让锁存器将P0 端口送来的 8 位地址信号锁存起来, 当作低 8 位地址信号A0~A7(高8位地址A8~A15由P2端口送出),这样P0端口不用再输出8位地址信号,就可以空闲下来,用来传送8位数据信号。在单片机编程时, 编程器由该脚将编程脉冲输入单片机。

电源、晶振、复位构成了单片机最小系统的三要素,也就是说,一个单片机具备了这三个条件,就可以运行我们下载的程序了,其他的比如 LED 小灯、数码管、液晶等设备都是属于单片机的外部设备,即外设。最终完成我们想要的功能就是通过对单片机编程来控制各种各样的外设实现的。

二、单片机的内部架构

单片机内部结构及其功能:
CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;
RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;
ROM:用以存放程序、一些原始数据和表格;
I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;
T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;
五个中断源的中断控制系统
(1)函数名()interrupt 0 {} //对应外部中断0;
(2)函数名()interrupt 1 {} //对应定时器/计数器0中断;
(3)函数名()interrupt 2 {} //对应外部中断1;
(4)函数名()interrupt 3 {} //对应定时器/计数器1中断;
(5)函数名()interrupt 4 {} //对应串口中断;
一个全双工UART(通用异步接收发送器)的串行I/O口:用于实现单片机之间或单片机与微机之间的串行通信;
片内振荡器和时钟产生电路:石英晶体和微调电容需要外接。

这个图好好地理解一下,要在脑子里面有印象,争取记住!!!

下面是一些需要了解的寄存器:

(1)CPU:ACC、B、PSW、SP、DPTR(由DPL和DPH两个8位寄存器组成);
(2)中断系统:IP、IE;
(3)定时器/计数器:TMOD、TCOM、TL0、TH0、TL1、TH1;
(4)并行I/O口:P0、P1、P2、P3;
(5)串行口:SCON、SBUF、PCON。

ACC:是累加器,通常用A表示。
这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。

B:一个寄存器
在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。

PSW:程序状态字
这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。

CY:进位标志
8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY=0
例:78H+97H(01111000+10010111)

AC:辅助进、借位(高半字节与低半字节间的进、借位)
例:57H+3AH(01010111+00111010) 下面我们逐一介绍各位的用途F0:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。

0V:溢出标志位
运算结果按补码运算理解。有溢出,OV=1;无溢出,OV=0。什么是溢出我们后面的章节会讲到。

P:奇偶校验位
它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。 运算结果有奇数个1,P=1;运算结果有偶数个1,P=0。

IP-----中断优先级控制寄存器
按位寻址,地址位B8H6、指针寄存器

PC:程序计数器
指明即将执行的下一条指令的地址,16位,寻址64KB范围,复位时PC = 0000H

SP堆栈指针
指明栈顶元素的地址,8位,可软件设置初值,复位时SP = 07H

DPTR:数据指针
指明访问的数据存储器的单元地址,16位,寻址范围64KB。 DPTR = DPH + DPL。可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。 分成DPL(低8位)和DPH(高8位)两个寄存器。用来存放16位地址值,以便用间接寻址或变址寻址的方式对片外数据RAM或程序存储器作64K字节范围内的数据操作。

TMOD:定时器方式寄存器

TCON:定时器控制寄存器

TH0、TL0;TH1、TL1: 计数寄存器
可用于设定计数初值。8052/8032增设专用寄存器

SFR:特殊功能寄存器。
这个概念大家可能刚开始理解不了,但是一定要记住。单片机有很多很多功能,每个功能都会对应一个或多个 SFR,我们就是通过对 SFR 的读写来实现单片机的多种多样的功能的。

三、单片机可控制的外设

1.LED流水灯

用Proteus仿真画的流水灯!

2.矩阵键盘和数码管显示

逐行扫描矩阵键盘控制数码管显示0到F

3.LCD1602液晶和DS18B20温度传感器

51单片机之温度报警器!

4.DS1302时钟芯片

5.超声波模块


总结

这里对文章进行总结:单片机只是一个工具,我们只是用它来控制 LED 小灯、数码管、液晶等设备都是属于单片机的外部设备,最终完成我们想要的功能,就是通过对单片机编程来控制各种各样的外设实现的。具体如何编程学习单片机,我会陆续更新教程,希望大家一键三连,点关注不迷路噢。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章