如何学好单片机
了解单片机应用系统开发流程
我们学习单片机的目的就是为了进行嵌入式系统的开发,学好单片机首先要有一个整体认识,下面将简要介绍一下单片机应用系统的开发流程,如图1-22所示。
图1-22 单片机系统开发流程
(1)明确任务分析和了解项目的总体要求,并综合考虑系统使用环境、可靠性要求、可维护性及产品的成本等因素,制定出可行的性能指标。
(2)划分软、硬件功能
单片机系统由软件和硬件两部分组成。在应用系统中,有些功能既可由硬件来实现,也可以用软件来完成。硬件的使用可以提高系统的实时性和可靠性;使用软件实现,可以降低系统成本,简化硬件结构。因此在总体考虑时,必须综合分析以上因素,合理地制定硬件和软件任务的比例。
(3)确定希望使用的单片机及其他关键部件
根据硬件设计任务,选择能够满足系统需求并且性价比高的单片机及其他关键器件,如A/D、D/A转换器、传感器、放大器等,这些器件需要满足系统精度、速度以及可靠性等方面的要求。
(4)硬件设计
根据总体设计要求,以及选定的单片机及关键器件,利用Protel等软件设计出应用系统的电路原理图。
(5)软件设计
在系统整体设计和硬件设计的基础上,确定软件系统的程序结构并划分功能模块,然后进行各模块程序设计。
单片机程序设计语言可分为三类:
➢ 机器语言 :又称为二进制目标代码,是CPU硬件唯一能够直接识别的语言(在设计CPU时就已经确定其代码的含义)。人们要计算机所执行的所有操作,最终都必须转换成为相应的机器语言由CPU识别、控制执行。CPU系列不同,其机器语言代码的含义也不尽相同。
➢ 汇编语言 :由于机器语言必须转换为二进制代码描述,不便于记忆、使用和直接编写程序,为此产生了与机器语言相对应的汇编语言。用汇编语言编写的程序执行速度快,占用存储单元少,效率高。
➢ 高级语言 :高级语言具有很好的可读性,使程序的编写和操作都十分方便,目前广泛使用的高级语言是C51。
汇编语言和高级语言都必须被翻译成机器语言之后才能被CPU识别。
(6)仿真调试
软件和硬件设计结束后,需要进行进行进入两者的整合调试阶段。为避免浪费资源,在生成实际电路板之前,可以利用Keil C51和Proteus软件进行系统仿真,出现问题可以及时修改。
(7)系统调试
完成系统仿真后,利用Protel等绘图软件,根据电路原理图绘制PCB(Printed Circuit Board)印刷电路板图,然后将PCB图交给相关厂商生产电路板。拿到电路板后,为便于更换器件和修改电路,可首先在电路板上焊接所需芯片插座,并利用编程器将程序写入单片机。
接下来将单片机及其他芯片插到相应的芯片插座中,接通电源及其他输入、输出设备,进行系统联调,直至调试成功。
(8)测试修改、用户试用
经测试检验符合要求后,将系统交给用户试用,对于出现的实际问题进行修改完善,系统开发完成。
单片机学习方法探讨
单片机学习的过程应该是一个循序渐进、不断学习、不断积累的过程,大致分为三个阶段。
第一阶段:掌握开发单片机的必备基础知识。
首先是熟练掌握单片机的基本原理,虽然现在单片机厂商众多,但各家单片机的基本结构和原理都比较相近,例如内核结构、内存分配、中断处理、定时计数、串行通信、端口复用等一些最基本的概念和原理。除此之外,我们还需要学习模拟电子、数字电子、C语言程序开发以及原理图和PCB(Printed Circuit Board,印刷电路板)设计等知识。只有扎实的掌握了这些知识,在进行系统开发的时候,才能顺利地进行原理设计、PCB布板、程序编写、系统联调等工作。
第二阶段:在掌握好一款单片机原理和应用的基础上,开始学习其他各家单片机,了解其独有的功能和特点。
例如实际工作中若客户要求低成本,那我们可以选用和泰、义隆、华邦等这类台湾芯片;如果客户要求工业级的性能,那么最好从PIC、NEC、飞思卡尔、NXP等这些欧美和日式单片机中选择;若要进行功耗的开发,选用MSP430系列应该有一定优势;在进行测量仪器设计的时候,C8051和AduC842这类数模混合芯片又显得比较实用。
另外,平时要注意技术积累。在项目开发过程中将一些常用的接口程序和控制算法整理成模块或者函数,日后若在其他的项目开发中有同样或者接近的需求时,原程序可以直接或者进行少量改动后使用,这样一来会节约大量开发成本。
第三阶段:在实际的项目开发过程中,不断深入研究单片机应用技术,不断积累应用行业的专业知识。
有了扎实的单片机应用相关的基础知识,并且熟悉掌握了几款不同类型单片机的开发方法后,对于各种实际的应用项目,往往还需要理解和掌握外围电路相关的原理和分析方法,并结合实际的应用背景,综合考虑各种因素,才能设计出性能最优、结构最合理的单片机应用系统。
51单片机学习三步走
回想起我初学单片机到现在已经有六年了。学习期间使用了51单片机、飞思卡尔单片机、STM16、STM32等单片机。每次接触新的单片机我首先会熟悉它的基本开发,然后再通过项目的实现去深入的了解它。
大家都知道51单片机是最容易学习的,不仅因为它的编程简单,还因为网上的资料非常丰富,查找起来非常的方便。因此,想从事单片机开发的人,一般将51单片机作为入门开发的首选。而我也不例外,我在学习51单片机的时候,基本上是按照这个思路来学习的。
第一步(熟悉流程):因为我是学电子专业的,最开始我先是用面包板自己做了一个51的最小体统,为了更直观的去感受单片机我就加了一个数码管上去。
至于编程方面开始的时候我并没有刻意去背,主要是对着别人给出的模板代码然后自己编辑一次,就是对着照抄(绝对不是复制粘贴如果是复制粘贴自己就会废掉),然后把自己写的程序烧录到单片机中去运行看单片机能不能正常的按照程序工作。
第二步(进阶工序):培养出一些感觉以后我就入手了一块51单片机开发板,然后开始去深入了解51这款单片机。板子刚回来的时候我没有看视频教程,而是还在跟着课本走,现在看来当时真的是有点犯二。当时那天的学习都是感觉怪怪的,后来就跟着视频走,通过学习完板子上的功能也就大概的了解了51单片机的作用。
程序方面就是开始进行修改,就比如说八位流水灯原来是从左到右,现在改成从右到左,1、3、5、7亮2、4、6、8灭,就做这些最简单的修改,自己从新编写对应的程序然后再进行运行。简单了来说就是建立自己的逻辑,学会灵活的使用,把别人的程序变成自己的程序。
第三步(项目实战阶段):当时我们要做毕业设计我和另一个学习软件的同学组成了一个小团队,选了一个小项目进行开发。那个时候条件比较艰苦,主要是因为我们两个没钱想节约一点,在利用之前的开发板的基础上,再加了一个简单的外设,这个外设是我们纯手工制作的。我们当时就耍了一点小聪明,先做外设然后用开发板来测试,确认外设没问题后,再回过头制作51板。然后通过外设来测试自己做的板子是不是能正常工作。就这样我们的第一个项目以及毕业设计就完成了。
上面的三个学习步骤就是我自己学习51单片机的全部过程,我自己偏动手的操作比较多,现在可能没有这种艰苦条件了,很多东西都是现成的,但是动手实践部分也是不可缺少的,有机会就多动手,毕竟动手也可以收获很多的经验,对于以后工作也有很大的帮助。
想要一起学习单片机的朋友,评论”我要入门“,有惊喜,加入我们,就可以与导师一对一互动,快速成长
相关问答
飞思卡尔 智能车入门需要什么知识? - gBFcJKpg1M 的回答 - 懂得做小车那就要模电,数电的知识。最重要学会用软件,CodeWarriorIDE这是飞思卡尔的开发软件主要是单片机要比较好的掌握,另外在控制上你要学会PID等多...
如何设计一个以 单片机 为核心的继电器控制电路?根据提问者的意思以单片机为核心控制继电器,不知提问者提出这个问题的真正目的是什么,若只是为了想要一块继电器板实现相应的功能,可以直接购买一块单片机继电...
飞思卡尔单片机 与51单片机区别?飞思卡尔单片机与51单片机的主要区别在于性能、功能和接口等方面。飞思卡尔单片机具有更高的处理速度、更多的内置模块和更丰富的外设接口,同时采用了ARMCor...
现在流行什么 单片机 ?现在比较流行单片机有51单片机、AVR、PIC、MSP430、STM32、瑞萨单片机、飞思卡尔单片机。1.51单片机ATMEL(艾德梅尔)的:89C51、89C52STC(国产宏晶)单片机:8...
世界上有哪些著名的 单片机 公司?1微芯科技(Microchip)+爱特梅尔(Atmel)(后者被前者收购)Atmel主要是单片机:AT89C51、AT89C52、AT89C2051,AT89S51(RC)对于从事单片机开发的人员...
51 单片机 哪种好一点?国内常用的:ATMEL(美国):AT89S51TI德州仪器(美国):MSP430系列MicroChip(美国):PIC系列单片机飞思卡尔半导体(原摩托罗拉半导体)(美国):基于A...国内常...
最便宜的8位 单片机 是哪颗?一般来说,8位单片机最常用的是三个系列:1、51系列:以intelMCS51为核心,很多公司都买了它的核心,生产自己的51单片机,主要有ATMEL公司(AT89S52等等),STC...16...
各位朋友谁帮忙回答一下!!福建优质的飞织鞋面机,飞织鞋面...[回答]有的,用OV6620啊,数字摄像头。挺好用的,不过我当时用飞思卡尔的单片机做的。哈哈那你试试,一般自己改程序的人都飞不起来先把别人的程序吃透在考虑...
嵌入式软件开发平台有哪些?说说我用过的吧。51和STM32之类的单片机一直用的KEIL。飞思卡尔的用的是codewarrior,现在被恩智浦收购了,恩智浦又出了S32。编译代码的我一般接触的就是这些...
有谁知道 单片机 的常见品牌有哪些啊?牌子很多,Intel,philips,AT,ARM,摩托罗拉,pic,凌阳,飞思卡尔FREESCALE,MICROCHIP,TOSHIBA,TI,ST,RENESAS,SILICONLABS,华邦,...