1.入门学习路线
2、准备工作
文本
总结
前言
提示:以下是本文的前言
1.入门学习路线
路线:《电路基础》-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,然后再用嘉里创的软件。
2、准备工作
1. 所需软件
(1)凯尔5
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。 与汇编相比,C语言在功能、结构、可读性、可维护性等方面具有明显的优势,易学易用。 。 Keil提供了完整的开发解决方案,包括C编译器、宏汇编、链接器、库管理和强大的仿真调试器等,并通过集成开发环境(μVision)将这些部分组合起来。 运行Keil软件需要WIN98、WIN2000、WINXP等操作系统。 如果你使用C语言来编程,那么Keil几乎是你的最佳选择。 即使您不使用C语言而仅使用汇编语言进行编程,其方便易用的集成环境和强大的软件模拟调试工具也会让您事半功倍。
下载链接:
《Keil5安装包》等文件/s/eXirSmS7R4K 提取码:fr25
Keil5是一款优秀的微控制器代码编写软件。 我们在学习STM32的时候也会离不开它。 我们主要用它来编写程序并将其编译成二进制文件。 然后通过ISP将Hex文件下载到单片机(这个是我们后面会明白的事,现在先不要着急),如图:
(2)STC-ISP
STC-ISP是一款单片机下载编程烧录软件。 它是为STC系列微控制器设计的。 可以下载STC89系列、12C2052系列、12C5410系列STC单片机。 它很容易使用。
下载链接:
「stc-isp-15xx-v6.89C」/s/yttB7YTQe81 提取码:6wc7
STC-ISP是国内一家名为宏景公司开发的软件。 我们主要用这个软件将写好的程序下载到单片机中,如图:
(3)Proteus专业8
Proteus Professional 8.8是一款专业且易于使用的电路仿真软件,也称为EDA工具软件。 这是proteus 8.7的升级版本。 该软件为用户提供完整的电路仿真和PCB设计流程解决方案,涵盖从原理图布局到原理图布局的所有内容。 图、代码调试到单片机与外围电路的协同仿真等运行过程。 新版proteus处理器型号支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。新版Proteus 8.8还带来了新功能。
安装及下载教程:
/weixin_44543463/文章/详情/116203188
我们主要用这个软件来模拟电路。 如图所示:
2. 所需硬件
(1)普众科技A2开发板
为了方便大家学习单片机,建议大家准备一块普中科技A2开发板。 至于为什么选择这款板子,原因是因为普中科技的板子设计比较好,玩的人也比较多。 (建议你免费去,天天去实验室,说不定有一块板子不是你兄弟姐妹用的,就是你的了!哈哈哈!)如图:
示意图如下:
下载链接:
《A2开发板原理图.pdf》/s/afic46BCXgL 提取码:st38
点击链接保存,或复制此内容,打开“阿里云盘”APP,无需下载即可快速在线查看。 原始视频可以双倍速度播放。
(2)其他开发板
博主这里就不推荐了!
好了,到此为止,如果你的电脑上安装好了开发板和软件,就可以开始学习了!
让我向您展示一个有趣的结果:
文本
提示:以下为本文正文
1、单片机最小系统
单片机的最小系统,或者说最小的应用系统,是指由最少的部件组成的能够与单片机一起工作的系统。 对于51系列单片机来说,最小系统一般应包括:单片机、晶振电路、复位电路。 如图所示:
1.复位电路
左下侧是按钮复位电路,与单片机的9针RST(Reset)复位引脚相连。 稍后我们将讨论这个复位电路的工作原理。 现在我们将重点讨论复位对单片机的作用。 单片机复位一般有三种:上电复位、按键复位、程序自动复位。
假设我们的微控制器程序有 100 行。 跑到50号线时,突然停电。 此时,单片机内部有些区域数据会丢失,有些区域数据可能不会丢失。 那么当我们下次开机的时候,我们希望单片机能够正常运行,所以上电后,单片机会经历一个内部的初始化过程。 这个过程可以理解为上电复位。 上电复位确保微控制器每次都从固定值启动。 在相同的状态下开始工作。 这个过程和我们打开电脑电源时的过程是一致的。
当我们的程序运行时,如果遇到意外的干扰,导致程序崩溃,或者程序跑掉,我们可以按一个复位按钮,重新初始化程序,重新运行。 此过程称为按钮重置。 最典型的就是我们电脑的重启按钮。
当程序崩溃或者跑掉的时候,我们的微控制器往往都有一个自动复位机制,比如看门狗。 具体应用我们稍后再详细了解。 这种情况下,如果程序长时间失去响应,MCU看门狗模块会自动复位,重启MCU。 也有一些情况是我们的程序故意重启并重置微控制器。
2、晶振电路
晶振电路由一个晶振和两个电容组成。 晶振,也叫晶振,从这个名字我们就可以看出它在整个生命周期中注定要不断地振荡。 它的作用是为单片机系统提供参考时钟信号,类似于我们身体的心脏。 微控制器内部的所有工作都是基于这个时钟信号作为节奏基准。 STC89C52单片机的18、19引脚是晶振引脚。 我们连接了11.0592M晶体振荡器(每秒振荡11,059,200次),加上两个20pF至30pF的电容器。 电容的作用是帮助晶振起振和维持振荡。 振荡信号的稳定性。
3.微控制器I/O端口
我们选择的STC89C52需要5V供电系统。 我们的开发板直接由USB端口输出的5V DC供电。 如下图所示,电源电路在引脚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系列单片机有4组I/O接口P0、P1、P2和P3。 每组接口有 8 个引脚:P0 端口引脚 P0.0~P0.7、P1 端口引脚 P1.0~P1.7、P2 端口引脚 P2.0~P2.7、P3 端口引脚 P3.0~P3。 7.
这四组接口可以作为输入端口将外部信号输入到单片机,也可以作为输出端口从单片机输出信号。 此外,这些接口还具有一些其他功能,下面详细介绍。
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灯、数码管、液晶等都可以是属于单片机的外部设备,即外设。 我们最终想要的功能是通过对单片机进行编程来控制各种外设来实现的。
2、单片机内部结构
单片机内部结构及功能:
CPU:由运算和控制逻辑组成,还包括中断系统和一些外部特殊功能寄存器;
RAM:用于存储可读写的数据,如运算的中间结果、最终结果、要显示的数据等;
ROM:用于存储程序、一些原始数据和表格;
I/O口:4个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(Universal Asynchronous Receiver Transmitter)串行I/O口:用于实现单片机之间或单片机与单片机之间的串行通信;
片内振荡器和时钟发生电路:需要外接石英晶体和微调电容。
请仔细理解这张图,在脑海中留下印象,并尽量记住! ! !
以下是一些需要了解的寄存器:
(1)CPU:ACC、B、PSW、SP、DPTR(由两个8位寄存器DPL和DPH组成);
(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来实现单片机的各种功能。
好东西推荐(提神必备):
3、微控制器控制的外设
1.LED行车灯
2.矩阵键盘和数码管显示
3.LCD1602液晶和DS18B20温度传感器
总结
以下是文章摘要: 微控制器只是一个工具。 我们只是用它来控制LED灯、数码管、液晶等设备。 它们都是单片机的外部设备。 我们想要的最终功能是通过对微控制器进行编程来控制它。 实现了多种外围设备。 我会陆续更新如何编程和学习单片机的教程。 希望大家点击三下并注意,以免迷路。