ABB N***01
价格:999.00
ABBN***01ABBN***01ABBN***01分层的思想,并不是什么神秘的东西,事实上很多做项目的工程师本身自己也会在用。看了不少帖子都发现没有提及这个东西,然而分层结构确是很有用的东西,参透后会有一种恍然大悟的感觉。如果说我不懂LCD怎么驱动,那好办,看一下datasheet,参考一下别人的程序,很快就可以做出来。但是如果不懂程序设计的思想的话,会给你做项目的过程中带来很多很多的困惑。参考了市面上各种各样的嵌入式书籍,MCS-51,AVR,ARM等都有看过,但是没有发现有哪本是介绍设计思想的,就算有也是凤毛麟角。写程序不难,但是程序怎么样才能写的好,写的快,那是需要点经验积累的。结构化模块化的程序设计的思想,使***基本的要求。然而这么将这个抽象的概念运用到工程实践当中恩?那需要在做项目的过程中经历磨难,将一些东西总结出来,抽象升华为理论,对经验的积累和技术的传播都大有裨益。所以在下出来献丑一下,总结一些东西。就我个人的经验而谈,有两个设计思想是非常重要的。一个就是“时间片轮的设计思想”,这个对实际中解决多任务问题非常有用,通常可以用这个东西来判断一个人是单片机学习者,还是一个单片机工程师。这个必须掌握。由于网上介绍这个的帖子也不少,所以这里就不多说了。第二个就是我今天想说的主题“分层屏蔽的设计思想”。下面用扫描键盘程序例子作为引子,引出今天说的东西。问题的提出单片机学习板一般为了简单起见,将按键分配的很好,例如整个4*4的键盘矩阵分配到P1口上面,8条控制线,刚好。这样的话程序也非常好写。只需要简单的KEY_DAT=P1;端口的数据就读进来了。诚然,现实中没有这么好的事情。在实际的项目应用当中,单片机引脚的复用相当厉害,这跟那些所谓的单片机学习板就有很大的差别了。另外一个原因,一般设计来说,是“软件配合硬件”的设计流程,简单点说就是,先确定好硬件原理图,硬件布线,***后才是软件的开发,因为硬件修改起来比较麻烦,相对来说软件修改的时候比较好改。这个就是中国传统的阴阳平衡哲学原理。硬件设计和软件设计本来就是鱼和熊掌的关系,两者不可兼得。方便了硬件设计,很可能给写软件带来很大的麻烦。反过来说,方便了软件设计,硬件设计也会相当的麻烦。如果硬件设计和软件设计同时方便了,那只有两种可能,一是这个设计方案非常简单,二是设计师已经达到了一个非常高的境界。我们不考虑那么多情况,单纯从常用的实际应用的角度来看问题。硬件为了布线的方便,很多时候会可能将IO口分配到不同的端口上面,例如上面说的4*4键盘,8根线分别分配到P0P1P2P3上面去了。那么,开发板的那些扫描键盘程序可以去见鬼了。怎么扫按键?我想起了我刚开始学习的时候,分成3段非常相似的程序,一个一个按键的扫描的经历……或许有人不甘心,“那些东西我花了很长时间学习的,也用的好好的,怎么能说一句不用就不用?”虽然有点残忍,但是我还是想说“兄弟,接受现实吧,现实是残酷的……”不过,人区别于低等动物的差别,是人会创造,在碰到困难的时候会想办法解决,于是我们开始了沉思……***后我们引入初中数学学的“映射”的概念来解决问题。基本思想就是,将不同端口的按键映射到相同端口上面。这样按键扫描程序就分成3个层次了。1)***底层的是硬件层,完成端口扫描,20ms***消抖,将端口的数据映射到一个KEY_DAT寄存器上面,KEY_DAT作为对上层驱动层的一个接口。2)中间的一层是驱动层,驱动层只对KEY_DAT寄存器的数值进行操作。简单点说,我们无论底层的硬件是怎么接线的,在驱动层都不需要关心,只需要关心KEY_DAT这个寄存器的数值是什么就可以了。这样出来的间接效果就是“屏蔽了底层硬件的差异”,所以驱动层写的程序就可以通用了。FOXBORO84F-U01S6SSTJGFOXBORO84F-U02S6SSTJGFOXBORO84F-U3QS6SSTJGFOXBORO9301A-SIZE-TSJ-INIMT25-IEATB10NFOXBORO930HA-SIZE-TSJ-INIMT25-IEATB10NFOXBOROIPM-P0904HA______________FOXBOROFBM02FOXBOROAD908ADFOXBOROAD908MFEFOXBOROP0916FLFOXBOROP0916FMFOXBOROP0973CAFOXBOROP0916BXOCFOXBOROFBM204FOXBOROIPM-P0904HAFOXBOROFCM10EFOXBOROFBM01P0400DAFOXBOROFBM04P0400YEFOXBOROFBM01P0400DAFOXBOROFBM01P0400DAFOXBOROFBM04P0400YEFOXBOROP0911***FOXBOROP0970BCFOXBOROP0902XAFBM41FOXBOROFBM07FOXBOROFBM41FOXBOROP0903ZLFOXBOROFCM10EFOXOBOFBM224FOXBOROCP60FOXBOROFBM202FOXBOROFBM203FOXBOROFBM204FOXBOROFBM206FOXBOROFBM207FOXBOROFBM211FOXBOROFBM242FOXBOROFBM04P0400YEFOXBOROFCM10EP0914YMFOXBOROIPM02P0904HAFOXBOROFBM01P0400DAFOXBOROFBM04P0400YEFOXBOROP0911VJFOXBOROP0911YYFOXBOROP0915FUFOXFBOROP0915FXFOXBOROP0973BJFOXBOROP0901VKFOXBOROP0904HAFOXBOROFBM204FOXBOROFBM01P0400DAFOXBOROFBM04P0400YEFOXOROBOFBM02P0400YCFOXOROBOFBM03P0400YDFOXBOROFCM10EP0914YMFOXBOROFBI10EP0972AJFOXBOROFBM01P0400DAFOXBOROFBM03P0400YDFOXBOROP0500RUFOXBOROP0972BEFOXBOROP0904HAFOXBOROFBM41FOXOBOROFBM42FOXBOROP0903CWFOXBOROP0904HAFOXBOROFBM01P0400DAFOXOROBOFBM02P0400YCFOXBOROP0400HHFOXBOROP0500RGFOXBOROP0902YUFOXBOROFCM10EP0914YMFOXBOROP0903CWFOXBOROP0903CWFOXBOROP0916JPFOXBOROP0916DCFOXBOROFBM01P0400DAFOXBOROFBM02P0400YCFOXBOROCP60FOXBOROP0926GGFOXBOROP0904HAFOXBOROP0904HAFOXBOROFBM01P0400DAFOXBOROP0400HHFOXBOROFBM02P0400YCFOXBOROFBM04P0400YEFOXBOROFBM02FOXBOROCP30FOXBOROP0914WHFBM207BFOXBOROFBM02FOXOBOROCM400YHFOXOBOROCM400YNFOXOBOROP0400YFFOXOBOROP0700WBFOXOBOROP0960HAFOXBOROP0904HAFOXOBOROCP60-P096IFRFOXBOROFBM242FOXOBOROFBM207BFOXBOROFBI10EP0972AJFOXBOROFBM04P0400YEFOXBOROIPM02P0904HAFOXBOROFBM201FOXBOROFBM207C_________________________________________________________-FOXBOROFBM237FOXBOROFBM242FOXBOROFBM02P0400YCFOXBOROP0970BCFOXBOROP0904HAFOXBOROP0904BSFOXBOROCP40BFOXBOROCP40BFOXBOROFBM01P0400DAFOXOBOFBM201FOXBOROFBM201FOXBOROFBM41FOXBOROCP40BFOXBOROCP30FOXBOROFBI:P0932ZEFOXBOROFBI接头:P0800DCFOXBOROFBM01:P0400DAFOXBOROFBM01接头:AD194HHFOXBOROFBM04:P0500YEFOXBOROFBM04接头:AD194RYFOXBOROFBM07:CM400YHFOXBOROFBM07接头:P0500SRFOXBOROFBM09:CM400YKFOXBOROFBM09接头:P0700HUFOXBOROIMP2电源模块:P0903ZLFOXBOROP0950CAFOXBOROP0950CQFOXBOROP0904BSFOXBOROFBM01P0400DAFOXBOROCP30FOXBOROIPM02P0904HAFOXBOROFBM07:CM400YHFOXBOROFBM09:CM400YKFOXBOROFBM12:CM400YNFOXBOROFBM14:CM400YQFOXBOROFBM41:P0902XAFOXOBOP0972AJFOXBOROFBI10EP0972AJFOXBOROFBM01FOXBOROP0800DCFOXBOROFBM203FOXBOROFBM203FOXBOROPO400VRFOXBOROFBM242FOXBOROFBM07:CM400YHFOXBOROFCM10EFOXBOROP0904HAFOXBOROPO916JPFOXBOROFBM04FOXBOROFBM07FOXBOROFBM09FOXBOROP0916JPFOXBOROFBM04P0400YEFOXBOROFBM201FOXBOROFBM203FOXBOROFBM204)
厦门莫格电气自动化有限公司
业务 QQ: 1982497648