菜鸟零基础学电子之从屌丝向高富帅的第一步
扫描二维码
随时随地手机看文章
51单片机是每位电子工程师,最先接触到的单片机(至少我认识的都是,也不排除有高人),很多大神认为51即将完成它的历史使命,但是个人觉得,它简单的操作,是新童鞋用来入门的不二之选。它的价格低廉,一碗刀削面的价格,再加上它的资料非常多,最为代表性的是郭天祥老师的教程《教你十天学会单片机》 。童鞋们要意识到51单片机是作为步入电子世界的第一个台阶。
如果你现在还在热衷于用51单片机做小车、驱动LED、做电源,那么你已经OUT了,如果你坚持要把51用到资源耗尽再转型,那屌丝之路还有很长一段要走。你要果断放弃使用51单片机向高富帅迈出第一步,MSP430单片机,个人认为是学单片机的第二个台阶,现在我就来告诉你为什么。
1. MSP430F149单片机VS STC89C52
看看下表,MSP430F149和STC89C52的区别,简直是万恶的美帝国主义和墨西哥阶级弟兄的区别。看看ROM和RAM,一个是上汽通用五菱微型面包车,一个是擎天柱大哥,要知道ROM越大所能装载的程序就越大,RAM越大临时存储的数据越多;看看片上集成的外设,一个是武装到牙齿的美式装备,一个是小米加步枪,是小米+步枪,不是小米加牌步枪;再看看功耗模式和电源要求,真男人,不解释。
有人会吐槽价格,看看片上外设吧,你要是使用STC89C52+ASIC的组合,估计价格远远超过10元了;有人会吐槽封装,没记错的话,MSP430也有DIP封装哟。
msp430在运算速度上,是51单片机无法比拟的。再加上MSP430内部集成了硬件乘法器,大大提高了运算速率。Msp430是低功耗单片机,特别适用于采用电池供电设备。如果你将来往低功耗发展,那么msp430和PIC个很好选择。
51单片机是最容易学的单片机,但是它的各方面的性能也是很低的,在实际应用中很少有人去用51来开发产。那么要向更高端的单片机发展,msp430是比较好的选择,一方面它让你涉及低功耗的应用,另一方面它的功能和性能已经接近ARM处理器了,学好MSP430是为将来学习ARM做铺垫。
如何很快入门MSP430单片机
学习单片机最快速最有效的方法是用开发板来学习。当你购买了开发板的时候,卖家会给你配送相关的教程,只要稍加练习我想很快就能入门。
本人在学习MSP430的时候也是这样过来的,现在将我的经验与您分享希望对您有帮助,从51单片机跨越到msp430单片机要多长的时间,我说只需要一天,即使学习能力不强的童鞋慢慢琢磨最多一个星期的时间就可以入门。现在我想教会大家几招,帮助你快速入门MSP430单片机。
第一招:吸星大法
吸星大法,一门可以吸走他人内功,占为己用的武功,此武功曾称霸武林,威震四海。单片机的种类用手指和脚趾是数不过来的,用头发来数还有些勉强。若是要每一种单片机都去学它的内部结构,再来编程和应用开发,那简直是蜡笔小新才能做的事。所有任帮主就研发了吸星大法,以吸取他人经验为手段,再加上自身修炼,很快就能拥有一门新的武功。
在学习MSP430单片机中我们怎么应用吸星大法呢?
打开你的IE浏览器,进入淘宝主页,搜索MSP430单片机开发板,出来的宝贝令郎满目,而且绝大部分都是带有视频教程和数据手册的。这些视频教程就是可以让你少走很多弯路,首先你要学会怎么安装IAR软件,然后怎么设置软件,创建一个新的工程。这是最基本的技能,一步一步的跟着他学,你会发现用msp430和51单片机是差不多一样,有它的共性,也有它的不同。
学习单片机,就要尽可能的减少花费在寻址资料和阅读大量数据手册上的时间,应该把时间花在对程序的分析,和对寄存器设置的记忆上。在你买你的开发板时,你的卖家已经帮你把资料整理,把教程和例子都给你,那么就等你把它一一吸入你的大脑转变成为你的知识。
吸星大法——学会利用开发板及视频教程,尽可能的减少弯路,将更多时间用于实际的操作和开发中。
第二招:移花接木
移花接木,是一门与吸星大法相似的武功,但是移花接木的不同之处是利用自己以前用过的武功,转接到新的武功中去,瞬间爆发出巨大的威力。
就51单片机和MSP430单片机来说,两种单片机的编程上有它的相同的地方,也有它不同的地方,我们可以利用51单片机的程序只需要修改几个字母,那么它的程序就能当做MSP430的程序,这种方法叫程序移植。C语言有很强的移植性,无论是什么单片机,只要是用C语言编程的,大多都可以相互移植,但是移植程序需要将程序模块化,否则移植会变得更加困难。
51 程序模块化移植msp430举例说明
分别用51单片机和MSP430控制两个灯,一个红灯一个绿灯,两个灯交替亮灭,时间间隔0.5秒。 要求:程序要用模块化设计,并且可轻易移植
51单片机硬件电路:
红灯阳极接上拉电阻,阴极接单片机P1.0引脚。
绿灯阳极接上拉电阻,阴极接单片机P1.1引脚
Msp430单片机硬件电路:
红灯阳极接上拉电阻,阴极接单片机P2.0引脚。
绿灯阳极接上拉电阻,阴极接单片机P2.1引脚。
红色字体就是51单片机与MSP430单片机在编程上的不同点。 51单片机需要用IO口时需要位声明,例如 sbit P10 = P1^0; 而MSP430单片机不需要位定义,但是要设置设置IO的方向,例如 P2DIR|= BIT0; 把P20 IO引脚配置成输出模式。
MSP430默认打开看门狗,所有在程序开始时要关掉。
蓝色字体为延迟函数,每一种单片机的延迟函数都是不相同的,这取决于单片机单个机器周期所用的时间,所有在移植程序的时候不能移植延迟函数。但是为了其他程序移植方便,需要将两种不同单片机的延迟函数的函数名取相同。
51单片机的延迟函数一般采用程序延迟,这种延迟方法不精确。
在本文中,MSP430的延迟方式采用MSP430函数库中的延迟函数,__delay_cycles((long)(CPU_F*(double)x/1000.0))来做精确延迟,只需要用户设置好晶振频率即可。
黑色加粗字体,就是我们应用函数,这个应用函数就是一个可移植的模块,这个模块的程序无论移植到哪里都不需要修改直接就可以用。这就是程序模块化移植思想。这个程序不仅仅能应用与MSP430,还能应用其他的单片机,比如STM32。
模块化的程序有以下特点:
1. 在应用函数内不能出现 P10 = 1; 或者 P1OUT &=BIT0; 这些IO口配置的代码 ,必须使用其他名词来代替,比如#define Red_ON P10 = 0,我们就把P10口打开状态用Red_ON来取代。
2. 模块化的程序一般用英文来描述,比如说 Red_ON 意思红灯开,意思表述很明确,所有模块化程序的优点之一是方便阅读和理解。
3.一般的IO配置,常用#define 来定义。并存放在头文件内或者程序的开头。