八个步骤轻松学会单片机基础与应用
嵌入式工程师需要了解单片机基础及应用,单片机学习主要是它的硬件结构、内部资源与外设的应用。同时需要掌握C语言及汇编语言中的各种功能初始化、开、关以及各种功能函数的编写与调试,虽然掌握的量可能不是很多,但是也属于必修技能。
单片机数字I/O应用
首先,从最早遇到的数字I/O的应用开始
数字I/O刚接触可能不太好理解,在典型应用中,跑马灯是数字I/O最为典型的应用,所以很多人学习它最初就是通过跑马灯。LED开关控制是通过单片机I/O引脚位置位或者清理进行的,字面意思看着挺简单,却涉及数字电路逻辑功能,数字I/O可以说是最早让学习者懂得编程思想的实验。要想让I/O引脚具备输入输出功能,需要对单片机寄存器进行配置,以初始化I/O引脚。
而前面提到的单片机内外功能使用,则是通过对寄存器进行设置、初始化,这也是单片机编程特点。单片机编程小的系统几个函数就可以搞定,多点十几行程序,总之与程序员一样,需要耐心。
RS-232串行接口插头
个人计算机上的一个接口——RS-232串口通讯
由于单片机有一个叫UART的接口,想要将单片机与PC进行通讯,需要使用一个RS-232的电平转换芯片才行,不只是因为单片机通讯方式老,两者的电平逻辑也不一样。
UART接口是我们学习单片机后对“接口”概念的初步认识,学习UART接口不仅是为了理解单片机与PC间的信息交换,同时也能够学习到较为简单的通信协议等。
51单片机定时器仿真
定时器应用——时序逻辑电路
时序逻辑电路可以通过学习定时器使用来利用单片机实现。不要看接触时序逻辑电路较早,它的应用非常的广泛,不管在工业还是在军事等其他领域,让开关间隔几秒开关一次是非常重要的。当然,我们可以通过多种方法来实现这一方案,如普通数字集成电路、PLC、CPLD及FPGA等方法,选择单片机是由于它最简单且最为经济实用。
敲黑板:定时器作为单片机内部资源最重要应用,是实现逻辑与时间控制的基础。
单片机控制流程与中断处理程序流程图
单片机的中断程序
程序循环执行可以说是单片机的特点同时也是弊端,程序执行需要执行时间,当过了时间点程序没有被执行 则该程序相应动作就不会触发,导致许多快速发生的事件被忽略,例如方波频率检测的上升沿,于是就有了中断。有了中断程序,当单片机在执行指令时,会先执行中断程序,当中断程序执行完才会执行正常程序。中断机理其实就是打开关闭跟屏蔽的时机,单片机该如何配置去中断某些程序,总之,都是需要实践去学习积累的。
当你学会中断后,就可以尝试去编写复杂的单片机程序,比如闪着小LED灯的同时扫描按键,再一边传输数据,简单的说,中断可以让单片机“吃着碗里看着锅里”,如果以上四点你都已经学会,那么恭喜你,根据传说中的8020定律,你已经学会了80%。
SPI接口结构图
外部扩展接口——I2C、SPI通讯接口
一款单片机的内部资源是较少的,利用接口进行外部扩展是最普遍的方法,如I2C、SPI通讯接口。I2C及SPI作为典型的EEPROM及SD卡读写实验,是串行通讯接口的基础实现。
单片机PWM调光电路图
单片机的比较、捕捉及PWM功能
该功能其实主要是为了更好的让单片机适合电机控制、信号监测、能够实现电机的速度及步长调节功能。其实PWM波现在也被用来调节LED灯光的主要方法,在接触PWM的时候已经初步接触模拟电路了。
最简单的电压表实验——A/D模数采集
目前的单片机都会自带多通道A/D模数转换器,通过转换器从而获取模拟量、电压、电流等信号。在学习该功能过程中需要区分模拟地跟数字地,还有参考电压、采样时间跟转换速率等概念。
TCP/IP协议模型图
各种协议接触——USB接口、TCP/IP协议、工业总线
USB死目前单片机最主流的通讯协议,也叫下位机与上位机高速通讯接口;而TCP/IP相信很多人都知道,这是互联网使用的通讯协议;工业总线其实就是工业控制各模块的通讯协议。
单片机的学习大致可分为以上八点,其实有几个在初学者刚接触时是不会用到,但是这些在以后都会应用在项目中去,从而集成单片机固件。
PS:字数实在太多,难免出现错字,已审核过两遍,如有部分内容错误请指出,这边会马上进行修改,谢谢!喜欢的请点赞收藏~
初学者如何快速上手单片机
(此处已添加圈子卡片,请到今日头条客户端查看)单片机的学习者有初入职场的菜鸟工程师,有渴求知识的在校大学生,也有迫于项目需求的电子工程师。迫于项目需求转换开发平台的电子工程师往往具备其他类型单片机的使用经验,学习新类型的单片机并不会有太大的障碍,但是菜鸟工程师和在校大学生就是真正的“初学者”。初学者在开始学习单片机的时候都有一个相同的问题那就是“怎么才能尽快地学会使用单片机?”
菜鸟工程师由于身边有“老兵”的指导,加之有目的明确的工程项目的驱动,在单片机学习上并不会走太多的弯路。在校大学生在学习之初,首先要面对的就是“迷茫”,空有一腔热情,却不知如何下手。
在学习单片机之初应当有一些基础知识准备。单片机是电子技术发展到一定程度才出现的产物,本身就是众多电子技术的结晶,对其中一些知识的了解是学习单片机所必需的,所以网络上经常出现的“零基础”学习单片机是不客观的说法。在学习单片机之初,应该具备基础的电路知识,主要包括基本的数字电路和模拟电路知识。比如,在学习单片机的I/O口时,就会涉及数字电路知识中I/O口电平、施密特触发器等内容;在学习单片机的ADC通道时肯定会涉及信号带宽等模拟电路方面的内容。在学习单片机之前不苛求必须有深厚的电路功底,但是常识性的电路知识是不可或缺的。
学习单片机的很大一部分工作是学习单片机的编程,简单地讲就是编写代码控制单片机的工作流程。目前,绝大部分的单片机开发工具都能够支持C语言,并作为单片机的开发语言,也有人推崇使用汇编语言作为单片机的开发语言。不可否认使用汇编语言可以获得更高的执行效率和代码密度,但是汇编语言在开发效率和代码的可读性上比C语言要差。事实上,C语言编译器效率已经提高到了相当高的水平了,C语言编写的代码编译后在执行效率和代码密度上跟汇编语言相比并没有太大的差距,C语言早就成为单片机开发的绝对主力。所以初学者掌握基本的C语言知识即可,无须在开发语言的抉择上花费太多的时间。
准备的最后一点就是学会使用最基本的实验设备,这里列举一般的实验室都能提供的4种设备:万用表、稳压电源、示波器和信号发生器。这些设备的熟练使用将对学习中遇到的调试(bebug)有非常大的帮助。
有了以上的准备,就可以正式开始单片机的学习了。初学者最好选用一款性能稳定,范例丰富并且推广较好的单片机作为学习目标。性能稳定,避免在学习过程中遇到由于芯片本身的设计失当导致的一些无法解决的问题;范例丰富,大量的示例供用户阅读和借鉴,更容易理解单片机的操作机理;推广较好,意味着学习的受众面较广,有很好的学习氛围和学习资料,并且有容易获得的学习开发板。从这3点出发,MSP430系列单片机就是一个很好的选择。
首先,该单片机目前在电子行业已经使用多年,一直都作为低功耗单片机的标杆产品;其次,该单片机所有的型号都具备官方范例代码,而且有较多的参考案例;最后,MSP430单片机在中国通过大学计划推广了多年,大量的大学生使用这款单片机完成实验、参加竞赛,积累了很多的书籍教材和网络资料,开发板类型也很丰富,TI提供售价约为几十元人民币的LaunchPad开发板。单片机都有相似性,学会使用一款单片机,再过渡到另一款就不太困难了。
学习单片机可以从学习单片机的开发环境开始,当前的单片机都有自己对应的集成开发环境(IDE,Integrated Development Environment),并有免费版本供初学者下载使用。集成开发环境可以完成代码的编辑、编译和调试过程,使用起来比较方便。TI推出的CCS5还可以完成MSP430单片机的图形化配置。对于初学者,集成开发环境的基本使用没有障碍,但是特别要注意的是开发环境中对应的开发工程的属性配置。
熟悉开发环境的开发流程后,就可按照引导教材或者用户手册,逐一了解单片机的各功能模块的特性并完成对应的功能模块的实验操作。逐个模块熟悉下来,基本上一款单片机即可学会使用。这样一个流程下来,能够掌握单片机的基本操作。希望熟练掌握则需要进一步通过完成更为复杂的实验或者项目来锻炼。
前面的介绍中也强调了实验的重要性,实际上大多数学习单片机的初学者都会陷入一个误区,过度的重视实验,把绝大部分精力放在调试上,却忽视了单片机使用原理的学习。这种情况在大学生身上非常明显,很多情况下还没有能够理解单片机功能模块或者外设的使用原理和方法,就急切的展开实验。大多数情况下,编写的代码还存在缺陷甚至错误,无法达到预期的效果,就进入到了无尽的盲目修改和调试中。最典型的情况就是刚开始接触一个外设,连工作方式和寄存器的功能还没有弄清楚,就开始粘贴示例代码,并编译下载。反复调试不能成功,心态就开始变的浮躁,进而厌恶单片机。
如果一直调试未果,学习热情被消耗殆尽,对单片机的使用产生恐惧感,最终就会放弃单片机的学习。细究这种情况的原因,其实就是急功近利的心态在作祟。初学者都急切的希望自己的代码可以跑起来,所以重心就从“学”偏移到了单纯的“做”上。这种心态我要特别提出来,希望能够告诫初学者必须保持平稳的心态,先仔细地浏览教材或者用户手册,理解工作原理,之后再调试代码完成实验。
单片机学习过程中每个人都会遇到各种各样的难题并且遭遇长时间的调试过程。遭遇到这样的情况,就需要冷静下来查找问题成因。一方面,可以借助于网络,查找是否有相似的问题并借鉴其他人的分析及解决方案,这是一个比较直接高效的方法;另一方面,反复地查阅单片机的数据手册或者用户手册,逐个分析列举可能的原理,并设置对应的测试来解决,一些“莫名其妙”的问题,往往需要通过这样的手段来解决。
当然,能够获得有使用经验的老师或工程师的指导则是最直接、最有效的方法。随着单片机学习以及使用的深入,遇到的问题将越来越复杂化,这时候外界因为缺乏对此项目的深入了解,所能起到的协助作用就会减弱,这个时候独立的定位问题以及解决问题的能力就必须具备。所以在学习的整个过程中,都应该有意识地培养这种能力。
当熟悉单片机的使用之后,就应该完成一个视野转换的过程。这个时候关注范围则应该由单片机扩展到整个单片机系统上,不仅仅关心单片机上代码的实现,还需要考虑如何构建以单片机为核心的电子系统。单片机工程师一般会对一个或者若干个类型的单片机非常熟悉。
在得到工程项目需求时,能够快速地评估系统所需要的单片机控制核心,在满足需求的前提下一般会尽量采用最熟悉的单片机,合理设计划分系统电路功能模块,尽可能高效利用单片机片上的外设,以达到最优化的设计。如果评估发现使用的单片机不合适,则还需要更换单片机平台。在工业应用上,还必须考虑单片机系统所需要面对的严苛工作环境,保证系统能够顺利通过相应工业标准的测试。最终完成由点到面的扩展,逐步朝单片机工程师方向迈进。
(此处已添加圈子卡片,请到今日头条客户端查看)相关问答
单片机 原理及 应用 主要学什么?单片机原理:单片机由运算器、控制器、存储器、输入输出设备构成。单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程...
单片机 怎么入门?1、首先要了解单片机的基本概念,掌握单片机的结构、功能和特点;2、学习单片机的编程语言,比如C语言、Assembly语言等;3、学习单片机的硬件知识,比如外设的...
51 单片机应用 ?1.工业自动化。如数据采集,测控技术等2.智能仪器仪表。如数字示波器,数字信号源,数字万用表,感应电流表等3.消费类电子产品。如洗衣机,电冰箱,空调,电视...
如果我想能看懂 单片机 的程序,需要怎样学习语言?非常感谢你发来的邀请,我很高兴回答你的问题!现在单片机编程语言主要有两种,一种是汇编语言、一种是C语言。汇编语言要求要对单片机内部结构有要熟悉,由于其...
什么是 单片机 系统?1单片机:单片机就是将CPU、存储器、定时计数器、I/O接口电路等集成在一个芯片。也叫单片微型计算机。2单片机系统:以单片机为核心的控制系统。3单片机应用系...
51 单片机 编程程序怎么编?♣这种技术性问题在今日头条上,几乎没有一个高手给你一个答复。因为学习51单片机编程程序是需要长篇大论,并且用电脑操作截图来说明...51单片机编程程序怎么编?...
单片机应用技术 实训报告怎么写?把自己怎么做的,做的步骤以及做过程中遇到的问题,最后怎么解决的写出来就OK了。把自己怎么做的,做的步骤以及做过程中遇到的问题,最后怎么解决的写出来就OK了。
单片机 是什么?单片机不是执行特定逻辑功能的芯片,而是将计算机系统集成到芯片上的芯片。它等效于微型计算机。与计算机相比,单芯片计算机仅缺少I/O设备。简而言之:芯片变成...
“ 单片机技术 与 应用 ”课程标准设计[回答]1原有教学大纲与新课标的差异原来使用的“单片机技术与应用”课程的教学大纲对知识点分解层层深入,便于学生由浅入深地学习相关知识。但是由于...
求 单片机 编程软件 教程 ?这个问题有点大,因为目前市面上单片机有很多种,而每种单片机都有自己的编程软件,这些编程软件虽然编译原理近似,但是编译环境、编程配置的差别还是很大的,所...