电子说
步骤1:什么是微控制器?
在使用微控制器进行设计之前,您确实需要知道什么是微控制器。尽管您可能还没有意识到,但微控制器仍然在您身边。许多人似乎对微控制器的想法感到不知所措。不久前,我和一个女人交谈,当我告诉她我使用微控制器时,她回答说那些事情远远超出了她。我回答说也许她还不能与他们一起设计,但是她一直在使用那些小型计算机。她似乎以为我很疯狂地建议她甚至可以以任何方式参与这种“高科技”的工作。这些微控制器是家庭和办公室中许多产品的大脑。这些微控制器可以在手表,微波炉,电话,汽车和卡车,DVD播放器和机器人中找到,实际上,几乎每个带有显示器的产品都将至少使用其中一种。因此,即使在工业化国家/地区,大多数人已经是微控制器用户,即使他们不这样认为。
什么是计算机?
微控制器是一种计算机,那么什么是计算机?所有计算机都由四个主要单元组成。这些包括输入单元,输出单元,中央处理单元和存储单元。输入单元是计算机获取将用来执行其工作的数据的方式。大多数人都知道台式计算机上连接的输入设备,键盘和鼠标等设备。中央处理单元执行运行计算机程序的工作。它由一个控制单元和一个算术/逻辑单元(也称为ALU)组成。这两个单元共同构成了中央处理器单元(CPU)。在工作时,CPU将其指令或程序以及正在工作的数据保存在内存单元中。计算机完成计算后,它将通过输出单元显示该工作的结果。连接到台式计算机的某些输出设备将是视频显示器和打印机。微处理器将计算机CPU的两个部分(控制单元和ALU)组合到一个集成电路(IC)或芯片中。
计算机可以完成大量不同的工作。您可能最熟悉的计算机是坐在办公桌上或办公桌旁并运行Windows或Linux或MacOS的计算机。这些通用计算机将帮助您键入信函或学期票据,平衡支票簿或会计账簿,或者通过浏览Web来研究不同的主题。计算机的另一种工作是运行(或控制)一件设备。通过将计算机输入单元中的电线连接到不同的开关或传感器,并将该计算机输出单元中的电线连接到灯,电动机和其他此类设备,计算机可以控制组装线,微波炉,立体声,甚至是飞机或太空飞船。实际上,任何可以由一个或多个开关操作的东西都可以连接到输出线并由计算机控制。这些专用于设备控制的计算机称为控制计算机,或简称为控制器。
就像微处理器将控制单元的两个部分组合到一个IC中一样,微处理器将计算机的四个部分组合到一个IC中–这些IC经过特殊设计,包含了对控制设备。因此,它们被称为微控制器。
如您所见,微控制器没有内在的复杂性。它们只是集成在单个芯片上的小型控制计算机。 Tiny2313实验系统上的微控制器是Atmel的IC(或芯片),称为AVR ATtiny2313A。
步骤2:告诉我您想做什么。
计算机仅在两次使用之间像门挡一样有用,而没有程序告诉它该怎么做。给出计算机指令以执行任务的过程称为编程。程序几乎只是计算机的指令列表。由于计算机仅知道电压水平的存在或不存在,因此Tiny2313芯片使用电压水平来告知其操作。 Tiny2313内部的所有指令和数据实际上都是(约)5伏或0伏的电压电平。为了方便起见,我们将这些电压电平表示为1和0,而不是为了方便计算机。但是,尽管这些表示形式很好,但对于人类来说仍然不是很容易。在计算机开始出现后不久,人们编写了工具来帮助对这些机器进行编程。最早的一些工具是语言翻译器,它采用了更像人类的语言,并将其翻译为计算机的一和零。高级语言或更接近人类语言的语言使程序员更容易告诉计算机该怎么做。将这些“高级”语言转换为计算机的机器语言的过程称为编译。
MCS Electronics为Atmel的AVR系列生产了一种称为BASCOM-AVR的语言编译器。 BASCOM是BASIC编程语言的一种变体。这种语言是由达特茅斯学院的两位教授于1960年代专门为初学者发明的。实际上,名称BASIC是首字母缩写,代表初学者通用符号指令代码;换句话说,它是通用的(通用)代码,供初学者向计算机提供执行作业的符号指令。它的设计易于学习,并允许非计算机专业的学生快速编写适用于大学计算机系统的程序。此BASIC的免费试用版仅受程序大小的限制。该限制为4K字节,这使BASCOM-AVR成为学习Tiny-2313微控制器的便捷之选。您可以从MCS网站下载该语言。
获取最新版本
在本书中,我们将安装和使用BASCOM- AVR。您需要从发布商MCS Electronics获得最新版本:
1。上网访问http://www.mcselec.com,然后单击屏幕左侧的“下载”。
2。在“下载”页面上,单击页面右侧“下载”列表底部的BASCOM链接。
3。在BASCOM页面上,单击下载列表顶部的BASCOM-AVR链接。
4。在此页面上,单击链接以下载BASCOM-AVR演示版本。
5。在“条款和条件”页面上,单击“我同意”单选按钮,然后单击该按钮继续。这将打开下载对话框,确保选中“保存文件”单选按钮,然后单击“确定”按钮。
6。在“保存到”对话框中,选择您的桌面,然后单击“保存”按钮。
7。单击浏览器上的后退按钮以返回到BASCOM AVR下载页面,并下载该手册。这有很多信息,并且组织得很好。 8.另外,在BASCOM-AVR页面上,您将找到有关BASCOM-AVR的更多信息,包括有关此编译器的文章。
9。关闭或最小化您的浏览器。
10。遵循说明安装BASCOM-AVR(您可以遵循MCS Electronics或电子书中的说明。)
步骤3:您正在驾驶我的螺母。
在PC上编写Tiny2313程序时,您需要将该程序转移到Tiny2313芯片上,本身,以便让控制器运行程序。要将程序放入微控制器,您必须有某种方法将程序从PC上获取到芯片中。工程师过去常常这样做的方法是拿起芯片并将其放入称为编程器的特殊设备中。上面是我旧的用于ATtiny2313控制器的Fun Card AVR编程器的图片。运行编程软件后,您将把装有程序的芯片放入电路中。如果或者更确切地说,当您发现程序中的错误时,您可以将芯片从电路中取出,将其放入专用设备中以擦除程序(通常需要几个小时),然后将其放回编程器中,然后启动程序。整个过程再次。这会一遍又一遍地发生,直到您使程序正确无误,或者(通常)您只是累了而退出。
我们将使用称为ISP下载器电缆的电缆。 ISP的缩写代表In System Programmer。这是工程师开发的一种方法,可以绕过使用专用程序员的旧方法。我们在微控制器板上有一个特殊的ISP连接器,只需将编程电缆连接到板上即可下载程序。所有编程活动均在电路板和微控制器芯片本身上完成。无需拉出芯片并移动它。
与套件一起订购的ISP被称为USBASP编程器。在谈论如何设置BASCOM-AVR时,我们前面提到了程序员。(如果您购买了其他型号,则需要适当地修改此Instructable。)
为了使计算机能够运行要使用硬件,您需要告诉它如何。您执行此操作的方式是加载程序,称为驱动程序。驱动程序只是一个程序,它告诉您的计算机如何与连接的设备通信。 Windows中内置有一些驱动程序,用来告诉您的计算机如何使用鼠标,如何阅读键盘,如何在屏幕上显示图片和文本。虽然不是所有人都使用USBASP编程器,所以我们需要为该编程器安装驱动程序。
与使用BASCOM编译器本身一样,您将需要为USBASP下载驱动程序。程序员。为此,请按照电子书中的说明进行操作,或访问以下网址:http://www.protostack.com/blog/2011/05/usbasp-driver-for-windows-7-and-windows-vista-x64/。/p》
第4步:让我们构建一个东西。
从面包板开始。
如果您不想获得套件, ,您将需要构建自己的开发套件(开发套件)。开发套件的最佳入门是使用无焊面包板。如果您不知道面包板是什么,请看一下我的面包板页面:http://projects.granzeier.com/what-is-a-breadboar 。..您将需要使用上面的图示来查看哪里放置跳线。您只需要三个组件:编程器连接器,ATtiny2313本身以及用于复位按钮的SPST,常开瞬时按钮开关。我使用了一个AVR面包板适配器(https://www.tindie.com/products/Granzeier/breadboard-avr-isp-adapter-kit/),但您也可以使用Real Eliot的USB Ghetto开发环境(https://www.instructables.com/id/EDRQZ56F5LD8KDX/,或任何其他AVR编程系统。
将组件放置在试验板上后,只需将点连接起来即可。您可能需要使用AVR ATtiny2313数据表(http://www.atmel.com/Images/doc8246.pdf-2313和2313A非常相似,在接线方面没有区别。只需对程序进行一些微小的更改(该程序在每个地方提到Tiny2313A的地方,如果您使用的是较旧的芯片,则只使用Tiny2313。)
步骤5:将您的2313连接到世界-点1。
让我们大放异彩
LED是一种仅允许电流向一个方向流动的装置,当电流确实流动时,它会发出光。您可以学习在我的商店中了解有关LED及其工作原理的更多信息:https://www.tindie.com/products/Granzeier/led-prototyping-pack/。)
带上LED并将引线修整到大约1/4英寸(或大约1厘米)。用黑色记号笔或一滴手指标记LED的阴极(负极引线)是个好主意指甲油-可以在切割导线后帮助您识别阴极。您将把LED的导线跨到面包板中,跨越两行。将一个360欧姆电阻(大约在220欧姆至470欧姆之间的任何地方都可以正常工作)的电阻放置在该行的其中一个孔中,并带有LED阴极和接地电源轨。阳极(或LED的正极)将空出,以便您可以将LED连接到Tiny2313微控制器。看看面包板上的LED/电阻对的照片,以了解我的描述。
下一步,将电路板向下移动(远离Tiny2313电路)约1英寸,并添加第二对LED/电阻。现在,在电路板下方再增加一英寸,再增加一对LED/电阻。这将为您提供三个LED,供您的微控制器打开和关闭。
尽管我在开发套件和商店的Tiny2313实验系统中都使用了所有绿色的LED,但没有理由您无法使用其他颜色的LED。实际上,您甚至可以使用三种不同的彩色LED。
步骤6:将2313连接到世界-Pt。 2。
您真的知道如何按下我的按钮。
要为您的Tiny2313提供输入,我们将使用简单的按钮开关。这些称为常开(NO)SPST,瞬时按钮开关。如果您看一下上面的开关的示意图,您会发现该开关由两个端子和一根小导体组成。当您按下按钮时,小导体被压在两个端子上,从而允许电流流动。稍后,我们将看到这如何使Tiny2313能够知道何时按下了按钮。
看看上面的照片,您会看到将按钮像放置在面包板上一样LED。使用短跳线将交换机的一个端子接地,而让另一端子自由连接至Tiny2313。将该开关电路从面包板上的最后一个LED/电阻对向下放置。
再重复一次,以便有两个按钮开关电路。
第7步:将您的2313连接到世界-铂。 3。
这是我耳中的音乐(至少是噪音)。
这是最后一步构建开发套件。拿起扬声器,然后将其安装在面包板上,距离最后一个按钮开关仅几步之遥。像开关一样,您将需要使用短跨接线将其中一个端子接地。您无法在图片中看到它,但它在扬声器下面,位于扬声器的下方-将扬声器的左端子接地。您将在另一端使用面包板连接器行将扬声器连接到Tiny2313。
您的开发套件现已完成。如果您想使其更加稳定和持久,则可以使用小滴胶水将组件固定在面包板上。如果选择此选项,请小心避免在任何面包板孔内粘任何胶水。
最后一个可选步骤(如果要使用永久版本)是您可以选择一个魔术笔并突出显示面包板排用于LED,开关和扬声器的未连接引线。
第8步:这是我的小亮点。..
大多数程序员在学习一种新的编程语言时,都会从一个名为“ Hello World”的程序开始程序。这几乎是用任何给定计算机的语言编写的最简单的程序。它所做的全部工作是将短语 Hello World 输出到输出设备上。这样做的唯一目的是快速取得成功,并向新程序员表明该语言确实有效。在控制器领域,事实证明,要做的事情远比输出一些文本简单得多。实际上,有时输出文本可能非常复杂,所以我们做的事情要简单得多。
微控制器世界中的Hello World等效项只是点亮一个LED。对于此Hello World实验,请首先研究上面的示意图。示意图只是表示电子电路的图片。在原理图的顶部,我们有一个指向右边的箭头。该符号表示Tiny2313的输出引脚的输入(至电路)。从那里,我们有一条线向右移一点,然后调低。这只是代表将输入连接到下一个组件的导线。该组件看起来像一个三角形,底部带有一条横条,左侧有几个小箭头。此符号代表发光二极管(LED);如上所述,该设备在电流从底部(带有条形)流到顶部时会发光。 LED的底部与之字形符号的顶部之间还有另一根导线。此曲折符号表示一个电阻;电阻器可保护LED和Tiny2313免受过多电流的影响。最后,还有另一根线连接到3条水平线的符号;
现在,使用上面的Tiny2313的引脚图,您需要从Tiny2313的PB.0引脚连接跳线(第一行,第二行)。 (从右)到最左边的LED的阳极。上图显示了用蓝线连接的LED。现在,别笑得太厉害-毕竟,我是一名工程专业人员,而不是一名艺术家。无论如何,请继续,然后将短跳线插入面包板。这就是准备第一个微控制器程序所需要做的全部工作。
步骤9:开始编程。
现在我们已经连接好组件,我们将在程序上工作。确保您没有将电池或其他电源连接到面包房,这将使您的实验系统从ISP插头获得电源。将USB编程器插入计算机上的USB插孔,并将电缆端插入Tiny2313面包板上的10针公接头。
双击BASCOM-AVR图标启动BASCOM-AVR。在编辑窗口(BASCOM-AVR中最大的白色窗口)中,键入以下内容:
‘标题:
’作者:Art Granzeier,GranzTronix
‘日期:
’说明:
‘配置节
$ regfile =“ ATtiny2313a.dat”’指定micro
$ crystal = 1000000‘内部RC时钟的频率
$ hwstack = 32’默认-将32用于硬件堆栈
$ swstack = 10‘默认-将10用于SW堆栈
$ framesize = 40’默认-将40用于帧空间
‘主程序
结束
在“作者”中使用您的名字而不是我的名字
(位于下面所附的Template.bas文件中。您可以将Template.bas中的内容复制并粘贴到BASCOM的编程窗口中。)
这称为模板;它只是一个骨架,我们可以在其上构建真实的程序。我们将使用此模板启动每个新程序,然后不必担心基本的“内务管理”。单击“文件”,然后单击“另存为”,保存您的模板。在“另存为”对话框中,将其命名为“ template”。从现在开始,每当您要为Tiny2313实验系统创建新程序时,都将从加载模板开始,然后更改名称。如果您不小心删除或覆盖了模板,则可以再次执行上述步骤来重新创建模板。
像Tiny2313A这样的计算机通常会从顶部开始执行程序,然后在整个程序中进行下去。这称为“自上而下”的程序执行。这确实非常容易,就像您遵循某人的书面指示一样;您可以从顶部开始,然后按照指示进行操作,就像正常阅读一样。
让我们仔细看看这里发生的情况。请注意,前四行都以撇号(单引号或’)开头,这告诉BASCOM编译器该行上的所有内容都是注释,而忽略它。将注释添加到程序中,以便程序员(您)可以知道程序在做什么。在开始时,我们只是提供有关程序的标识信息。实际上,这称为程序的标识部分。
下一部分以另一条注释行开头,其中包含所谓的指令。这些行以美元符号($)开头,它们指示BASCOM编译器如何进行设置。如注释行所示,这是配置部分的开始。前五行确实超出了本介绍的范围,但是如果您看一下刚刚输入的行,您已经可以对这些指令有所了解。第一条指令,其中包含Tiny2313实验系统上微控制器的名称。由于BASCOM可以将您的BASIC程序转换为Atmel AVR系列中许多不同的微控制器,因此它需要准确地知道目标芯片。此命令指示BASCOM将您的程序转换为ATtiny2313。现在,您只需保留上面配置部分的指令行即可。
模板中的最后一行是End语句。每个程序都必须以End语句结尾,以防止程序因内置的重置而重新开始。
现在我们有了这个框架,模板,设置,我们可以继续编写自己的程序了。 –完成框架后,这将非常简单。在编辑屏幕中,使用模板(如上所示,请记住,使用您的名字作为作者,而不是我的名字),通过单击“文件”菜单然后单击“另存为。..”条目来启动新程序。当“另存为”对话框出现时,通过在文件名字段中键入LED Test 01为程序命名,然后单击对话框底部的“保存”按钮。请注意,在BASCOM窗口顶部的蓝色标题栏中,BASCOM正在显示新程序的名称。现在您就可以开始输入新程序了。
像这样更新程序的标识部分开始:
‘标题:LED Test 01
’作者:Art Granzeier,GranzTronix(再次使用您的名字)
‘日期:13 Oct 13(使用今天的日期)
’说明:打开LED灯
接下来,转到配置部分的底部(在$ framesize指令的正下方)并添加以下行:
Config PortB = Output
在主程序注释行中,添加以下行:
set
PortB.0‘打开LED
因此,您的整个程序应如下所示:
’标题:LED测试
‘作者:Art Granzeier,GranzTronix(再次使用您的名字)
’日期: 2013年10月13日(再次使用今天的日期)
‘说明:打开LED
’配置部分
$ regfile =“ ATtiny2313a.dat”‘指定micro
$ crystal = 1000000’内部RC时钟的频率
$ hwstack = 32‘默认-使用32作为硬件堆栈
$ swstack = 10’默认-SW堆栈使用10
$ framesize = 40‘默认-帧空间使用40
Config PortB =输出
’主程序
设置PortB.0‘打开LED
结束
在将其下载到Tiny2313中之前,让我们仔细看一下这些行。标识部分与我们所讨论的一样。对您来说,这只是一系列注释,目的是让您知道该程序应该执行的操作。配置部分的开头(至少是指令语句)与我们之前所述的相同。配置部分中唯一的新增内容是对我们来说是新的声明。该行( Config PortB = Output )告诉控制器将端口B设置为输出端口。可以将端口引脚设置为读取引脚上的电压电平(0V或5V),称为输入,或者在引脚上施加电压(0V或5V),这称为输出。对于此程序,我们希望将引脚作为输出;因此我们将端口设置为输出。我们可以控制端口的各个引脚,但是在本例中,将整个端口设置为输出会更容易。
最后,我们要解决问题了。该程序的最新行( set PortB.0 )实际上是完成工作的部分。 set语句告诉控制器将引脚设为高电平,或将其设置为加5伏。该语句的其余部分告诉Tiny2313控制器哪个引脚设置为高电平,即PortB.0。看一下Tiny2313芯片的示意图;请注意,芯片上的引脚号12标记为PB0。 P的部分告诉我们,它是一个端口-这是一系列引脚,每个引脚都可以设置为感测电压(0V或5V)并对电压做出反应(该引脚在输入时称为输入)这样做),或者它可以输出一个电压(0V或5V),该电压可以控制灯,继电器,电动机或其他东西(该引脚称为输出)。正如在该行中提到的那样,这将点亮LED。在那个别针上。端口B是Tiny2313上可用的四个端口之一。
现在,我们已经编写了程序,我们需要将其转换为机器代码,然后将程序发送至控制器(或下载该程序)。 )请记住,从前,将程序从类似于人的语言(例如BASIC)转换为机器语言的过程称为编译。为了编译程序,您需要单击“程序”菜单,然后单击“编译”。这将启动编译器,并将您的程序转换为’2313芯片可以理解的内容,并且机器程序存储在BASCOM的缓冲区中,准备发送到Tiny2313芯片。
现在,您的机器语言程序已经存储在缓冲区中,需要将缓冲区发送到微控制器芯片。再次单击程序菜单,然后单击菜单底部附近的发送到芯片。这将打开一个新的Programmer窗口。您可以在Programmer窗口的主窗口中看到缓冲区。要将缓冲区发送到微控制器,请单击“芯片”菜单,然后单击“自动编程”。您的程序将被发送到Tiny2313,然后Programmer窗口将消失。
看看您的Tiny2313实验器系统;请注意,最右边的LED现在已点亮。恭喜恭喜。事情进展顺利,是吧?
步骤10:刚刚发生了什么?
请参阅上面的示意图,再一次。注意,按照该图,我们将从Tiny2313取得一个输出,并将其连接到LED,然后通过电阻将其连接到地。对?
什么?怎么了?
全部0条评论
快来发表一下你的评论吧 !