历史上的今天
返回首页

历史上的今天

今天是:2025年12月14日(星期日)

2022年12月14日 | 单片机学习笔记,三个步骤教你学

2022-12-14 来源:zhihu

作为一名电子技术从业人员,你学过单片机吗?你会运用单片机吗?我想你一定学过,但不一定会运用。因为学习单片机比学习其他学科需要付出更多的努力和代价,不仅要学习理论知识还要练习实际操作,而且主要是在实际操作中才能真正学到单片机技术。

因主修专业的不同以及电子基础的深浅不同,对于不同的人可能采用不同的学习方法,根据笔者的亲身学习经验,提出笔者的学习方法和步骤。

基础理论知识学习

基础理论知识包括模拟电路、数字电路和C语言知识。模拟电路和数字电路属于抽象学科,要把它学好还得费点精神。在你学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加强基础。

否则,你的单片机学习之路不仅会很艰难和漫长,还可能半途而废。 信盈达小编始终认为,扎实的电子技术基础是学好单片机的关键,直接影响单片机学习入门的快慢。

单片机属于数字电路,其概念、术语、硬件结构和原理都源自数字电路,如果数字电路基础扎实,对复杂的单片机硬件结构和原理就能容易理解,就能轻松地迈开学习的第一步,自信心也会树立起来。

一般是先学习模拟电路再去学习数字电路。扎实的模拟电路基础不仅让你容易看懂别人设计的电路,而且让你的设计的电路更可靠,提高产品质量。

C语言知识并不难,没有任何编程基础的人都可以学,在我看来,初中生、高中生、中专生、大学生都能学会。当然,数学基础好、逻辑思维好的人学起来相对轻松一些。

当基础打好以后,你会感觉到单片机不再难学了,而且越学越起劲。当单片机乖乖的依照你的逻辑思维和算法去执行指令,实现预期控制效果的时候,成就感会让你信心十足、夜以继日、废寝忘食的投入到单片机的世界里。可以这么说,扎实的电子技术基础和C语言基础能增强学习单片机信心,较快掌握单片机技术。

单片机实践

1.有刻苦学习的决心

首先,明确学习目的。先认真回答两个问题:我学单片机来做什么?需要多长时间把它学会?这是你学单片机的动力。没有动力,我想你坚持不了多久。

其次,端正学习心态。单片机学习过程是枯燥乏味、孤独寂寞的过程。要知道,学习知识没有捷径,只有循序渐进,脚踏实地,一步一个脚印,才能学到真功夫。

再次,要多动脑勤动手。单片机的学习具有很强的实践性,是一门很注重实际动手操作的技术学科。不动手实践你是学不会单片机的。最后,虚心交流。在单片机学习过程中每个人都会遇到无数不能解决的问题,需要你向有经验的过来人虚心求教或者参加相关的课程学习,否则,一味的自己埋头摸索会走许多弯路,浪费很多时间。

2.有一套完整的学习开发工具

学习单片机是需要成本的。必须有一台电脑、一块单片机开发板(如果开发板不能直接下载程序代码的话还得需要一个编程器)、一套视频教程、一本单片机教材和一本C语言教材。

电脑是用来编写和编译程序,并将程序代码下载到单片机上;开发板用来运行单片机程序,验证实际效果;视频教程就是手把手教你单片机开发环境的使用、单片机编程和调试。

对于单片机初学者来说,视频教程必须看,尤其是网上的单片机教材,学了之后,面对真正的单片机时可能还是束手无策;单片机教材和C语言教材是理论学习资料,备忘备查。不要为了节约成本不用开发板而光用Protur软件仿真调试,这和纸上谈兵没什么区别。

3. 要注重理论和实践相结合

单片机C语言编程理论知识并不深奥,光看书不动手也能明白。但在实际编程的时候就没那么简单了。一个程序的形成不仅需要有C语言知识,更多需要融入你个人的编程思路和算法。

编程思路和算法决定一个程序的优劣,是单片机编程的大问题,只有在实际动手编写的时候才会有深切的感悟。一个程序能否按照你的意愿正常运行就要看你的思路和算法是否正确、合理。

在实践过程中不仅要学会别人的例程,还要在别人的程序上改进和拓展,让程序产生更强大的功能。同时,还要懂得通过查阅芯片数据手册里有关芯片命令和数据的读写时序来核对别人例程的可靠性,如果你觉得例程不可靠就把它修改过来,成为是你自己的程序。

单片机硬件设计

当编写自己的程序信手拈来、阅读别人的程序能够发现问题的时候,说明你的单片机编程水平相当不错了。接下来就应该研究的硬件了。硬件设计包括电路原理设计和PCB板设计。学习做硬件要比学习做软件麻烦,成本更高,周期更长。

但是,学习单片机的最终目的是做产品开发----软件和硬件相结合形成完整的控制系统。所以,做硬件也是学习单片机技术的一个必学内容。

电路原理设计涉及到各种芯片的应用,而这些芯片外围电路的设计、典型应用电路和与单片机的连接等在芯片数据手册都能找到答案,前提是要看得懂全英文的数据手册。

否则,照搬别人的设计永远落在别人的后面,你做的产品就没有创意。电子技术领域的第一手资料都是英文,从第一手资料里你所获得的知识可能是在教科书、网络文档和课外读物等所没有的知识。

娴熟的单片机C语言编程、会使用Protel软件或 AltimDesigner软件设计PCB板和具备一定的英文阅读能力,你就是一个遇强则强的单片机高手了。


推荐阅读

史海拾趣

无锡友达公司的发展小趣事

随着产品性能的不断提升和市场需求的扩大,无锡友达开始积极拓展国内外市场。公司的产品不仅覆盖国内二十多个省、市,还远销欧美、中东、港澳台等国家和地区。通过与国际知名企业的合作,无锡友达不断提升自身的品牌影响力,逐渐在全球电子行业中占据一席之地。

Diconex公司的发展小趣事

随着环保意识的不断提高,电子行业的环保要求也越来越高。Diconex公司积极响应环保号召,将环保理念融入生产全过程。公司采用环保材料和工艺进行生产,降低生产过程中的污染排放。同时,公司还建立了完善的废弃物处理机制,确保废弃物得到合理处理和资源化利用。这种环保理念的实施不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

AMI Semiconductor公司的发展小趣事

在电子行业的激烈竞争中,Diconex公司凭借其卓越的技术创新能力脱颖而出。公司成立之初,便专注于研发高性能、低能耗的半导体芯片。通过不断的研发投入和团队努力,Diconex成功推出了一系列具有行业领先水平的产品,赢得了客户的广泛认可。随着技术的不断升级和市场需求的不断增长,Diconex逐渐在电子行业占据了一席之地。

Antelec公司的发展小趣事

为了确保产品质量的稳定性和可靠性,Antelec公司高度重视质量管理体系的建设。公司引入了国际先进的质量管理标准,建立了完善的质量管理体系,并不断加强员工的质量意识和技能培训。这些举措使得公司的产品质量得到了持续提升,赢得了客户的广泛认可。

Excelics [Excelics Semiconductor, Inc.]公司的发展小趣事

随着环保意识的不断提高,绿色生产成为了电子行业的发展趋势。Excelics Semiconductor积极响应这一趋势,将绿色环保理念融入到了公司的生产和经营中。他们采用了环保材料和清洁能源,减少了生产过程中的污染排放。同时,他们还积极参与环保公益活动,为推动电子行业的绿色发展贡献了自己的力量。

请注意,以上故事均为虚构内容,旨在展示一般电子行业发展过程中可能遇到的情况和挑战。

Fabrimex AG公司的发展小趣事

近年来,Fabrimex AG在品质管理和环境保护方面取得了显著的成绩。2016年,包括Fabrimex在内的整个WERAP集团均通过了ISO 9001:2015和ISO 14001:2015认证。这些认证不仅证明了公司在品质管理和环境保护方面的实力,还为公司赢得了更多客户的信任和认可。此外,公司还积极参与行业标准的制定和修订工作,推动行业的技术进步和发展。

这些故事只是Fabrimex AG在电子行业发展历程中的一部分,但它们足以展示公司在技术创新、市场拓展和品质提升方面的不懈努力。通过这些努力,Fabrimex AG在电子行业中逐渐崭露头角,成为了一家备受瞩目的企业。

问答坊 | AI 解惑

大家好啊,好久没来了,突然一种亲切感上来心头。。。

好久没来了,感觉很对不起似的,心里有中失落感,坛子好酒,可我们是如何认真对待的呢。。。 我有所改变,应该,以后坚决为论坛多做事,欢迎大家提问…

查看全部问答>

传说中的易懂单片机教程(名不虚传)

一直收藏,一直没有共享,或许你不是用它完成的单片机的入门,我也不是,入门了再看,依然受益…

查看全部问答>

宽带放大器

本帖最后由 paulhyde 于 2014-9-15 03:38 编辑 宽带放大器  …

查看全部问答>

232/485 软件控制切换

我想做一个电路,即软件配置成是232通信还是485通信。当然单片机端的输入/输出端口公用,通信接口端也管脚公用。 我想可以通过模拟开关实现,而且一定有人用过,有成熟的电路,所以特请教。 谢谢!…

查看全部问答>

ds18b20温度传感器读值不稳定???

问题见红色注释 驱动中的函数:(驱动肯定没问题的,是教程上自带的) static ssize_t  s3c2440_18b20_read(struct file *filp, char *buf, size_t len, loff_t *off) {    DS18B20PRO();     *buf=sdata;  ...…

查看全部问答>

vs2005可以调试wince代码,但是不能用远程工具,是平台管理。

vs2005可以调试wince代码,但是不能用远程工具,是平台管理。 估计nk里少了远程工具的模块,要怎样才能将模块直接放到wince的nandflash里,启动它,然后和pc机的远程工具连上。 nk启动后,tcp/ip是通的,ping验证。 C:\\Program Files\\Common F ...…

查看全部问答>

关于89s51的小程序的问题 简单

#include unsigned char code tab[]={0xco,0x9f,0xa4,0xb0,0x99,0x82,0xf8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; sbit S1=P2^0; //这一段是什么意思?? void Delay() {    unsigned int i,j;    for(i=0;i…

查看全部问答>

USB视频设备在我的电脑里好使。但是为什么再QQ上是绿屏?

在我的电脑里。USB视频设备是可以用的。但是在qq上就显示不出来了。说是连接成功。但是不能看见自己。…

查看全部问答>

求求各位大哥帮帮忙啊..急(1)

说说以下程序的意思 void IsrIRQ( ) {         int count = 0;         unsigned int isr_pending;         unsigned int isr_mask = 0x00000001;         ...…

查看全部问答>