历史上的今天
返回首页

历史上的今天

今天是:2024年10月29日(星期二)

正在发生

2021年10月29日 | 单片机学习笔记————单片机开发产品流程

2021-10-29 来源:eefocus

一、明确任务


分析和了解项目的总体要求,并综合考虑系统使用环境、可靠性要求、可维护性及产品的成本等因素,制定出可行的性能指标。


二、划分软硬件功能


单片机系统由软件和硬件两部分组成。在应用系统中,有些功能既可由硬件来实现,也可以用软件来完成。硬件的使用可以提高系统的实时性和可靠性;使用软件实现,可以降低系统成本,简化硬件结构。因此在总体考虑时,必须综合分析以上因素,合理地制定硬件和软件任务的比例。


三、确定希望使用的单片机及其他关键部件


根据硬件设计任务,选择能够满足系统需求并且性价比高的单片机及其他关键器件,如A/D、D/A转换器、传感器、放大器等,这些器件需要满足系统精度、速度以及可靠性等方面的要求。


四、硬件设计


根据总体设计要求,以及选定的单片机及关键器件,利用Protel等软件设计出应用系统的电路原理图。


五、软件设计


在系统整体设计和硬件设计的基础上,确定软件系统的程序结构并划分功能模块,然后进行各模块程序设计。


单片机程序设计语言可分为三类:


➢ 机器语言 :又称为二进制目标代码,是CPU硬件唯一能够直接识别的语言(在设计CPU时就已经确定其代码的含义)。人们要计算机所执行的所有操作,最终都必须转换成为相应的机器语言由CPU识别、控制执行。CPU系列不同,其机器语言代码的含义也不尽相同。


➢ 汇编语言 :由于机器语言必须转换为二进制代码描述,不便于记忆、使用和直接编写程序,为此产生了与机器语言相对应的汇编语言。用汇编语言编写的程序执行速度快,占用存储单元少,效率高。


➢ 高级语言 :高级语言具有很好的可读性,使程序的编写和操作都十分方便,目前广泛使用的高级语言是C51。


汇编语言和高级语言都必须被翻译成机器语言之后才能被CPU识别。


六、仿真调试


软件和硬件设计结束后,需要进行进行进入两者的整合调试阶段。为避免浪费资源,在生成实际电路板之前,可以利用Keil C51和Proteus软件进行系统仿真,出现问题可以及时修改。


七、系统调试


完成系统仿真后,利用Protel等绘图软件,根据电路原理图绘制PCB(Printed Circuit Board)印刷电路板图,然后将PCB图交给相关厂商生产电路板。拿到电路板后,为便于更换器件和修改电路,可首先在电路板上焊接所需芯片插座,并利用编程器将程序写入单片机。


接下来将单片机及其他芯片插到相应的芯片插座中,接通电源及其他输入、输出设备,进行系统联调,直至调试成功。


八、测试修改、用户试用


经测试检验符合要求后,将系统交给用户试用,对于出现的实际问题进行修改完善,系统开发完成。


单片机学习方法探讨:

单片机学习的过程应该是一个循序渐进、不断学习、不断积累的过程,大致分为三个阶段。


第一阶段:掌握开发单片机的必备基础知识。


首先是熟练掌握单片机的基本原理,虽然现在单片机厂商众多,但各家单片机的基本结构和原理都比较相近,例如内核结构、内存分配、中断处理、定时计数、串行通信、端口复用等一些最基本的概念和原理。除此之外,我们还需要学习模拟电子、数字电子、C语言程序开发以及原理图和PCB(Printed Circuit Board,印刷电路板)设计等知识。只有扎实的掌握了这些知识,在进行系统开发的时候,才能顺利地进行原理设计、PCB布板、程序编写、系统联调等工作。


第二阶段:在掌握好一款单片机原理和应用的基础上,开始学习其他各家单片机,了解其独有的功能和特点。


例如实际工作中若客户要求低成本,那我们可以选用和泰、义隆、华邦等这类台湾芯片;如果客户要求工业级的性能,那么最好从PIC、NEC、飞思卡尔、NXP等这些欧美和日式单片机中选择;若要进行功耗的开发,选用MSP430系列应该有一定优势;在进行测量仪器设计的时候,C8051和AduC842这类数模混合芯片又显得比较实用。


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


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


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

推荐阅读

史海拾趣

Davicom公司的发展小趣事

随着产品技术的不断成熟和市场竞争的加剧,Davicom开始积极拓展市场,加强品牌建设。公司加大市场推广力度,积极参加国内外各类展会和论坛,与潜在客户建立联系。同时,Davicom还注重提高产品质量和服务水平,赢得了客户的信任和好评。

BLACK&DECKER公司的发展小趣事

BLACK&DECKER在技术创新方面一直走在行业前列。公司不断投入研发资源,推动电动工具技术的进步。例如,1979年,BLACK&DECKER发布了第一台手提式充电吸尘器Dustbuster,这一创新产品迅速成为市场上的热销产品,并推动了整个吸尘器行业的发展。此外,BLACK&DECKER还积极参与行业标准的制定工作,通过制定严格的产品质量标准和安全规范,为整个电子行业的健康发展做出了贡献。

EFINIX公司的发展小趣事

经过深入研发,EFINIX公司成功推出了Quantum™可编程加速器技术。与传统的FPGA技术相比,Quantum™技术可将面积利用率提高4倍,使得ASIC、ASSP和FPGA领域的高级可编程硅产品得以实现。该技术使EFINIX的产品在面积、功耗、性能等方面具有显著优势,吸引了众多客户的关注。

Advanced Optoelectronic Technology Corp公司的发展小趣事

AOTC公司起源于一个由几位电子工程专家组成的小团队,他们共同研发出了一种新型的光电转换器,具有更高的转换效率和更小的体积。这一技术突破迅速吸引了风险投资家的注意,公司得到了初始的资金支持,并开始了正式的商业化进程。

Cyrustek公司的发展小趣事

作为一家具有社会责任感的企业,Cyrustek始终注重可持续发展。在产品设计和生产过程中,Cyrustek注重环保和节能,积极采用环保材料和绿色生产工艺。同时,Cyrustek还积极参与社会公益事业,为社会做出了积极贡献。这种对社会责任的关注和履行,不仅提高了Cyrustek的品牌形象,也为其在电子行业中赢得了更多的尊重和信任。

以上五个故事仅为示例,并不代表Cyrustek公司的真实历史。在实际应用中,这些故事可以根据Cyrustek公司的具体情况进行调整和修改。

Coiltronics公司的发展小趣事

随着市场的不断扩大,Coiltronics公司意识到单凭自身的力量难以满足日益增长的市场需求。于是,公司开始积极寻求与其他企业的战略合作。通过与知名电子设备制造商建立合作关系,Coiltronics成功将其线圈技术应用于更广泛的领域,进一步提升了市场份额。同时,这种合作也带来了双方在技术研发、市场推广等方面的深入交流,为公司的长远发展奠定了坚实基础。

问答坊 | AI 解惑

华为内部——射频知识培训ppt

好东西,拿出来分享给大家,下载的顶帖啊。…

查看全部问答>

非接触充电,看起来很好玩~~

早前在TI的一些产品中,提及了震动产生能量的想法。 最近看到了一个文章,说到了乘用车的非接触充电,分享下 电动车的特点是能够在家里及停车场接上电源线进行充电。但是,由于持续行驶距离问题,充电次数比汽油车加油更加频繁,便利性因此有可能 ...…

查看全部问答>

请推荐一本学习vxwork嵌入式编程的好书?

请推荐一本学习vxwork嵌入式编程的好书?…

查看全部问答>

如何实现分级背光:D0\D1\D2\D3\D4

YLS3C2440A的BSP中只提供过两个背光级别,亮与暗。。。我现在想多分几级,比如D0,D1,D2,D3,D4。。。D4是亮度最大,D0是亮度最小,即为暗,其它几个级别是介于其中。。。有朋友说得硬件支持,不知道对不对。。。 如果S3C2440不支持的话,哪位牛 ...…

查看全部问答>

2812程序中有超过8K数据时的CMD文件分配问题请教!

最近在编写的一个系统控制软件中需要用到大量自己编制的数据表,数据量很大已经超过了8K,即已经超过了RAML0L1范围,疑问是怎样将只读的数据表格分配到FLASH区中?我在分配到FLASH中时程序烧写后相应区域读出来的不是0就是0x0ffff;是否是需要修改.ge ...…

查看全部问答>

adc0832读取两次结果不一样

void choose_channel(uchar channel){ P2DIR|=BIT5+BIT4+BIT3; TLC0832_CS_L;_NOP(); TLC0832_CLK_L; TLC0832_DIO_H;//start bit TLC0832_CLK_H;_NOP();// first up step TLC0832_CLK_L; TLC0832_DIO_H;//SGL_H ch ...…

查看全部问答>

看图求解释

当设置keil中的Debug选项时,出现该对话框,有谁知道是怎么回事儿吗?…

查看全部问答>

L298N 空载正常 负载输出电压低于1V

我的L298N模块做出来之后,接上两个电机,发现转速不一样, 测试了一下,两个电机的空载输出电压一样,都为4.8V左右(上次测是是6.6V  不知道为什么了---__---|||)                 ...…

查看全部问答>

智能用电监控、保护系统创意进度帖+ 原理图

前几去电子市场买元件时没想到竟然碰到了和我想法接近的产品(延时开关)。顺便拍了张照片 [ 本帖最后由 ltbytyn 于 2013-10-12 00:39 编辑 ]…

查看全部问答>

MSP430G2553的比较器CAPD缓冲器是什么

手册上CAPD是端口禁用缓冲器,缓冲器有什么作用?关不关它有什么影响? 手册IO口P1.1设置上关于CA的设置也有CAPD置为1为什么要置为1?…

查看全部问答>