单片机 数/模电 C语言 FPGA PLC 嵌入式系统 如何联系学习它们?

本人现在公司做设备维护的工作,主要是应用PLC方面的东西,不过毕竟是维护,所以只能说了解PLC的基础。
我在学校学的是自动化专业,可惜我发现自己什么都“半桶水”甚至有些根本不行!单片机?! 数/模电?! C语言?! FPGA?! 嵌入式系统 ?!都只能说接触过。很多还是最近才开始关注和学习的。
所以想请高人指点一下,如何联系题目中提到的这些知识,并且一步一步的学习它们呢?要是能提供一些这些经典教材就更好了!特别是数模电的参考书,这个我在学校看过清华大学出版社的,不过现在想换本书看看。给自己一个重新的开始和信心!
现在我手头上有的学习教材有:
单片机《单片机的C语言应用程序设计》马忠梅等著北航出版社
《例说8051》另外还有一些培训教程
数/模电 C语言 FPGA PLC 嵌入式系统 都暂时没买参考书。不过听说学C语言有一个套装蛮好。《C专家编程》+《C和指针》+《C陷阱与缺陷》,还有《C语言编程常见问题解答》,这几本搞定估计也要一段时间,所以还没买这些,到底买那几本比较好呢?
我知道人的精力是有限的,不过题目中提到的几个,我们搞定一两个还是应该可以的吧!?
我现在初步是打算看单片机,同时复习C语言和数模电。以后在学习嵌入式系统和FPGE/CPLD。不知道这个想法是否可行??

在说单片机应用之前,首选来谈谈我们使用的电脑(PC机),我们使用的电脑属于通用计算机,真是感叹计算机发展神速!现在个人电脑的性能比以前已经得到了极大的提高,普通PC机的运行速度就已经达到了3GB以上,拥有海量的硬盘空间,80GB、160GB甚至200G都很常见,内存普通的都有256M、512M甚至有1G内存,使用19"大屏幕液晶显示器。。。正是这些电脑的高性能,为我们海量数值计算、信息处理、多媒体和网络应用、办公、家用等的实现成为可能。

相比之下,单片机的硬件配置就没有通用计算机那么高了,单片机运算速度一般只有几兆至几十兆,如51单片机常用的晶振频率有6MHZ、11.0592MHZ和24MHZ等;单片机内部程序空间也比较小,一般在几KB到几十KB;单片机内存RAM一般几百字节到几KB。虽然单片机微型计算机的性能无法和电脑相比,但是单片机具有高可靠性、体积小、智能性、实时性、可塑性强(只要写入不同的程序,同一片单片机能够完成不同的工作)等诸多特点,而且价格低廉,如一片89S51单片机才几块钱。正是这些特点,使单片机成为工程师们开发嵌入式应用系统和小型智能化产品的首选!

举个单片机应用的典型例子,如老式洗衣机采用机械式定时控制器,功能单一,而故障频繁。要开发家用智能化洗衣机,采用性能强大的通用计算机(PC机)固然能够轻易实现,但是这样就大材小用了,而且其成本太高,体积庞大。。。最佳的解决方案就是采用廉价单片机了,采用“单片机+控制程序+接口电路+执行机构”的智能化洗衣机控制方案后,洗衣机就具有了智能化的特性,能够自动进行控制整个洗涤过程,从注水、加洗衣粉、洗涤、漂洗、脱水、烘干等一系列工作过程,甚至能够自动判断洗衣量及衣服材质而采用最佳的洗涤方式等,并且有多种不同的洗涤程序(方式)给你选择,你只需把衣服放进去后洗衣过程就由单片机自动控制下完成了,洗涤完后你拿出来就已经烘干可以穿了:),实实在在的全自动,智能化,这样极大地降低了我们的劳动强度。

从上面的简单例子中,我们看到了单片机应用的现实意义了。单片机极高的可靠性,微型性和智能性(我们只要编写不同的程序后就能够完成不同的控制工作),单片机已成为工业控制领域中普遍采用的智能化控制工具,已经深深地渗入到我们的日常生活当中-----小到玩具、家电行业,大到车载、舰船电子系统,遍及计量测试、工业过程控制、机械电子、金融电子、商用电子、办公自动化、工业机器人、军事和航空航天等领域都可见到单片机的身影。以下是一些应用举例:

1、智能产品:单片机微处理器与传统的机械产品相结合,使传统机械产品结构简化、控制智能化,构成新一代的机电一体化的产品。例如传真打字机采用单片机,可以取代近千个机械器件;缝纫机采用单片机控制,可执行多功能自动操作、自动调速、控制缝纫花样的选择。

2、智能仪表:用单片机微处理器改良原有的测量、控制仪表,能使仪表数宁化、智能化、多功能化、综合化。而测量仪器中的误差修正、线性化等问题也可迎刃而解。

3、测控系统:用单片机微处理器可以设计各种工业控制系统、环境控制系统、数据控制系统,例如温室人工气候控制、水闸自动控制、电镀生产线自动控制、汽轮机电液调节系统等。

4、数控型控制机:在目前数字控制系统的简易控制机中,采用单片机可提高可靠性,增强其功能、降低成本。例如在两坐标的连续控制系统中,用805l单片机微处理器组成的系统代替Z-80组台系统,在完成同样功能的条件下,其程序长度可减少50%,提高了执行速度。数控型控制机采用单片机后口可能改变其结构模式,例如使控制机与伺服控制分开,用单片机构成的步进电机控制器可减轻数控型控制机的负担。

5、智能接口:微电脑系统,特别是较大型的工业测控系统中,除外围装置(打印机、键盘、磁盘、CRT)外,还有许多外部通信、采集、多路分配管理、驱动控制等接口。这些外围装置与接口如果完全由主机进行管理,势必造成主机负担过重,降低执行速度,如果采用单片机进行接口的控制与管理,单片机微处理器与主机可并行上作,大大地提高了系统的执行速度。如在大型数据采集系统中,用单片机对模拟,数字转换接口进行控制不仅可提高采集速度,还可对数据进行预先处理,如数字滤波、线性化处理、误差修正等。在通信接口中采用单片机可对数据进行编码译码、分配管理、接收/发送控制等。

四、单片机程序开发
单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!

单片机程序语言之一:汇编
由于单片机对成本是敏感的,对成本要求较高的情况下程序还是用汇编语言,很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。单片机的汇编指令集一般分为:数据传送类指令、算术操作类指令、逻辑操作类指令、程序转移类指令、位操作类指令等等。

单片机程序语言之二:C语言
将C向MCU(俗称单片机)8051上的移植始于80年代的中后期。客观上讲,C向8051 MCU移植的难点不少。如:
·8051的非冯·诺依慢结构(程序与数据存储器空间分立),再加上片上又多了位寻址存储空间;
·片上的数据和程序存储器空间过小和同时存在着向片外扩展它们的可能;
·片上集成外围设备的被寄存器化(即SFR),而并不采用惯用的I/O地址空间;
·8051芯片的派生门类特别多(达到了上百种之多),而C语言对于它们的每一个硬件资源又无一例外地要能进行操作。
这些都是过去以MPU为基础的C语言所没有的。经过Keil/Franklin、Archmeades、IAR、BSO/Tasking等公司艰若不懈的努力,终于于90年代开始而趋成熟,成为专业化的MCU高级语言了。过去长期困扰人们的所谓“高级语言产生代码太长,运行速度太慢,因此不适合单片机使用”的致使缺点已被大幅度地克服。目前,8051上的C语言的代码长度,已经做到了汇编水平的1.2~1.5倍。4K字节以上的程度,C语言的优势更能得到发挥。至于执行速度的问题,只要有好的仿真器的帮助,找出关键代码,进一步用人工优化,就可很简单地达到十分美满的程度。如果谈到开发速度、软件质量、结构严谨、程序坚固等方面的话,则C语言的完美绝非汇编语言编程所可比拟的。今天,确实已经到MCU开发人员拿起C语言利器的时候了。
下面结合8051介绍单片机C语言的优越性:
·不懂得单片机的指令集,也能够编写完美的单片机程序;
·无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序;
·不同函数的数据实行覆盖,有效利用片上有限的RAM空间;
·程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏;
·C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;
·提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址;
·提供small、compact、large等编译模式,以适应片上存储器的大小;
·中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;
·提供常用的标准函数库,以供用户直接使用;
·头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;
·有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;
·可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等。

ps:今天再看单片机,发现其中单片机的制造工艺多不是很清楚,则把搜到的均列出好好看看:

(1)CHMOS是CMOS(互补金属氧化物)和HMOS(高密度沟道MOS工艺)的结合,除了保持HMOS高速度和高密度之外,还有CMOS低功耗的特点.两类器件的功能是完全兼容的,区别在CHMOS器件具有低功耗的特点.它所消耗的电流比HMOS器件少很多,主要在于其采用了两种降低功耗的方式:空闲方式和掉电方式.CHMOS器件在掉电方式(CPU停止工作,片内RAM的数据继续保持)下时,消耗的电流可低于10μA.采用CHMOS的器件在编号中用一个C来加以区别:如80C51,80C31等.

(2)MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,HMOS单片机的速度比较高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-15
其实他们都是相关的,数/模电 C语言是基础,单片机 FPGA PLC 嵌入式系统这些是深入。
我建议你先学好单片机,单片机是基础,很容易,不过需要多练习。至于学习方法百度里很多,你随便在百度知道里搜下就会有很多。我看你还不懂什么是单片机 FPGA PLC 嵌入式系统。。。。
你在百度知道里好好找下概念,这样你就 you fang xiang le!
jia you!
第2个回答  2008-04-14
先从单片机开始学,我觉得你应该先买块开发板,这样实践结合理论会使你学的更快!C语言和模电是学好单片机的基础!等彻底学会了单片机,你就可以开始学嵌入式了!祝你成功!
第3个回答  2008-04-06
用什么学什么,但最好先把基础学好,像模电,数电,单片机。。。。本回答被提问者采纳
第4个回答  2008-04-08
根据自己的爱好吧
相似回答