单片机小白学步(24) 改版说明与学习思想
文章全部使用Markdown进行编写排版,格式更加丰富,阅读起来也会更加轻松。
实验的工程源码,将上传至我的GitHub页面,可直接下载使用。
我的GitHub主页
https://github.com/jzj1993为了方便统一讲解,也考虑到开发板资料可能有版权问题,本系列教程将和绿豆芽科技合作。大部分实验,将直接使用绿豆芽科技提供的51Start开发板。如果有这款开发板,可以直接烧写配套代码进行实验。如果没有,欢迎购买这款开发板。当然也可以通过简单的修改代码,在其他开发板上做实验。
部分实验仍然会使用面包板搭建最小系统,或通过Proteus仿真进行。
绿豆芽科技官方淘宝店
http://douyatech.taobao.com西安电子科技大学的学生,可直接到新校区综合楼西电实验室,购买配套开发板。
每个知识板块的介绍,大致会通过下面的顺序进行:
- 首先对概念进行简单介绍;
- 通过基本的例程实验,进行初步体验,加深理解;
- 深入介绍底层结构和原理;
- 介绍相关的编程技巧思想等内容,以及更深入的例程实验。
学习思想
经过反复的思考,得出了单片机学习的思想,并进行了总结。
单片机的学习有两个方向,分别介绍如下。
1. 关注上层应用实践
这个方向,就是直接考虑实际应用而不是实现原理。了解了各种通信接口、各种电路模块等,可将它们进行巧妙的组合,从而实现对我们的生活有用的产品。例如,通过结合显示屏、按键、单片机,就可以实现计算器、秒表、抢答器、游戏机等各种好玩有趣的东西。
学习这方面的东西,需要有较好的创新能力,善于从生活中寻找灵感。相对来说技术性会弱一点,使用的各种模块,完全可以采用现成的东西去实现。
这个方向有个比较典型的例子,是Arduino平台,常常被称为电子积木。硬件方面,各种电路模块都是做好的,直接通过导线插接就可以使用;软件方面,各种电路模块都有现成的模块化驱动,直接调用相应的函数就可以实现功能。使用Arduino时,往往只需要关心作品的创意,以及功能逻辑实现,而不需要深入研究具体的技术。
2. 深入底层挖掘原理
这个方向,就是从原理的角度深入理解单片机。例如寄存器的构成,CPU的执行方式等。深入一些,包括模拟电路,数字电路,微机原理等。甚至利用FPGA等可编程逻辑器件,自行设计和实现CPU和单片机。
学习这方面的东西,需要较多的背景知识,包括模拟电路,数字电路,微机原理等,可以通过使用汇编语言进行单片机编程从而加强理解。如果有兴趣自行设计CPU,还可以学习Verilog或VHDL编程。
3. 总结
这里对此做个总结。
之前遇到不少人都提了同样的一个问题:学单片机到底要不要学汇编呢?
这里我举一个例子~
假如你想学会做饭,最简单直接的方法,是直接购买做好的食材,只要学会控制火候,学会如何搭配各种食材和调料,并掌握必要的烹饪步骤等内容就可以了。
有时候你可能想要做一些比较特别的菜,但是直接买来加工好的食材不能充分满足要求。这个时候就需要购买半成品,然后学会自己去加工了。
如果对食材本身也有了解,例如什么季节哪些蔬菜会比较常见等,往往能做的更好,还能节省成本。
如果有特别需要,还可以尝试自己种植一些蔬菜等~
学单片机也是一样的。关注上层应用实践,相当于直接使用现成的食材,去进行组合搭配,得到各种有用的东西。而深入底层挖掘原理,相当于去深入了解各种食材的特点,并能作出更好的选择。甚至,你还可以考虑自己从底层去实现一些模块,实现想要的效果。
所以对于“要不要学习汇编”这个问题,我的回答是,需要学习,但是不需要花费过多的精力。一开始直接用C语言进行单片机的学习,有了一定的认识之后,再简单的去学习汇编。其目的是,从中了解底层的工作原理,从而能更好的理解一些问题,能更好的应对一些特殊情况,更好的驾驭单片机系统设计。而实际去实现想要的创意和产品,直接通过模块化的C编程就可以了。直接用汇编,效率实在是太低。
上面说的两个方向,偏上层方向的学习,技术性相对弱化了,更多的是要考虑各种其他方面的问题,包括创意、产品、乃至市场需求等内容;而偏底层的原理学习,技术难度相对较大。一般情况下,学习单片机,需要对各种基本模块有所了解(食材),对底层的原理最好也有一些理解(食材半成品的加工),然后再学习一些上层的模块化编程思想、模块之间的组合等(食材的搭配、火控控制等)。可以根据个人兴趣和特长,有选择的学习相关知识。
单片机改版说明学习思 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)
- 婵°倕鍊瑰玻鎸庮殽閸モ晙鐒婇柛鏇ㄥ灱閺嗐儳鈧鎮堕崕鎶藉煝閼测晜鏆滈柛顐g箓閹鏌熺€涙ê濮囬柣鎾规硶閹峰顢橀悢鍛婄暚缂備礁顑呴鍛淬€冨⿰鍛晳闁跨噦鎷�
闂佺ǹ绻堥崝宥夊蓟閻斿憡濯寸€广儱鎷嬮崝鍛槈閺冨倸孝闁汇劎濮甸敍鎰板箣濠婂懐鎳囨繛鎴炴尰濮樸劑鎮¢敍鍕珰闁糕槅鍘剧粈澶愭煙缂佹ê濮囩€规洖鐭傞幆宥夊棘閸喚宀涢悗瑙勬偠閸庢壆绱為弮鍫熷殑闁芥ê顦~鏃堟煥濞戞ǹ瀚板┑顕呬邯楠炲啴濡搁妷锕€娓愰梻渚囧亞閸犳劙宕瑰鑸碘拹濠㈣埖鐡曠粈瀣归崗鍧氱細妞ゎ偄鎳橀幆鍐礋椤愩倖顔忔俊顐ゅ閸ㄥ灚瀵奸幇顔剧煓閻庯綆浜為悷锟�...
- 婵炴垶鎼╅崢鐐殽閸モ晙鐒婇柛鏇ㄥ灱閺嗐儳鈧鎮堕崕鎶藉煝閼测晜鏆滈柛顐g箓閹鏌熺€涙ê濮囬柣鎾规硶閹峰顢橀悢鍛婄暚缂備礁顑呴鍛淬€冨⿰鍛晳闁跨噦鎷�
缂備緡鍣g粻鏍焵椤掑﹥瀚�30婵犮垼鍩栧畝绋课涢鍌欑剨闁告洦鍨奸弳銉╂煕閳哄喚鏀版い鏂垮閹风娀宕滆閺屻倝鏌ㄥ☉妯侯殭缂佹鎸鹃埀顒傤攰閸╂牕顔忕捄銊﹀珰闁规儳鎳愮粈澶愭煕閺傜儤娅呮い鎺斿枛瀹曘劌螣閻戞ê娓愰梻渚囧亞閸犳洟骞撻鍫濈濡鑳堕鍗炩槈閹垮啩绨婚柟顔奸叄瀵粙鎮℃惔锝嗩啅婵☆偆澧楅崹鍨閹邦喚鐭欓悗锝庝簽閻熷酣鏌i妸銉ヮ伂妞も晪绠戞晥闁跨噦鎷�...
- Agilent ADS 闂佽桨鐒﹂悷銉╊敆閻旂厧鏄ョ痪顓炴媼閸炴煡鎮归崶褍鈷旈柍璇插悑缁鸿棄螖閸曞灚顥�
婵炴垶鎸婚幐鎼侇敊瀹ュ绠抽柛顐秵閸わ箓鏌ㄥ☉妯垮闁告瑥绻樺Λ鍐閿濆骸鏁奸柣鐔哥懐閺嬪儊S闂佸憡鑹剧€氼噣锝為幒妤€绀夐柣鏃囶嚙閸樻挳鏌涘⿰鍐濞村吋鍔楃划娆戔偓锝庝簽鐎瑰鏌i姀鈺冨帨缂侀亶浜跺畷婵嬪煛閸屾矮鎲鹃梺鐑╁亾閸斿秴銆掗崼鏇熷剹妞ゆ挾濮甸悾閬嶆煛閸愩劎鍩f俊顐ユ硶閳ь剚鍐荤紓姘辨閻у挷S...
- HFSS闁诲孩鍐荤紓姘卞姬閸曨垰鏄ョ痪顓炴媼閸炴煡鎮归崶褍鈷旈柍璇插悑缁鸿棄螖閸曞灚顥�
闁荤姍鍐仾缂佽鐒︾粙澶愬箻閹颁礁鏅欓梺鐟版惈閻楁劙顢氶幎鑺ユ櫖閻忕偠妫勫鍧楁⒒閸稑鐏辨い鏂款樀楠炴帡宕峰▎绂⊿闂佹眹鍔岀€氼剚鎱ㄥ☉銏″殑闁芥ê顦扮€氭煡骞栫€涙ɑ鈷掗柡浣靛€濋弫宥囦沪閽樺鐩庨梺鍛婃煛閺呮粓宕戝澶婄闁靛ň鏅滃銊х磼椤栨繂鍚圭紒顔芥そ瀹曠兘寮跺▎鎯уΤ婵炴垶姊绘慨鐢垫暜婢舵劕绠垫い鈥抽敪SS...
- CST閻庣敻鍋婇崰妤冧焊濠靛棭鍟呴柕澶堝€楃粙濠囨倵楠炲灝鈧洟鎮$捄銊﹀妞ゆ挾鍠愬▓宀€绱掔€n亶鍎忔い銊︾矌閹叉鏁撻敓锟�
闂佸搫顦€涒晛危閹存緷铏光偓锝傛櫅閻︽粓鎮规担绛嬪殝缂佽鲸绻堝畷妤呭Ω閳哄倹銆冮柣鐘辩瀵泛顔忕欢缍璗闂佸憡鑹剧€氫即濡村澶婄闁绘棁顕ч崢鎾煕濠婂啳瀚板ù鍏煎姉缁瑧鈧綆浜炵€瑰鏌i姀鈺冨帨缂佽鲸绻堝畷婵嬪煛閸屾矮鎲鹃棅顐㈡祩閸嬪﹪鍩€椤掑倸鏋欓柛銈嗙矌閳ь剚鍐婚梽鍕暜婢舵劕绠垫い鈥愁敍T闁荤姳鐒﹀畷姗€顢橀崨濠冨劅闁哄啫鍊归弳锟�...
- 闁诲繐绻愮€氫即銆傞崼鏇炴槬闁惧繗顕栭弨銊╂煕閳哄喚鏀版い鏂垮閹风娀宕滆閺岋拷
婵炴垶鎸稿ú锝囩箔閳ь剙螖閸屾惮鎴﹀Χ婵傚摜宓侀柛鎰级閸曢箖鎮硅閸ゆ牜妲愬┑鍥ㄤ氦婵炲棗娴烽弰鍌炴偣閸パ冣挃闁宠鍚嬬粙澶嬫姜閹殿喚鈽夐梺闈╄礋閸斿矂鎯冮悩绛圭矗闁瑰鍋涜灇闂佸搫鐗滈崹鍫曘€傞锕€鏄ラ柣鏃€鐏氭禍锝夋倶閻愬瓨绀冮悗姘辨暬閹虫ê顫濋崜褏顦梺鐟扮仛閹搁绮崨鏉戦敜婵﹩鍓涢弶浠嬫煟閵娿儱顏х紒妤佹尰缁嬪顫濋鍌氭暏缂佺虎鍘搁崑锟�...
- 閻庣敻鍋婇崰妤冧焊濠靛牅鐒婇柛鏇ㄥ灱閺嗐儲绻涢弶鎴剶闁革絾妞介獮娆忣吋閸曨厾鈻曢梺绯曟櫇椤㈠﹪顢欓崟顓熷珰闁告挆鈧弻銈夋煕濮橆剛澧︽繛澶涙嫹
闁荤姵鍔﹂崢娲箯闁秴瑙﹂柛顐犲劜閼茬娀鏌¢崶銊︾稇闁汇倕瀚伴獮鍡涙偑閸涱垳顦紓鍌氬暞閸ㄧ敻宕规惔銊ノュ〒姘e亾妞わ絽澧庨幏顐﹀矗濡搫纾块梺闈涙閼冲爼濡靛顑芥灃闁靛繒濮甸悵銈夋煏閸℃洘顦峰ǎ鍥э躬瀹曪綁鏌ㄧ€n剛鍩嶉梺鎸庣☉閺堫剟宕瑰⿰鍛暫濞达絽婀辨竟澶愭煛瀹ュ妫戠紒銊ユ健閺屽懘鏁撻敓锟�...