单片机是大专学校电类专业的一门普通课,有些学校甚至把它列为选修课,在众多课程中,没有显出它有多么重要。为什么要学习它呢?电类专业有很多专业课,这些专业课非常重要,是各个专业存在的必需课程,学完这些课程可以使学习者成为大学者的继承人,市场对学者继承人的需求太少,大量需要的是产品的研发者,研发产品是需要干实际事情的,需要研发工具,而单片机课程就是学习研发工具使用的课程。学习单片机课程与理论课程不一样,不能只做作业,而是要实际使用单片机,下面就如何准备学习单片机的条件和学习步骤简述一些不成熟的想法。
1.硬件
(1)编程硬件
所谓编程就是把单片机运行的程序烧写到单片机的存储器中,目前大部分单片机都是使用FLASH存储器,这些存储器的写入次数一般是1000次左右,也有1万次或是10万次的。编程也叫程序下载或是烧写。
(2)实时仿真硬件
实时仿真是使用PC机,用软件监视在单片机中实际运行的程序,也就是当程序下载到单片机中后,实时运行程序,在程序中设置断点,通过仿真接口,监视和控制程序的运行。这个过程其实就是调试程序(实际验证程序的正确性)。编程器和仿真器可以是一个装置,也可以是各自独立的装置。
2.软件
单片机开发需要单片机开发软件的支持,软件分为:
(1)编程软件
该软件支持编程器工作,帮助编程器把程序写入单片机。
(2)实时仿真软件
该软件可以在仿真接口的支持下,调试单片机程序。
(3)虚拟仿真
该类软件支持在没有单片机硬件情况下的单片机程序调试。
(4)支持C语言
所有的单片机开发软件都支持汇编语言编程,但是目前人们更喜欢C语言编程,主要是C语言功能强大,可以缩短开发时间。目前就有支持上述功能的软件,例如51系列的Keil51、PIC系列的MPLAB,MSP430系列的IAR等。
3.学习单片机的手段
按照经济实力,学习单片机的手段分为如下几种:
(1)买本单片机书,仔细研究。
(2)网上下载一个具有仿真功能的单片机开发软件(最好支持C语言),在计算机上对单片机虚拟仿真。
(3)购编程器(支持编程器的下载软件有编程器商提供)和实验板(又称为演示板或是目标板),网上下载开发软件。在开发软件的支持下对单片机虚拟仿真,确认单片机程序正确后,用编程器将程序下载到单片机中,观察程序的实际运行。
(4)购仿真接口和实验板,在网上下载单片机开发软件(支持编程、虚拟仿真、实时仿真和C语言),在虚拟仿真完成后,将程序下载到单片机中实时仿真。对于个人学习单片机,具有上述(4)的条件已经是很好了。
4.学习单片机过程中的困扰
单片机种类很多,各个公司提供的单片机、开发硬件和软件功能、价格都不一样,对于初学单片机有很多困惑。
(1)单片机问题
目前单片机很多,学哪一个,其实学哪一个都可以,单片机虽然型号不同,但是芯片内部的资源种类都差不多,而且这些资源的使用方法也大同小异,可以说学会一种,其他种将融会贯通。究竟学哪一种,主要看具备的条件。51系列是老型号,书多、资料多、软件开放和硬件支持还可以,特别是Atmel公司的产品AT89系列,很多人就是学习这款单片机发家致富的。AVR90系列,该系列也是Atmel公司的产品,指令少,学起来容易,芯片种类多,适合各种场合和需要,根据有关资料显示,目前该单片机芯片的使用数量很大,大有超过51系列芯片数量的趋势。PIC系列,该系列是Microchip公司的产品,种类多,芯片抗干扰能力强,使用的人很多,
特别是PIC
16F877芯片,由于适合学校使用,在该公司大学计划的支持下,免费赠送开发器和实验板,因而使用该芯片的人群大增,也是可以和51系列单片机抗衡的单片机。MSP430系列,是TI公司的产品,最近几年才被杭州利尔达公司引进,是16位、超低功耗单片机,特别适合手持设备等低功耗设备的开发,实际上,由于该系列引脚多,内部资源多(具有硬件乘法器),所以在很多产品开发上都有用武之地,据有关人士预测,该系列是最具前途的单片机。还有很多单片机型号,由于不太了解,不敢妄加评论,但可以想象,一定是不错的单片机,否则就不会在竞争激烈的市场中存在。
(2)开发软件问题
不同种类的单片机都配套有相应的开发软件,这些软件很多都是专业软件公司开发的。51系列,目前开发软件是Keil51,该软件支持C语言,但是在网上下载的版本,只支持2K程序。PIC系列的开发软件是MPLAB,在HI-TECH公司C语言支持软件PICC的支持下,该软件很好用,但是PICC是需要激活密码才能运行的。MSP430系列的开发软件是IAR,该软件有开放1个月的全功能限期版本和C语言4k支持版本,可见该系列的软件开放是最好的。哪种单片机的开发软件开放的好,就会引起人们对该单片机的兴趣,单片机提供商也深谙此道,所以网上经常可以找到更开放版本的软件。
(3)仿真接口
仿真接口,又称为仿真器,老式单片机由于没有FLASH存储器,所以仿真编程难度很大,新型号的单片机,几乎都有FLASH存储器的芯片,这样的芯片都支持在电路编程(在系统编程),所谓在电路编程,就是用3~5根线就可以将程序写入单片机,并能够将单片机内的程序运行情况、寄存器内容等信息传输到PC机上。这种编程方法需要在单片机与PC机之间安装一个仿真接口,该接口一般需要购买。AT89S51、PIC16F877就是具有这种能力的单片机。
但是,对于初学者来说,支持该单片机编程和仿真的接口需要购买,而且简单接口在仿真时会占用芯片资源,给单片机系统开发带来不便。MSP430系列单片机也是具有这种能力的单片机,但是该单片机采用标准JTAG接口,JTAG是一种标准(IEEE1149.1),是为测试芯片而制定的,目的是用TCK、TDI、TDO和TMS四个信号来测试芯片的内部状态,为什么测试芯片还需要专门制定标准呢?这是因为复杂芯片引脚太多,特别是还有些芯片一旦安装到多层电路板上就无法看到引脚,更不要说测量了,这时就可以在计算机软件的支持下通过JTAG接口,对芯片进行测量,如果各个公司的芯片都符合该标准,就可以将各个芯片的JTAG口串联起来(外国人称为菊花链),无论在电路板上有多少芯片,只需4个引脚,就可以测量电路板上的所有芯片。既然可以测量芯片,当然可以将数据写入芯片,在可编程逻辑器件的数据下载中也使用JTAG接口,出现了在系统编程(ISP)的概念。
也就是,即使可编程逻辑器件安装到了系统中,也可以对其内部电路进行修改,JTAG技术和EDA软件的进步,使可编程逻辑器件的开发与使用得到快速发展。单片机也是在向这个方向努力,前几年出现在市场上的C8051单片机就是使用JTAG接口的单片机,不幸的是该单片机JTAG接口装置和开发软件很贵,阻碍人们使用该单片机。
使用JTAG口,必须在计算机与芯片JTAG接口之间连接一个接口装置,该装置随芯片而异,实际上JTAG接口装置都是很简单的(就是一个缓冲器),但是由于各个公司的早期产品不完全支持JTAG接口,而JTAG接口装置又必须兼容这些早期产品,就使得JTAG接口装置变的复杂了。
目前,TI公司的MSP430系列芯片就是支持JTAG接口的单片机,该公司称该JTAG接口装置为FET,通过FET就可以对该系列单片机编程与仿真。特别是该接口非常简单,适合自制,网上很多该单片机爱好者就是使用自制的FET开发该系列的单片机,非常成功。
(4)实验板
实验板是学习单片机所必须的,实验板又称为演示板、目标板,其实就是具有单片机的电路板,实验板可以购买,各个单片机的供应商都提供多种多样的实验板。实验板也可以根据需要自制,自制实验板是具有挑战的,需要学会画电路板图。
(5)选择单片机类型
软件:支持C语言,免费下载。
仿真器:用于仿真编程的JTAG接口装置可以自制(很重要,可以节省开支)。
单片机:型号多、功能强、资源多、功耗低,程序存储器容量大。
资料:书多、资料多,特别是网上资料多。
满足上述条件的单片机只有MSP430系列。