Arduino和51单片机,两者有什么关系或区别?
arduino用的是AVR单片机,AVR单片机它跟51单片机内部结构不同(寄存器多少和名称都不一样),编程工具烧写软件均不一样。
arduino编程工具和普通AVR又不一样,它将一些输入输出方法编成了子程序(库函数),应用更加方便。
Arduino与传统的51单片机具体有哪些区别和联系,可以从以下几个方面进行对比:
1.Arduino是单片机二次开发的产物。以做项目来说,普通单片机只是散件,硬件的设计和软件设计都得你自己来。而且Arduino是半成品,你只要把相应的模块组合在一起,再写一写甚至直接复制别人程序就能行了。拿做电脑来比喻的话,你拿单片机做项目就像用电子元件先做出来显示器、主板、内存条、显卡、硬盘等,再把它们组装成一台电脑。用Arduino做项目就像直接把别人做好的主板硬盘显卡组装成电脑。Arduino的好处就是开发简单。但是也意味着很多地方都受到限制。
2.Arduino核心板大部分使用的是AVR单片机作为核心,这就是他们之间的联系。AVR单片机一般使用汇编语言、C语言开发,需要配置寄存器等等。Arduino在C的基础上简化了开发方式,自己实现了一套较为简单的语言,开发的时候不需要纠结于AVR的寄存器等底层的东西,直接写代码就能控制兼容Arduino的外设。
3.使用Arduino做项目,几乎不用考虑硬件部分的设计,可以按需求选用Arduino的控制板、扩展板等组成自己的需要的硬件系统。而使用单片机开发必须设计硬件,制作PCB板。
4.学习Arduino单片机可以完全不需要了解其内部硬件结构和寄存器设置,仅仅知道它的端口作用即可;可以不懂硬件知识,只要会简单的C语言,就可用Arduino单片机编写程序。使用单片机则需要了解单片机内部硬件结构和寄存器的设置,使用汇编语言或者C语言编写底层硬件函数。
5.Arduino软件语言仅仅需掌握少数几个指令,而且指令的可读性也强,稍微懂一点C语言即可,轻松上手,快速应用。
6.Arduino的理念就是开源,软硬件完全开放,技术上不做任何保留。针对周边I/O设备的Arduino编程,很多常用的I/O设备都已经带有库文件或者样例程序,在此基础上进行简单的修改,即可编写出比较复杂的程序,完成功能多样化的作品。而单片机的软件开发,需要软件工程师编写底层到应用层的程序。没有那么多现成的库函数可以使用。
7.Arduino由于开源,也就意味着从Arduino相关网站、博客,论坛里得到大量的共享资源,在共享资讯的辅助下,通过资源整合,能够加快您创作作品的速度及效率。
8.相对其他开发板,Arduino及周边产品相对质廉价优,学习或创作成本低,重要一点是:烧录代码不需要烧录器,直接用USB线就可以完成下载。
扩展资料:
arduino与51单片机比的优点
比51更先进一些,编程变得简单更人性化和直观,没有单片机基础的人也能很快上手。
Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。它适用于爱好者、艺术家、设计师和对于"互动"有兴趣的朋友们。
Arduino的核心开发团队成员包括:MassimoBanzi,DavidCuartielles,TomIgoe,GianlucaMartino,DavidMellis和NicholasZambetti。
Arduino是一个基于开放原始码的软硬件平台,构建于开放原始码simpleI/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。
Arduino包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是ArduinoIDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用Arduino编程语言(基于Wiring)和Arduino开发环境(基于Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信(比如Flash,Processing,MaxMSP)来实现。
绛旓細51灏辨槸鏈瀹规槗鐨勪簡銆傝屼笖璧勬枡寰堝叏銆備綘鎯冲仛涓浜涘叆闂ㄧ骇鍒殑鍒朵綔鍩烘湰涓婇兘鑳芥壘鍒版簮鐮佸涔犮arduino鐨勮瘽锛岃嫳鏂囪祫鏂欐瘮杈冨銆
绛旓細澶栬鎺ュ彛涓板瘜锛鍗曠墖鏈鐨勭‖浠惰祫婧愯緝涓虹伒娲伙紝鍙互鏍规嵁闇姹傞夋嫨涓嶅悓鍨嬪彿鐨勫崟鐗囨満鑺墖锛屾湁閽堝涓嶅悓搴旂敤鐨勪笓鐢ㄧ増鏈3銆佸簲鐢ㄩ鍩熶笉鍚岋細Arduino涓昏鐢ㄤ簬蹇熷師鍨嬭璁°佸涔犲拰鏁欒偛绛夐鍩燂紝鍦ㄥ垱瀹佺墿鑱旂綉鍜屾櫤鑳藉灞呯瓑椤圭洰涓緱鍒颁簡骞挎硾鐨勫簲鐢紱鑰屽崟鐗囨満鍒欓傚悎鐢ㄤ簬鍚勭绫诲瀷鐨勫簲鐢ㄩ渶姹傦紝濡傚祵鍏ュ紡绯荤粺銆佹満鍣ㄤ汉绛夈
绛旓細鎬ц川涓嶅悓銆arduino鏄竴涓崟鐗囨満绯荤粺锛屾牳蹇冩槸ATMEGA绯诲垪鍗曠墖鏈猴紝閰嶄笂涓浜涘懆杈瑰櫒浠讹紝瀹夎鍦ㄤ竴娆惧嵃鍒风數璺澘涓婏紝鑳藉鐙珛瀹屾垚璁惧畾鍔熻兘銆傝屽崟鐗囨満鍙槸涓鍧楄姱鐗囷紝鏃犳硶鍦ㄦ病鏈夊懆杈瑰櫒浠剁殑鎯呭喌涓嬪崟鐙畬鎴愭棦瀹氬姛鑳姐傚崟鐗囨満锛屾槸涓绉嶉泦鎴愮數璺姱鐗囷紝鏄噰鐢ㄨ秴澶ц妯¢泦鎴愮數璺妧鏈妸鍏锋湁鏁版嵁澶勭悊鑳藉姏鐨勪腑澶鐞嗗櫒CPU銆侀殢鏈哄瓨鍌ㄥ櫒RAM...
绛旓細51灏卞儚vc锛屽姛鑳藉己澶т笂鎵嬮毦锛岀敤濂戒篃闅撅紝鑳藉仛鎴愬緢澶сarduino灏卞儚vb锛屼笂鎵嬪揩锛屽姛鑳藉彈闄愶紝鍙兘鐢ㄦ棦鏈夌殑鎺т欢锛屽簲鐢ㄨ寖鍥存湁闄愶紝涓嶈兘鍋氬ぇ鐨勯」鐩 '杩借。'No 锛 鍏朵腑鈥滆拷琛b濓細 鈥滆拷鈥濋噸闊筹紝鈥滆。鈥濊交闊宠緟鍔┿
绛旓細Arduino鍜鍗曠墖鏈虹殑鍖哄埆 涓銆佸熀纭姒傚康 Arduino鏄竴绉嶅紑婧愮殑纭欢鍜岃蒋浠跺钩鍙帮紝涓昏鐢ㄤ簬鐗╃悊璁$畻銆傚畠閲囩敤鍩轰簬鍗曠墖鏈虹殑鏋舵瀯锛屼絾涓庝紶缁熺殑鍗曠墖鏈烘湁鎵涓嶅悓銆鍗曠墖鏈猴紝涔熺О涓哄井鎺у埗鍣紝鏄竴绉嶅皬鍨嬭绠楁満鑺墖锛屽唴閮ㄩ泦鎴愪簡澶勭悊鍣ㄣ佸瓨鍌ㄥ櫒銆佽緭鍏ヨ緭鍑烘帴鍙g瓑銆備簩銆佷富瑕佸樊寮 鍙紪绋嬫э細Arduino浣跨敤涓绉嶆槗浜庡涔犲拰浣跨敤鐨勭紪绋...
绛旓細铏界劧鐜板湪涔熸湁鍩轰簬stm32锛宖pga锛宭pc锛宲ic绛夎姱鐗囧仛鐨arduino锛浣嗘槸寮婧愬簱鍜宨de鐨勫紑鍙戝緢澶氭病璺熶笂锛屼笉鍏煎涔熸病鍔炴硶缁ф壙avr鐨刟rduino閬椾骇銆傝櫧鐒跺畼鏂逛篃鍑轰簡avr32浣鍗曠墖鏈鐨刟rduino锛屼互鍙奱rm m0锛岃繕鏈夐厤鍚堝祵鍏ュ紡openwrt绯荤粺鐨刟rduino yun銆備絾鏄环鏍间互鍙婃柟渚挎х畝鐩翠簡(鏇翠綍鍐垫柊鐨勮姱鐗囧ぇ澶氭槸浣庡帇io锛屽鎺ユā鍧楀緢灏戝吋瀹广
绛旓細涓嶇浉鍚屻備笓闂ㄧ殑鎴栬呯敤鏀寔AVR鐨勶紙鍖呮嫭C锛夈傜數瀛愪笓涓氱殑瀛51鐨勫浜涳紝鍏跺疄鍦ㄦ垜鐪嬫潵瀛VR涔熷緢濂姐傞潪鐢靛瓙涓撲笟鐨勭帺arduino鐨勫浜涖
绛旓細瀵逛簬琚帶鏅鸿兘灏忚溅鏉ヨ娌℃湁鏈川鍖哄埆锛屽尯鍒富瑕佹槸鎺у埗鏉縨cu涓嶅悓锛屽墠鑰呮槸51绯诲垪鍗曠墖鏈猴紝鍚庤呮槸avr绯诲垪鍗曠墖鏈猴紝寮鍙戣瑷涓嶅悓锛屽墠鑰呭彲鑳芥槸鐢c51锛屽悗鑰呯敤arduino銆
绛旓細1銆侀鍏堜笅杞Arduino IDE,缃戝潃涓猴細涓嬭浇鍦板潃锛歨ttp://pan.baidu.com/s/1gewqV2j 閫夋嫨arduino-1.6.8-windows.exe杩涜涓嬭浇 2銆佷笅杞戒箣鍚庯紝鐩存帴鍌荤摐瀹夎鍗冲彲 3銆佸畨瑁呭畬鎴愪箣鍚庯紝鐢║SB绾挎妸鏉垮瓙涓庣數鑴戣繛鎺ヨ捣鏉ワ紝涓鑸細鑷姩瀹夎椹卞姩锛屽鏋滄病鏈夎嚜鍔ㄥ畨瑁呮垚鍔燂紝閭d箞鍙互鎵嬪姩瀹夎 4銆佹墜鍔ㄥ畨瑁呴┍鍔ㄧ殑鏂规硶锛屾壘鍒拌嚜宸...
绛旓細鎬ц兘鏂归潰锛屼娇鐢ㄧ殑鏄痑vr鍗曠墖鏈猴紝鍏蜂綋鍒板崟鐗囨満鏉ヨ锛宎vr鏈夐珮鎬ц兘鐨勫崟鐗囨満锛屼篃鏈変綆绔殑锛51绯诲垪鐨勶紝鏈塻tc銆傝繕鏈夊叾浠栫殑锛屼篃鏈夋瘮杈冨ソ鐨51鍗曠墖鏈猴紝浼歝璇█锛屽氨瀛51.浼氫簡c璇█锛屼篃鍙互鐢ㄤ簬璁$畻鏈烘柟闈㈢殑寮鍙戙傘傛瘮閭d釜arduino濂界殑澶氾紝閫氱敤鎬у己锛宑璇█鍙互鐢ㄤ簬windows,liunix .unix..閭d釜arduino鑳藉共浠涔堬紵浠ュ墠鎴戜篃...