四、实验步骤 1、单片机最小系统实验应用系统1的P0口接AD转换的D0~D7,单片机最小系统实验应用系统1的Q0~

近期自己焊接了一个最小系统,在用芯片写程序的时候为什么一直烧不进去,

自己写的LED灯还是可以用的但是为什么就是烧不进程序区。

51单片机最小系统实验系统由什么組成求大神讲解如题,想搭建自己的单片机最小系统实验系统求各路大神讲解一下,谢谢!... 51单片机最小系统实验系统由什么组成求夶神讲解如题,想搭建自己的单片机最小系统实验系统求各路大神讲解一下,谢谢!

我是一名单片机工程师下面51单片机最小系统实验系统的讲解,你参考一下


51单片机共有40只引脚.
下面这个就是最小系统原理图就是靠这四个部分,这个单片机就可以运行起来了.


我们来┅一讲解一下:
1 第一部分:电源组(标记为1的部分)

40脚接电源5V(右上角),20脚接电源负极(左下角)在单片机里面,负极也可以叫GND或者”地”我們在单片机的应用中,习惯说负极为”地”上面GND就是英文ground的缩写,翻译过来就是"地"的意思.


2 第二部分:晶振组(标记为2的部分)

11.0592M晶振Y1与单片機的1819脚并联,因为这两只脚就是晶振的工作引脚.22p电容C2一端接18脚,一端接地.22p电容C3一端接19脚一端接地.


这两个电容,我们在10~30P之间选擇都是可以的主要作用是,过滤掉晶振部分的高频信号让晶振工作的时候更加稳定.


3 第三部分:复位组(标记为3的部分)

10u电容C1正极接电源5V,C1负极接单片机的复位脚第9脚.1K电阻R17一端接单片机的复位脚,第9脚一端接地.就是通过这个10u和1k,就可以让单片机一供电时单片机自動复位,从零开始执行程序这个就是复位的概念.

4 第四部分:其它功能组(标记为4的部分)

这个脚是存储器使用选择脚,当这个脚接"地"时那么就是告诉单片机,选择使用外部存储器当这个脚接"5V"时,说明单片机使用内部存储器.


因为如果选择外部的存储器太浪费单片机仅囿的资源,所以这一脚永远接电源5V(如上图所示)使用单片机的内部存储器.


5 如果内部存储器不够容量,最多选择更高级容量同类型的单爿机型号,就可以解决问题了就是这么简单,对于最小系统的细节一言二句说不了太多东西,更多详细的最小系统制作知识可以百喥一下“一凡单片机”,这个里面讲解比较全面并且还有相应的单片机程序。


6 以上就是个人分享的51单片机最小系统实验系统原理图和讲解希望能帮到你,并且通过积累单片机知识再扩展其它实验,寻找更多的单片机乐趣喜欢的朋友请采纳和点赞,谢谢!

这节课的标题是点亮LED但是需要夶家了解的单片机基础知识的内容也非常多,特别是对于初学者刚开始要在头脑中建立一个单片机的概念,课程最后通过点亮一个LED小灯來增加初学者对实验的好奇心和自信心

在这里我所讲到的单片机内部资源,和传统单片机书籍讲单片机内部结构不同我这里讲到的内蔀资源,是指我们作为单片机用户单片机提供给我们可使用的一些内容。总结起来主要是三大资源

2、RAM(数据存储空间)

3、SFR(特殊功能寄存器)

在早期的技术里边,主要是用OTPROM(One Time Programable Read-Only Memory即一次可编程只读存储器)来存储单片机的程序,随着技术的发展FLASH以其可重复擦写且大容量低成本的優点成为绝大多数单片机的程序存储器。对于单片机来说FLASH最大的意义是断电后数据不丢失这个概念类似于我们电脑的硬盘,你看我们保存了电影、文档、音乐等文件我们把电源关掉后,下次重新开电脑所有的文件都还照样存在。

RAM是单片机的数据存储空间用来存储程序运行过程产生的和需要的数据,和我们电脑的内存是一个概念其实最典型的比喻是我们的计算器,我们用计算器计算个加减法一些中间的数据都会保存在RAM里边,关电后数据丢失所以我们每次打开计算器,都是从归零开始计算但是他的优点第一是读写速度非常快,第二是理论上是无限次写即寿命无限,不管程序怎么运行怎么读写它都不会坏

第三个资源是SFR,特殊功能寄存器这个概念夶家可能刚开始理解不了,但是一定要记住单片机有很多很多功能,每个功能都会配一个或多个SFR我们就是通过SFR的读写来实现单片机嘚多种多样的功能的。

讲到这里我们来了解一下51单片机。通常我们一说到51单片机指的都是兼容Intel MCS-51体系架构的一系列单片机。全球有众多嘚半导体厂商推出了无数款这一系列的单片机比如AtmelAT89C52NXP(Philips)P89V51宏晶科技的STC89C52,具体型号千差万别但他们的基本操作都是一样的,程序开发環境也是一样的这里我们要分清楚51这个统称和具体的单片机型号之间的关系。

单片机内部资源的三个主要部分我们清楚了那么我们选擇STC89C52RC这款单片机来进行学习。STC89C52RC单片机是宏晶科技出品的一款51内核的单片机具有标准的51体系结构,全部的51标准功能程序下载方式简单,方便学习我们就用它来学习单片机。它的资源呢Flash程序空间是8K字节(1K=1024字节,1字节= 8)RAM数据空间是512字节,SFR我们后边需要逐一提到并且应用

为什么称之为单片机最小系统实验系统呢?单片机最小系统实验系统也叫做单片机最小系统实验应用系统,是指用最少的原件组成单片机鈳以工作的系统单片机最小系统实验系统的三要素就是电源、晶振、复位电路,如图2-1所示

2-1 单片机最小系统实验系统电路

备注:本教材中的大部分电路图示例都节选自我们的KST-51开发板原理图,但也有部分电路图示例与KST-51开发板无关而仅是用其来说明一些具体问题。读者可洎行对照KST-51开发板原理图以下不再做特殊说明。

这个很好理解电子设备都需要供电,就连我们的家用电器(手电筒^_^)也不例外主流单片机嘚电源现在是5V3.3V这两个标准,当然现在还有对电压要求更低的单片机系统

我们所学的STC89C52RC,它需要5V的供电系统我们的开发板是使用USB口出来嘚5V直流电压直接供电的。从图2-1可以看到供电电路在40脚和20脚的位置上,40脚接的是VCC代表的是电源正极,20脚接的是GND代表的是电源的负极。VCCGND之间还有个电容作用我们下节课介绍。

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

    晶振又叫晶体振荡器,从这个名字我们就可以看出来它注定一生都要不停振动的。他起到的作用是為单片机系统提供基准时钟信号类似于我们部队训练时喊口令的人,单片机内部所有的工作都是以这个时钟信号为步调基准来进行工作嘚STC89C52RC单片机的18脚和19脚是晶振的引脚,我们接了一个11.0592M的晶振(它每秒钟震荡11,059,200外加两个20pF的电容,电容的作用是帮助晶振起振并维持震蕩信号的稳定

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

我们假如我们的单片机程序有100行当某一次运行箌第50行的时候,突然停电了这个时候单片机内部有的区域数据会丢失掉,有的区域数据没丢失那么下次打开设备的时候,我们希望单爿机能正常运行所以上电后,单片机要进行一个内部的初始化过程这个过程就可以理解为上电复位,上电复位保证单片机每次都从一個固定的相同的状态开始工作这个过程我们打开电脑电源开电脑的过程是一致的。

当我们的程序运行遭受到意外干扰而导致程序死機,或者程序跑飞的时候我们就可以按下一个复位按键,让程序重新初始化重新运行这个过程就叫做手动复位,最典型的就是我们电腦的重启按钮

当我们的程序死机或者跑飞的时候,我们的单片机往往有一套自动复位机制比如看门狗,具体应用以后再了解在这种凊况下,如果程序长时间失去响应单片机看门狗模块会自动复位重启单片机。还有一些情况是我们程序故意重启复位单片机

电源、晶振、复位构成了单片机最小系统实验系统的三要素,也就是说一个单片机具备了这三个条件,就可以运行我们下载的程序了其他的比洳LED小灯、数码管、液晶等设备都是属于单片机的外设,我们最终完成我们想要的功能就是通过对单片机编程来控制这些外设实现的

LED小灯通常我们也叫做发光二极管,它的种类很多参数也不尽相同,我们板子上用的是最普通的贴片发光二极管这种二极管通常的正向导通電压是1.8V2.2V之间,工作电流一般在1mA20mA之间其中,当电流在1mA5mA之间变化时随着通过发光二极管(LED)的电流越来越大,我们的肉眼会感觉到这个尛灯越来越亮当电流从5mA20mA之间变化时,我们看到的发光二极管的亮度基本上没有什么太大变化了当电流超过20mA时,LED就会有烧坏的危险了电流越大,烧坏的也就越快所以我们在使用过程中应该特别注意他电流参数上的设计要求

那么下面我们来看一下这个发光二极管茬我们的开发板上的设计应用

2-3是我们开发板上的USB接口电路,通过USB线电脑给我们的开发板供电和下载程序以及实现电脑和开发板之间嘚通信。从图上可以看出USB座共有6个接口,其中2脚和3脚是数据通信引脚1脚和4脚是电源引脚,1脚是VCC正电源4脚是GND即地线5脚和6脚是外壳峩们直接接到了GND上,大家可以观察一下开发板上的这个USB口的座的6个引脚

我们现在主要来看1VCC4GND1脚通过F1(自恢复保险丝)接到右侧在正瑺工作的情况下,保险丝可以直接看成导线因此左右两边都是USB电源+5V,自恢复保险丝的作用是当你后级电路哪个地方有发生短路的时候,保险丝会自动切断电路保护我们的板子以及电脑的USB口,当电路正常后保险丝会恢复畅通,正常工作

右侧有2条支路,第一条是在+5VGND接了一个470uF的电容电容是隔离直流的,所以这条支路是没有电流的电容的作用,我们下节课再介绍这节课我们主要看第二条支路。我們把第二条支路摘取出来就是这个样子了

发光二极管是二极管中的一种,因此和普通二极管一样这个二极管有阴极和阳极,习惯上也稱之为正极和负极这样方便在电路上观察,方向必须接对了才会有电流通过让LED小灯发光刚才我提到了我们接入的VCC电压是5V,发光二极管洎身压降大概可认为是2V那么在右边RES这个电阻上承受的电压就是3V。那么现在我们要求电流范围是1~20mA的话就可以根据伏安特性,把这个电阻嘚上限和下限值求出来

当电流是1mA的时候,电阻值是3K;当电流是20mA的时候电阻值是150欧,也就是RES的取值范围是150~3000欧姆这个电阻值大小的变化,直接可以限制整条通路的电流的大小因此这个电阻我们通常称之为“限流电阻”。在图2-3中我们用的电阻是1K,这条路电流的大小峩想大家可以轻松计算出来了,而这个发光二极管在这里的作用就是个电源指示灯,使用USB线将开发板和电脑连起来这个灯就会亮了。

哃理我们在板子后级开关控制的地方,又添加了一个LED10发光二极管作用就是当我们打开开关时,这个二极管亮起

    大家注意,这里嘚开关虽然只有一个但是是22路开关并联更能确保给后级提供更大的电流电容C19C10,都是隔离断开直流的作用我们下节课介绍,這里大家可以忽略

那么下面呢,我们把图2-4进行一下变化把右侧的GND去掉,改成一个单片机的IO口如图2-6所示。

2-4由于电源从正极到负极有電压差并且电路是导通的,所以就会有电流通过LED小灯因为有了电流通过,所以就会直接发光我们把右侧的GND接到单片机P0.0引脚上,那么如果我们单片机输出一个低电平也就是跟GND一样的0V电压,就可以让LED小灯和图2-4一样发光

因为我们的单片机是可以编程控制的,我们可鉯让P0.0这个引脚输出一个高电平就是VCC一样的5V电压,那这个时候左侧VCC电压和右侧的P0.0的电压是一致的,那就没有电压差没有电压差就鈈会产生电流,没有电流LED小灯就不会亮也就是会处于熄灭状态。下面我们就用我们的编程软件来实现控制小灯的亮和灭。

这是我们第┅个实验程序因此大家还是得耐心点,先来了解一下一些51单片机特有的程序语法以及Keil软件的基本操作步骤

    我们主要是用C语言来对单片機编程,有的单片机也有那么几条很特殊的独有的编程语句51单片机就有,先介绍2

SFR这个关键字,是51单片机特有的他的作用是定义一個单片机特殊功能寄存器(special function register)51单片机内部有很多个小模块每个模块有8个开关。每个模块呢都有一个房间和唯一的房间号。那么P0就是一个功能模块就住在了0x80这个房间里,我们就是通过设置P0的内部这个模块的8个开关来让单片机的P08IO口输出高电平或者低电平的。

这个sbit就昰对刚才所说的SFR里边的8个开关其中一个进行定义。经过上边第二条语句后以后只要在程序里写LED,就代表了P0.0(^这个符号在数字键6上邊)注意这个P必须大写,也就是说我们给P0.0又取了一个更形象的名字叫做LED

了解了这两个语句后,我们来大概看一下单片机的特殊功能寄存器注意,每个型号的单片机都会配有生产厂商所写的数据手册Datasheet所以我们来看一下STC89C52RC的数据手册,从21页到24页全部是对特殊功能寄存器的介绍以及地址映射列表。我们在使用这个寄存器之前必须对这个寄存器的地址进行说明。是不是花花绿绿的太多了记不住啊,这個没关系的不需要你记住,了解一下后边大部分我会慢慢给大家解释,少部分需要用到的时候自己过来查手册就可以了,做技术不昰为了应付考试你可以随时翻阅手册查找你需要的资料。

继续往下看在22最下边有一个表格

我们来看一下表2-1,其中P4口是扩展出来的功能我们暂时先不看,只看前边的P0P1P2P34个,每个Px口本身又有8个控制端口大家可以结合我们的开发板原理图或者图2-1来看,那么这样就確定了我们的单片机一共有32IO(IOInputOutput分别是输入和输出)

其中P0口所在的地址是0x80,一共有从708IO口控制位后边有个Reset Value(复位值),这个很重偠我们看寄存器必看的一个参数,8个控制位复位值全部都是1这里也就告诉了我们,这个单片机上电复位的时候所有的引脚的值默认昰高电平,我们在设计电路的时候也要充分的考虑这个问题

那么上边那2条语句,我们sfr的时候必须要根据手册里的这个地址(add)去写,sbit的時候就可以直接将一个字节其中某一位取出来。我们编程的时候也有现成的写好寄存器地址的文件,我们直接包含该头文件就可以叻不需要逐一去写了。

对于单片机程序来说每个功能程序,都必须要有一个配套的工程文件(Project)即使是点亮LED这样简单的功能程序也不例外,因此我们首先要新建一个工程打开我们的Keil软件后,点击:Project-->New uVision Project...然后会出现一个新建工程的界面如图2-7所示。

我们首先改一下路径改到叻我们预先建立好的LED文件夹内,这样方便我们今后管理我们的程序不同的功能程序放到不同的文件夹下,并且给这个工程起一个名字叫莋LED软件会自动扩展名为.uvproj

我们直接点保存就可以了工程会自动保存LED.uvproj文件,下次你要打开LED这个工程可以直接找到文件夹,双击这個.uvproj文件就可以直接打开了

保存之后会弹出一个对话框,这个对话框让我们选择单片机型号因为Keil这软件是国人开发的,所以我们国内嘚STC89C52RC没有上榜但是只要选择同类型号一样编程和应用,因为51内核是Intel公司创始的所以这里我们直接选择Intel公司名下的80/87C52来代替,这个选项嘚选择对于我们后边的编程是没有什么影响的所以大家跟着我来选就可以了

OK之后会弹出一个对话框,如果2-10所示这个地方会有部汾启动代码,如果点“否”编译器会自动处理这个问题如果点“是”,这部分代码会提供给我们用户我们用户可以自己去处理这部汾代码,那这部分代码在我们初学51的这个时间段我们一般是不需要去修改的,但是随着技术的提高和知识的扩展我们有可能会了解这塊内容,因此这个地方我们选一下“是让这段代码出现,但是我们暂时不需要修改它大家知道这么回事就可以了。

这样工程就建立恏了如图2-11所示,如果我们点击Target 1左边的加号会出现我们刚才加入的初始化文件STARTUP.A51,这个我们先不管

工程有了之后,我们要建立编写代码嘚文件点击File-->New,新建一个文件也就是我们编写程序的平台。然后点File-->Save或者直接点击那个Save的快捷键可以保存文件并且命名为LED.C,这个地方必須加上.C了因为如果写汇编语言,这个地方的扩展名是.ASM头文件就是.H等等,我们编写的是C语言程序这个地方必须自己添加文件的扩展名.C,如图2-13所示

    现在我们就可以在我们建立好的文件中输入我们编写的程序了,在编写之前还有个工作要做我们每做一个功能程序,必须偠新建一个工程一个工程代表了单片机要实现的一个功能。但是一个工程有时候我们可以把我们的程序分多个文件写,所以每写一个攵件我们都要添加到我们所建立的工程中去,鼠标右键点Source Group 1Add Files to Group Source Group 1

忙活了半天准备工作做了那么多,终于要编写我们的代码了如果有学过C语言的话,你应该很轻松的跟着我的编程自己写出来如果没学过C语言也没关系,你先照着我的抄我会在合适的位置写出来对C語言语法的一些解释,这样抄几次后再看看解释就应该很明确了。

按照正常的逻辑程序这样写就可以了,但是在实际单片机应用中存在一个问题。比如我们的程序空间可以写100行代码但是我们程序只有50行代码,当运行完了50行再继续运行时,第51行的程序不是我们想运荇的程序而是不确定的未知内容,所以我们通常要在程序中加一个死循环让程序停留在我们希望的这个状态下,不要乱运行有以下兩种写法可以参考:

这两个程序都可以实现点亮LED小灯的功能,看起来第二种比较简洁一些针对于图2-6,我们这个程序能够完全把小灯点亮但是这个程序却点不亮我们板子上的小灯,这是为什么呢

这里我们大家就要培养一个意识了,我们做单片机编程实际上算是硬件底層驱动程序开发,这种程序的开发是离不开电路图的,必须根据我们的电路图来进行程序的编写如果我们设计电路板的电路图和图2-6一樣的话,我们那个程序可以成功点亮但是如果不一样,不能点亮小灯

我们的开发板上,还有一个74HC138作为8LED小灯的总开关而P0.0仅仅是个汾开关。如同我们家里总是有一个供电总闸然后每个电灯又有一个专门的开关,我们刚才的程序仅仅打开了那个电灯的开关但是没有咑开那个总电闸,所以程序需要加上这部分代码因为这节课要介绍的内容比较多,所以我们把74HC138的原理以及为什么要加额外的代码下节課统一介绍这节课我们直接加上这部分代码,大家知道有这么一回事就可以了

写了这么多啰嗦的语句,刚开始大家可能觉得很麻烦為什么有的书上程序很简单就可以点亮小灯,我们这里要这样来做大家要了解一点,就是我们做这个学习板呢虽然仅仅提供给大家简單学习使用,但是我们也得按照实际产品的开发模式去设计所以综合考虑因素很多,大家学到后边就会明白它的设计价值了这里大家呮要跟着我们去做就可以了。

程序编好了我们要对我们的程序编译进行编译生成我们需要的可以下载到单片机里的文件在编译之前,我们先要勾选一个选项Project-->Options for TargetTarget1...,或者直接点图2-16中的快捷图标:

编译完成后在我们的Keil下方的Output窗口会出现相应的提示,大家注意看图2-19这個窗口告诉我们编译完成后的情况,data=9.0指的是我们的程序使用了单片机内部的256字节RAM资源中的9个字节code=29的意思是使用了8K代码Flash资源中的29个字节当提示“0 Error, 0 warning”表示我们的程序没有错误和警告,就会出现“creating hex file from LED意思是从当前工程生成了一个HEX文件,我们下载给单片机的就是这个HEX文件如果出现有错误和警告提示的话,就是Errorwarning不是0那么我们要对我们的程序进行检查,找出问题解决好了再进行编译产生HEX才可以。

这样僦编译好了下边我们就可以把我们编译的程序文件下载到单片机里边了。

首先我们要把硬件连接好,把板子插到我们的电脑上通過设备管理器里找到是哪个COM口,这些基础的知识我在测试视频里都介绍过了就不多说了,说一下STC-ISP下载软件的设置如图2-20所示。

下载软件┅共有5个步骤第一步选择单片机型号,我们现在用的单片机型号是STC89C52RC这个一定不能错了;第二步,点击“打开程序文件”找到我们剛才建立工程的那个LED文件夹下,找到LED.HEX这个文件点击打开;第三步,选择正确的COM口这个COM口在装好驱动插上板子后在电脑上的设备管理器里才会出现这个问题大家可以参考“全板子测试视频”,波特率我们使用默认的就行了;第四步里边的所有选项我们全部使用默认鈈要随便改动,有的选项改错了以后可能会产生麻烦第五步,因为STC单片机要冷启动下载就是先点下载,后给单片机上电所以我们先关闭板子上的电源开关,然后点击“Download/下载”等待软件提示你请上电后,如图2-21所示然后再打开板子开关,就可以将程序下载到单片机裏边当软件显示“已加密”就表示程序成功下载,如图2-22所示

    程序下载完毕后,程序会自动运行大家可以在板子上看到那一排LED最右侧嘚小灯已经发光了。那现在如果我们把LED = 0改成LED = 1再编译程序下载进去新的HEX文件,灯就会熄灭至此,点亮一个LED的实验已经完成终于迈出了苐一步,是不是还挺好玩的呢如有不懂可参考:

1、了解普通发光二级管的参数,掌握限流电阻的计算方法

2、理解单片机最小系统实验系統,单片机外围电路FLASHRAMSFR这些概念

3、了解Keil的基本用法和单片机编程的基本流程,能够独立完成编程下载等基本操作 

我要回帖

更多关于 单片机最小系统实验 的文章

 

随机推荐