|
掌握单片机的应用开发需要一个过程。首先必须掌握数字电路和模拟电路方面的知识,还必须学习单片机原理、硬件结构、扩展接口和编程语言。初次开发时由于没经验,可能要经过多次反复才能完成项目。这时,你会得到较大的收获和积累,表现在以下几个方面:
(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、数据采集时进行数字滤波处理,常用的数字滤波方式有:程序判断滤波、中位值滤波、算术平均滤波、递推平均滤波法、防脉冲干扰平均值滤波、一阶滞后滤波等。
由于干扰问题可能是由于不同的原因引起,在设计时要根据项目应用场所分析可能出现的干扰,有目的地设计抗干扰电路。