啥是单片机,学它有钱途吗? 单片机有钱途吗?

\u5b66\u4ec0\u4e48\u5355\u7247\u673a\u597d\uff1f\u5b66\u5355\u7247\u673a\u600e\u4e48\u6837\uff1f\u80fd\u8d5a\u94b1\u5417\uff1f\u6709\u524d\u9014\u5417\uff1f

\u5b66\u89c6\u9891\u526a\u8f91\uff01\u7406\u7531\u5f88\u7b80\u5355\uff0c\u5bb9\u6613\u5b66\uff08\u4e0d\u50cf\u5176\u5b83\u884c\u4e1a\u5b66\u4e60\u6210\u672c\u9ad8\uff0c\u96be\u5ea6\u5927\uff09\uff0c\u9002\u5408\u77ed\u671f3-4\u4e2a\u6708\u77ed\u671f\u5b66\u4e60\uff0c\u800c\u4e14\u884c\u4e1a\u7f3a\u53e3\u975e\u5e38\u5927\uff0c\u65e0\u8bba\u662f\u627e\u5de5\u4f5c\u8fd8\u662f\u81ea\u5df1\u5728\u5bb6\u91cc\u63a5\u79c1\u5355\uff0c\u6708\u6536\u5165\u8f7b\u677e\u8fc7\u4e07\uff0c\u4e24\u4e09\u4e07\u4e5f\u662f\u7a00\u677e\u5e73\u5e38\u3002\u3010\u70b9\u51fb\u8fdb\u5165\u3011\u514d\u8d39\u201c\u77ed\u89c6\u9891\u526a\u8f91\u540e\u671f\u201d\u5b66\u4e60\u7f51\u5740\uff1a www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=313&zdhhr-2y2r-871881885536100772 \u56e0\u4e3a\u73b0\u5728\u77ed\u89c6\u9891\u7684\u5d1b\u8d77\uff0c\u4efb\u4f55\u4f01\u4e1a\uff0c\u4efb\u4f55\u5de5\u4f5c\u5ba4\u6216\u8005\u4e2a\u4eba\u90fd\u9700\u8981\u5236\u4f5c\u526a\u8f91\u5927\u91cf\u7684\u77ed\u89c6\u9891\u6765\u5305\u88c5\u54c1\u724c\uff0c\u53d1\u6296\u97f3\uff0c\u53d1\u670b\u53cb\u5708\uff0c\u53d1\u6dd8\u5b9d\u7b49\u81ea\u5a92\u4f53\u6e20\u9053\u505a\u5c55\u793a\u3002\u56e0\u4e3a\u6bcf\u5929\u90fd\u8981\u66f4\u65b0\u5e76\u53d1\u5e03\u65b0\u5185\u5bb9\uff0c\u6240\u4ee5\u526a\u8f91\u5e08\u6839\u672c\u62db\u4e0d\u591f\uff0c\uff0c\u4f9b\u9700\u5931\u8861\u5c31\u9020\u6210\u4e86\u526a\u8f91\u5e08\u9ad8\u85aa\u6c34\u3002\u800c\u4e14\u526a\u8f91\u8fd9\u4e2a\u6280\u672f\u5e76\u4e0d\u9700\u8981\u9ad8\u8d85\u7684\u7535\u8111\u6280\u672f\uff0c\u4e5f\u4e0d\u9700\u8981\u7f8e\u672f\u97f3\u4e50\u9020\u8be3\uff0c\u57fa\u672c\u90fd\u662f\u56fa\u5b9a\u5957\u8def\uff0c\u8981\u4ec0\u4e48\u98ce\u683c\u7684\u7247\u8981\u4ec0\u4e48\u8282\u594f\uff0c\u7ecf\u8fc7\u4e09\u56db\u4e2a\u6708\u7684\u57f9\u8bad\u90fd\u53ef\u4ee5\u8f7b\u677e\u638c\u63e1\u3002\u4f46\u51e1\u6709\u70b9\u7535\u8111\u57fa\u7840\u4f1a\u7528\u9f20\u6807\u62d6\u62fd\uff0c\u4f1a\u70b9\u51fb\u56fe\u6807\uff0c\u4f1a\u4fdd\u5b58\u9664\u975e\u81ea\u5df1\u4e0d\u60f3\u5b66\uff0c\u6ca1\u6709\u5b66\u4e0d\u4f1a\u7684\u3002\u4f46\u662f\u8981\u5b66\u597d\u5b66\u7cbe\uff0c\u5c31\u4e00\u5b9a\u8981\u627e\u4e13\u4e1a\u8d1f\u8d23\u7684\u57f9\u8bad\u673a\u6784\u4e86\uff0c\u63a8\u8350\u8fd9\u4e2a\u9886\u57df\u7684\u8001\u5927\uff1a\u738b\u6c0f\u6559\u80b2\u3002\u5728\u201c\u77ed\u89c6\u9891\u526a\u8f91/\u77ed\u89c6\u9891\u8fd0\u8425/\u89c6\u9891\u7279\u6548\u201d\u5904\u7406\u8fd9\u5757\uff0c\u3010\u738b\u6c0f\u6559\u80b2\u3011\u662f\u56fd\u5185\u7684\u8001\u5927\uff0c\u6bcf\u4e2a\u57ce\u5e02\u90fd\u662f\u603b\u90e8\u76f4\u8425\u6821\u533a\u3002\u8ddf\u5f88\u591a\u5176\u5b83\u540c\u7c7b\u578b\u5927\u673a\u6784\u4e0d\u4e00\u6837\u7684\u662f\uff1a\u738b\u6c0f\u6559\u80b2\u6bcf\u4e2a\u6821\u533a\u90fd\u662f\u5b9e\u4f53\u9762\u6388\uff0c\u8001\u5e08\u662f\u624b\u628a\u624b\u6559\uff0c\u800c\u4e14\u6709\u4e13\u95e8\u7684\u73ed\u4e3b\u4efb\u4ece\u65e9\u76ef\u5230\u665a\uff0c\u7206\u809d\u5f0f\u7684\u5b66\u4e60\u6a21\u5f0f\uff0c\u63d0\u5347\u4f1a\u5f88\u5feb\uff0c\u7279\u522b\u9002\u54080\u57fa\u7840\u7684\u5b66\u751f\u3002\u738b\u6c0f\u6559\u80b2\u5168\u56fd\u76f4\u8425\u6821\u533a\u9762\u6388\u8bfe\u7a0b\u8bd5\u542c\u3010\u590d\u5236\u540e\u9762\u94fe\u63a5\u5728\u6d4f\u89c8\u5668\u4e5f\u53ef\u6253\u5f00\u3011\uff1a www.huixueba.com.cn/school/yingshi?type=2&zdhhr-2y2r-871881885536100772 \u5927\u5bb6\u53ef\u4ee5\u5148\u628a\u3010\u7ed8\u5b66\u9738\u3011APP\u4e0b\u8f7d\u5230\u81ea\u5df1\u624b\u673a\uff0c\u65b9\u4fbf\u788e\u7247\u65f6\u95f4\u5b66\u4e60\u2014\u2014\u7ed8\u5b66\u9738APP\u4e0b\u8f7d\uff1a www.huixueba.com.cn/Scripts/download.html

\u8981\u662f\u53ea\u4f1a\u5355\u7247\u673a\uff0c\u90a3\u4e48\u662f\u6ca1\u524d\u9014\uff0c\u4e5f\u6ca1\u94b1\u9014\u7684
\u5c06\u6765\u9700\u8981\u7684\u662f\u5355\u677f\u673a\u800c\u4e0d\u662f\u5355\u7247\u673a

编辑本段单片机定义
单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(Microcontroler),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。
编辑本段单片机介绍

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件。
它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。
单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!
由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
单片机历史
单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。
1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。
2.MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。
Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。
3.单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
编辑本段单片机的应用领域
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
1.在智能仪器仪表上的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。
2.在工业控制中的应用
用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
3.在家用电器中的应用
可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
4.在计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
5.单片机在医用设备领域中的应用
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
6.在各种大型电器中的模块化应用
某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。
在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
编辑本段学习应中六大重要部分
单片机学习应中的六大重要部分

一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以就需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器件间单独连线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上,即相当于各个器件并联起来,但仅这样还不行,如果有两个器件同时送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是不允许的,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(可以有多个器件同时接收)。器件的数据线也就被称为数据总线,器件所有的控制线被称为控制总线。在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的,由于存储单元比较多,所以,用于地址分配的线也较多,这些线被称为地址总线。
二、数据、地址、指令:之所以将这三者放在一起,是因为这三者的本质都是一样的——数字,或者说都是一串‘0’和‘1’组成的序列。换言之,地址、指令也都是数据。指令:由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不可以由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不可更改,外部的单元可以由单片机开发者自行决定,但有一些地址单元是一定要有的(详见程序的执行过程)。数据:这是由微处理机处理的对象,在各种不同的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况:
1•地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。
2•方式字或控制字(如MOV TMOD,#3),3即是控制字。
3•常数(如MOV TH0,#10H)10H即定时常数。
4•实际输出值(如P1口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗,则执行指令:MOV P1,#00H)这里0FFH和00H都是实际输出值。又如用于LED的字形码,也是实际输出的值。
理解了地址、指令的本质,就不难理解程序运行过程中为什么会跑飞,会把数据当成指令来执行了。
三、P0口、P2口和P3的第二功能用法:初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解,认为第二功能和原功能之间要有一个切换的过程,或者说要有一条指令,事实上,各端口的第二功能完全是自动的,不需要用指令来转换。如P3.6、P3.7分别是WR、RD信号,当微片理机外接RAM或有外部I/O口时,它们被用作第二功能,不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令,就会有相应的信号从P3.6或P3.7送出,不需要事先用指令说明。事实上‘不能作为通用I/O口使用’也并不是‘不能’而是(使用者)‘不会’将其作为通用I/O口使用。你完全可以在指令中按排一条SETB P3.7的指令,并且当单片机执行到这条指令时,也会使P3.7变为高电平,但使用者不会这么去做,因为这通常这会导致系统的崩溃。
四、程序的执行过程: 单片机在通电复位后8051内的程序计数器(PC)中的值为‘0000’,所以程序总是从‘0000’单元开始执行,也就是说:在系统的ROM中一定要存在‘0000’这个单元,并且在‘0000’单元中存放的一定是一条指令。
五、堆栈: 堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的一部份,特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’,并且堆栈有特殊的数据传输指令,即‘PUSH’和‘POP’,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原来值的基础上)自动减1。由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP的值,就可以把堆栈设置在规定的内存单元中,如在程序开始时,用一条MOV SP,#5FH指令,就时把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这么一条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元开始往后,而08H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的浑乱。不同作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问题。当设置好堆栈区后,并不意味着该区域成为一种专用内存,它还是可以象普通内存区域一样使用,只是一般情况下编程者不会把它当成普通内存用了。
六、单片机的开发过程: 这里所说的开发过程并不是一般书中所说的从任务分析开始,我们假设已设计并制作好硬件,下面就是编写软件的工作。在编写软件之前,首先要确定一些常数、地址,事实上这些常数、地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计好后,其地址也就被确定了,当器件的功能被确定下来后,其控制字也就被确定了。然后用文本编辑器(如EDIT、CCED等)编写软件,编写好后,用编译器对源程序文件编译,查错,直到没有语法错误,除了极简单的程序外,一般应用仿真机对软件进行调试,直到程序运行正确为止。运行正确后,就可以写片(将程序固化在EPROM中)。在源程序被编译后,生成了扩展名为HEX的目标文件,一般编程器能够识别这种格式的文件,只要将此文件调入即可写片。在此,为使大家对整个过程有个认识,举一例说明:
ORG 0000H
LJMP START
ORG 040H
START:
MOV SP,#5FH ;设堆栈
LOOP:
NOP
LJMP LOOP ;循环
END ;结束
编辑本段单片机学习
目前,很多人对汇编语言并不认可。可以说,掌握用C语言单片机编程很重要,可以大大提高开发的效率。不过初学者可以不了解单片机的汇编语言,但一定要了解单片机具体性能和特点,不然在单片机领域是比较致命的。如果不考虑单片机硬件资源,在KEIL中用C胡乱编程,结果只能是出了问题无法解决!可以肯定的说,最好的C语言单片机工程师都是从汇编走出来的编程者因为单片机的C语言虽然是高级语言,但是它不同于台式机个人电脑上的VC++什么的单片机的硬件资源不是非常强大,不同于我们用VC、VB等高级语言在台式PC上写程序毕竟台式电脑的硬件非常强大,所以才可以不考虑硬件资源的问题。
以8051单片机为例讲解单片机的引脚及相关功能;
《单片机引脚图》
40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。
⒈ 电源:
⑴ VCC - 芯片电源,接+5V;
⑵ VSS - 接地端;
注:用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。
⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。
⒊ 控制线:控制线共有4根,
⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲
① ALE功能:用来锁存P0口送出的低8位地址
② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
⑵ PSEN:外ROM读选通信号。
⑶ RST/VPD:复位/备用电源。
① RST(Reset)功能:复位信号输入端。
② VPD功能:在Vcc掉电情况下,接备用电源。
⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。
① EA功能:内外ROM选择端。
② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
⒋ I/O线
80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)
单片机模拟I2C总线及24C02读写实例
发布日期:2008-5-14 13:38:16 文章来源:非本站原创 浏览次数: 18
* 51系列单片机在使用时,有时需要模拟I2C总线, */
/* 这里举出一个实例(读写串行EEPROM芯片at2402) */
/************************************************************************/
/* Name:AT24C02存储器的读写程序,用到I2C总线,含相对独立的I2C总线读写函数 */
/* Language: C51单片机编程语言 */
/* Platform: Win98,Intel Celeron 433 Processor,伟福仿真器,仿真8751 */
/* Date: 2003年5月21日,5月22日,5月29日 */
/* Version: 1.1.1 */
/* Others: None */
/************************************************************************/
#include<string.h>
#include<reg52.h>
#include<intrins.h>
#define DELAY_TIME 60 /*经实验,不要小于50!否则可能造成时序混乱*/
#define TRUE 1
#define FALSE 0
sbit SCL=P1^7;/*假设由P1.7和P1.6控制*/
sbit SDA=P1^6;
/********** Function Definition 函数定义 ************/
void DELAY(unsigned int t) /*延时函数*/
{
while(t!=0)
t--;
}
void I2C_Start(void)
{
/*启动I2C总线的函数,当SCL为高电平时使SDA产生一个负跳变*/
SDA=1;
SCL=1;
DELAY(DELAY_TIME);
SDA=0;
DELAY(DELAY_TIME);
SCL=0;
DELAY(DELAY_TIME);
}
void I2C_Stop(void)
{
/*终止I2C总线,当SCL为高电平时使SDA产生一个正跳变*/
SDA=0;
SCL=1;
DELAY(DELAY_TIME);
SDA=1;
DELAY(DELAY_TIME);
SCL=0;
DELAY(DELAY_TIME);
}
void SEND_0(void) /* SEND ACK */
{
/*发送0,在SCL为高电平时使SDA信号为低*/
SDA=0;
SCL=1;
DELAY(DELAY_TIME);
SCL=0;
DELAY(DELAY_TIME);
}
void SEND_1(void)
{
/*发送1,在SCL为高电平时使SDA信号为高*/
SDA=1;
SCL=1;
DELAY(DELAY_TIME);
SCL=0;
DELAY(DELAY_TIME);
}
bit Check_Acknowledge(void)
{
/*发送完一个字节后检验设备的应答信号*/
SDA=1;
SCL=1;
DELAY(DELAY_TIME/2);
F0=SDA;
DELAY(DELAY_TIME/2);
SCL=0;
DELAY(DELAY_TIME);
if(F0==1)
return FALSE;
return TRUE;
}
void WriteI2CByte(char b)reentrant
{
/*向I2C总线写一个字节*/
char i;
for(i=0;i<8;i++)
if((b<<i)&0x80)
SEND_1();
else
SEND_0();
}
char ReadI2CByte(void)reentrant
{
/*从I2C总线读一个字节*/
char b=0,i;
for(i=0;i<8;i++)
{
SDA=1; /*释放总线*/
SCL=1; /*接受数据*/
DELAY(10);
F0=SDA;
DELAY(10);
SCL=0;
if(F0==1)
{
b=b<<1;
b=b|0x01;
}
else
b=b<<1;
}
return b;
}
/**********以下为读写24c02的函数**********/
void Write_One_Byte(char addr,char thedata)
{
bit acktemp=1;
/*write a byte to mem*/
I2C_Start();
WriteI2CByte(0xa0);
acktemp=Check_Acknowledge();
WriteI2CByte(addr);/*address*/
acktemp=Check_Acknowledge();
WriteI2CByte(thedata);/*thedata*/
acktemp=Check_Acknowledge();
I2C_Stop();
}
void Write_A_Page(char *buffer,char addr)
{
bit acktemp=1;
bit wrtmp;
int i;
/*write a page to at24c02*/
I2C_Start();
WriteI2CByte(0xa0);
acktemp=Check_Acknowledge();
WriteI2CByte(addr);/*address*/
acktemp=Check_Acknowledge();
for(i=0;i<7;i++)
{
WriteI2CByte(buffer);
if(!Check_Acknowledge())
{
I2C_Stop();
}
}
I2C_Stop();
}
char Read_One_Byte(char addr)
{ bit acktemp=1;
char mydata;
/*read a byte from mem*/
I2C_Start();
WriteI2CByte(0xa0);
acktemp=Check_Acknowledge();
WriteI2CByte(addr);/*address*/
acktemp=Check_Acknowledge();
I2C_Start();
WriteI2CByte(0xa1);
acktemp=Check_Acknowledge();
mydata=ReadI2CByte();
acktemp=Check_Acknowledge();
return mydata;
I2C_Stop();
}
void Read_N_Bytes(char *buffer,char n,char addr)
{
bit acktemp=1;
int i=0;
/*read 8 bytes from mem*/
I2C_Start();
WriteI2CByte(0xa0);
acktemp=Check_Acknowledge();
WriteI2CByte(addr);/*address*/
acktemp=Check_Acknowledge();
I2C_Start();
WriteI2CByte(0xa1);
acktemp=Check_Acknowledge();
for(i=0;i<n;i++)
{
buffer=ReadI2CByte();
if(i!=n-1)
SEND_0(); /*发送应答*/
else
SEND_1(); /*发送非应答*/
}
I2C_Stop();
}
void main()
{
int i;
char mybyte;
char myarray[8];
char myarray2[8];
char rdarray[16];
for(i=0;i<8;i++)
{
myarray=i;
myarray2=i+0x08;
}
Write_One_Byte(0x20,0x28);
Write_A_Page(myarray,0x10);
Write_A_Page(myarray2,0x18);
mybyte=Read_One_Byte(0x20);
Read_N_Bytes(rdarray,16,0x10);
}

现在学单片机觉得关键是有没有思想,有没有经济头脑,不然很有前途的东西还是没有钱途的,你觉得呢,最好说一下你有什么基础,这样好让大家帮你分析下,单片机上手的进度。
单片机的概念:可以理解为PC机的缩影,因为他把晶振, CPU,ROM,RAM等都集成到一块芯片上,但性能可就根据相应的配置来定喽,因为咱们的PC电脑也这样呀,配置好坏决定性能

我花了8年的时间学习了模拟电路\数字电路,C语言,单片机,数控,传感技术.机械.等至今工资只有三千.温饱都成问题.我的肠子都悔清了,而且技术在不断的进步,不得不每天不停的学习.才不会下岗.
而我的初中同学,从摆地摊到现在成电子厂的老板.手下有几个单片机工程师,有的工资才一千多.

绝对的没钱途,相信我

单片机是一种智能芯片,学会它你就控制随心所欲的控制很多东西。

  • 瀛﹀崟鐗囨満鏈夊墠閫斿悧
    绛旓細瀛﹀崟鐗囨満寰堟湁鍓嶉旀湁鍓嶉銆傚浜庤繍绠楄姹備笉楂樼殑鎺у埗鏉ヨ锛屽崟鐗囨満鐨勫簲鐢ㄦ瘮姣旂殕鏄傚湪鍩庡競閲岋紝瀹冨嚑涔庢棤澶勪笉鍦紝鍙笉杩囦綘杩樻病鏈夋敞鎰忕舰浜嗐傚ぇ鍒颁氦閫氭帶鍒剁郴缁燂紝灏忓埌鎵嬫寔璁惧銆傚崟鐗囨満浣滀负涓绉嶅井鎺у埗鍣紝鏄數瀛愪骇鍝佺殑鎺у埗鏋㈢航鍜屾渶鏍稿績鐨勪笢瑗匡紝鍩烘湰涓婃墍鏈夌數瀛愪骇鍝侀兘绂讳笉寮鍗曠墖鏈,鎵浠ュ崟鐗囨満寮鍙戝伐绋嬪笀鐨勯渶姹傝偗瀹氭槸寰...
  • 浠涔堟槸鍗曠墖鏈?瀛﹀畠鏈夊墠閫鍢?
    绛旓細灏辨槸鍗曚竴鑺墖寰楄绠楁満锛屼篃鍖呭惈cpu锛屽唴瀛橈紝涓茶骞惰鍙o紝鏃堕挓鐢佃矾寰椾竴涓姱鐗锛屽氨鏄敤姹囩紪璇█瀵逛粬杩涜缂栧啓锛屼娇鎵ц鐩稿簲绋嬪簭锛屽緢澶氫笢瑗块兘鐢ㄥ埌浜嗗晩锛岀數鍔ㄩ棬锛屾礂琛f満锛岃鏃跺櫒绛夌瓑寰堝閮界敤鐨勶紝鍏抽敭鏄瀛︾簿锛屼笉鐒朵綘鐢ㄤ笉濂界殑锛屽洜涓轰細缂栨槸鏈鍩虹鐨勮瑷锛屽緢闅惧緱锛屽鎳傜殑浜哄皯锛岀湡鐨勪細鐨勫氨宸ヨ祫寰堥珮锛屽緢纭繖绉...
  • 瀛︿範鍗曠墖鏈烘湁鍓嶉斿悧?鎯虫壘涓浠藉崟鐗囨満宸ョ▼甯堢殑宸ヤ綔,闇瑕佸涔犲摢浜涚煡璇嗗晩...
    绛旓細浣犲ソ锛鍗曠墖鏈虹殑瀛︿範鑲畾鏄湁鍓嶉旂殑锛岃繖涓鍩熷簲鐢ㄧ壒鍒箍锛岀幇鍦ㄥ熀鏈笂鎵句笉鍒颁笉搴旂敤鍗曠墖鏈虹殑棰嗗煙銆傝鍋氬崟鐗囨満宸ョ▼甯堝伐浣滅殑璇濓紝闇瑕佷細绠鍗曠殑妯℃嫙鐢靛瓙鎶鏈紝鏁板瓧鐢靛瓙鎶鏈紝C璇█绋嬪簭璁捐鑳藉姏 锛屽崟鐗囨満鍩虹鐭ヨ瘑锛屾暀绋嬬殑璇濆缓璁綘鍘荤湅涓涓嬪惔閴撮拱鍗曠墖鏈哄疄鎴樼簿璁诧紝鍦ㄥ緢澶氳鍧涢兘鏈夊垎浜紝閲岄潰婧愮▼搴忥紝鍘熺悊鍥撅紝Proteus浠跨湡...
  • 浠涔堟槸鍗曠墖鏈?瀛﹀畠鏈夊墠閫鍢?
    绛旓細灏辨槸鍗曚竴鑺墖寰楄绠楁満锛屼篃鍖呭惈cpu锛屽唴瀛橈紝涓茶骞惰鍙o紝鏃堕挓鐢佃矾寰椾竴涓姱鐗锛屽氨鏄敤姹囩紪璇█瀵逛粬杩涜缂栧啓锛屼娇鎵ц鐩稿簲绋嬪簭锛屽緢澶氫笢瑗块兘鐢ㄥ埌浜嗗晩锛岀數鍔ㄩ棬锛屾礂琛f満锛岃鏃跺櫒绛夌瓑寰堝閮界敤鐨勶紝鍏抽敭鏄瀛︾簿锛屼笉鐒朵綘鐢ㄤ笉濂界殑锛屽洜涓轰細缂栨槸鏈鍩虹鐨勮瑷锛屽緢闅惧緱锛屽鎳傜殑浜哄皯锛岀湡鐨勪細鐨勫氨宸ヨ祫寰堥珮锛屽緢纭繖绉...
  • 瀛︿範鍗曠墖鏈烘湁鍓嶉斿悧?
    绛旓細浣犲ソ锛鍗曠墖鏈烘槸涓闂ㄨ姹傜殑鍔ㄦ墜鑳藉姏寰堝己鐨勫绉锛岄渶瑕佷綘澶氬姩鎵嬫墠浼氭湁杩涙锛岄渶瑕佹湁涓涓Н绱殑杩囩▼锛岀幇鍦ㄧ殑璇濆簲鐢ㄧ壒鍒殑骞匡紝杩欎釜棰嗗煙鐨勭墰浜烘湁閮ぉ绁ヨ繕鏈夊惔閴撮拱锛岄兘鏄澃鍑虹殑浠h〃锛岄氳繃瀛︿範鍗曠墖鏈哄彇寰椾簡鑷繁鐨勬垚灏憋紝姣忎釜浜洪兘寮浜嗚嚜宸辩殑鍏徃锛屽彂灞曠殑寰堜笉閿欍
  • 瀛︿範鍗曠墖鏈烘湁鍓嶉斿悧?
    绛旓細鏈夛紝浣嗘槸鍗曢潬鍗曠墖鏈娌$珵浜夊姏锛屼綘瑕佺簿閫氭ā鐢垫暟鐢礐璇█鍜屽崟鐗囨満鎵嶈锛岃繖4浠绋嬪繀椤荤簿閫氾紝鏄簿閫氾紝濡傛灉杈惧埌杩欎釜灞傛鐨勮瘽鍑烘潵宸ヤ綔杩囦竾娌¢棶棰橈紝鑰屼笖杩欏洓闂ㄨ绋嬫兜鐩栦簡杞‖浠剁殑鍐呭锛屾墍浠ュ氨鏄湪楂樹腑鐢熻兘鎶婅繖4闂ㄨ绋嬪濂戒簡锛屼篃鑳芥壘鍒伴潪甯稿ソ鐨勫伐浣溿
  • 瀛︿範鍗曠墖鏈烘湁鍓嶉斿悧?瀹冪殑涓昏搴旂敤棰嗗煙鏈夊摢浜
    绛旓細(3) 璁$畻鏈哄閮ㄨ澶囦笌鏅鸿兘鎺ュ彛銆傚鍥惧舰缁堢鏈恒佷紶鐪熸満銆佸鍗版満銆佹墦鍗版満銆佺粯鍥句华銆佺鐩/纾佸甫鏈恒佹櫤鑳界粓绔満绛夈(4) 鍟嗙敤浜у搧銆傚鑷姩鍞揣鏈恒佺數瀛愭敹娆炬満銆佺數瀛愮Г绛夈(5) 瀹剁敤鐢靛櫒銆傚寰尝鐐夈佺數瑙嗘満銆佺┖璋冦佹礂琛f満銆佸綍鍍忔満銆侀煶鍝嶈澶囩瓑銆瀛︿範鍗曠墖鏈烘槸鏈夊墠閫鐨勶紝鑷繁瀛︿範鍚撮壌楣板崟鐗囨満寮鍙戞澘锛屽缁冧範 ...
  • 瀛︿範鍗曠墖鏈烘湁鍓嶉斿悧?
    绛旓細鍗曠墖鏈鐨勫涔犳鏃犵枒闂鏄湁鍓嶉鐨勶紝寤鸿浣犵湅涓涓嬪崟鐗囨満宸ョ▼甯堝惔閴撮拱鐨勮繖绡囨枃绔狅紝鎴戜釜浜虹湅瀹屾劅瑙﹀緢澶с
  • 鍟ユ槸鍗曠墖鏈,瀛﹀畠鏈閽閫斿悧?
    绛旓細鍗曠墖鏈轰篃琚О涓哄井鎺у埗鍣(Microcontroler),鏄洜涓哄畠鏈鏃╄鐢ㄥ湪宸ヤ笟鎺у埗棰嗗煙銆傚崟鐗囨満鐢辫姱鐗囧唴浠呮湁CPU鐨勪笓鐢ㄥ鐞嗗櫒鍙戝睍鑰屾潵銆傛渶鏃╃殑璁捐鐞嗗康鏄氳繃灏嗗ぇ閲忓鍥磋澶囧拰CPU闆嗘垚鍦ㄤ竴涓姱鐗囦腑,浣胯绠楁満绯荤粺鏇村皬,鏇村鏄撻泦鎴愯繘澶嶆潅鐨勮屽鎻愬強瑕佹眰涓ユ牸鐨勬帶鍒惰澶囧綋涓侷NTEL鐨刏80鏄渶鏃╂寜鐓ц繖绉嶆濇兂璁捐鍑虹殑澶勭悊鍣,浠庢浠ュ悗,鍗曠墖鏈鍜...
  • 瀛︿範鍗曠墖鏈鐨勫繀瑕佹?
    绛旓細鍗曠墖鏈烘槸璁$畻鏈虹殑涓绉嶏紝瀵瑰叾鍐呴儴缁撴瀯鐨勫涔犲彲浠ヨ浣犱簡瑙h绠楁満鐨勫伐浣滄満鐞锛屽崟鐗囨満涓嶆槸璁$畻鏈轰笓涓氭墠瀛︾殑锛屽畠鍙堝彨寰帶鍒跺櫒锛岃嚜鍔ㄥ寲鍜岄氫俊閮芥湁瀛︺傚崟鐗囨満鍘熺悊涓庢帴鍙f妧鏈槸寰堝疄鐢ㄧ殑涓闂ㄥ绉戯紝鎷垮畠鏉ユ壘宸ヤ綔杩樻槸铔ソ鎵剧殑锛屽崟鐗囨満浣滀负鍙紪绋嬪櫒浠跺彧鑳界敤姹囩紪鍜孋鏉ョ紪绋嬶紝C璇█鐢变簬鍙Щ妞嶆уソ锛屾柟渚挎槗鎳傜幇鍦ㄨ骞挎硾浣跨敤...
  • 扩展阅读:女生最好就业5个专业 ... 搞单片机有前途吗 ... 为什么不建议学单片机 ... 学好单片机好找工作吗 ... 现在搞plc还有出路吗 ... 单片机太难学了 ... 单片机就业方向及前景 ... 单片机学好了前景好吗 ... 低学历学单片机有出路吗 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网