没有合适的资源?快使用搜索试试~ 我知道了~
51单片机教程_平凡的单片机.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 113 浏览量
2022-07-10
12:01:50
上传
评论
收藏 356KB DOC 举报
温馨提示
试读
57页
51单片机教程_平凡的单片机.doc51单片机教程_平凡的单片机.doc51单片机教程_平凡的单片机.doc51单片机教程_平凡的单片机.doc51单片机教程_平凡的单片机.doc
资源推荐
资源详情
资源评论
1 / 57
原作: 平凡的单片机
2 / 57
单片机教程第一课:单片机概述
1、何谓单片机 一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM
(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,
安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称
为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如 A/D,D/A 等。
天!PC 中的 CPU 一块就要卖几千块钱,这么多东西做在一起,还不得买个天价!再说这块芯片也得非常大了。
不,价格并不高,从几元人民币到几十元人民币,体积也不大,一般用 40 脚封装,当然功能多一些单片机也有
引脚比较多的,如 68 引脚,功能少的只有 10 多个或 20 多个引脚,有的甚至只 8 只引脚。为什么会这样呢? 功
能有强弱,打个比方,市场上面有的组合音响一套才卖几百块钱,可是有的一台功放机就要卖好几千。另外这种
芯片的生产量很大,技术也很成熟,51 系列的单片机已经做了十几年,所以价格就低了。 既然如此,单片机的
功能肯定不强,干吗要学它呢? 话不能这样说,实际工作中并不是任何需要计算机的场合都要求计算机有很高
的性能,一个控制电冰箱温度的计算机难道要用 PIII?应用的关键是看是否够用,是否有很好的性能价格比。所
以 8051 出来十多年,依然没有被淘汰,还在不断的发展中。
2、MCS51 单片机和 8051、8031、89C51 等的关系我们平常老是讲 8051,又有什么 8031,现在又有 89C51,它
们之间究竟是什么关系? MCS51 是指由美国 INTEL 公司(对了,就是大名鼎鼎的 INTEL)生产的一系列单片机
的总称,这一系列单片机包括了好些品种,如 8031,8051,8751,8032,8052,8752 等,其中 8051 是最早最典
型的产品,该系列其它单片机都是在 8051 的基础上进行功能的增、减、改变而来的,所以人们习惯于用 8051 来
称呼 MCS51 系列单片机,而 8031 是前些年在我国最流行的单片机,所以很多场合会看到 8031 的名称。INTEL
公司将 MCS51 的核心技术授权给了很多其它公司,所以有很多公司在做以 8051 为核心的单片机,当然,功能
或多或少有些改变,以满足不同的需求,其中 89C51 就是这几年在我国非常流行的单片机,它是由美国 ATMEL
公司开发生产的。以后我们将用 89C51 来完成一系列的实验。
单片机教程第二课:单片机的部、外部结构(一)
一、单片机的外部结构
拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为 89C51 的芯片,下面我们就看一
下如何给它连线。 1、 电源:这当然是必不可少的了。单片机使用的是 5V 电源,其中正极接 40 引脚,负极
(地)接 20 引脚。 2、 振蒎电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机部已集
成了振荡器,使用晶体振荡器,接 18、19 脚。只要买来晶振,电容,连上就可以了,按图 1 接上即可。 3、 复
位引脚:按图 1 中画法连好,至于复位是何含义与为何需要复要复位,在单片机功能中介绍。 4、 EA 引脚:EA
引脚接到正电源端。 至此,一个单片机就接好,通上电,单片机就开始工作了。
我们的第一个任务是要用单片机点亮一只发光二极管 LED,显然,这个 LED 必须要和单片机的某个引脚相连,
否则单片机就没法控制它了,那么和哪个引脚相连呢?单片机上除了刚才用掉的 5 个引脚,还有 35 个,我们将
这个 LED 和 1 脚相连。(见图 1,其中 R1 是限流电阻)
按照这个图的接法,当 1 脚是高电平时,LED 不亮,只有 1 脚是低电平时,LED 才发亮。因此要 1 脚我们要能
够控制,也就是说,我们要能够让 1 引脚按要求变为高或低电平。即然我们要控制 1 脚,就得给它起个名字,总
不能就叫它一脚吧?叫它什么名字呢?设计 51 芯片的 INTEL 公司已经起好了,就叫它 P1.0,这是规定,不可以
由我们来更改。
3 / 57
图 1
名字有了,我们又怎样让它变'高'或变'低'呢?叫人做事,说一声就可以,这叫发布命令,要计算机做事,也得要
向计算机发命令,计算机能听得懂的命令称之为计算机的指令。让一个引脚输出高电平的指令是 SETB,让一个
引脚输出低电平的指令是 CLR。因此,我们要 P1.0 输出高电平,只要写 SETB P1.0,要 P1.0 输出低电平,只要
写 CLR P1.0 就可以了。
现在我们已经有办法让计算机去将 P1.0 输出高或低电平了,但是我们怎样才能计算机执行这条指令呢?总不能
也对计算机也说一声了事吧。要解决这个问题,还得有几步要走。第一,计算机看不懂 SETB CLR 之类的指令,
我们得把指令翻译成计算机能懂的方式,再让计算机去读。计算机能懂什么呢?它只懂一样东西——数字。因此
我们得把 SETB P1.0 变为(D2H,90H ),把 CLR P1.0 变为 (C2H,90H ),至于为什么是这两个数字,这也是由
51 芯片的设计者--INTEL 规定的,我们不去研究。第二步,在得到这两个数字后,怎样让这两个数字进入单片机
的部呢?这要借助于一个硬件工具"编程器"。
我们将编程器与电脑连好,运行编程器的软件,然后在编缉区写入(D2H,90H)见图 2,写入……好,拿下片子,
把 片 子 插 入 做 好 的 电 路 板 , 接 通 电 源 …… 什 么 ? 灯 不 亮 ? 这 就 对 了 , 因 为 我 们 写 进 去 的 指 令 就 是 让
图 2
P10 输出高电平,灯当然不亮,要是亮就错了。现在我们再拨下这块芯片,重新放回到编程器上,将编缉区的容
改为(C2H,90H),也就是 CLR P1.0,写片,拿下片子,把片子插进电路板,接电,好,灯亮了。因为我们写入
的()就是让 P10 输出低电平的指令。这样我们看到,硬件电路的连线没有做任何改变,只要改变写入单片机中
的容,就可以改变电路的输出效果。
三、单片机部结构分析 我们来思考一个问题,当我们在编程器中把一条指令写进单片要部,然后取下单片机,
单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可
以保持这条指令不会丢失,这是个什么地方呢?这个地方就是单片机部的只读存储器即 ROM(READ ONLY
MEMORY)。为什么称它为只读存储器呢?刚才我们不是明明把两个数字写进去了吗?原来在 89C51 中的 ROM
是一种电可擦除的 ROM,称为 FLASH ROM,刚才我们是用的编程器,在特殊的条件下由外部设备对 ROM 进
行写的操作,在单片机正常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为 ROM。
单片机教程第三课:几个基本概念
4 / 57
数的本质和物理现象。
我们知道,计算机可以进行数学运算,这可令我们非常的难以理解,计算机吗,我们虽不了解它的组成,但它总
只是一些电子元器件,怎么可以进行数学运算呢?我们做数学题如 37+45 是这样做的,先在纸上写 37,然后在
下面写 45,然后大脑运算,最后写出结果,运算的原材料:37、45 和结果:82 都是写在纸上的,计算机中又是
放在什么地方呢?为了解决这个问题,先让我们做一个实验:这里有一盏灯,我们知道灯要么亮,要么不亮,就
有两种状态,我们可以用’0’和’1’来代替这两种状态,规定亮为’1’,不亮为’0’。现在放上两盏灯,一共有几种状
态呢?我们列表来看一下:
状态
表达
0 0
0 1
1 0
1 1
请大家自已写上 3 盏灯的情况 000 001 010 011 100 101 110 111
我们来看,这个 000,001,101 不就是我们学过的的二进制数吗?本来,灯的亮和灭只是一种物理现象,可当
我们把它们按一按的顺序排更好后,灯的亮和灭就代表了数字了。让我们再抽象一步,灯为什么会亮呢?看电路
1,是因为输出电路输出高电平,给灯通了电。因此,灯亮和灭就可以用电路的输出是高电平还是低电平来替代
了。这样,数字就和电平的高、低联系上了。(请想一下,我们还看到过什么样的类似的例子呢?(海军之)灯
语、旗语,电报,甚至红、绿灯)
位的含义:
通过上面的实验我们已经知道:一盏灯亮或者说一根线的电平的高低,可以代表两种状态:0 和 1。实际上这就
是一个二进制位,因此我们就把一根线称之为一“位”,用 BIT 表示。
字节的含义:
一根线可以表于 0 和 1,两根线可以表达 00,01,10,11 四种状态,也就是可以表于 0 到 3,而三根可以表达
0-7,计算机常用 8 根线放在一起,同时计数,就可以表过到 0-255 一共 256 种状态。这 8 根线或者 8 位就称之
为一个字节(BYTE)。不要问我为什么是 8 根而不是其它数,因为我也不知道。(计算机世界是一个人造的世界,
不是自然界,很多事情你无法问为什么,只能说:它是一种规定,大家在以后的学习过程中也要注意这个问题)
存储器的工作原理:
1、存储器构造
存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、
低,而不是我们所习惯认为的 1234 这样的数字,这样,我们的一个谜团就解开了,计算机也没什么神秘的吗。
图 2
图 3
让我们看图 2。这是一个存储器的示意图:一个存储器就象一个个的小抽屉,一个小抽屉里有八个小格子,每个
小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,至于电荷在小格子里是怎样存的,
就不用我们操心了,你可以把电线想象成水管,小格子里的电荷就象是水,那就好理解了。存储器中的每个小抽
屉就是一个放数据的地方,我们称之为一个“单元”。
有了这么一个构造,我们就可以开始存放数据了,想要放进一个数据 12,也就是 00001100,我们只要把第二号
和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了(看图 3)。可是问题出来了,看图 2,一个存
储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个
5 / 57
单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的,因
此,要在结构上稍作变化,看图 2,在每个单元上有个控制线,我想要把数据放进哪个单元,就给一个信号这个
单元的控制线,这个控制线就把开关打开,这样电荷就可以自由流动了,而其它单元控制线上没有信号,所以开
关不打开,不会受到影响,这样,只要控制不同单元的控制线,就可以向各单元写入不同的数据了,同样,如果
要某个单元中取数据,也只要打开相应的控制开关就行了。
2、存储器译码
那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元元的控制线都引到集成电路的外面不就
行了吗?事情可没那么简单,一片 27512 存储器中有 65536 个单元,把每根线都引出来,这个集成电路就得有 6
万多个脚?不行,怎么办?要想法减少线的数量。我们有一种方法称这为译码,简单介绍一下:一根线可以代表
2 种状态,2 根线可以代表 4 种状态,3 根线可以代表几种,256 种状态又需要几根线代表?8 种,8 根线,所以 65536
种状态我们只需要 16 根线就可以代表了。
3、存储器的选片与总线的概念
至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用从什么地方来的呢?它就
是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件,如图 4 所示。这样问题
就出来了,这八根线既然不是存储器和计算机之间专用的,如果总是将某个单元接在这八根线上,就不好了,比
如这个存储器单元中的数值是 0FFH 另一个存储器的单元是 00H,那么这根线到底是处于高电平,还是低电平?
岂非要打架看谁历害了?所以我们要让它们分离。办法当然很简单,当外面的线接到集成电路的引脚进来后,不
直接接到各单元去,中间再加一组开关(参考图 4)就行了。平时我们让开关打开着,如果确实是要向这个存储
器中写入数据,或要从存储器中读出数据,再让开关接通就行了。这组开关由三根引线选择:读控制端、写控制
端和片选端。要将数据写入片中,先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写
入片中。如果要读,先选中该片,然后发出读信号,开关合上,数据就被送出去了。注意图 4,读和写信号同时
还接入到另一个存储器,但是由于片选端不同,所以虽有读或写信号,但没有片选信号,所以另一个存储器不会
“误会”而开门,造成冲突。那么会不同时选中两片芯片呢?只要是设计好的系统就不会,因为它是由计算控制
的,而不是我们人来控制的,如果真的出现同时出现选中两片的情况,那就是电路出了故障了,这不在我们的讨
论之列。
从上面的介绍中我们已经看到,用来传递数据的八根线并不是专用的,而是很多器件大家共用的,所以我们称之
为数据总线,总线英文名为 BUS,总即公交车道,谁者可以走。而十六根地址线也是连在一起的,称之为地址
总线。
半导体存储器的分类
按功能可以分为只读和随机存取存储器两大类。所谓只读,从字面上理解就是只可以从里面读,不能写进去,它
类似于我们的书本,发到我们手回之后,我们只能读里面的容,不可以随意更改书本上的容。只读存储器的英文
缩写为 ROM(READ ONLY MEMORY)
所谓随机存取存储器,即随时可以改写,也可以读出里面的数据,它类似于我们的黑板,我可以随时写东西上去,
也可以用黑板擦擦掉重写。随机存储器的英文缩写为 RAM(READ RANDOM MEMORY)这两种存储器的英文
缩写一定要记牢。
注意:所谓的只读和随机存取都是指在正常工作情况下而言,也就是在使用这块存储器的时候,而不是指制造这
块芯片的时候。否则,只读存储器中的数据是怎么来的呢?其实这个道理也很好理解,书本拿到我们手里是不能
改了,可以当它还是原材料——白纸的时候,当然可以由印刷厂印上去了。
顺便解释一下其它几个常见的概念。
PROM,称之为可编程存储器。这就象我们的练习本,买来的时候是空白的,可以写东西上去,可一旦写上去,
就擦不掉了,所以它只能用写一次,要是写错了,就报销了。
EPROM,称之为紫外线擦除的可编程只读存储器。它里面的容写上去之后,如果觉得不满意,可以用一种特殊
的方法去掉后重写,这就是用紫外线照射,紫外线就象“消字灵”,可以把字去掉,然后再重写。当然消的次数
多了,也就不灵光了,所以这种芯片可以擦除的次数也是有限的——几百次吧。
FLASH,称之为闪速存储器,它和 EPROM 类似,写上去的东西也可以擦掉重写,但它要方便一些,不需要光
照了,只要用电学方法就可以擦除,所以就方便许多,而且寿面也很长(几万到几十万次不等)。
再次强调,这里的所有的写都不是指在正常工作条件下。不管是 PROM、EPROM 还是 FLASH ROM,它们的写
都要有特殊的条件,一般我们用一种称之为“编程器”的设备来做这项工作,一旦把它装到它的工作位置,就不
剩余56页未读,继续阅读
资源评论
matlab大师
- 粉丝: 2366
- 资源: 9万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功