目前,单片机型号种类繁多,以其优越的控制性能在自动化控制领域占有重要地位。如今单片机无处不在,像我们的电冰箱、空调、洗衣机都是单片机在内部控制,当然,他们所用的单片机是定制的,并不是我们学习时使用的单片机。除此不同品牌的单片机芯片采用的内核也会不同,比如INTEL公司的MCS-51内核(代表芯片:AT89系列、国产STC系列等),ARM公司的高性能”Cortex-M3”内核(代表芯片:STM32系列)等。因为内核的差异,使得他们在使用中也会有所不同。

对于初学者来说,51单片机中的STC89C52是很不错的选择,因为它便宜(单片价格在8RMB左右),而且相对容易学习。接下来将以这款芯片为例介绍51单片机。

首先简单介绍这款芯片:

1.STC89C52是STC公司(中国深圳宏晶科技公司)生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器(8K对单片机来说不小了,当然不能跟我们的手机比),使用MCS-51内核,指令代码完全兼容传统8051。

2.工作电压范围很广(这里只介绍5V版本),在3.3V~5.5V之间都能工作,但是电压越高,工作电流也会更大,通俗的说,如果用单片机点亮一颗LED灯,使用5.5V供电,灯的亮度要比3.3V供电时亮,耗电也会更多。

3.通用I/O 口(4x8=32个),复位后为:P1/P2/P3 是准双向口/弱上拉, P0 口是漏极开路输出,作为 I/O 口用时,需加上拉电阻。(除非某I/0口置零,否则它就输出高电平)

4.工作频率范围:0~40MHz,相当于普通8051 的0~80MHz,实际工作 频率可达48MHz,其工作频率取决于晶振频率,我们常用的是12MHz、11.0592MHz。

5.ISP(在系统可编程)/IAP(在应用可编程),可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序。在学习过程中,我们只要使用ISP即可,也就是制作好电路板之后,只要把RxD/P3.0,TxD/P3.1通过排针引出来,我们就可以通过USB-TTL把程序烧录到单片机,不需要再把单片机芯片从系统板上取出来。

6.共3 个16 位定时器/计数器。即定时器T0、T1、T2

其他参数就不详细介绍,其资料可自行在网上查阅。

首先需要了解这款芯片的引脚图,才能根据引脚连接各种元件。(暂时只标注常用的的功能)

接下来详细探讨各模块:

 1,I/O口

I/O口即输入输出口,是单片机用来输出或者输入信号的端口。STC89C52共有四组(P0、P1、P2、P3),每组8个(每组I/O口能同时输出8位二进制数。其CPU计算时的数据宽度正好也是八位,所以该芯片为8位控制器),共32个I/O口。

单片机所有I/O口默认状态都是高点平,除非在程序里将其置0,这样的设定可以让单片机运行更稳定。

通常,I/O口都会连接上拉电阻,其目的一是使单片机运行稳定,二是提高单片机驱动能力,即让单片机能控制更大的负载。上拉电阻我们常用阻值为10K的9P排阻即可(其大小在1~10K都可,电阻小可提高驱动能力,电阻大可以降低功耗)。它有9个引脚,一个为公共端,另外八个引脚与I/O口相连。其结构及接线图如下图所示。注意,除了上拉电阻,还有下拉电阻,上拉电阻的公共端是接VCC,下拉电阻的公共端是接GND。

2.时钟电路

这里的时钟并不是我们所说的钟表,而是指一种信号(理想的时钟信号就是矩形波,或者说脉冲波)。从数字电子技术中学习知道,在逻辑电路中,必须依靠时钟信号才能工作(例如触发器,每收到一个时钟信号,就动作一次),单片机其实就可以看成就是一个集成化的逻辑电路。所以我们需要外接时钟电路,来让单片机工作。

时钟电路的核心是晶振,它是一种可以产生稳定震荡频率的电子元件。它的基本参数是震荡频率,单位为MHz,其参数决定了单片机的工作频率。其数值一般刻在晶振元件上面。常用的单片机晶振主要有12.000MHz和11.0592MHz,当程序中使用了定时器,使用11.0592MHz晶振可以定时更准确。

时钟电路除了晶振还有两个瓷片电容(30pF),这两个电阻可以起到微调频率的作用。

晶振电路有两个端口XT1和XT2,将这两个端口分别与单片机的18脚(XTAL2)、19脚(XTAL1)相连即可为单片机提供时钟信号(这两个端口没有顺序,可以随意连接)。

3.复位电路
复位电路说白了就是用来重启单片机,使单片机初始化,重新开始执行程序。当单片机因程序问题出现故障(比如程序中出现不可控的死循环),可通过复位电路向单片机第9脚RET发送一个复位信号,单片机就可自行复位。这个复位信号是一个连续2个机器周期(24个时钟周期)的高电平。也就是单片机的RES脚如果连续两个机器周期都是被置于高电平,单片机就会自动复位。

所以最简单的复位电路就是上图所示。按下开关K,VCC接入单片机RST,两个机器周期后,单片机复位。(实际使用中,你按下按钮立刻松开,这段时间已经远超过两个机器周期,所以按下复位键不需要停顿再松开)如果一直按着复位键,单片机则不会进入工作状态,只有松开复位键单片机才开始工作。

一般来说,单片机上电以后自动从程序开头执行,所有寄存器也是初始值,上电之后立即执行程序本是没有问题的。但是在一些复杂的电路中,单片机的外接电路很多,有时候会有电容电感之类的,他们上电之后并不能立即进入工作状态,他们有个“充电”过程,虽然时间短,但是单片机执行一条指令是微秒级的,很容易让单片机误判,出现意想不到的错误。如何避免这种现象?

请设想:如果单片机上电之后,不立即进入工作状态,而是停顿“一会儿”,等其他元件充电完毕,再进入工作状态,那就可以躲开上电初期的不稳定因素,从而避免误判。

那如何实现这个停顿呢?这就依赖于复位电路的上电自动复位了。

上面是单片机常用的复位电路。

其原理涉及到电路原理中的KCL定律和一阶电路的零状态响应,不感兴趣可略过。

上电后,电解电容C1充电,其电压变化为 [式1],

而RET处的电位即对地电压,可以看到,电阻R9的电压在数值上正好等于RET的电位,

根据基尔霍夫电压定律,R9的电压=电源电压-电容C1电压,即

式中的τ为时间常数,其值为τ=RC=1000X22/1000000=22ms,其电压变化曲线如图(简略绘制,仅供参考):

可以看到在很长一段时间里(其实不到20ms),Ur都保持在较高的电位,也就是RET为高电平(3.7V以上电压单片机都认为是高电平),在这段时间,足够单片机躲过上电初期的不稳定。当Ur的电压减小到不足以让单片机判定为高点平,复位失效,单片机工作。

可以看到这种复位电路也能手动复位,按下开关S1,电容C1通过R10放电,松开S1,电容C1又开始充电,其情形与上电复位相同,RET接收到高电平,单片机复位。
所以复位电路的作用一是开机自动复位,躲过上电时的不稳定;二是手动复位,在单片机运行出错时使用。

4.其他引脚

并行串口:第10、11脚是单片机的并行串口,作用就是烧录程序。注意这两脚是P3.0、P3.1复用了。烧录程序需要用到烧录工具USB-TTL。

实际的USB-TTL有很多型号,有的型号有10个引脚,但烧录程序只需用到四个(VCC、GND、RXD、TXD)。所以我们需要四根杜邦线,首先,将转换工具上的VCC、GND与单片机系统板的VCC、GND连接,然后把烧录工具的RXD与单片机的TXD连接,烧录工具的TXD与单片机的RXD连接。因为两个引脚一个是发送数据,一个是接收数据,转换工具发送数据(TXD),单片机自然是接收数据(RXD),反之同理。另外,烧录程序还需用到软件STC-ISP,这是专门用于STC系列单片机的烧录软件。

存储器选通:单片机的31脚是存储器选通EA,单片机内部存储空间很小,如果需要扩展空间,就需要用到这个功能。当EA置于高电平,单片机从内部存储器开始执行程序;当EA置于低电平,单片机则从外部存储器开始执行程序。对初学者来说,我们使用内部存储器就足够了,所以可以直接将EA接VCC。

同样,第30脚ALE为地址锁存信号,也是在有外部存储器是使用,不用时将其悬空即可;29脚PSEN为外部存储器读选通信号,同样将其悬空。另外的40脚、20脚分别接电源正极、负极(地)不用多说了。

以上纯属个人理解,如有错误,还请指出.

​​​​​​​觉得有用可以点个赞哦~

51单片机初学1-51单片机介绍相关推荐

  1. c51单片机的语言,51单片机,stm32,arduino都是用什么语言进行编程的?

    51单片机,STM32单片机用汇编或者C语言,现在基本都用C语言编程,Arduino有自己的编程环境,用户也是用C语言编程. 51单片机的编程 51单片机进入中国比较早,在早前用汇编编程比较多,我在上 ...

  2. 单片机位寻址举例_单片机学习:51单片机寻址方式详解

    51单片机是对所有兼容Intel 8031指令系统的单片机的统称.该系列单片机的始祖是Intel 8031单片机,后来随着Flash rom 技术的发展,8031单片机取得了长足的发展,成为了应用最广 ...

  3. 打地鼠java代码流程图_51单片机 普中51 打地鼠游戏 仿真 程序 流程图

    51单片机 普中51 打地鼠游戏 仿真 程序 流程图 51单片机 普中51 打地鼠游戏 仿真 程序 流程图 普中51-单核-A3&A4开发板原理图 用到数码管.LED.矩阵按键 描述: (1) ...

  4. 51单片机(1)单片机概述

    笔者觉得很有必要重新学习单片机,微机,计算机结构这些基础的专业必修课,在此开设专栏 首先,什么是单片机? 1.2 除了单片机这一名称之外,单片机还可称为(微控制器)和(嵌入式控制器). 1.3 单片机 ...

  5. 实物1操作:stc8a单片机和普通51/52单片机的异同以及下载步骤(点亮一盏LED为例)

    1.stc8a系列单片机,比普通的51/52单片机运行速度快: stc8a单片机是1T单片机,普通的51/52单片机,比如stc89c82RC等单片机是12T单片机. 1T和12T单片机是什么意思呢? ...

  6. 51单片机的基础知识——单片机简介

    仅用于学习交流!!! 仅用于学习交流!!! 仅用于学习交流!!! 一.什么是单片机 单片机,即单片微型计算器,简称为单片机.用专业术语来讲单片机就是在一块硅片上集成了微处理器.存储器以及各种输入/输出 ...

  7. 从51单片机白痴到51单片机高手的快速成长

    从51单片机白痴到51单片机高手的快速成长 推荐一个不错的51单片机学习视频教程(高清晰版本)电驴下载   也可以用迅雷下载 飞龙教程------51单片机 需要更多单片信息请与我联系 飞龙QQ:90 ...

  8. 嵌入式单片机入门(51)

    1.嵌入式的简单了解 2.单片机和嵌入式的关系 3.单片机的学习 4.单片机的分类及51单片机的基本构造 一,嵌入式的简单了解 嵌入式的方向:纯硬件和软硬件结合.纯硬件包含很多种,例如硬件电路.PCB ...

  9. C51汇编语言寻址方式,单片机学习:51单片机寻址方式详解

    原标题:单片机学习:51单片机寻址方式详解 51单片机是对所有兼容Intel 8031指令系统的单片机的统称.该系列单片机的始祖是Intel 8031单片机,后来随着Flash rom 技术的发展,8 ...

  10. Modbus RTU 51单片机从机源码与组态软件通信支持485和232串口通信,该从机源码可直接用于51系列和STC12系列单片机的

    Modbus RTU 51单片机从机源码与组态软件通信支持485和232串口通信,该从机源码可直接用于51系列和STC12系列单片机的,支持功能码01,02,03,04,05,06,0F,10等常用功 ...

最新文章

  1. SAP QM Multiple Specifications的使用 I
  2. cad加载插件快捷键命令_cad自动加载lsp插件,这一种方法你肯定没用过!
  3. 基于CefGlue的桌面应用开发
  4. 王家林 云计算分布式大数据Hadoop实战高手之路第七讲Hadoop图文训练课程:通过HDFS的心跳来测试replication具体的工作机制和流程...
  5. 最优解法——7-3 将数组中的数逆序存放 (20 分)——10行代码AC
  6. oracle 老白,老白学编程 - Netdata学习 - numa
  7. Thinking In Java 读书笔记
  8. 第九届蓝桥杯C++B组
  9. [代码]--GridControl使用技巧总结,更新中...
  10. 给所有的input设置 autocomplete=off
  11. 线上python课程一般多少钱-学习Python这门课程大概需要多久?费用是多少?
  12. PhoneGap android环境设置
  13. 数据库左连接和右连接有什么区别!
  14. 项目总是延期令人头疼?Tracup帮你做好项目进度管理
  15. win10 C盘清理总结记录
  16. 处理机和CPU的区别
  17. Anaconda4.5.1+tensorflow2.1.0+keras2.3.1+theano+Mingw+python3.6安装总结
  18. 获诱人的实习offer、在Kaggle推AI大赛,大二学生如何做到?
  19. Android-移动支付 支付宝 微信 银联
  20. 打车软件的未来发展方向

热门文章

  1. Oracle的12c版本打补丁
  2. 人工智能会取代人类吗?
  3. excel画图如何添加图表数据参考线
  4. jmp指令流程图怎么写_流程图模板
  5. vertical-align 与 line-height 傻傻分不清??
  6. 如何使用jsDelivr+Github 实现免费CDN加速?
  7. 电容介绍|电容的种类和作用
  8. 编写程序,找出用户输入的一串数的最大数,程序需要提示用户一个一个地输入数,当用户输入0或负数时,程序显示出已输入的最大负整数:
  9. 《乘风破浪的姐姐》的观后感,有钱真好!
  10. 设计模式-前摄器模式(Proactor)