为什么我们不用Java,Python等更简单的高级语言?

我们使用51单片机开发项目时使用的编程语言主要有两种,即汇编语言和C语言,通常情况下多数人使用的都是C语言。以上都是C语言的一些常规优势,下面我们再来看看使用C语言进行单片机编程的一些优势:

点击上方蓝字“落木青云”关注我们!

为什么是C?

从本文开始,我们将讲解单片机编程和开发相关的知识。 如果你没有编程基础或者对编程不是很熟练,就跟着从基础开始学吧。 但一定要记住,读完本文后,一定要多思考,多查资料。 只有多练习才能掌握,否则就会跟不上后面的内容,失去学习的兴趣。 如果有疑问可以留言或者私信。 有基础知识的朋友可以跳过这些基础知识讲解。 当然,如果有时间的话,我还是建议值得一读。 毕竟我是一个字一个字打出来的。 为了保住我的面子,如果你发现什么错误,最好指出来。 好吧,明天是星期六,所以这篇文章可以更散漫一些。

我们使用51单片机开发项目时主要使用两种编程语言,即汇编语言和C语言。 通常,大多数人使用C语言。 有些人看到组装可能会想到微型计算机的原理。 微机原理难吗? 这是相对困难的。 之所以困难,很大程度上是因为它需要用汇编语言来开发。

为什么我们不使用Java、Python等更简单的高级语言呢? 因为那时他们还没有出生,而且他们的母亲还年轻。

一切都取决于环境。 俗话说,经济基础决定上层建筑。 这些高级语言消耗大量的内存空间。 对于早期的8086、8051等控制器来说,其内部资源非常有限,甚至没有内部RAM。 你需要一个插件才能使用它,每一点资源都得省着省着。 现在他们看到Java、Python等语言,只能说,我做不到! 汇编语言的特点是结构紧凑,非常容易访问底层硬件,特别容易生成机器代码,因此具有天然的优势。 然而它最大的缺点,也是最致命的,就是它的代码可读性差、难记。 ,简单来说,这家伙是亲机器而不是亲人类的。我们人类最喜欢偷懒,就像手写的机器代码编译完就被抛弃了(有些人可能没听说过手写)打出机器码,你应该在一些科技纪录片或者电影里找找,说实话,现实版我没见过,科技馆里应该有一个。所以当时计算机科学等专业肯定不是热门专业,谁愿意花那么多功夫整天看一堆纸呢?找不到老婆怎么办?后来发展了C语言,保持了优秀的低汇编级的访问效率,可读性大大增强(对硬件的访问效率稍逊于汇编,而且代码也没有通过汇编来简化,但总算免去了记忆代码的麻烦,是的,没关系牺牲一点效率和空间)。后来计算机资源越来越丰富。 Java、Python等高级语言问世后,C语言逐渐变得孤独(对吧,人啊,善变。如果你找到了一个富婆(父亲),你可以“抛弃你的妻子(丈夫)”)并抛弃你的孩子”。外表(年龄)根本不重要。

),但它的情况比纸带编码和汇编要好得多。 至少对底层有很好的可读性和足够高的访问效率。 其在电子和微控制器领域的地位无人能取代。 因此,只要未来人类社会仍然使用电子产品,C语言就应该仍然存在。

上面说了这么多,就是为了解释为什么选择C语言进行单片机开发的原因。 同时也说明,如果掌握了C语言,虽然可能不如游戏开发、移动应用开发、网页开发,但就不愁找不到工作了。 开发这样的互联网行业很容易就能赚到百万年薪,但无论情况有多糟糕,电子行业总有一家公司可以容纳你。 而且当你有了C语言的基础之后,你学习其他语言就会更容易,也能在互联网行业找到一份工作。

有很多初学者可能意志不坚定,看到其他语言很简单或者朋友擅长某件事就开始学习其他语言。 这个是正常的。 我认为选择没有对错之分,你也不会。 如果因为一个选择而错过了人生,更何况这世上的成功与失败又算得了什么? 这是一个非常主观的词。 即使最终确定了,也没有人能评判你的成败(后人评论不关他们的事)。 因此,尤其是大学生,最好在毕业前多探索一些自己喜欢的事情。 这比做一个玩游戏的胖书呆子要好。 我昨天不是刚考完高考吗? 如果今年刚高考的朋友看到​​这篇文章,立志成为程序员,那么我想说,年轻人,不管考试成绩如何,趁年轻就去做吧。 !

前段时间,我有一个小弟弟,他是我的粉丝。 初中毕业后,他已经从事汽车修理工作快五年了。 看完我的视频后,他告诉我,他想将来更专业地学习电子和修车,并获得更高的薪水。 他的工作给我留下了深刻的印象。 我非常认同他的学习热情,他的目标也很明确。 我认为这孩子有很多前途。 他还买了学习的材料、书籍、仪器,他也意识到自己需要有人照顾,所以我让他有什么问题就告诉我。 这段时间他遇到问题都会找我倾诉。 虽然一开始他问的问题都很基础,但有些问题甚至让我哭笑不得(有些可能是代沟问题)。

毕竟2000年以后的大脑回路和我还是不一样),但我尝试根据他的理解来回答。 现在他问的一些问题逐渐变得更加专业,这是一件非常有趣的事情。 一个比较的例子是我的侄子,他受过高中教育。 几年前,他说想向我学习。 我当面告诉他需要准备什么,学习什么,怎么做。 我也给了他预习需要准备的材料。 我让他遇到问题时告诉我。 前两天他还可以问一些问题,但是过了一周左右,我就问他学习进度了。 后来我再问他,也得不到答复。 如今几年过去了。 他正在做一项我无法理解的工作。 我不知道这是好事还是坏事,也不知道是我对他的期望太高了。 我的结论是,无论学什么知识,只有明确目标,监督自己,认清现状,调整状态,找到适合自己的解决方案,一步步实现小目标,才能取得成果。 。

咱们先不扯太远了,上面的内容应该在另一篇文章中打开,然后进入正题。

C语言简介

C语言是1972年由美国AT&T贝尔实验室的Dennis Ritchie为了移植和开发UNIX操作系统而设计开发的。 它的代码比汇编语言更具可读性和可移植性。 C语言也是一种高级语言。 我们知道,高级语言在效率和代码空间上都不如汇编。 但一方面,C语言有指针。 该函数允许它直接对硬件地址进行操作。 另外,C语言利用编译器的优化大大提高了执行效率并减少了程序空间。 在实时性要求较高的场合,还可以通过C语言嵌入汇编代码来实现该功能。 对于较大的程序,C语言在开发速度和结构清晰方面比汇编更有优势。

C语言标准是由美国国家标准协会(ANSI,全称:美国国家标准协会)于1988年制定的。

截至 1973 年,UNIX 操作系统完全用 C 语言编写。

目前,C语言是应用最广泛的系统编程语言之一。

大多数先进的软件都是使用C语言实现的。

当今最流行的Linux操作系统和RDBMS(Relational Database Management System:关系数据库管理系统)MySQL都是用C语言编写的。

C语言可以用于大多数软件开发场景。

甚至其他很多高级语言都是用C语言开发的。

以上是C语言的一些一般优点。 我们来看看使用C语言进行单片机编程的一些优点:

●作为高级语言,可读性强,不依赖于机器,可移植性好。

●可直接访问物理地址,程序执行效率高。

●可进行位运算,提高寄存器访问效率。

●拥有复杂的数据类型可以增强程序的处理能力。

●即使不懂单片机指令集,仍然可以编写单片机程序。

●具有常用的标准函数库。

●具有专门针对MCS-51单片机的code、data、idata、pdata、xdata等多种存储类型,满足不同的需求,并能自动为变量分配合理的地址。

●具有小型、紧凑、大型等多种编译模式,可适应不同大小的片上存储器。

总之,可读性强、功能先进、效率高、可移植性好。

读清楚。 这里还是说说为什么选择C语言进行开发。 上一节太长了。 如果您不想阅读它,请阅读本节。 如果你想练习这个技能…

C51编译器

51单片机的开发和编译器有很多。 现在比较有名的是IAR for 8051编译器和KEIL for C51编译器。 不过,这两个软件都不是免费的。 官网提供的免费版本有使用限制。 另外,还有一些编译器是免费的,但需要一定的基础。 不建议初学者使用它们。 等你强大了之后就可以自己配置编译环境了。

我简单介绍一下两个免费的编译器:可以跨平台使用的开源编译器sdcc。 有时间的话可以查一下资料,自己搭建一下。 以后有时间的话我会做一个教程。 另外,微软提供的免费且功能强大的代码编辑器Visual Studio Code也可以配合一些第三方插件工具实现各种单片机编译功能,效果也不错。 我们稍后会讨论这个。 IAR for 8051编译器和KEIL for C51编译器都可以从官网免费下载。 您可以自行下载并安装。 下面的内容以KEIL for C51编译器为例。 上一个视频中提到了KEIL for C51编译器的安装。 如果您不知道,可以点击查看:

C语言变量类型和数据范围

有C语言基础的朋友可能不会看或者简单看一下。

什么是变量? 变量自然是相对于常量而言的。 常量是确定的数据或字符(字符串)如1、2、3、4.5、10.6等,而变量则与中小学方程中的a、b、c…x、y、z相同。 它们可以是1,也可以是2,或者任何其他数字。

过去,数学中的正数、负数、整数和小数都可以是无限的。 然而,由于计算机系统内部空间的限制,在C语言中,除了名称与数学中学到的不同外,数据范围也有一定的限制。 C语言中,基本数据类型分为字符型、整型、长整型和浮点型,它们的数值范围不同。 而且,C51中的数据范围与传统计算机平台略有不同,并且将来在其他微控制器中也可能有所不同。 这都是由单片机的硬件属性决定的。 这一点不需要背,但是以后编程的时候可以多理解一点。 只要关注并具体问题具体分析即可。 我们平时编程的时候,也应该考虑数据类型的合理使用。 正确地为变量分配数据类型可以避免数据溢出并节省内存空间。 优化程序时还应考虑数据类型的合理符合。

C51数据类型和范围见下图:

为什么我们不用Java,Python等更简单的高级语言?

C语言基本运算符介绍

就像小学学习数学时的加、减、乘、除等运算符号一样,这些运算也包含在C语言中,只是有些表达方式不同,还有其他额外的运算符号。 在C语言编程中,加减乘除余数的符号有:+、-、*、/、%。 另外,C语言中还多了两个运算符++和–。 它们的用法是一样的。 一种是加1,一种是减1。以上运算符称为算术运算符。 具体功能如下:

为什么我们不用Java,Python等更简单的高级语言?

和数学中的关系运算符一样,C语言中也有关系运算符,只不过你可能不认识它们的写法,比如>、

单片机

单片机最小系统之电源关掉对应的是四十关键

2024-1-28 4:01:11

单片机

STC8989CC5252RC系列单片机最小应用系统最小系统

2024-1-28 5:00:55

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索