0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是微控制器?如何编程微控制器?

我快闭嘴 来源:贤集网 作者:贤集网 2020-08-21 15:40 次阅读

通常,我们正在设计电路,并通过提供该电路使用的电源来连接到其他不同的组件,例如电动机,LCD,LED。用该电路编程时,微控制器会做什么?微控制器系列理解用汇编语言或C语言编写的程序,该程序必须被编译成称为二进制语言(即零和一)的机器语言。已编程的文件存储在计算机硬盘或微控制器的内存中。汇编程序用于将汇编程序转换为机器代码。要使用汇编语言编写程序,程序员必须具有CPU硬件方面的知识。低级语言用于交叉开发。十六进制系统被用作表示二进制数的更有效方法,而使用二进制语言时,CPU的工作速度非常快。

今天,我们可以使用许多不同的编程语言,例如C,JAVAORACLE等。这些语言称为高级语言。以高级语言编写程序,程序员不需要任何用于高级应用程序开发的硬件方面的知识。编译器在将高级程序转换为机器级方面起着至关重要的作用,因为本机开发中使用了高级语言。

以下是微控制器编程中使用的一些工具:

Keil uVison

Code Editor

Assembler

C compiler

Burner/Programmer

Keil Uvison:

Keil Uvison是免费软件,可以解决嵌入式开发人员的许多难题。该软件是集成开发环境(IDE),集成了文本编辑器以编写程序,编译器,并将源代码转换为十六进制文件。

Keil uVsion软件

开始使用Keil Uvison的指南:

1.单击桌面上的Keil Vision图标。

2.单击标题栏中的“项目”菜单

3.通过在C:\或D:\中自己的文件夹中键入适当的项目名称(不带扩展名)来保存项目。

4.然后点击上方的保存按钮。

选择项目的组件。即Atmel……

根据需要,单击+符号。此处示例选择了Atmel。

5.选择AT89C51,如下所示

6.然后点击“确定”

7.然后单击“是”或“否。..……,主要是“否”。

现在您的项目已经可以使用了。

现在双击Target1,您将获得另一个选项“ Source group 1”。

8.单击菜单栏中的文件选项,然后选择“新建”

9.下一个屏幕将显示为文本页面

10.现在开始用“ EMBEDDED C”或“ ASM”编写程序。

对于要用汇编语言编写的程序,我们必须将其保存为扩展名“。 Asm”和基于“ EMBEDDED C”的程序,我们必须将其保存为扩展名“ .C”

11.现在,右键单击“源组1”,然后单击“将文件添加到组源”

12.现在,根据保存文件时提供的文件扩展名进行选择。

在选项“ ADD”上仅单击一次。

现在按功能键F7进行编译。如果发生这种情况,将出现任何错误。

如果文件中没有错误,请同时按Control + F5。

代码编辑器或文本编辑器:

代码编辑器用于编写程序。 uVision编辑器包括所有标准功能,例如突出显示颜色语法并快速识别错误。调试时可以使用该编辑器。自然的调试环境可帮助您快速识别和纠正程序中的错误。在代码编辑器中编写程序后,根据您选择的汇编器将文件保存为.asm或.C格式。

汇编器:

汇编程序用于将源代码(低级语言)转换为机器级(二进制格式)。

编译器:

编译器用于将源代码(高级语言)转换为机器级别(二进制格式)。

使用DOS编辑器或其他编辑器创建第一个文件。

汇编器将生成目标文件和文件列表。目标文件的扩展名是“ .obj”,而列表文件的扩展名是“ .lst”。

汇编程序需要执行的第三步称为链接。链接程序获取一个或多个目标文件,并生成扩展名为“ .abs”的目标文件。

将“ .abs”文件输入到名为OH(目标到十六进制转换器)的程序中,该程序会创建一个扩展名为“ hex”的文件,该文件可直接写入微控制器ROM

Burner/Programmer:

对微控制器进行编程或刻录意味着“将程序从编译器传输到微控制器的存储器”。微控制器的程序通常是用C或汇编语言编写的,最后编译器会生成一个十六进制文件,其中包含机器语言指令(例如零和微控制器可以理解的指令)。正是微控制器的内容被传输到微控制器,一旦程序被传输到微控制器的存储器,它就根据该程序工作。

如何编程微控制器?

微控制器是一种集成芯片,我们在其中存储以汇编语言编写的代码。因此,要将编码后的程序转储到微控制器IC中,我们需要一种称为刻录机或编程器的设备。程序员是一种带有软件的硬件设备,该软件可以读取存储在PC或笔记本电脑上的十六进制文件的内容。它会读取十六进制文件数据串行或USB电缆,并将数据传输到微控制器的内存中。

对于不同的微控制器来说,编程器和编译器是不同的,这对于不同的公司来说是不同的,例如使用8051微控制器“ flash magic”对微控制器进行编程,以及使用AT89C51微控制器“程序员”对微控制器进行编程。这就是我们在带有刻录机或编程器的微控制器中编程代码的方式。

什么是微控制器?

尽管您不知道,但您家里可能有很多这样的东西!微控制器是一种集成电路(IC)或“芯片”,通常用于家庭中装有电子电路的设备中。您可能听说过微处理器,例如Intel Pentium,它们被用作计算机中的CPU(中央处理单元),实际上是“大脑”。微处理器是集成电路,用于处理计算机程序中的指令,执行计算并将数据发送到内存和磁盘以及从内存和磁盘发送数据。微控制器是一种特定类型的微处理器。它与普通的微处理器在以下方面有所不同:

它具有内置的“ I / O”(输入/输出)功能。因此,它可以读取和写入数字和模拟值/状态,并直接连接到“现实世界”。与微处理器不同,微控制器可以直接连接到开关,按钮,LCD显示器,LED,继电器和串行端口

微控制器通常用于中低复杂度的设备中的特定任务。这与处理各种软件应用程序的PC中使用的强大的数字处理微处理器形成鲜明对比。

微控制器通常用在依靠电池供电的便携式设备中。数码相机。因此它们通常功耗低且消耗电流小(与台式计算机中的散热风扇冷却微处理器不同)

与PC中的微处理器相比,微控制器中的RAM通常范围从64k到最小1k。

微控制器中的程序通常存储在EPROM或EEPROM中。这是一种非易失性(设备关闭时程序不会消失)的非易失性存储器,可以连续擦除和重写。

单片机用途

许多设备都使用微控制器。一些例子:

防盗警报器包含一个微控制器芯片,该芯片连接到键盘,显示器和传感器/触点输入。微控制器通常是自包含芯片,而ALU(算术逻辑单元),存储器和I / O全部包含在一个集成电路中

较早的自动洗衣机使用凸轮开关在洗涤周期内对操作进行排序。这是一个相当复杂的开关,安装在您用来选择清洗程序的旋钮轴的末端。较新的机器使用微控制器对操作进行排序。微波炉和洗碗机等其他设备可能会包含微控制器

电视使用微控制器来处理频道的选择并读取电视上按钮的状态

微控制器用于发动机控制和在车辆的仪表板(仪表板)上显示信息

数码相机使用微控制器来处理来自按钮的输入,图像捕获和显示的控制。

单片机实例

一些常用的微控制器:

Zilog Z8

Intel 8051

Texax Instruments TIMSP430

Atmel AVR

什么是Arduino

Arduino是基于Atmel微控制器的开源硬件/软件编程平台。开源意味着可以免费获得设计中使用的电路原理图和软件源代码,并且发烧友可以对其进行修改。 Arduino开发板及其模拟和数字输入和输出,是希望将系统组装在一起而无需了解大量数字设计知识的艺术家,设计师和电子爱好者的理想选择。使用排成一排的凹型连接器可在Arduino板上提供输入和输出信号,可将单个引线或单列(SIL)连接器插入其中。

Arduino开发板将至少具有:

9个数字引脚,可以用作输入/输出通道。其中一些可以设置为PWM(脉冲宽度调制)输出。 PWM信号是方波,其脉冲宽度可以改变。 PWM用于机器人和远程控制应用中的电机和伺服器的速度和位置控制

4个模拟输入通道。

至少一个串行端口,也可用于将代码下载到Arduino

一些板卡还具有一系列模拟输出通道。

引脚的功能具有高度的灵活性,其中一些引脚可以配置为模拟或数字。数字引脚可以配置为输入或输出。

当Arduino板从连接到这些模拟和数字输入的传感器接收输入时,它们会感知周围的环境。他们还可以控制执行器,例如电机,警报器和电动阀,或打开LED,灯或其他视觉指示设备。输出的输出驱动能力有限,因此通常必须在Arduino输出引脚和被驱动设备之间使用晶体管,FETS或继电器。但是,有一个输出能够直接驱动LED。

板上的连接器以标准方式布置,以便可以连接屏蔽。屏蔽是具有专用功能的模块(例如,红外输出,蓝牙,GSM,WIFI,以太网,使用Relas的电机开/关控制,步进电机控制)。根据屏蔽类型的不同,可能可以将多个屏蔽叠放在一起,然后通过I2C串行总线分别寻址。

由于Arduino代码和硬件是开源的,因此第三方开发人员已经制作了Arduino官方开发板的副本。

Arduino开发板具有32至512k的闪存,可用于程序存储。

Leonardo-特定型号的Arduino开发板。数字引脚可以配置为输入或输出。除了标准模拟输入之外,几个数字引脚还可以兼作模拟输入。

Arduino开发板可以用来做什么?

Arduino开发板可用于做很多很酷的事情。您可以轻松添加LCD显示屏,键盘或七个分段显示模块,并快速构建一个简单的系统。 Arduino.cc网站上提供了大量信息和库。您可以设计自己的电子插件或使用屏蔽罩来构建模块化系统。 Arduino由于其多功能性,可用于简单,平凡的任务或复杂的应用程序。一个简单的应用示例就是当室内温度降至一定水平以下时开启设备的功能。扩展此应用程序并添加一个GSM模块可以很容易,它可以在发生这种情况时发出文本消息。 Arduino开发板可用于实现复杂的家庭自动化系统,该系统可通过智能手机进行控制。发烧友还将它们用作机器人中的处理和控制设备,并提供了用于构建简单的轮式机器人的套件。

Micontroller项目-对Arduino开发板进行编程

Arduino板使用C语言编程,并提供了高级功能,作为对模拟和数字引脚以及串行端口进行读写的标准功能。源代码被称为“草图”。标准库也可用于诸如输出到LCD面板或与GSM模块通信的任务。发烧友还贡献了许多其他库和代码,这些库和代码可在Arduino网站上找到。

Arduino网站上提供了基本的代码编辑器/编译器,可用于开发程序。但是,该编辑器基本上就像写字板一样,不提供任何颜色编码突出显示或具有复杂的调试功能。 Atmel Studio是Visual Studio的简化定制版本,是提供这些功能的替代方法。

使用串行端口或USB连接将程序下载到Arduino板上。然后,引导加载程序会在重置时将程序加载到内存中,因此不需要外部编程器。
责任编辑:tzh

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6803

    浏览量

    147596
  • led
    led
    +关注

    关注

    237

    文章

    22441

    浏览量

    645834
  • 单片机
    +关注

    关注

    5998

    文章

    43963

    浏览量

    620682
收藏 人收藏

    评论

    相关推荐

    如何用memtool与xc866微控制器通信?

    请告诉我如何用memtool与xc866微控制器通信
    发表于 03-04 07:27

    S1C17M02,S1C17M03微控制器

    微控制器
    Piezoman压电侠
    发布于 :2024年01月24日 17:53:48

    微控制器基础】——从历史切入,了解微控制器的五个要素(上)

    微控制器基础】——从历史切入,了解微控制器的五个要素(上)
    的头像 发表于 12-07 10:55 195次阅读
    【<b class='flag-5'>微控制器</b>基础】——从历史切入,了解<b class='flag-5'>微控制器</b>的五个要素(上)

    微控制器基础】—— 从历史切入,了解微控制器的五个要素(下)

    微控制器基础】—— 从历史切入,了解微控制器的五个要素(下)
    的头像 发表于 12-06 17:23 268次阅读
    【<b class='flag-5'>微控制器</b>基础】—— 从历史切入,了解<b class='flag-5'>微控制器</b>的五个要素(下)

    AT32微控制器硬件设计指南及抗EMC设计要点

    本应用笔记为使用AT32系列微控制器芯片的硬件设计人员提供参考设计,包括供电电源要求、时钟管理、复位管理、调试接口的管理。它说明了使用AT32系列微控制器芯片所需的最低硬件资源。文中介绍了有关硬件
    发表于 10-25 07:54

    智芯微控制器在汽车自吸门上的应用

    智芯微控制器在汽车自吸门上的应用
    的头像 发表于 10-19 18:22 308次阅读
    智芯<b class='flag-5'>微控制器</b>在汽车自吸门上的应用

    ST微控制器EMC设计指南

    对更高性能、复杂性和成本降低的持续需求要求半导体行业开发具有高密度设计技术和 更高的时钟频率。这从本质上增加了噪声发射和噪声灵敏度。因此,应用程序开发人员现在必须在 固件设计、PCB布局和系统级。本说明旨在解释ST微控制器的EMC功能和法规遵从性标准,以帮助应用程序设计者达到EMC性能的最佳水平。
    发表于 10-10 06:58

    STM8S微控制器参考手册

    导言本参考手册为应用开发人员提供了关于如何使用STM8S微控制器的存储和外设的完整信息。STM8S是一个拥有不同存储大小,封装和外设的微控制器家族。■ STM8S针对通用应用而设计
    发表于 09-25 07:33

    如何选择微控制器

    干货 | 如何选择微控制器
    的头像 发表于 09-21 17:23 340次阅读

    嵌入式编程微控制器应用

    欢迎进入嵌入式编程微控制器应用的世界!使用日益流行且价格适宜的AtmelAVR嵌入式控制器作为学习平台。本书是目前可以获得的最佳书籍之一。对于初学者,本书将会是极好的选择。随着
    发表于 09-20 07:52

    CW32系列微控制器选型表分享

    CW32系列微控制器选型表
    发表于 09-15 07:30

    汽车微控制器的供电电压

    微控制器供电 微控制器的供电电压可以分为以下几种: ·5V:5V是最常见的微控制器供电电压,包括许多传统的8位微控制器和一些较老的16位微控制器
    的头像 发表于 07-19 10:45 818次阅读
    汽车<b class='flag-5'>微控制器</b>的供电电压

    什么是微控制器?它是如何工作的?

    微控制器(MCU)普遍存在于电子产品中,如果你的微波炉有LED或LCD屏幕和键盘,则它肯定包含微控制器。汽车也是一样,可以有很多个:发动机由微控制器控制,防抱死刹车、巡航
    的头像 发表于 07-06 11:12 1200次阅读

    MPC5642A微控制器是否支持CANOpen?

    MPC5642A 微控制器是否支持 CANOpen? 我正在使用 MPC5642A 微控制器,这个微控制器有 CANbus 接口。我想用这个微控制器与一个带有 CANopen 接口的传
    发表于 06-09 06:29

    LPC54606J512BD100微控制器无法连接到目标怎么解决?

    我正在使用LPC54606J512BD100微控制器并面临一个非常严重的问题。 问题是,在成功对控制器进行编程并随机工作后,我无法再次上传代码并出现错误。 关于编程板: 使用 LP
    发表于 05-31 07:48