陶陶的笔记 https://bbs.21ic.com/?429965 [收藏] [复制] [RSS]

日志

如何成为单片机高手[转]

已有 1417 次阅读2006-2-22 15:48 |系统分类:网上好文

     单片机适用于电子玩具、工业控制、民用电器、机电一体化产品、航天航海等众多领域,而单片机的应用开发不单是软件的开发,其开发语言和硬件密切相关。所以只有开发者对单片机的内部结构非常了解,才能编好软件。而单片机的开发应用还涉及到硬件扩展接口和各类传感器,更重要的是必须尽可能地了解各学科中适应单片机完成的控制项目以及控制过程。

    掌握单片机的应用开发需要一个过程。首先必须掌握数字电路和模拟电路方面的知识,还必须学习单片机原理、硬件结构、扩展接口和编程语言。初次开发时由于没经验,可能要经过多次反复才能完成项目。这时,你会得到较大的收获和积累,表现在以下几个方面:


    (1)硬件设计方面的积累;


    (2)软件设计方面的积累;


    (3)设计经验方面的积累。


    硬件开发是单片机应用开发的基础,软件的开发是建立在硬件之上,软硬件设计的巧妙结合是项目开发质量保证的关键。在单片机硬件开发设计中应注意以下几个方面:


    (1)现在最新单片机(MCU)非常多,优势表现在指令执行速度的提高(从12个机器周期到6个机器周期,甚至到1个机器周期),处理器相关功能的提高 (如增加了数学处理、模糊控制等),内部程序存储器和数据存储器容量的进一步扩大(ROM扩到64K,RAM扩到2K),A/D和D/A转换器的内部集成,LCD显示等功能模块的内部集成,外部扩展功能的增强。如Philips的P89C884单片机内部有64K FLASH(快闪存储器)、3个计数器、33MHz时钟、6个机器周期执行一条指令、I2C总线、ISP/IAP等。但是,注意,我要驳斥一些为了卖自己单片机芯片的人的论断,要初学者学习最新的单片机,这是最不可取的一种方案,最新的单片机开发环境不成熟,芯片先进但是不稳定,资料少,对初学者就是垃圾,只有你是高手并有特殊要求才会选择。初学者选择51主系列是最好的,比如AT89S51(52)等,这些占了书籍的 90%,你说是不是用的最多的,也是最好学的!


    (2)扩展接口的开发尽可能采用PSD、FPGA(或CPLD)等器件开发。这类器件都有开发平台的支持,开发难度较小,开发出的硬件性能可靠、结构紧凑、利于修改、保密性好。这种方法也是硬件接口开发的趋势。如Altera公司生产的EPM7128S或者Xilinx公司的95108应用较广,在中国市场也容易买到。


    (3)扩展了RS-232等标准串口以后,单片机可和PC机通信,对于众多测控方面的人机对话、报表输出、集成控制等功能进行优势互补。如果芯片支持 1SP/IAP功能还可以进行在线仿真和远程调试远程软件升级。AT89S52支持ISP功能,所以我们可以省去编程器,总线例如,Dallas的1位总线接口、Philips的I2C总线等接口,均配有较多的专用扩展接口,接口扩展十分方便,所配软件有标准模式,也较容易编写。


    (4)C语言是普及最广泛的程序设计语言,它既有高级语言的各种特点,又可对硬件进行操作,并可进行结构化程序设计,用C语言编写的程序较容易移植。目前已有专为单片机设计的C语言编译器,如Franklin C51、KEIL C51,它们可生成简洁可靠的目标代码,在代码效率和代码执行速度上完全可以和汇编媲美。


    有时开发一个单片机应用项目,在仿真调试完成后系统运行正常,而接入现场后出现不能正常运行或运行时好时坏,脱离现场后一切正常,这种现象就涉及到可靠性问题。解决这种问题可以从以下几个方面考虑:


    1、选择性能好、抗干扰能力强的供电系统,尽量少地从电源引入干扰;


    2、设计电路板时排除可能引起干扰的因素,合理布线,避免高频信号的干扰,图1显示了合理的布线和不合理的布线:


    3、选择较好的接地方式,如模拟地和数字地采用一点接地方式,驱动大电流信号时采用光电隔离;


    4、数据采集时进行数字滤波处理,常用的数字滤波方式有:程序判断滤波、中位值滤波、算术平均滤波、递推平均滤波法、防脉冲干扰平均值滤波、一阶滞后滤波等。


    由于干扰问题可能是由于不同的原因引起,在设计时要根据项目应用场所分析可能出现的干扰,有目的地设计抗干扰电路。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)