单片机学习笔记---零基础预备知识

目录

第一:单片机的封装:

第二:数字电路中只有0和1、TTL电平特性

第三:二进制、十进制、十六进制间的转换

第四:二进制位运算-与、或、非

第五:单片机的结构


废话少说,直接进入正题!

第一:单片机的封装:

单片机不要说形状不同,要说封装不同

DIP直插式(Dual In-line Package双列直插式封装)  美/ˈduːəl/

引脚顺序:缺口的左边是第一个引脚,逆时针方向数,如果是贴片式的芯片,小凹槽就近的就是第一个引脚

插座种类:先把座子焊上,再把芯片焊到里面来

PLCC: Plastic Leaded Chip Carrier塑料引线芯片载体封装(直插或者贴片式):四边都有引脚,需要有个凹槽给它嵌进去

卡槽,也叫做PLCC座子,如果芯片有问题,可以把芯片从座子里面拆卸下来更换

贴片式:凹坑对应旁边的这个引脚就是第一个引脚,逆时针旋转数

首先说上面四边都有引脚的贴片式封装的芯片,叫QFP封装(QFP封装全称Quad Flat Package,意为四侧引脚扁平封装,引脚从四个侧面看呈L型);

根据引脚的疏密程度和芯片的厚薄程度,分为TQFP、PQFP和LQFP封装

两边都有引脚的贴片式封装的芯片,叫SFP封装;

根据引脚的疏密程度,分为SSOP和TSSOP封装

还有引脚在侧边的QFN和BGA两种如下:

以上这两种单片机都不太好焊,尤其是下面那种,一般采用机器来焊

常用单片机标识解读

PDIP: Plastic Dual In-line Package

第二:数字电路中只有0和1、TTL电平特性

数字电路中只有0和1、TTL电平特性

模拟数据:比如说听到声音的大小是连续变化的,看见光线的亮暗,如果要测那个电压也是连续变化的,这些连续变化的数据叫做模拟数据

单片机属于数字电路,内部都是一些晶体管组成的,晶体管之间传递信号的时候只有0和1这两种状态去传输

注:平时我们管电势差叫为电压,但是在数字电路当中,我们把电压叫做电平:高电平【1】,低电平【0】,没有中间电平

我们这里把单片机的电源和IO口定义为TTL电平。

IO口?I就是input,O就是output

实际上我们学单片机呢,最终是学的把单片机它的那些口的输入状态给它检测出来,同时我们通过一定的算法之后,让它的其他的一些口的输出状态发生变化,不管你是读取外围芯片的数据也好,还是说发送信号去操作外围的芯片,最终表现出来了,都是单片机的IO口上电平的变化。

补充一点:

有些需要外围去传输较远距离的数据的时候呢,需要用其他的一些电平特性,RS232呢是较常用的一种,它是属于计算机的串口,计算机串口和单片机之间它是可以通讯的,通讯的时候,我们需要加转换芯片,就是RS232的电平转换芯片

TTL:Transistor Transistor Logic晶体管与晶体管之间的逻辑

RS232呢,它是一种负逻辑,你看它的电平特性又和单片机不一样。它是高电平是负的12伏,低电平呢是正的12伏。

这里呢,给大家补充一点,后续呢我们还会用到其他的,所以呢,你看在计算机和单片机之间通讯的时候,需要加电平转换芯片,在我们的开发板上的串口旁边,就有这个芯片。

除了这种MAX232电平转换芯片呢,它还有其他的方式的转换,比如说485通信,比如说在汽车电子里面,我们经常用到CAN/LIN总线,不同的应用场景,它的电平特性都是不一样的,这个大家到后续我们慢慢来学习。

并不是所有的TTL电平都是非常标准的五伏或者是3.3伏,大家要知道我们的很多芯片呢,有的工作电压是五伏,有的是3.3伏。 还有一些它是2.5伏,但是我们现阶段呢,我们遇到的大部分是五伏和3.3伏。 所以说我们高电平五伏,它是叫1,低电平呢是0伏,这个一和零呢,是在芯片内部它做运算呀,数据存储的时候表达出来的这两个数字,那实际上表现出来外围的电压呢,就是零伏或者是五伏。

那么这里要补充一点是什么呢?实际上,TTL电它是有一定的变化范围的,并不是严格的五伏,零伏,或者是3.3伏,这是什么意思呢?就是当我们给这个器件供电的时候,我们不能保证做到每一个芯片供电的时候,五伏的时候,它必须就是准确的五伏,3.3伏就是准确的3.3伏,不可能做到,所以这个器件它在识别外面来给它的信号,以及它对外输出的时候,它的这个电平,是允许它变化的,是这个意思。

上图的CMOS部分先不管,主要看TTL部分。

从此刻起呢,大家就要注意一些关键字母了!

当看见O的时候,你首先要想到的是什么呢?O首先想到的叫output,它是输出的意思。

下面那个有个I,看到没,IH,表示什么意思呢?它是叫input,是输入的意思。

H是什么意思呢?H就是high高,表示高电平的意思。

下面的L是low低,表示低电平的意思,

以上这些字母表示什么意思?

VOH是指它输出高电平的最低值,它对外输出高电平的最低值,是2.4伏。就是这个器件它对外输出的时候,最低电高电平的最低值在五伏和2.4伏之间都可以。

VIH它表示是作为输入高电平的最低值,就是这个器件它能检测到的高电平的最低值是2.0伏,你如果低于2.0伏,比如说你是1.8伏的时候,它这时候就检测不到了,它不知道你是高电平还是低电平了,所以在2.0伏到五伏之间,它都检测到你认为是高电平。

VIL是指你输入低电平的最高值是0.8伏,0.8伏到零伏之间,它都认为你是低电平,但是你如果超过0.8伏,比如说你是一伏,它不知道了,它不知道你这是什么状态。

VOL是指输出低电平的最高值

先理解一下以上四点,主要是让大家知道TTL电它的高低电也不是严格稳定的,它有一定的范围。

接下来再看后面的LVTTL,就是低电压的芯片:

低电压通常是3.3伏工作电压。只有电源是3.3伏,其他的都是和TTL一样的,因为它的芯片内部的结构是一样的,只是说电源供电的高低不同而已。

第三:二进制、十进制、十六进制间的转换

因为单片机中只有两种电平0和1,所以内部存储、运算全部是二进制方式。

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

用一个十六进制数可以表达4个二进制数,2个十六进制数刚好可以表达8个二进制数(一个字节)。

单片机的学习中后面会经常用到进制转换,请一定要熟悉!

看十进制、二进制和十六进制之间的关系之前,先看他们的位权:

注:

二进制是用0,1表示,逢2进1;

八进制是用0,1,2,1,3,4,5,6,7,表示,逢8进1;

十进制是用0,1,2,3,4,5,6,7,8,9表示,逢10进1;

十六进制是用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,逢16进1;

十六进制中的A,B,C,D,E,F分别对应10,11,12,13,14,15,而10,11,12,13,14,15对应的二进制序列分别是1010,1011,1100,1101,1110,1111(这个一定要熟记)

以后二进制转换为十六进制时可以看着芯片手册快速计算出来。

以下是一个字节中(一个寄存器)进制、十进制、十六进制间的转换关系示例:

可以自己练习一下它们之间的转换,网上都能搜到练习题。

补充一个东西,请按住键盘上的win+R调出运行窗口,输入计算器的简称,回车,调出电脑上的计算器(或者直接在电脑上的应用搜索栏搜出来),用程序员模式,用这个计算进制,可以提升效率。

如果不懂怎么转换可以给我留言,秒回。

第四:二进制位运算-与、或、非

“与”运算只有当两个都是1的时候才是1,只要有0就是0

“或”运算只要其中有1就是1

“非”运算本质是“取反”,1就变成0,  0就变成1

“异或”运算就是相同就是0,不同就是1

“同或”运算相同就是1,不相同就是0;

(在C语言中不存在,因为在C语言中可以通过异或之后的结果取反得到同或的结果

第五:单片机的结构

学习使用单片机是了解计算机原理与结构的最佳选择

STC89C52单片机

所属系列:51单片机系列

公司:STC公司

位数:8位

RAM:512字节;

ROM:8K(Flash)

工作频率:12MHz(本开发板使用)

随机存取存储器(英语:Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。它与ROM的最大区别是数据的易失性,即一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。

ROM 是 Read-Only Memory 的缩写,可译为只读存储器。ROM 可以永久存储数据,并且和 RAM 一样,是计算机中主要的存储器。该类存储器之所以称为只读存储器,是因为我们只能读取存储在 ROM 内部的数据和指令,不能对数据做修改,也无法写入新的数据。

RAM临时存储,对应电脑的内存条,

ROM(Flash)长期存储,可以对应电脑的硬盘(但是硬盘可读可写),对于电脑来讲就是硬盘,对于手机来讲就是运行存储,对于单片机来讲就是Flash

RAM比作一个工厂

ROM比作一个仓库

工作频率:12MHz兆赫兹(本开发板使用)晶振12M

时钟晶振就是让单片机开始工作用的,没有晶振单片机不工作

STC89C52单片机命名规则

单片机内部结构图:

看门狗防止程序跑黑

单片机结构的简化版本:

你看有四大部分组成,第一是单片机的内核,第二是flash,第三是SRAM,第四叫外设.外设整个右边这一栏,它有多种外设。   它的大概的工作原理是这样:

第一步就是单片的内核,它通过总线从这个flash(ROM)当中读取指令,并响应这个指令,就是我们写的代码,我们想让它干什么事。

第二步,这个内核从RAM当中读取待赋值的一些数据,这些数据就是我们在运算过程当中临时变化的那些数据。

第三步,是内核将前面读取到的这些数据赋值给外设的寄存器。

第四步外设根据寄存器的数值转换成高低电,赋值给它的相应的IO口,这时对于外界的器件来说,它就感受到了单片机的IO口的一些变化,是高电平呢还是低电平,比如说我们要点亮这个发光二极管的时候,那这个外设的这个口,它变成0,不亮的这个口变成1,对于这个电路来说,它是0的时候,点亮了1的时候它就不亮。

  我们在操作单片机的整个过程,实际上就是在对它的各个口(各个口这边还能生出来很多口),一是读取它的状态,第二是对某些要输出的口的状态给它产生变化,我们通过指令和算法来完成这样一个流程。

那么如果说我们要看相对比较完整的内部结构,你看大家看这张图,相对来说完整这张图:

这个也还是框架图,还没有打开,如果完全打开的话更复杂,那么我们刚开始学,就不要看的那么复杂的图了,我们先看简单的。

简单的看呢,这张图它分为上下,上面是它单片机内部,下面呢实际上是外部:

你看外部的这块,是晶振系统:

这个晶振主要是给单片机的内核提供心跳的,它每震一下,它内部的这个程序指令就走一下。 单片机是顺序执行指令的,那这个顺序就是靠这个晶振给它提供心跳,心跳跳一下,它动一下,跳一下动一下。   然后这下面你看这几个是它的IO口:

这个单片机最终对外呈现出来的一共就是30多个IO口,那么我们在写程序的时候就是操作这些IO口,最终所有的体现都是体现在IO口上了,就是P0、P1、P2、P3。这个单片机还有个P4口。

  

这些口我们是读取它的状态还是对它的某些口进行赋值,让它输出去操作其他的芯片,大流程就是这样,那么内部这些就是它的一堆的寄存器了,你看是B寄存器A寄存器:

这些就是模块了,定时器模块,运行模串口模块了,

这是RAM存储数据的:

还有flash,这是存储程序的:

不同的模块执行他们相应的功能

下一节是点亮第一个灯......

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vera工程师养成记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值