关注+星标公众,不错过精彩内容

编排 | strongerHuang

微信公众号 | 嵌入式专栏

我们学习单片机的目的就是为了进行嵌入式系统的开发,学好单片机首先要有一个整体认识。

下面将简要介绍一下单片机应用系统的开发流程。

单片机产品开发流程

这里分享一种常见的开发流程,如图所示:

单片机系统开发流程

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这类数模混合芯片又显得比较实用。

另外,平时要注意技术积累。在项目开发过程中将一些常用的接口程序和控制算法整理成模块或者函数,日后若在其他的项目开发中有同样或者接近的需求时,原程序可以直接或者进行少量改动后使用,这样一来会节约大量开发成本。

第三阶段:在实际的项目开发过程中,不断深入研究单片机应用技术,不断积累应用行业的专业知识。

有了扎实的单片机应用相关的基础知识,并且熟悉掌握了几款不同类型单片机的开发方法后,对于各种实际的应用项目,往往还需要理解和掌握外围电路相关的原理和分析方法,并结合实际的应用背景,综合考虑各种因素,才能设计出性能最优、结构最合理的单片机应用系统。

------------ END ------------

关注公众号后台回复『嵌入式开发』『单片机』相关文章。

回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

点击“阅读原文”查看更多分享

嵌入式开发 | 单片机产品开发流程及学习方法相关推荐

  1. 嵌入式单片机产品开发设计框架

    老板突然要给你一个新的需求,要你做一款自己不熟悉的产品,第一感觉都是懵的,不知道这个产品的工作原理是什么?用的是什么方案,什么芯片? 我们首先是买个样品回来研究一下,看别人是怎么做的,然后在别人样品的 ...

  2. 【IoT】产品开发:产品开发战略指南:如何获得竞争优势?

    产品开发战略是指应用于产品开发过程的企业战略,产品的年度战略规划流程是公司整体战略规划的一个小方面,更大的战略计划提供了一个"北极星"来指导和部署公司内部的全部资本和资产. 产品开 ...

  3. 辉芒FT60F011A-DRB单片机产品开发芯片解密IC程序编写烧录芯片

    可以烧录,编带等 特性 l 全自我知识产权8位指令集 l 8层10bit硬件堆栈 l 1Kx14b程序FLASH存储空间(16bytes/page) l 256x8b数据EEPROM(16bytes/ ...

  4. 七彩跑马闪光灯方案开发 MCU产品开发

    七彩跑马闪光灯方案开发 PCBA设计生产 MCU程序开发 芯片烧录 LED灯:各类消毒灯.太阳能灯.频闪变色灯.拍拍灯.月球灯.跑马灯.汽车车标灯.手机补光灯.直播补光灯等: 安防报警:指纹锁.报警锁 ...

  5. C51单片机培训开发班

    伴随着社会经济发展,产业转型,中国已经从"中国制造"转向"中国创造",科技技术是此次产业升 级的最大动力.观察下就可以发现目前单片机.ARM为代表的嵌入式芯片已 ...

  6. 快2022年,从事单片机/硬件开发前景到底如何?

    文 | (微信公众号:华维单片机编程) 最近看到很多放弃学单片机/嵌入式单片机的学员吐槽,说物联网/硬件行业没有前 途,软硬件都要学,工资又低,还不如去做纯软件快手.我很多学员喜欢拿纯软件来 跟单片机 ...

  7. 产品开发的 11 宗罪

    题图 | created by freepik 最近图灵君在翻看一本比较小众的书:<硬件产品设计与开发:从原型到交付>,没成想翻开前言和第 1 章都很惊艳,尤其是第 1 章总结的<产 ...

  8. IPD+CMMI企业产品开发系统性解决方案

    某个通信设备研发与制造公司,研发体系人员约有300多人,2004年初在CMMI咨询专家的辅导下启动CMMI-SW/SE咨询项目,公司成立了由30多个业务骨干人组成的CMMI流程优化组编写CMMI过程定 ...

  9. 聊聊如何在华为云IoT平台进行产品开发

    本文分享自华为云社区<如何基于华为云IoT物联网平台进行产品开发>,作者: Super.雯 . 华为云物联网平台承载着南北向数据互通的功能职责.在华为云物联网平台基础上实现端到端物联网业务 ...

  10. IPD(集成产品开发)文一

    企业发展到一定阶段就会遇到管理瓶颈,IPD流程是一种高度结构化的产品开发流程,它集成了业界很多优秀的产品开发方法论,像搭积木一样的组合成一种非常有效的流程.如果我们能根据企业的规模和行业特点,对全流程 ...

最新文章

  1. 视觉三维重建的关键技术及实现思路汇总
  2. 统计学中的自由度 Degrees of freedom (statistics)
  3. synchronized 和 volatile 关键字的作用
  4. python发邮件给女朋友代码_python发邮件的代码
  5. mysql redo原子写_InnoDB如何保证redolog的完整性?
  6. java 多表格处理工具,表单工具十一大标准
  7. OpenCV Kmeans
  8. php 操作系统,PHP 处理文件和操作系统
  9. C# WinForm开发系列 - Form/Window
  10. 机器学习的数学(三)范数的简单介绍
  11. linux开机自动root,linux怎样设置root自动登录
  12. 【老九学堂】【C语言】常用算法
  13. C/C++编程学习 - 第5周 ⑤ 人见人爱A+B
  14. matlab 5 .封装:幅频特性
  15. 不用加减乘除做四则运算
  16. 30系列NVIDIA显卡安装tensorflow 极简
  17. java opencv 阀值分割_opencv-阈值分割
  18. C++中typeid的使用
  19. Codeforces - Cashback
  20. IBM发展了用于混合云控制的自动化和数据功能

热门文章

  1. fx2n4ad模块中文手册_三菱PLC特殊功能模块FX2N-4AD实用程序讲解
  2. matlab测绘 求坐标系,MATLAB在测绘80与2000坐标系转换中的应用
  3. 转载——傅里叶变换概念及公式推导
  4. python可以用于工业机器人编程_工业机器人四种编程技术
  5. 文字编码和Unicode
  6. 自己动手写一个分库分表中间件(一)
  7. qt之QTcpSocket
  8. java微信企业号接入_java微信企业号接入开发
  9. 重大建设项目土地勘测定界涉及基本农田怎么计算
  10. Chrome 截取长图