-3

Hi i'm wanting to program microcontrollers but i don't really know how to do it and what i need to do it. I have no idea where to look in the slightest for the information i need. I've been coding with python for around 11 months now and i know how to use the language well. I've used c++ in the past and i know quite a large amount of that language too.

When programming microcontrollers can the microcontroller be programmed with any coding language or do microcontrollers only allow certain languages to be used with it?

I have endless amount of questions but i'm not going to ask them all, if someone could please point me in the right direction i would be very grateful. Thanks.

4

2 回答 2

4

问题在于“程序化”这个词。微处理器(您的意思是 CPU,对吗?)通常执行特定于其硬件平台的机器代码。机器代码只是从内存中读取并以特殊方式解释的字节。这是处理器可能被编程的最低级别(并且有一天是这样编程的)。

现在由于这种方式编程处理器非常不方便,因此发明了所谓的“汇编语言”。基本上,它们只是定义机器代码的符号表示和它们的解释规则集。然后,一个称为翻译器的特殊程序获取一组包含用汇编语言编写的程序定义的文本文件,并生成包含机器代码并可能由目标处理器执行的内容。(这个“东西”的定义很难,我们不要离题。)

现在还有一个更高的层次——像C(并且,在较小程度上,C++)这样的语言试图抽象出特定硬件平台的细节,并允许专注于算法和数据格式,而不是处理特定的处理器。显然,这会将特定 H/W 平台的知识转移到编译器——该程序采用高级语言编写的程序文本并生成可由目标处理器运行的内容。

现在还有一个更高的级别,其中包括几乎完全将您从硬件平台的任何特殊性中抽象出来的语言。阅读 Stack Overflow 时在浏览器中运行的 JavaScript 就是一个很好的例子——其中的程序仍然由运行浏览器的设备的处理器执行,但在这些 JS 脚本和处理器之间存在许多复杂的代码层。

到目前为止,您应该看到您的问题没有明确的答案。如果您想在卧室 PC 上涉足 CPU 的低级代码,请在谷歌中搜索“x86 assembler”、“intel assembler”等。是一个好的开始。如果您想对其他处理器进行编程,则要使用的搜索查询将是类似的。相反,如果您想对AVR之类的专用处理器进行编程,请从该产品手册开始,因为它们通常带有专用工具。

于 2013-07-16T10:36:04.083 回答
1

如果您有兴趣使用基本实用程序,就像您说的“喜欢做一些基本的事情,比如制作 LED 闪光灯等”。

选择基本的微控制器,比如 8051 系列,我们将采用 89c51(NXP/Atmel 取决于可用性)。首先阅读用户手册,它会给你一个简要的想法(整体架构)。关于编程,您只会在手册中找到 LED 闪光灯的基本代码(可能)。如果您使用的是 NXP 微控制器,那么Flashmagic软件可以在互联网上免费获得,您可以下载它。在您的 IDE(如 keil)中,完成编码后不要忘记创建“ .hex ”文件。现在打开 Flashmagic 并在其中加载您的.hex文件并为您编写的特定代码刻录您的微控制器。

祝你好运!!

于 2013-07-16T11:06:44.800 回答