<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[转，向51单片机说再见--真的吗？我保持怀疑态度。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[系统架构与硬件]]></category>
<pubDate>Fri, 21 Nov 2014 07:34:13 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	背景：在21ic上看一篇文章说向51单片机say bye bye，有点意思，但是就目前来说新的低成本方案成本低于51的涌现，再就是调试后到硬件的结合程度，再就是对寄存器的操作等都存在问题，于是说bye了，不过目前有新的avr平台如Arduino的出现，不亚于arm下的raspberryPi。也就是说这块来讲人人都能学点皮毛就能开发出一个小硬件功能，但就我的个人感觉呢，这块硬件还是像老中医一样，需要有多年的功力的，不全是像这文章所述一样，精华呢，就像那个周星驰的西游降魔篇中的孙悟空一样，小且有力，有穿透力的，成魔也好成佛也好都得小得有压强，是一个同意的整体，51是你练手摔打的一座小山，come on，呵呵。<br/><br/><br/> 最近在访问论坛时看到好多人在讨论51单片机，有人说51单片机应该学习，它是基础;也有人说51单片机是过时的产品，现在产品应用已经不再选用了，也就失去了学习的必要性。从最初的51单片机学起，工作多年后现在基本应用32位MCU做项目，笔者觉得是时候向51单片机说再见了。<br/><br/>51单片机的辉煌过去<br/><br/>51单片机指MCS-51系列单片机，CICS指令集。由Intel公司开发，其结构增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令，以及串行通信能力和5个中断源，内有128个RAM单元及4K的ROM。其代表型号是ATMEL公司的AT89系列，它广泛应用于工业测控系统之中。目前国内的51单片机市场主要为国产宏晶的产品STC系列其号称低功耗，稳定与廉价的特点。<br/><br/>学习51单片机的误区<br/><br/>误区1：51单片机是学习的基础<br/><br/>“51单片机是学习的基础”这句话本身并没有错。在我读本科的时候，当时它无疑是学习的基础——毕竟那时没有更高级的单片机可以供使用，国内更没有更高级的教材供参考，老师的水平也是参差不齐，而51单片机正符合这样的需求，不仅有大量的成型的教材，广泛的示例，当时工作的实际项目也是51单片机为主，于是51单片机理所当然的成为当时的学习基础。要知道笔者读本科的时候是2004年，即10年前的东西。按照莫尔定律，电子行业每18个月更新换代，10年前的技术现在已经更新了6代了——事实也确实如此。<br/><br/>目前32位Crtex-M系列单片机的各种教程已经普及，其学习的难度不断降低。以意法半导体公司的STM32F系列单片机来说，意法半导体在推广产品初期大量赠送了核心板。免费赠送的核心板不仅有流行的32位Cortex-M系列微处理器，更在板上集成在线调试器。随机附赠的光盘或者链接更是提供了大量的示例源代码。我们只需要安装开发环境即可直接编译与下载调试。这时，如果再说51单片机是学习嵌入式的基础肯定是不合时宜了。<br/><br/>误区2：51单片机可以学习寄存器的操作<br/><br/>51单片机可以学习寄存器的操作，这一点儿是不容置疑的。我们分析一下其更深层的原因。在MSC-51单片机的编程环境中，最初是以汇编语言为主要编程语言。要知道汇编语言就是直接操作寄存器的，汇编语言是无法做到C语言的函数调用与封装的。如果说51单片机是以操作寄存器为优点，我觉得更应该说51单片机操作寄存器是一种无奈，是只有一个选项的选择题。<br/><br/>我们现在的Cortex-M系列单片机就无法学习寄存器了吗?显然不是。在硬件设计中，硬件的操作方式就是寄存器的操作，但是其实现却是可以不同。各微处理器提供的C语言库函数包其实质就是将操作寄存器的指令进行了C语言环境下的封装。我们这里用ST官方库函数举一个示例：<br/><br/>void USART_Init (USART1, *USART_InitStruct);//实现串口1的初始化，简单明了，无需注释<br/><br/>笔者在这里也想举一个示例来说明寄存器操作的步骤，但是操作寄存器实在是太复杂了，笔者不想去浪费时间去整理了。<br/><br/>通俗易懂的C语言，方便移植的C语言与硬件平台相对应的编译器联合，就能完成硬件的操作。有了简单、方便的方式，我们为什么还要考虑繁琐，复杂的汇编语言与寄存器操作呢?<br/><br/>误区3：51单片机的成本低<br/><br/>成本都是左右应用的主要因素。项目的立项主要考虑成本，销售的定价主要成本。低成本的方案才会在市场里占有优势。可是，51单片机真就是最低成本了吗?非也。现在按照功能划分，部分Cortex-m0系列的32位单片机的成本也能做3元人民币。其性能已经是51单片机的好几倍了，而且更容易开发与维护。<br/><br/>还有另外一个成本：开发难度成本。51单片机不支持在线调试，有一些问题在编程初期没有发现，只有与硬件连接后才会显现出现来，例如控制操作中经常用到的延时。这时在线调试的巨大优势就体现出来了，它可以极其方便的查看微处理器当时的状态，使得问题的分析变得简单而透明。从而，有效降低开发的难度，缩短开发周期，节约开发资金。<br/><br/>误区4：51单片机入门简单<br/><br/>51单片机入门简单?我对于这个观点持保留意见。想要入门51单片机，我不仅熟悉该款单片机外设，而且还要充分了解寄存器的某位的意义。对于时钟，定时器的配置必须了如指掌。这样无疑会增大我的学习难度与熟悉的周期。如果我们使用32位单片机的库函数模式，我们只需要具备C语言的知识，了解API函数，直接看已经注释过的寄存器意思即可，不需要了解其底层的硬件实现，更不需要了解某个寄存器某个指定位的意义了。这样，减少了我的工作量，从而降低了开发难度。你说是51单片机入门简单，还是32位Cortex内核微处理器简单?<br/><br/>嵌入式系统的学习是非常枯燥而又有挑战性的事情。由于与实际的硬件直接连接，不仅要考虑编写的正确性，而且还要考虑硬件的可靠性。这时，简单、高效的软件编写就变向的降低我们开发难度与风险。51单片机已经是明日黄花，向前看才是发展。是时候向51单片机说再见了!<br/>转自：http://www.21ic.com/app/mcu/201410/604925.htm
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 转，向51单片机说再见--真的吗？我保持怀疑态度。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>