从2006年大二学51单片机开始,算到今天2008年底,我搞51单片机2年多了。毕业后一直作战于通讯网络方面的工作,所有用到的51单片机也主要集中在混合信号处理器方向上。主要用过的片子有Atmel的AT89C51,AT89C52,AT89C51SND1C;Analog Devices的ADuC812,ADuC841;Silicon Laboratories的C8051F121、C8051F064、C8051F300。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
上学时,就学了点汇编,再就是在拿AT89C51搞了些实验课,还画了块板。那时候感觉学的还蛮好的,于是乎飘飘然以为“老子天下第一”。
等到真正找工作的时候,突然感觉到问我的问题大多是硬件方面的,软件方面最多只是问问汇编流程图,再就是和51单片机看似不怎么相关的C语言编程。
记得那时候面试被问的最多的问题就是“用过那些51单片机”,“这个单片机有那些功能”。第一个问题是看你是否有实际的项目经验。我回答“就是MCS51啊”。大实话一句,我理论课、实验课的教材书名和里面的内容都是这么写的。MCS51怎么怎么样的话书上到处都是。不知现在的师弟门还是不是这样写的。可做过实际项目的都知道51只是一种单片机的内核,是一类8位微处理器的统称。每个公司的51都有它自己的具体型号,所以要回答一些具体公司的具体型号。
第二个问题是看你对这个单片机的熟悉程度。我回答“有好多,主要看程序怎么写”。真可谓是他问东我答西,说对也对,说错也错。最好的回答是把芯片资料上第一页的简介背一遍。这个才是最全面全权威的。
上班后,在公司第一次开始拿C语言做AT89C52,第一次遇到了现在的好友Keil。我终于明白面试的时候为什么问C语言了。待的时间也不长,只做了个测激光头移动距离和速度的小东西,算是熟悉了基于C语言的单片机设计。
第一次知道了原来AD,DA也可以做到单片机里面混合信号处理器;第一次看见只有指甲盖大小的51单片机;第一次听说不用大大的编程器也可以给51烧写程序。这就是ADuC812,我玩的第一块混合信号51,也是我玩的最多的一块。直到现在,很多新的项目、实验、嵌入式系统移植,我的第一选择目标还是它。毫不夸张的说我亲手焊下去做实验的ADuC812超过50块。应该说ADuC812其实就是一块标准的51,然后加上了AD、DA、温度传感器、I2C、SPI、WD。简化了全离散器件电路设计的难度,也方便了编程。后来出于产品响应速度的考虑用ADuC841代替了ADuC812。这两块片子,基本上没有区别,封装、引脚、寄存器完全一样,全部兼容。唯一的不同,就我看来,只是后者的处理速度提高了二十倍,而且成本更低。
最近一年多以来,出于更小和更快的原则,越来越多的使用了一些C8051FXXX系列的51。较之传统的51,Silicon的片子几乎集成了除运算放大器外的所有模拟功能,AD、DA、比较器、参考电压、电源检测;数字方面增加的乘法器、捕捉器、USB口、CAN;处理能力竟然达到了100MHz;内嵌128K Flash 8K RAM、支持ISP;而且面积最小的只有3mm*3mm;居然还内嵌了晶振、实时时钟;还有我非常喜欢的交叉开关,允许在任意IO口上定义数字外设接口,感觉有点FPGA的味道,极大的方便了布板。我的天啊,仅仅在一个电阻空间里集成了所有的可能用到的功能,简直是变态、太变态、极其变态。有些时候,甚至可以拿它来代替DSP和CPLD。不过缺点是比较贵,而且需要专门的编程器。
至于AT89C51SND1C,纯粹用来哄老婆开心的,就不在这里献丑了。
用户159348 2008-10-14 08:35
用户1275742 2008-2-15 16:47
目前电子液压制动系统(EHB)在国内的汽车上,象一汽奥迪,东风NISSAN ,奇瑞等汽车应用等很多吗?