普及一些单片机的知识

 

单片机经典教程 1 什么是单片机 ? 单片机的结构及组成
单片机 ,专业名称 —Micro Controller Unit( 微控制器件 ) ,它是由大名鼎鼎的 INTEL 公司发明的,最早的系列是 MCS-48 ,后来有了 MCS-51 ,现在还有 MCS-96 系列,我们经常说的 51 系列单片机就是 MCS-51 ,它是一种 8 位的单片机,而 MCS-96 系列则是一种 16 位的单片机,至于它们之间有何区别,我们以后会讲到。后来 INTEL 公司把它的核心技术转让给了世界上很多的小公司(不过,再小也有几个亿的销售 / 年哦),所以世界上就有许多公司生产 51 系列兼容单片机,比如飞利浦的 87 LPC 系列,伟邦的 W78L 系列,达拉斯的 DS87 系列,现代 GSM97 系列等等,目前在我国比较流行的就是美国 ATMEL 公司的 89C 51 它是一种带 Flash  ROM 的单片机(至于什么是 Flash  ROM ,我在这儿先不作介绍,等以后大家学到相关的知识时自然就会明白),我们的讲座就是以该型号的单片机来作实验的。讲到这里,也许有的人会问:我平时在各种书上看到全是讲解 8031 8051 等型号的单片机,它们又有什么不同呢?其实它们同属于一个系列,只是 89C 51 的单片机更新型一点 ( 事实上 ,89C51 目前正在用 89S51 代替,我们的实验系统采用就是 89S52 的,兼容 89C 52) 。这里随便说一下,目前国内的单片机教材都是以 8051 为蓝本的,尽管其内核也是 51 系列的,但毕竟 8051 的单片机已经属于淘汰产品,在市场上也很少见到了,所以由此感叹,国内的高等教育是如此的跟不上时代的发展需要!这话可能会引起很多人的不满 , 所以大家千万别传出去哦!
二.主要 单片机 的分类
 
再给大家介绍一下我们经常在各种刊物上看到的 AVR 系列和 PIC 系列 单片机 是怎么回事?以便让大家对单片机的发展有一个较全面的认识。在没有学习单片机之前,这是一个令很多初学者非常困惑的问题,这么多的单片机我该先学哪一种呢?
 AVR
系列 单片机 也是 ATMEL 公司生产的一种 8 位单片机,它采用的是一种叫 RISC (精简指令集单片机)的结构,所以它的技术和 51 系列有所不同,开发设备也和 51 系列是不通用的,它的一条指令的运行速度可以达到纳秒级(即每秒 1000000000 次),是 8 位单片机中的高端产品。由于它的出色性能,目前应用范围越来越广,大有取代 51 系列的趋势,所以学完了 51 系列的,看来必须学会 AVR 的才行,可叹知识爆炸,人生苦短。说完了 AVR 的,再来说说另一种 --PIC 系列单片机,它是美国 MICROCHIP 公司,唉,又是老美,叫微芯公司的生产的另一种 8 位单片机,它采用的也是 RISC 的指令集,它的指令系统和开发工具与 51 系列更是不同,但由于它的低价格和出色性能,目前国内使用的人越来越多,国内也有很多的公司在推广它,不过它的影响力远没有 51 系列的大,所以作为初学者, 51 系列当然 ( 不,绝对 ) 是首选。
 
以上几种只是比较多见的系列,其实世界上还有许多的公司生产各种各样的 单片机 ,比如: MOTOROLA MC68H 系列(老牌的单片机), TI MSP430C 系列(极低功耗的单片机),还有日本的 TOSHIBA ,日立的 HITACH ,德国的西门子 SIEMENS 等等,它们都有各自的结构体系,并不与 51 系列兼容。为了不搞大家的脑筋,这里就不介绍了,等大家入门了以后自己再去研究它吧!现在我们还是回来了解一下 51 系列单片机到底是个什么东西,它有那些部分组成,请接着往下看:
 
三. 单片机 的结构及组成
 单片机
到底是一种什么东东,它究竟能做什么呢?其实它就是一种能进行数学和逻辑运算,根据不同使用对象完成不同控制任务的面向控制而设计的集成电路,此话好象有点绕口,没关系,大家都应该知道我们经常使用的电脑吧,在电脑上,我们可以用不同的软件在相同的硬件上实现不同的工作。比如我们用 WORD 可以打字,用 PROTEL 可以设计图纸等等,单片机其实也是如此,同样的芯片可以根          们不同的要求做出截然不同的产品,只不过电脑是面向应用的,而单片机是面向控制的,比如控制一个指示灯的亮和灭,控制一台电机的启动和停止等等。  那么它的内部究竟由哪些部件组成的呢?大家都知道我们的电脑有很多的零件,比如 CPU (中央处理), RAM (内存), ROM (程序存储器),输入输出设备(并行串行口)等等,在单片机中这些部件都有,而且还把它们全部做到了一块芯片上(这就是单片机名称的由来)。
  
讲到这里,您一定会想,这么多零件集成在一块芯片上,那为什么 单片机 的价格会这么便宜( 89S51 每块才 10 元左右),其实原因很简单 ---- 功能有强弱,就象我们平时用的 PLC ,控制一台数控机床要用 128 点的,而控制一台电机有几点的就足够了,另外这种芯片的产量很大,技术也非常的成熟,自然价格也就很低了。那么单片机是如何来工作的,我们学习单片机又需要做哪些准备呢?对于一个初学者来说这是很有必要了解的:
四.学习 单片机 的准备工作
   
首先您需要一台电脑,这是最基本的,配置嘛, P2 以上的就可以了;然后您需要一套开发 单片机 的软件,这个软件叫 KEIL C51 ,它是美国 Keil Software 公司专门为 MCS-51 系列单片机开发的第三方软件,最新版本是 V7.09 ,安装时选择 Uvision2 ,虽然有 2K 代码的限制,但足以满足我们学习的需要;其次,您还需要一台编程器,它一种把程序写进单片机芯片的设备,这种设备品种很多,操作也很简单,大家既可以买现成的产品(价格从 200 多元到 2000 多元的都有),也可以自己制作;有了这两样东西还不行,为了看到程序执行的结果,我们还需要一块实验板。
 
好在现在出现了一种支持在线下载的 单片机 ,只要满足一定的外部条件,就能够直接把汇编的程序下载到目标单片机中。经过反复的实验,我们开发设计了这样的一套实验系统,它采用了一套集源代码编辑、软件汇编、程序下载于一体的专业软件,采用具有在线下载功能的 FLASH  ROM 单片机 89S52 ,配合本教程,可以完成教程中的每一个实验。这样既免去了您添置编程器和仿真器等设备的昂贵费用,又可以直接在实验板上看到程序执行的结果,更由于采用的是 FLASH  ROM 的存储器,烧写次数可以达到 1000 次以上
 
单片机经典教程2 单片机引脚功能介绍
1.               VCC 40 ):电源 +5V
2
VSS 20 ):接地,也就是 GND
3
XTL1 19 )和 XTL2 18 ):振荡电路。
 单片机
是一种时序电路,必须有脉冲信号才能工作,在它的内部有一个时钟产生电路,有两种振荡方式,一种是内部振荡方式,只要接上两个电容和一个晶振即可;另一种是外部振荡方式,采用外部振荡方式时,需在 XTL2 上加外部时钟信号(详细的内容将在以后的课程中专门介绍)。
4
PSEN 29 ):片外 ROM 选通信号,低电平有效。
 
5
ALE/PROG 30 ):地址锁存信号输出端 /EPROM 编程脉冲输入端。
 
6
RST/VPD 9 ):复位信号输入端 / 备用电源输入端。什么是复位信号,为什么要加复位信号?当然也暂时不去管它。
 
7
EA/VPP 31 ):内 / 外部 ROM 选择端。在 30 9 脚的功能上不知大家注意没有,都有一个 / ,什么意思呢?这是引脚的第二功能,也就是说,该引脚既可以作前面的功能,也可以作后面的功能,至于它是如何工作的,我们暂时也别去研究                  
                                  
8
P0 口( 39-32 ):双向 I/O 口。 9 P1 口( 1-8 ):准双向通用 I/0 口。
10
 P2 口( 21-28 ):准双向 I/0 口。 11 P3 口( 10-17 ):多用途口。 I/O 就是英文 IN/OUT
的缩写,这些引脚的功能想必大家也都明白了,(就是输入 / 输出的意思),这 32 I/O 口就是留给我们作连接外围电路用的,那么它们之间有些什么不同呢?这个问题稍微有点复杂。  
 
二、 单片机 的电路连接和开发过程
 
单片机
是如何工作的?我们的实验是让一个 LED 灯亮起来,亮哪一个?这就随便你了,比如我们就让 LED1
亮起来吧,仔细看一下电路图, LED1 接在什么地方呢?接在 单片机 P1.0 的引脚(也就是 1 脚)上,那么按照该电路图的连接方法,当 1 脚为高电平时, LED1 是不亮的;只有当 1 脚为低电平时, LED1 才会亮起来,怎样才能让 1 脚由高电平变为低电平呢?我们让人做事,就必须对她说一声,也就是发布命令,想让单片机工作,也得发布命令,不过在计算机中那叫指令,我们要让 1 脚变为低电平的指令是 CLR  P1.0 (让 1 脚变为高电平的指令是 SETB  P1.0 ),这就是我们通常所说的源代码,(这是我们开发产品的第一步 源代码编辑);怎么做呢?我们首先得打开实验软件,屏幕出现一个浏览器的软件窗口,点击左边的扩展实验,选中实验 16— 自动温度控制器,再点击工具栏里的调试按钮,弹出一个记事本对话框,写入
CLR  P1.0;
(
?
分号必须在英文状态下输入
)
,输入完毕后选择文件 保存即可;那么 单片机 能读懂这条指令吗?当然不能,接下来我们还有一件事情要做,就是把这句指令翻译成单片机能读懂的东西,单片机能读懂什么呢?它其实只懂一样 -- 就是数字,因此,我们就把 CLR  P1.0 翻译成 C2H,90H ,至于为什么要翻译成这样,这当然是 INTEL 公司规定好的,我们就不需要去研究它了。这个过程我们叫作编译,(这是我们开发产品的第二步),那么指令是译过来的呢?这就得靠专业的软件了,我们做实验使用的软件就有此功能,只要点击工具栏上的编译按钮,稍等片刻即出现一个编译信息窗口,如果编译通过就会有编译完成,结果如下: 0 个警告, 0 个错误的编译信息,如果编译错误则会出现编译错误的信息,并提示错误的行号;编译完了之后通常要进行程序仿真(这是第三步,当然我们的实验程序很简单是不需要仿真的;接下来怎么才能把编译通过的指令写入单片机中呢?这通常需要借助于一种硬件工具,叫编程器(也叫烧录器),不过我们的实验板采用的是具有串行下载功能的单片机,所以您只要直接点击快捷工具栏上的下载按钮,程序就进入了实验(这是第四步 编程)。自此就完成了单片机开发的全过程。
 
全部工作结束后,我们看到了什么?接 P1.0 1 脚)的 LED1 亮了起来;改变源代码,变成 SETB  P1.0;
行编译,下载,看看结果是不是 LED1 不亮了。 
 
单片机经典教程3 单片机内部结构(一)
单片机 的内部究竟有哪些部分组成的,它们都有些什么作用呢?让我们先来了解其中的 ROM 存储器:
一.半导体存储器 ROM 
1
.几个基本概念
上一课我们讲到了把编译后的指令下载到 单片机 后这条指令一定在单片机内的某个地方,那么它究竟在哪里呢?原来它就放在一个叫程序存储器的地方,英文名称 ROM (全称为 Read Only Memory ),叫只读存储器。它是一个什么东西呢?在讨论这个问题之前,让我们先来看几个物理现象:( 1 )数和物理现象的关系  不知大家是否还记得,在学习数字电路时我们曾用一盏灯的亮和灭来表示电平的高和低,即用 “1” 来表示高电平,用 “0” 来表示低电平,如果现在有两盏灯那它会有几种状态呢?
0 0 0 1 1 0 1 1 
两盏灯的组合就是四种状态: 00 01 10 11 。如此看来灯的亮和灭这种物理现象同数字确实有着某种联系,如果我们把它们按一定的规律排列好,那么电平的高或低就可以用数字来表了,换句话说:不同的数字可以代表不同数量灯的电平高或低。比如:
0000
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 这十六种组合就可以代表四盏灯的状态,能理解吗?
2 )位及字节的含义
单片机 中,一盏灯(实际上是一根线)我们称它为一位,它有两种状态( “0” “1” ),分别应电平的高或低,它是单片机最基本的数量单位,用 BIT 来表示。 8 盏灯(八根线)有 256 种状态,这 8 盏灯(也就是 8 位)我们把它称为一个字节,用 BYTE 表示。至于为什么要怎么规定,这就不需要你我操心了,我们只要记住就可以了。那么单片机是如何来储存这些数字所代表的字节的状态的呢?接着往下看:
2
.半导体存储器的工作原理
存储器就是用来存放数据的地方,它其实是利用电平的高或低来存放数据的,也就是说,它实际上存放的是电平的高或低的状态,而不是我们所习惯上认为的 “1234” 这样的数字。那它是如何工作的呢?一个存储器就象一个小抽屉,一个小抽屉里有 8 个小盒子每个小盒子用来存放 1 电荷 ,电荷通过与它相连的电线传进来或释放掉,至于电荷在小盒子里是怎样存放的,这就不用我们操心了,您可以把电线想象成水管,小盒子里的电荷就象是水,那就好理解了存储器中的 1 个小抽屉我们把它称之为 1 单元 ,相当于 1 个字节,而 1 个小盒子就相当于 1 位。有了这么一个构造,我们就可以开始存放数据了,比如我们要放进一个数据 “00011010” ,我们只要把第 2 号、第 4 号和第 5 号小盒子里存满电荷,而其它小盒子里的电荷给放掉就行了。可是问题又出来了,一个存储器有好多相同的单元,线是并联着的(看 D7-D0 ),在放入电荷的时候,会将电荷放入所有的字节单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多少个字节单元,都只能放同一个数,这当然不是我们所希望的。因此,我们要在结构上稍作变化,看上面的图,在每个单元上有根线与译码器相连,我想要把数据放进哪个单元,就通过译码器给哪个单元发一个信号,由译码器的通过这根线把相应的开关打开,这样电荷就可以自由地进出了。那么这样是不是就能随意地向存储器写入或者读出数据了呢?其实还不能,当我们向存储器写入数据时,必须先把这个开关切换到写入端;而要读出数据时,就得先把开关切换到读出端;而片选端则是为了区分不同的存储器设置的。
3
.半导体存储器的译码
简单介绍一下:我们知道, 1 根线可以代表 2 种状态; 2 根线可以代表 4 种状态; 3 根线可以代表 8 种; 256 种状态又需要几根线代表? 8 根线,所以一片 6264 存储器我们只需要 16 根线就可以了。  
4
.存储器的选片及总线的概念  至此,译码的问题解决了,让我们再来关注另外一个问题:送入每个字节的 8 根线又是从什么地方来的呢?它就是从 单片机 的外部引脚上接过来的,一般这 8 根线除了接一个存储器之外,还要接其它的器件,这样问题又出来了,这 8 根线既然不是存储器和单片机之间专用的,如果总是将某个单元接在这 8 根线上,就不行了,比如这个存储器单元中的数值是 “FFH” ,另一个存储器的单元是 “00H” ,那么这根线到底是处于高电平,还是低电平?岂不是要打架看谁历害了?所以我们必须让它们分离。办法当
然也简单,当外面的线接到集成电路的引脚上来后,不直接接到各单元去,中间再加一组开关就行了。这组开关就是前面提到的控制器(看前面的图),平时我们让开关打开着,如果确实是要向这个存储器中写入数据,或要从存储器中读出数据,再让开关切换到相应的位置就行了。这组开关由三根引线选择读控制端、写控制端和片选端,要将数据写入,先由控制器选中该片,然后发出相应的写信号,开关切换到相应的位置,并将传过来的数据(电荷)写入片中;如果要读信号,先选中该片,然后发出读信号,开关也切换到相应的位置上,数据就被送出去了;另外读和写信号还同时受到译码器的控制,由于选端的不同,所以虽有读或写信号,但没有片选信号,所以另一个存储器就不会 误会 而开门,造成冲突,那么会不会同时选中两个存储器呢?只要是设计好的系统就不会,因为它是由计算机来控制的,如
果真的出现同时选中两个存储器的话,那就是电路出故障了。

如此看来,存储器要想写入或者读出数据还真是不简单,不过好在这些都是由计算机自动完成的,不需要我们去操心。从上面的介绍中我们已经看到,用来传递数据的 8 根线( 51单片机 8 根)并不是专用的,而是很多器件大家共用的,所以我们把它们称之为数据总线(总线英文名为 BUS ),即公交道,谁都可以走;而 16 根地址线( 51 单片机共有 16 根地址线,这些以后会讲解,这里不必死记硬背)也是连在一起的,我们把它们称之为地址总线,  

5
.半导体存储器的分类
第一课中我们提到过, 89C 51 是一种带 Flash ROM 单片机 ,什么是 Flash ROM ?它到底是一种什么东西呢? ROM 我们已经知道,是只读存储器,所谓只读,从字面上理解那就是只可以从里面读出数据,而不能写进去,它类似于我们的书本,发到我们手里之后,我们只能读里面的内容,不可以随意更改书本上的内容。 ROM 就是单片机中用来存放程序的地方,前面我们下载到单片机的指令就放在这个地方。讲到这里大家也许会感到困惑,既然 ROM 是只读存储器,那么指令又是如何进入其中的呢?其实所谓的只读只是针对正常工作情况下而言,也就是在使用这块存储器的时候,而不是指制造这块芯片的时候,只要让存储器满足一定的条件就能把数据预先写进去,这个道理也很好理解,书本拿到我们手里是不能改了,但当它还是原材料 -- 白纸的时候,我们完全可以由印刷厂把内容印上去嘛。前面的编程就是这么回事! Flash ROM 是一种快速存储式只读存储器,这种程序存储器的特点就是既可以电擦写,而且掉电后程序还能保存,编程寿命可以达到几千至几万次,所以我们的实验系统是可以反复烧写的,您尽管使用。目前新型的单片机都采用这种程序存储器;当然,除了这种程序存储器外,还有两种早期的程序存储器产品,简单介绍一下: PROM EPROM EEPROM PROM 称之为可编程只读存储器,就象我们的练习本,买来的时候是空白的,可以写东西上去,可一旦写上去,就擦不掉了,所以它只能写一次,要是写错了,就报废了,习惯上我们把带这种程序存储器的单片机称为 OTP 型单片机,如果您的产品批量生产,又要求价格比较低的话,带这种程序存储器的单片机是非常合适的; EPROM ,称之为紫外线擦除的可编程只读存储器,它里面的内容写上去之后,如果觉得不满意,可以用一种特殊的方法去掉后重写,就是用紫外线照射,紫外线就象 消字灵 ,可以把字去掉,然后再重写,当然消的次数多了,也就不灵光了,所以这种芯片可以擦除的次数也是有限的 —— 几百次吧,电脑上的 BIOS 芯片采用的就是这种结构的存储器; EEPROM ,前一种存储器的擦写要用紫外线,而这种存储器可以直接用电擦写,比较方便数据的改写,它有点类似于 FLASH 存储器,但比 FLASH 存储器速度要慢,现在新型的外部扩展存储器都是都是这种结构。
了解了 ROM ,让我们再来简单讲讲另一种存储器,叫随机存取存储器,也叫内存,英文缩写为 RAM Random Access Memory ),它是一种既可以随时改写,也可以随时读出里面数据的存储器,类似于我
们上课用的黑板,可以随时写东西上去,也可以用黑板擦随时擦掉重写,它也是 单片机 中重要的组成部分,单片机中有很多的功能寄存器都与它有关。
二.本课总结
本课主要讲述了 单片机 的两种半导体存储器 只读存储器 ROM 和随机存储器 RAM 的工作原理,它们是单片机的重要组成部分,了解它的内部结构对我们学习单片机是很有帮助的。不过如果您一时对本课的内容还无法搞得很明白,也没有关系,随着学习的深入,我们还会慢慢地讲解相应的基础知识,可千万不要放弃哟?我在没有学会单片机之前也是如此囫囵吞枣的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值