首页 > 乐鱼官方网站

04 07 2024

【单片机】51单片机入门教程上(保姆级指南)

相关产品推荐

  如果大家是一名电子大类的大学生的话大一应该会学习《电路基础》或者《电工技术》这门课,希望我们大家好好学习为以后学习《模拟电路》和《数字电路》打基础。(如果大家有考研打算的话可以了解一下关邱源的《电路》是大部分电子或自动化专业的考研专业课)。

  电阻、电容、继电器、LED灯、二极管、三极管、MOS管、电感、按键、晶振

  百度词条:《电路基础》课程是电子与电气信息类各专业本科生必修的一门重要的学科基础课,在整个电气信息类专业的人才教育培训方案和课程教学体系中起着承前启后的作用,对于培育学生的辩证思维能力、综合运用电路理论分析和解决实际问题的能力都起到重要的作用,为学生以后的学习、创新和科学研究工作打下扎实的理论基础。2. C语言基础

  C语言是一门面向过程的、抽象化的通用程序设计语言,大范围的应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍就保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

  学习建议:单片机和C语言是可以一起学习的,不过这样学习是比较漫长,容易长时间看不到自己的学习成果。emmm~~博主建议还是先学好C语言在去学习单片机

  数据类型—运算表达式—控制语句—方法定义—指针然后在了解宏定义的一些概念就差不多了。

  要先学51后学STM32。为何需要先学51呢?因为51单片机外设相对较少学起来简单容易上手(GPIO、Timer、中断、USART、IIC、ADC),而STM32因为很复杂一点,学习常用的外设(GPIO、Timer、中断、USART、IIC、SPI、PWM、DMA、ADC)就可以了,其他像什么CAN、USB的,工作要使用到的时候再去学也可以。5. Altium Designer的使用

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

  提取码: fr25Keil5是一个很优秀的单片机代码编写的软件以后学习STM32也离不开它,我们主要是用它来写程序编译成二进制的文件.hex文件然后通过ISP下载到单片机里去(这是我们以后了解的事,现在先不急),如图所示:>

  提取码: 6wc7STC-ISP是国内一家叫宏晶的公司所开发的软件,我们主要用这个软件把写好的程序下载到单片机里面去,如图所示:>

  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还带来了全新的功能。

  的开发板,至于为什么选这个板子,原因是因为普中科技的板子设计的比较好,在者就是玩的人比较多,(建议我们大家去白嫖,天天去实验室看看,说不定有师兄师姐不用的板子就是你的拉!哈哈哈!)如图所示:

  提取码: st38点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。>

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

  假如我们的单片机程序有 100 行,当某一次运行到第 50 行的时候,突然停电了,这样一个时间段单片机内部有的区域数据会丢失掉,有的区域数据可能还没丢失。那么下次打开设备的时候,我们大家都希望单片机能正常运行,所以上电后,单片机要进行一个内部的初始化过程,这样的一个过程就可以理解为

  ,上电复位保证单片机每次都从一个固定的相同的状态开始工作。这样的一个过程跟我们打开电脑电源开电脑的过程是一致的。

  晶振电路由一个晶振和两个电容构成。晶振,又叫晶体振荡器,从这一个名字我们就可以看出来,它注定一生都要不停振荡的。他起到的作用是为单片机系统提供基准时钟信号,类似于人体的心脏

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

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

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

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

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

  P0端口(32~39脚) 的功能有:输入8路信号, 输出8路信号, 用作8位数据总线位地址总线位地址总线~28脚)的功能有:输入8路信号, 输出8路信号, 用作16位地址总线位地址总线端口的8个引脚还具有其他功能,也叫复用功能, 具体说明如下。

  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 小灯、数码管、液晶等设备都是属于单片机的外部设备,即外设。最终完成我们想要的功能是通过对单片机编程来控制各种各样的外设实现的。二、单片机的内部架构

  五个中断源的中断控制管理系统:(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中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,不难发现,所有的运算类指令不能离开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。

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

  CY:进位标志8051中的运算器是一种8位的运算器,我们大家都知道,8位运算器只能表示到0-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。

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

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

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

  可用于设定计数初值。8052/8032增设专用寄存器SFR:特殊功能寄存器。

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

相关文章