请各位帮我做几道单片机基础课程

抄袭、复制答案以达到刷声望汾或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号是时候展现真正的技术了!

这节课的标题是点亮LED,但是需要大镓了解的单片机基础基础

这节课的标题是点亮 LED但是需要大家了解的单片机基础基础知识的内容也非常 多,特别是对于初学者刚开始要茬头脑中建立一个单片机基础的概念,课程最后 通过点亮一个 LED 小灯来增加初学者对实验的好奇心和自信心 1.11.1 单片机基础的内部资源单片机基础的内部资源 在这里我所讲到的单片机基础内部资源,和传统单片机基础书籍讲单片机基础内部结构不同 我这里讲到的内部资源,是指我们作为单片机基础用户单片机基础提供给我们可使用 的一些内容。总结起来主要是三大资源 1、FLASH程序存储空间,早期单片机基础是 OTPROM 2、RAM数据存储空间 3、SFR特殊功能寄存器 在早期的技术里边主要是用 OTPROMOne Time Programable Read-Only Memory,即一次可编程只读存储器来存储单片机基础的程序随着技术的发展, FLASH 嘚以其可重复擦写且大容量低成本的优点成为绝大多数单片机基础的程序存 储器对于单片机基础来说 FLASH 最大的意义是断电后数据不丢失,這个概念类 似于我们电脑的硬盘你看我们保存了电影、文档、音乐等文件,我们把电源 关掉后下次重新开电脑,所有的文件都还照样存在 RAM 是单片机基础的数据存储空间,用来存储程序运行过程中产生的和需要的数据 和我们电脑的内存是一个概念,其实最典型的比喻昰我们的计算器我们用计 算器计算个加减法,一些中间的数据都会保存在 RAM 里边关电后数据丢失, 所以我们每次打开计算器都是从归零开始计算。但是他的优点第一是读写速 度非常快第二是理论上是可无限次写入的,即寿命无限不管程序怎么运行 怎么读写它都不会壞的。 第三个资源是 SFR特殊功能寄存器。这个概念大家可能刚开始理解不了但 是一定要记住。单片机基础有很多很多功能每个功能都會配一个或多个 SFR,我 们就是通过对 SFR 的读写来实现单片机基础的多种多样的功能的 讲到这里,我们来了解一下 51 单片机基础通常我们一说箌 51 单片机基础,指的都是 兼容 Intel MCS-51 体系架构的一系列单片机基础全球有众多的半导体厂商推出了 无数款这一系列的单片机基础,比如 Atmel 的 AT89C52NXPPhilips的 P89V51, 宏晶科技的 STC89C52具体型号千差万别,但他们的基本操作都是一样的 程序开发环境也是一样的。这里我们要分清楚 51 这个统称和具体的单片機基础型号 之间的关系 单片机基础内部资源的三个主要部分我们清楚了,那么我们选择 STC89C52RC 这款 单片机基础来进行学习STC89C52RC 单片机基础是宏晶科技出品的一款 51 内核的单片 机,具有标准的 51 体系结构全部的 51 标准功能,程序下载方式简单方便 学习,我们就用它来学习单片机基础咜的资源呢,Flash 程序空间是 8K 字节 1K1024 字节1 字节 8 位,RAM 数据空间是 512 字节SFR 我们后边需要 逐一提到并且应用。 1.21.2 单片机基础最小系统单片机基础最小系統 为什么称之为单片机基础最小系统呢单片机基础最小系统也叫做单片机基础最小应用系 统,是指用最少的原件组成单片机基础可以工莋的系统单片机基础最小系统的三要素 就是电源、晶振、复位电路,如图 2-1 所示图 2-1 单片机基础最小系统电路 备注本教材中的大部分电路圖示例都节选自我们的 KST-51 开发板原理图,但 也有部分电路图示例与 KST-51 开发板无关而仅是用其来说明一些具体问题。 读者可自行对照 KST-51 开发板原悝图以下不再做特殊说明。 1.2.11.2.1 电源电源 这个很好理解电子设备都需要供电,就连我们的家用电器手电筒_也不例 外主流单片机基础的电源现在是 5V 和 3.3V 这两个标准,当然现在还有对电压要 求更低的单片机基础系统 我们所学的 STC89C52RC,它需要 5V 的供电系统我们的开发板是使用 USB 口出来嘚 5V 直流电压直接供电的。从图 2-1 可以看到供电电路在 40 脚和 20 脚的位置上,40 脚接的是 VCC代表的是电源正极,20 脚接的是 GND代表 的是电源的负极。VCC 囷 GND 之间还有个电容作用我们下节课介绍。 这 个地方我们还要普及一个看原理图的知识电路原理图是为了表达这个电路 的工作原理而存茬的,很多器件在绘制的时候更多考虑是方便分析原理不是 表达各个器 件实际位置的。比如上边的单片机基础引脚图引脚的位置我们昰可以 随意放的,但是每个引脚上有一个引脚标号(在表示芯片的方框的内部)这 个引脚标号代表的才 是单片机基础真正的引脚位置,洳图 2-2 所示一般情况下, 这种双列直插的封装的芯片左上角是 1 脚,逆时针旋转引脚号依次增加一 直到右上角是最大脚位,咱们现在选鼡的单片机基础一共 40 个引脚因此右上角就 是 40。图 2-2 单片机基础封装图 1.2.21.2.2 晶振晶振晶振又叫晶体振荡器,从这个名字我们就可以看出来它紸定一生都要 不停振动的。他起到的作用是为单片机基础系统提供基准时钟信号类似于我们部 队训练时喊口令的人,单片机基础内部所囿的工作都是以这个时钟信号为步调基准 来进行工作的STC89C52RC 单片机基础的 18 脚和 19 脚是晶振的引脚,我们接了 一个 11.0592M 的晶振(它每秒钟震荡 11,059,200 次)外加两个 20pF 的电 容,电容的作用是帮助晶振起振并维持震荡信号的稳定。 1.2.31.2.3 复位电路复位电路 在图 2-1 左侧是一个复位电路接到了单片机基础嘚 9 脚 RSTReset复位引脚上, 这个复位电路如何起到的作用我们后边再讲现在着重讲一下复位对单片机基础的 作用。单片机基础复位一般是 3 种情况上电复位、手动复位、程序自动复位。 我们假如我们的单片机基础程序有 100 行当某一次运行到第 50 行的时候,突然停 电了这个时候单片機基础内部有的区域数据会丢失掉,有的区域数据没丢失那 么下次打开设备的时候,我们希望单片机基础能正常运行所以上电后,单爿机基础要进行一个内部的初始化过程这个过程就可以理解为上电复位,上电复位保证 单片机基础每次都从一个固定的相同的状态开始笁作这个过程跟我们打开电脑电 源开电脑的过程是一致的。 当我们的程序运行遭受到意外干扰而导致程序死机,或者程序跑飞的时候 我们就可以按下一个复位按键,让程序重新初始化重新运行这个过程就叫做 手动复位,最典型的就是我们电脑的重启按钮 当我们的程序死机或者跑飞的时候,我们的单片机基础往往有一套自动复位机制 比如看门狗,具体应用以后再了解在这种情况下,如果程序长時间失去响应 单片机基础看门狗模块会自动复位重启单片机基础。还有一些情况是我们程序故意重启 复位单片机基础 电源、晶振、复位构成了单片机基础最小系统的三要素,也就是说一个单片机基础具 备了这三个条件,就可以运行我们下载的程序了其他的比如 LED 小灯、数码 管、液晶等设备都是属于单片机基础的外设,我们最终完成我们想要的功能就是通 过对单片机基础编程来控制这些外设实现的 1.31.3 LEDLED 小燈小灯 LED 小灯通常我们也叫做发光二极管,它的种类很多参数也不尽相同,我们 板子上用的是最普通的贴片发光二极管这种二极管通常嘚正向导通电压是 1.8V 到 2.2V 之间,工作电流一般在 1mA~20mA 之间其中,当电流在1mA~5mA 之间变化时随着通过发光二极管LED的电流越来越大,我们的肉眼会感觉到这个小灯越来越亮当电流从 5mA~20mA 之间变化时,我们看到的 发光二极管的亮度基本上没有什么太大变化了当电流超过 20mA 时,LED 就会 有烧壞的危险了电流越大,烧坏的也就越快所以我们在使用过程中应该特 别注意他在电流参数上的设计要求。 那么下面我们来看一下这个發光二极管在我们的开发板上的设计应用图 2-3 USB 接口电路图 2-3 是我们开发板上的 USB 接口电路,通过 USB 线电脑给我们的开发板 供电和下载程序以及實现电脑和开发板之间的通信。从图上可以看出USB 座 共有 6 个接口,其中 2 脚和 3 脚是数据通信引脚1 脚和 4 脚是电源引脚,1 脚 是 VCC 正电源4 脚是 GND 即哋线。5 脚和 6 脚是外壳我们直接接到了 GND 上,大家可以观察一下开发板上的这个 USB 口的座的 6 个引脚 我们现在主要来看 1 脚 VCC 和 4 脚 GND。1 脚通过 F1自恢复保险丝接到右 侧在正常工作的情况下,保险丝可以直接看成导线因此左右两边都是 USB 电源5V,自恢复保险丝的作用是当你后级电路哪个哋方有发生短路的时候, 保险丝会自动切断电路保护我们的板子以及电脑的 USB 口,当电路正常后 保险丝会恢复畅通,正常工作 右侧有 2 條支路,第一条是在5V 和 GND 接了一个 470uF 的电容电容是隔 离直流的,所以这条支路是没有电流的电容的作用,我们下节课再介绍这 节课我们主要看第二条支路。我们把第二条支路摘取出来就是这个样子了图 2-4 Led 小灯电路1 发光二极管是二极管中的一种,因此和普通二极管一样这個二极管有阴极和 阳极,习惯上也称之为正极和负极这样方便在电路上观察,方向必须接对了 才会有电流通过让 LED 小灯发光刚才我提到叻我们接入的 VCC 电压是 5V, 发光二极管自身压降大概可认为是 2V那么在右边 RES 这个电阻上承受的电 压就是 3V。那么现在我们要求电流范围是 120mA 的话僦可以根据伏安特性, 把这个电阻的上限和下限值求出来 VCC - 2/I R 当电流是 1mA 的时候,电阻值是 3K;当电流是 20mA 的时候电阻值是 150 欧, 也就是 RES 的取值范圍是 1503000 欧姆这个电阻值大小的变化,直接可以 限制整条通路的电流的大小因此这个电阻我们通常称之为“限流电阻”。在 图 2-3 中我们用嘚电阻是 1K,这条支路电流的大小我想大家可以轻松计算 出来了,而这个发光二极管在这里的作用就是个电源指示灯,使用 USB 线将 开发板囷电脑连起来这个灯就会亮了。 同理我们在板子后级开关控制的地方,又添加了一个 LED10 发光二极管作 用就是当我们打开开关时,这个②极管才会亮起图 2-5 USB 供电电路大家注意,这里的开关虽然只有一个但是是 2 路的,2 路开关并联更能 确保给后级提供更大的电流电容 C19 和 C10,嘟是隔离断开直流的作用我 们下节课介绍,这里大家可以忽略 那么下面呢,我们把图 2-4 进行一下变化把右侧的 GND 去掉,改成一个单片 机嘚 IO 口如图 2-6 所示。图 2-6 LED 小灯电路2 图 2-4 由于电源从正极到负极有电压差并且电路是导通的,所以就会有电流 通过LED 小灯因为有了电流通过,所鉯就会直接发光我们把右侧的原 GND 处接到单片机基础 P0.0 引脚上,那么如果我们单片机基础输出一个低电平也就是跟 GND 一样的 0V 电压,就可以让 LED 尛灯和图 2-4 一样发光 因为我们的单片机基础是可以编程控制的,我们可以让 P0.0 这个引脚输出一个高电 平就是跟 VCC 一样的 5V 电压,那么这个时候左侧 VCC 电压和右侧的 P0.0 的电压是一致的,那就没有电压差没有电压差就不会产生电流,没有电流 LED 小灯就不会亮也就是会处于熄灭状态。丅面我们就用我们的编程软件 来实现控制小灯的亮和灭。1.41.4 程序代码编写程序代码编写 这是我们第一个实验程序因此大家还是得耐心点,先来了解一下一些 51 单片 机特有的程序语法以及 Keil 软件的基本操作步骤 1.4.11.4.1 特殊功能寄存器和位定义特殊功能寄存器和位定义我们主要是用 C 语訁来对单片机基础编程,有的单片机基础也有那么几条很特殊的 独有的编程语句51 单片机基础就有,


我要回帖

更多关于 单片机课程 的文章

 

随机推荐