找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10975|回复: 40
收起左侧

51单片机和arduino哪个好?怎么选?

  [复制链接]
ID:849078 发表于 2020-11-27 11:08 | 显示全部楼层 |阅读模式
很多刚入门的电子爱好者刚开始学习的时候都会遇到一个问题,那就是单片机和arduino要如何选择的问题?51单片机和arduino究竟学习哪个好?今天我们就来详细的聊聊两者的优缺点和选择的问题。
timg.jpg

Arduino

Arduino



有部分朋友支持先学51单片机,理由是51单片机涉及的东西比较多,比如模电,数电,c等。如果没有C基础,底层的东西不学习,原理不清楚那么学习其他的也走不远,毕竟觉得大家学这个不是为了会玩,而是为了以后的工作着想。
有部分朋友支持学习arduino,理由是arduino不止是一块板子,而是包括编译器在内的系列产品。如果先学51单片机,做一个产品时间超长,而且大部分初学者刚开始很有热情,但经过一些困难后到最后很多都会放弃。在学51时,如果没学完,但又急着想做东西出来用,这时候arduino可以解决的,就可以用arduino来做,又快而且不耽误学习时间。


51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力,一般广泛应用于工业测控系统之中。
Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它适用于爱好者、艺术家、设计师和对于"互动"有兴趣的朋友们。


51单片机和arduino哪个好?

51更底层一些,但如果想玩机器人,智能车之类的就可以用arduino更方便些。不过现在的话51还算是主流点的,51和c语言是基础,在此基础上即可学习arduino也可选择学习stm32这些复杂一些的。
arduino和51单片机,基础都是C言语,都需要懂得一些硬件知识,51单片机是单独针对单片机的,arduino其实可以说包含单片机在内及现在的物联网通讯控制都可以做,像ESP8266wifi模块,ESP32wifi蓝牙模块都直接可以用 arduino 来编写。
arduino更加基础一些,ar的标准是面对中学生的,编程较为简单,51则比较繁琐,但51的面向范围更广。如果您是一名新手小白,推荐先学51,回头再学ar的话就比较容易入手了,不管先学哪儿个,建议都先买本C语言从入门到精通看看,单片机推荐51单片机C语言教程,有教学视频讲的比较细致,ar的话推荐arduino权威指南,可以先在DFRobot商城买一套循迹或蓝牙小车的模块,再尝试自己开板。
如果想要快速的做一个小项目的话,而且还不会MCU就用Arduino,如果想好好学习一下MCU的话就先学学51吧。


arduino与51单片机比的优点

Arduino比51更先进一些,编程变得简单更人性化和直观,没有单片机基础的人也能很快上手。
Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它适用于爱好者、艺术家、设计师和对于"互动"有兴趣的朋友们。
Arduino的核心开发团队成员包括:Massimo Banzi,David Cuartielles,Tom Igoe,Gianluca Martino,David Mellis和Nicholas Zambetti。
Arduino是一个基于开放原始码的软硬件平台,构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。
Arduino包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。

arduino51单片机比区别
1、arduino用的是AVR单片机,AVR单片机跟51单片机内部结构不同(寄存器多少和名称都 不一样),编程工具烧写bai软件均不一样。
2、arduino编程将一些输入输出方法编成了子程序(库函数),应用更加方便。
3、arduino在软件开发反面考虑的更多的是功能的实现,而单片机开发还需要考虑相应的外围电路,和底层软件。

通过以上详细介绍很多朋友应该知道51单片机和arduino的优缺点了吧,建议根据自己不同的实际需求来选择学习,一切从实际出发。
此文内容来源于DF创客社区Arduino论坛

回复

使用道具 举报

ID:869809 发表于 2021-1-2 12:43 来自手机 | 显示全部楼层
可以考虑学习arduino
回复

使用道具 举报

ID:869809 发表于 2021-2-13 22:39 来自手机 | 显示全部楼层
我是先学的51,airduino底层通信不如51清晰
回复

使用道具 举报

ID:783421 发表于 2021-2-15 10:55 来自手机 | 显示全部楼层
可以先学习51
回复

使用道具 举报

ID:512926 发表于 2021-2-21 14:20 | 显示全部楼层
考虑学习arduino
回复

使用道具 举报

ID:56377 发表于 2021-2-28 14:06 | 显示全部楼层
arduino好
回复

使用道具 举报

ID:387146 发表于 2021-3-3 11:28 | 显示全部楼层
没有电子和编程基础的arduino好一点,51学习就更做菜一样,从买菜,摘菜,洗菜,炒菜都需要自己亲力亲为,而arduino则是直接从炒菜开始,只要把基本函数和相关传感器的库了解了,就能做出来想做的小设备。
回复

使用道具 举报

ID:575020 发表于 2021-4-12 11:36 | 显示全部楼层
无标题1.jpg

感觉还是STM32功能更强大一些,开始想学32,论坛很多人建议先学51,51还没学明白又感觉arduino有很多图形化编程软件,于是又想学arduino。
来这快2年了,还是没想好学什么。
回复

使用道具 举报

ID:910342 发表于 2021-4-22 16:19 | 显示全部楼层
arduino吧,感觉可以快速入门
回复

使用道具 举报

ID:242753 发表于 2021-5-12 10:51 | 显示全部楼层
直接上stm32的单片机是不是更好
回复

使用道具 举报

ID:57657 发表于 2021-5-12 12:43 | 显示全部楼层
51、stm、arduino 、windows的C语言除了寄存器名称、头文件、中断不一样。
其他什么四则运算、数据类型、指针数组、循环语句、联合结构体基本都一样。
stc的51是国产的,100%中文资料,建议你学这个。
回复

使用道具 举报

ID:299519 发表于 2021-5-12 13:26 | 显示全部楼层
如果要在这行吃饭就51,如果心血来潮就Arduino.
回复

使用道具 举报

ID:321836 发表于 2021-5-21 17:48 | 显示全部楼层
51是基础,其他可以触类旁通。。。
回复

使用道具 举报

ID:575020 发表于 2021-6-8 00:09 | 显示全部楼层
板子都买的有,一直纠结学什么。

IMG_20210510_101103.jpg

IMG_20210510_103819.jpg

IMG_20210510_102923.jpg



IMG_20210510_094342.jpg


IMG_20210510_101103.jpg
IMG_20210510_101103.jpg
回复

使用道具 举报

ID:885725 发表于 2021-7-10 11:04 | 显示全部楼层
singrain 发表于 2021-6-8 00:09
板子都买的有,一直纠结学什么。

可以开店了。
回复

使用道具 举报

ID:953936 发表于 2021-7-16 19:55 | 显示全部楼层
singrain 发表于 2021-6-8 00:09
板子都买的有,一直纠结学什么。

确实可以开店了老哥哈哈哈哈哈哈
回复

使用道具 举报

ID:951531 发表于 2021-7-17 10:25 | 显示全部楼层
我当初是51学好了,后面学arduino很快就上手了
回复

使用道具 举报

ID:953983 发表于 2021-7-17 15:07 | 显示全部楼层
对于小白的我,学习arduino比较容易入门一些,不用去学繁杂的代码
回复

使用道具 举报

ID:285258 发表于 2021-7-18 15:23 | 显示全部楼层
arduino的编译器支持C++,C51和SDCC貌似不支持C++。如果楼主不想了解学习C++则选哪个都无所谓,如果楼主对C++感兴趣推荐学习Arduino。arduino的库函数都是开源的。通过阅读理解库函数来学习。
回复

使用道具 举报

ID:285258 发表于 2021-7-18 15:25 | 显示全部楼层
tanjia29 发表于 2021-7-17 15:07
对于小白的我,学习arduino比较容易入门一些,不用去学繁杂的代码

arduino大量库函数使用C++写的,并不比51简单,而且arduino用的AVR芯片架构也不比51简单。只是看你是学arduino还是用arduino了。这是两回事。学arduino的人完全可以看懂并扩展库函数。用arduino的人只是会用而已。遇到库函数问题自己都解决不了。
回复

使用道具 举报

ID:748788 发表于 2021-7-28 08:36 | 显示全部楼层
主要看你学了以后做什么。如果只是玩玩,想速成,选Arduino。如果想最终产品化,51具有绝对优势。
回复

使用道具 举报

ID:299519 发表于 2021-7-28 09:48 | 显示全部楼层
学啥都行,关键看工作需要。
回复

使用道具 举报

ID:458472 发表于 2021-8-5 08:22 | 显示全部楼层
我是先学51再A的,个人觉得A的入门更简单,好操作,适合培养兴趣与基本知识,再学51更容易
回复

使用道具 举报

ID:831441 发表于 2021-8-22 10:06 | 显示全部楼层
arduino他的兼容性刚好一点吧
回复

使用道具 举报

ID:951974 发表于 2021-8-24 21:15 | 显示全部楼层
singrain 发表于 2021-6-8 00:09
板子都买的有,一直纠结学什么。

都学一遍吧,其实没有多难,我就是从smt8直接开始的,c语言基础还是要的
回复

使用道具 举报

ID:276685 发表于 2021-8-25 18:04 | 显示全部楼层
arduino底层是avr增强型mega系列。相同主频下avr的指令系统比51速度更快。arduino平台生态好。调试,库文件比较多。许多芯片都开始向arduino平台兼容。ino平台玩明白了,再用atmel studio开发裸机深入了解底层
回复

使用道具 举报

ID:291765 发表于 2021-9-4 16:41 | 显示全部楼层
我觉得两个都差不多。
回复

使用道具 举报

ID:964308 发表于 2021-10-23 17:14 来自手机 | 显示全部楼层
学了一年C语言,看了半年c51,玩了几个月c51单片机,现在想做esp8266物联网,才来学arduino的,看了几个例程,感觉和C51单片机编写的方式差的不大,但是很多单片机需要几行十几行的代码都被封装到库函数里了,直接一两行调用就行了
回复

使用道具 举报

ID:342822 发表于 2021-10-23 20:18 | 显示全部楼层
呵呵~~一个仿真软件通吃
回复

使用道具 举报

ID:340398 发表于 2021-11-1 08:58 | 显示全部楼层
可以先从玩具arduino学起,比较简单。达到能做一般小项目就可以了。不过ardu实在呵呵了,对脑子有余力的实在太low了
如果还有进一步学习的想法,那就学51吧,51是单片机学习的基础

如果51基本学通了,可以学32了。也可以不学。51会了,基本够用了。32就是单片机功能更强大一些,可以方便驱动摄像头之类的高端外设。有余力可以学
回复

使用道具 举报

ID:463811 发表于 2021-11-22 16:54 | 显示全部楼层
copower 发表于 2021-7-18 15:25
arduino大量库函数使用C++写的,并不比51简单,而且arduino用的AVR芯片架构也不比51简单。只是看你是学ar ...

也是,害
回复

使用道具 举报

ID:606354 发表于 2022-9-5 20:50 | 显示全部楼层
singrain 发表于 2021-4-12 11:36
感觉还是STM32功能更强大一些,开始想学32,论坛很多人建议先学51,51还没学明白又感觉arduino有很多图 ...

搞嵌入式的话,建议学51入门,51学的差不多了。可以学一下51的升级版STC12系列的单片机,编程方式类似51处理速度和功能基本上和32差不多。也可以直接学习32。有了51的基础可以更好理解32单片机的逻辑。
回复

使用道具 举报

ID:1046593 发表于 2022-10-4 10:27 | 显示全部楼层
singrain 发表于 2021-6-8 00:09
板子都买的有,一直纠结学什么。

应该是先从arduino开始,因为arduino封装的还不错,不需要太累就能搞好一个小项目,且相关资料,书籍较为全面,碎片化的少,但是单个开发板太贵了;之后再是C51,因为C51对于arduino来说比较进阶,需要了解一些端口和串口的知识,并且需要写的代码比arduino来说就多了很多,之前封装的东西就需要自己重新做。最后再是STM32,因为STM32就基本上不是学习性质的了,是真正的要去做开发了,做商品了。
回复

使用道具 举报

ID:1060646 发表于 2023-1-8 11:44 | 显示全部楼层
两个其实差不多的
回复

使用道具 举报

ID:517466 发表于 2023-1-9 15:36 | 显示全部楼层
我学习Arduino,是为了测试LCD、电子模块、传感器用的。二用于开发的时候,还是使用51或者Arm32位的开发板。
回复

使用道具 举报

ID:1061340 发表于 2023-1-17 15:52 | 显示全部楼层
3333kkkk 发表于 2023-1-8 11:44
两个其实差不多的

arduino方便开发,体积可以做的很小
回复

使用道具 举报

ID:996508 发表于 2023-1-18 18:11 | 显示全部楼层
个人觉得 还是先玩arduino比较好 再买个面包板 和杜邦线 二极管  先做个东西出来  如果有兴趣的话可以再继续购买喜欢的传感器模块  玩好后再开始玩51 或32比较合适 不然容易劝退
回复

使用道具 举报

ID:996508 发表于 2023-1-18 18:11 | 显示全部楼层
个人觉得 还是先玩arduino比较好 再买个面包板 和杜邦线 二极管  先做个东西出来  如果有兴趣的话可以再继续购买喜欢的传感器模块  玩好后再开始玩51 或32比较合适 不然容易劝退
回复

使用道具 举报

ID:1061600 发表于 2023-1-26 14:00 | 显示全部楼层
个人觉得 还是先玩arduino比较好 再买个面包板 和杜邦线 二极管  先做个东西出来  如果有兴趣的话可以再继续买喜欢的传感器模块  玩好后再开始玩51单片机
回复

使用道具 举报

ID:1063251 发表于 2023-2-16 18:23 | 显示全部楼层
两个设备都有,现在正在学arduino
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表