查看: 1495|回复: 7

[其他] 新手入门必读:51单片机和arduino哪个好?怎么选?

[复制链接]

该用户从未签到

发表于 2020-11-27 14:37 | 显示全部楼层 |阅读模式
声明:本文内容转载自DF创客社区Arduino学习板块。

很多刚入门的电子爱好者刚开始学习的时候都会遇到一个问题,那就是单片机和arduino要如何选择的问题?51单片机和arduino究竟学习哪个好?今天我们就来详细的聊聊两者的优缺点和选择的问题。

51单片机

51单片机

Arduino uno

Arduino uno


有部分朋友支持先学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)来实现。

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

通过以上详细介绍很多朋友应该知道51单片机和arduino的优缺点了吧,建议根据自己不同的实际需求来选择学习,一切从实际出发。

  • TA的每日心情
    开心
    2020-10-10 13:23
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-12-5 20:33 | 显示全部楼层
    本帖最后由 18055013009 于 2020-12-5 21:05 编辑

    51单片机与arduino肯定是不一样的。
    51单片机只是一块单片机,而arduino除单片机外还提供外围开发电路、编译器、开源标准库函数
    如果使用51系列单片机,一般来说只能使用破解版的keil,arduino有专用编译器。
    另外格局也不一样,51单片机是个产品,而arduino是个生态,arduino制定开源的硬件和软件库标准
    51单片机用来做定制开发,没有固定标准的开发板,做成的开发板也都不一样。arduino属于模块组件,受控于开源组织,有一系列标准。

    arduino是把单片机进行封装与包装,引出了针脚,添加了程序烧录接口,电源接口,电脑通信的驱动程序,标准函数库,标准的电路设计,一系列开发必备功能。
    而51开发板市面上种类比较多,各不相同。其实对于开发板来说开发板再怎么变都是围绕单片机引脚上来实现功能的,所以arduino是把单片机模块化组件化了。

    总结一下:其实arduino就是把单片机进行了扩展,更方便使用,更标准,更易于实现功能。



    点评

    总结的很到位!  发表于 2020-12-8 13:41

    该用户从未签到

    发表于 2020-11-27 16:50 | 显示全部楼层
    51我学了半年,Arduino 半天就可以

    该用户从未签到

     楼主| 发表于 2020-12-2 14:05 | 显示全部楼层
    Zoologist 发表于 2020-11-27 16:50
    51我学了半年,Arduino 半天就可以

    是的,Arduino相比51来说是简单一些。
  • TA的每日心情
    开心
    2021-1-24 19:52
  • 签到天数: 191 天

    [LV.7]常住居民III

    发表于 2020-12-5 17:04 | 显示全部楼层
    arduino比51先进,谈不上吧!比51简单到是真的。stc那个变态搞出来的51,也是很强大的。
  • TA的每日心情
    慵懒
    2020-4-16 15:21
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-12-16 08:43 | 显示全部楼层
    连根本问题都没说清楚。
    arduino是一个体系,51是一个系列的单片机。
    比较两者“哪个好”根本就是错的。

    该用户从未签到

    发表于 2020-12-18 02:06 | 显示全部楼层
    有用于51的开发板。 我最近开始对这些微控制器感兴趣。
    我有一个问题-Keli的演示版,可以替换什么?
    51.jpg
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    (开源)微信小程序控制esp8266,可远程
    (开源)微信小程序控制es
    流程说明:首先要使esp8266能够联网,能联网就可以控制,使用示例程序,修改WIFI、
    arduino封装了一个无线串口模块LC12S的操作库
    arduino封装了一个无线串
    前一段时间接触到一个比较好用的2.4G无线串口通信模块LC12S, 在淘宝上仅四五块钱,收
    【花雕动手做】快餐盒盖,极低成本搭建机器人实验平台
    【花雕动手做】快餐盒盖,
    吃完快餐粥,除了粥的味道不错之外,我对个快餐盒的圆盖子产生了兴趣,能否做个极低成
    全新AVR芯片ATMEGA328P烧录程序的教程
    全新AVR芯片ATMEGA328P烧
    潜水多年,觉得有义务贡献一些内容,此贴作为最近学习Arduino的一个总结。 玩Arduino
    【Arduino】168种传感器模块系列实验(90)--- ULN2003步进电机
    【Arduino】168种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表