学习单片机的目的是开发嵌入式系统。 想要学好单片机,首先要有个整体的认识。 下面简单介绍一下单片机应用系统的开发流程,如图1-22所示。
图1-22 单片机系统开发流程
(一)明确任务
分析了解项目总体需求,综合考虑系统使用环境、可靠性要求、可维护性、产品成本等因素,制定可行的性能指标。
(2)软硬件功能划分
微控制器系统由软件和硬件两部分组成。 在应用系统中,有些功能可以通过硬件或软件来实现。 硬件的使用可以提高系统的实时性和可靠性; 采用软件实现可以降低系统成本并简化硬件结构。 因此,在考虑整体情况时,必须综合分析上述因素,合理制定软硬件任务的配比。
(3)确定要使用的单片机和其他关键部件
根据硬件设计任务,选择能够满足系统要求且具有成本效益的微控制器和其他关键器件,如A/D、D/A转换器、传感器、放大器等。这些器件需要满足系统精度、速度、可靠性等要求。
(4)硬件设计
根据总体设计要求,以及所选用的单片机和关键器件,利用Protel等软件设计了应用系统的电路原理图。
(5)软件设计
在系统总体设计和硬件设计的基础上,确定软件系统的程序结构并划分功能模块,然后进行各模块的程序设计。
微控制器编程语言可分为三类:
➢ 机器语言:又称二进制目标代码,是CPU硬件可以直接识别的唯一语言(其代码的含义在设计CPU时就已确定)。 人们想让计算机执行的所有操作最终都必须转换成相应的机器语言才能被CPU识别、控制和执行。 不同的CPU系列其机器语言代码的含义不同。
➢ 汇编语言:由于机器语言必须转换为二进制代码描述,因此不方便记忆、使用和直接编写程序。 因此,产生了与机器语言相对应的汇编语言。 用汇编语言编写的程序执行速度快、占用存储单元少、效率高。
➢ 高级语言:高级语言具有良好的可读性,使得程序的编写和运行非常方便。 目前广泛使用的高级语言是C51。
汇编语言和高级语言都必须翻译成机器语言才能被CPU识别。
(6)模拟调试
软硬件设计完成后,需要进入两者的集成调试阶段。 为了避免资源浪费,在生成实际电路板之前可以使用Keil C51和Proteus软件进行系统仿真。 有问题可以及时修改。
(7)系统调试
完成系统仿真后,使用Protel等绘图软件根据电路原理图绘制PCB(印刷电路板)图,然后将PCB图提交给相关厂家生产电路板。 拿到电路板后,为了方便器件更换和电路修改,可以先将所需的芯片插座焊接在电路板上,并使用编程器将程序写入单片机中。
接下来,将单片机和其他芯片插入相应的芯片插座,连接电源和其他输入输出设备,进行系统联调,直至调试成功。
(8) 测试修改及用户试用
测试验证满足要求后,系统交付用户试用,对实际出现的问题进行修改和完善,完成系统开发。
单片机学习方法探讨
单片机学习的过程应该是一个循序渐进、不断学习、不断积累的过程,大致可以分为三个阶段。
第一阶段:掌握开发单片机必要的基础知识。
首先是要精通单片机的基本原理。 虽然现在单片机厂家很多,但各个单片机的基本结构和原理都比较相似,比如内核结构、内存分配、中断处理、定时计数、串行通信、端口复用等最基本的概念和原理。 此外,我们还需要学习模拟电子学、数字电子学、C语言程序开发、原理图和PCB(Printed Circuit Board,印刷电路板)设计等知识。 只有扎实掌握这些知识,我们才能在系统开发时顺利地进行原理设计、PCB布局、程序编写、系统联调等。
第二阶段:掌握一种单片机的原理和应用后,开始学习其他单片机,了解其独特的功能和特点。
例如,在实际工作中,如果客户要求成本低,那么我们可以选择台湾芯片,如和泰、义隆、华邦等; 如果客户要求工业级性能,那么最好使用PIC、NEC、Freescale、NXP等,在这些欧美日系单片机中选择; 如果要开发功耗,选择MSP430系列应该有一定的优势; 在设计测量仪器时,C8051、AduC842等数模混合芯片更实用。
另外,还要注重日常生活中的技术积累。 在项目开发过程中,将一些常用的接口程序和控制算法组织成模块或函数。 如果以后其他项目开发有相同或类似的需求,可以直接使用原来的程序或稍加改动。 这样就会节省大量的开发成本。
第三阶段:在实际项目开发过程中,继续对单片机应用技术进行深入研究,不断积累应用行业的专业知识。
在掌握了扎实的单片机应用基础知识,熟悉了几种不同类型单片机的开发方法后,对于各种实际应用项目,往往需要了解和掌握外围电路相关的原理和分析方法,并将其结合起来只有结合实际应用背景,综合考虑各种因素,才能设计出性能最佳、结构最合理的单片机应用系统。