在当前,电子信息类专业的大中专学生和想掌握产品硬件设计的工程师一般都会采用STC系列单片机作为入门的硬件平台。在学习STC单片机前,还需要解决以下3个基本问题:
(1)在学习STC单片机之前,需要哪些知识、经验和技能?
(2)STC系列单片机型号众多,选择哪个型号的STC单片机比较好?
(3)如何制定学习采用STC系列单片机开发产品的目标?
一、基础知识和技能
图一
在学习单片机之前,如果想比较容易的学习采用STC系列单片机开发电子类产品的知识、经验和技能,那么,一般情况下,最好能掌握如图1所示的计算机和电子技术基础知识和技能。可是,现在有以下两个问题:
(1)如果没有完全掌握图1所示的基础知识和技能,能学好单片机吗?
(2)如果对图1中所示的基础知识和技能仅仅是了解,能学好单片机吗?
对于这两个问题,我的答案是:
(1)如果能完全掌握和精通图1中所示的基础知识和技能,那么,在学习单片机时,会相对比较容易些。不过,说实话,要想精通图1中所示的基础知识和技能,这个要求确实比较高,对于什么是“精通”这个事,其实,也没有固定的标准。
我觉得,如果在学习单片机过程中,需要哪些知识和技能,咱们都能拿来直接使用,那么,这也算一个“精通”的标准,对于学习单片机而言,也足够了。
(2)对于以上对于基础知识和技能所谓“精通”标准的朋友,其实,也不用灰心丧气。其实,由于工程师不可能记住和熟练掌握所有研发产品时需要用的知识、技术、经验和技能,因此,一般情况下,做产品研发的工程师都需要掌握一种“翻书和搜索”和“边学边用”的产品设计方法。
由此可知:
(1)在学习单片机时,知道怎么找到图1中的基础知识和技能,随时用到,随时翻书和搜索相关资料,边学边用即可,不必强求“精通”。
(2)在学习单片机和用单片开发产品过程中,要有意识的“精通”图1中的基础知识和技能。这样才能让自己在后续开发同类产品,用到相同知识和技能时,能够做的更快和更好,达到“随时需求,信手拈来”的境界最好。
二、单片机选型
由于STC系列单片机具备很多型号,在学习单片机之时,我们选择哪个型号的单片机比较好呢?
在选择STC单片机的型号时,可以考虑以下原则:
(1)主流:短期内不会停产,应用广泛,可以应用的产品设计中,一般选择新出的主流型号。
(2)配置和功能最全和最好:选择引脚、配置、性能和功能最多、最全和最好的型号。
(3)好用:开发工具便宜、好用和容易获得,主要是选择能方便下载程序、进行仿真和参考设计资料丰富的型号。
图二
根据以上原则和对当前STC系列单片机所有型号进行分析后,可以采用如图2所示STC8系列单片机的以下两个型号作为学习单片机的基本型号:
(1)STC8A8K60S4A12,LQFP64S封装。
(2)STC8A8K64S4A12,LQFP64S封装。
三、学习单片机的目标
在学习单片机前,可以参考图3所示从产品软硬件角度考虑的软件和硬件设计相关的学习目标。
图三
在单片机学习过程中,对于图3所示需要掌握和精通的软件和硬件相关的知识、经验和技能而言,一般情况下,都要有所涉猎,不要求全部记住和达到“随时需求,信手拈来”的程度,但是,一定要勤总结,建立自己的软件设计知识财富库和硬件设计知识财富库,以便后续进行产品设计时,能达到“随时用,方便取”的程度。这也是一种非常好的习惯。
由于当前,以STM32位代表的32位单片机已经成为开发电子类产品的主流技术,且学习STC单片机的主要目的是为进阶采用32位单片机开发产品做准备,因此,我觉得,在学习单片机时,达到以下学习目标后,即可学习使用STM32单片机研发电子类产品的知识、经验和技能了。
(1)掌握C语言的基本语法和规则,能够用C语言实现1个或2个产品的程序即可。
(2)掌握单片机的组成结构和片内外设功能及通过配置寄存器操作片内外设的方法,了解指令集和汇编语言。
(3)建议自主实现无线遥控自动寻迹避障的玩具车或者无线遥控玩具飞机项目,通过项目实战,建立使用嵌入式C语言进行软件编程的思想和产品硬件电路设计的基本思想。
(4)通过建立软件和硬件模块库,掌握产品设计过程中的模块化设计思想。