没有合适的资源?快使用搜索试试~ 我知道了~
51系列单片机系统学习教程整理
需积分: 10 6 下载量 115 浏览量
2010-04-13
11:49:17
上传
评论
收藏 1.51MB DOC 举报
温馨提示
试读
64页
从单片机的入门,到外围接口电路,单片机原理做了详细的介绍,比较适合初学单片机者,只要有些电路基础知识,通过对该书的学习,均能增强单片机的知识面。
资源推荐
资源详情
资源评论
51 单片机教程(从原理开始基于汇编)
很多电子爱好者,都想学习单片机这门技术。下面的这一系列教程是 www.51hei.com 专门为初学者入门而准备
的,基于汇编语言,详细的介绍了单片机的原理,指令,寄存器,以及接口等,后面还为你准备了一些小的设计。
都是从单片机最基本的东西讲起,相信你一定能看懂,并且学会单片机这门有意思的技术,有什么问题可在本站
论坛留言。
1 课:单片机简叙e
2 课:单片机引脚介绍
3 课:单片机存储器结构
4 课:第一个单片机小程序
5 课:单片机延时程序分析e
6 课:单片机并行口结构e
7 课:单片机的特殊功能寄存器
8 课:单片机寻址方式与指令系统
9 课:单片机数据传递类指令
10 课:单片机数据传送类指令
11 课:单片机算术运算指令
12 课:单片机逻辑运算类指令
13 课:单片机逻辑与或异或指令祥解
14 课:单片机条件转移指令e
15 课:单片机位操作指令e
16 课:单片机定时器与计数器e
17 课:单片机定时器/计数器的方式
18 课:单片机的中断系统
19 课:单片机定时器、中断试验e
20 课:单片机定时/计数器实验
21 课:单片机串行口介绍
22 课:单片机串行口通信程序设计
23 课:LED 数码管静态显示接口与编e
24 课:动态扫描显示接口电路及程序
25 课:单片机键盘接口程序设计e
26 课:单片机矩阵式键盘接口技术及e
27 课:关于单片机的一些基本概念
28 课:单片机音乐程序设计ee
1 课:单片机简叙
1、什么是单片机e一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、
ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块
芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所
以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如 A/D,D/A 等。e
单片机是一种控制芯片,一个微型的计算机,而加上晶振,存储器,地址锁存器,逻辑门,七段译码器(显示
器),按钮(类似键盘),扩展芯片,接口等那是单片机系统。
天!PC 中的 CPU 一块就要卖几千块钱,这么多东西做在一起,还不得买个天价!再说这块芯片也得非常大了。
不,价格并不高,从几元人民币到几十元人民币,体积也不大,一般用 40 脚封装,当然功能多一些单片机也有
引脚比较多的,如 68 引脚,功能少的只有 10 多个或 20 多个引脚,有的甚至只 8 只引脚。
为什么会这样呢?e
功能有强弱,打个比方,市场上面有的组合音响一套才卖几百块钱,可是有的一台功放机就要卖好几千。另外这
种芯片的生产量很大,技术也很成熟,51 系列的单片机已经做了十几年,所以价格就低了。e
既然如此,单片机的功能肯定不强,干吗要学它呢?e
话不能这样说,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计
算机难道要用 PIII?应用的关键是看是否够用,是否有很好的性能价格比。所以 8051 出来十多年,依然没有被淘
汰,还在不断的发展中。e
2、MCS51 单片机和 8051、8031、89C51 等的关系
更多单片机学习资料请来eehttp://www.51hei.com
我们平常老是讲 8051,又有什么 8031,现在又有 89C51,89s51 它们之间究竟是什么关系?
MCS51 是指由美国 INTEL 公司(对了,就是大名鼎鼎的 INTEL)生产的一系列单片机的总称,这一系列单片
机包括了好些品种,如 8031,8051,8751,8032,8052,8752 等,其中 8051 是最早最典型的产品,该系
列其它单片机都是在 8051 的基础上进行功能的增、减、改变而来的,所以人们习惯于用 8051 来称呼 MCS51
系列单片机,而 8031 是前些年在我国最流行的单片机,所以很多场合会看到 8031 的名称。INTEL 公司将
MCS51 的核心技术授权给了很多其它公司,所以有很多公司在做以 8051 为核心的单片机,当然,功能或多或少
有些改变,以满足不同的需求,其中 89C51 就是这几年在我国非常流行的单片机,它是由美国 ATMEL 公司开发
生产的。以后我们将用 89C51 单片机来完成一系列的实验。
2 课:单片机引脚介绍
8051 单片机引脚功能介绍
首先我们来连接一下单片机的引脚图,如果,具体功能在下面都有介绍。
单片机的 40 个引脚大致可分为 4 类:电源、时钟、控制和 I/O 引脚。
⒈ 电源: ⑴ VCC - 芯片电源,接+5V;
⑵ VSS - 接地端;
⒉ 时钟: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 口还具有第二功能,用于特殊信
号输入输出和控制信号(属控制总线)。ee
〈51 单片机引脚图及引脚功能〉
拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为 89C51 的芯片,下面我们就看一
下如何给它连线。
1、e电源:这当然是必不可少的了。单片机使用的是 5V 电源,其中正极接 40 管脚,负极(地)接 20 管脚。e
2、e振蒎电路:单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用
晶体振荡器,接 18、19 脚。只要买来晶体震荡器,电容,连上就能了,按图 1 接上即可。e
3、e复位管脚:按图 1 中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。e
4、eEA 管脚:EA 管脚接到正电源端。e至此,一个单片机就接好,通上电,单片机就开始工作了。
我们的第一个任务是要用单片机点亮一只发光二极管 LED,显然,这个 LED 必须要和单片机的某个管脚相连,
不然单片机就没法控制它了,那么和哪个管脚相连呢?单片机上除了刚才用掉的 5 个管脚,还有 35 个,我们将
这个 LED 和 1 脚相连。(见图 1,其中 R1 是限流电阻)
按照这个图的接法,当 1 脚是高电平时,LED 不亮,只有 1 脚是低电平时,LED 才发亮。因此要 1 脚我们要能
够控制,也就是说,我们要能够让 1 管脚按要求变为高或低电平。即然我们要控制 1 脚,就得给它起个名字,总
不能就叫它一脚吧?叫它什么名字呢?设计 51 芯片的 INTEL 公司已经起好了,就叫它 P1.0,这是规定,不能由
我们来更改。
名字有了,我们又怎样让它变'高'或变'低'呢?叫人做事,说一声就能,这叫发布命令,要计算机做事,也得要向
计算机发命令,计算机能听得懂的命令称之为计算机的指令。让一个管脚输出高电平的指令是 SETB,让一个管
脚输出低电平的指令是 CLR。因此,我们要 P1.0 输出高电平,只要写 SETB P1.0,要 P1.0 输出低电平,只要写
CLR P1.0 就能了。
现在我们已经有办法让计算机去将 P10 输出高或低电平了,但是我们怎样才能计算机执行这条指令呢?总不能
也对计算机也说一声了事吧。要解决这个问题,还得有几步要走。第一,计算机看不懂 SETB CLR 之类的指令,
我们得把指令翻译成计算机能懂的方式,再让计算机去读。计算机能懂什么呢?它只懂一样东西——数字。因此
我们得把 SETB P1.0 变为(D2H,90H ),把 CLR P1.0 变为e(C2H,90H ),至于为什么是这两个数字,这也
是由 51 芯片的设计者--INTEL 规定的,我们不去研究。第二步,在得到这两个数字后,怎样让这两个数字进入单
片机的内部呢?这要借助于一个硬件工具"编程器"。如果你还不知道是什么是编程器,我来介绍一下,就是把你
在电脑上写出来来的代码用汇编器等编译器生成的一个目标烧写到单片机的 eprom 里面去的工具,80c51 这种
类型的单片机编程是一件很麻烦的事情,必要要先装到编程器上编程后才能在设备上使用,而目前最新的 89s51
单片机居然在线编程(isp)功能,不用拔出来利用简单的电路就可以实现把代码写入单片机内部,本站有详细的
at89s51 编程器制作教程
我们将编程器与电脑连好,运行编程器的软件,然后在编缉区内写入(D2H,90H)见图 2,写入……好,拿下
片子,把片子插入做好的电路板,接通电源……什么?灯不亮?这就对了,因为我们写进去的
指令就是让 图
2
P10 输出高电平,灯当然不亮,要是亮就错了。现在我们再拨下这块芯片,重新放回到编程器上,将编缉区的
内容改为(C2H,90H),也就是 CLR P1.0,写片,拿下片子,把片子插进电路板,接电,好,灯亮了。因为我
们写入的()就是让 P10 输出低电平的指令。这样我们看到,硬件电路的连线没有做任何改变,只要改变写入单
片机中的内容,就能改变电路的输出效果。
3 课:单片机存储器结构
单片机内部存储结构分析e
我们来思考一个问题,当我们在编程器中把一条指令写进单片要内部,然后取下单片机,单片机就可以执行这
条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会
丢失,这是个什么地方呢?这个地方就是单片机内部的只读存储器即 ROM(READ ONLY MEMORY)。为什么
称它为只读存储器呢?刚才我们不是明明把两个数字写进去了吗?原来在 89C51 中的 ROM 是一种电可擦除的
ROM,称为 FLASH ROM,刚才我们是用的编程器,在特殊的条件下由外部设备对 ROM 进行写的操作,在单片
机正常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为 ROM。
数的本质和物理现象:我们知道,计算机能进行数学运算,这可令我们非常的难以理解,计算机吗,我们虽不
了解它的组成,但它总只是一些电子元器件,怎么能进行数学运算呢?我们做数学题如 37+45 是这样做的,先
在纸上写 37,然后在下面写 45,然后大脑运算,最后写出结果,运算的原材料:37、45 和结果:82 都是写在
纸上的,计算机中又是放在什么地方呢?为了解决这个问题,先让我们做一个实验:这里有一盏灯,我们知道灯
要么亮,要么不亮,就有两种状态,我们能用’0’和’1’来代替这两种状态,规定亮为’1’,不亮为’0’。现在放上两
盏灯,一共有几种状态呢?我们列表来看一下:
状态e
表达e
0 0 0 1 1 0 1 1
请大家自已写上 3 盏灯的情况 000 001 010 011 100 101 110 111
我们来看,这个 000,001,101 不就是我们学过的的二进制数吗?本来,灯的亮和灭只是一种物理现象,可
当我们把它们按一按的次序排更好后,灯的亮和灭就代表了数字了。让我们再抽象一步,灯为什么会亮呢?看电
路 1,是因为输出电路输出高电平,给灯通了电。因此,灯亮和灭就能用电路的输出是高电平还是低电平来替代
了。这样,数字就和电平的高、低联系上了。(请想一下,我们还看到过什么样的类似的例程呢?(海军之)灯
语、旗语,电报,甚至红、绿灯)
什么是位:e
通过上面的实验我们已经知道:一盏灯亮或者说一根线的电平的高低,能代表两种状态:0 和 1。实际上这就是
一个二进制位,因此我们就把一根线称之为一“位”,用 BIT 表示。
什么是字节:e
一根线能表于 0 和 1,两根线能表达 00,01,10,11 四种状态,也就是能表于 0 到 3,而三根能表达 0-7,
计算机中常常用 8 根线放在一起,同时计数,就能表过到 0-255 一共 256 种状态。这 8 根线或者 8 位就称之为
一个字节(BYTE)。不要问我为什么是 8 根而不是其它数,因为我也不知道。
(计算机世界是一本人造的世界,不是自然界,很多事情你无法问为什么,只能说:它是一种规定,大家在以后
的学习过程中也要注意这个问题)
存储器的工作原理:e
1、存储器构造
存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、
低,而不是我们所习惯认为的 1234 这样的数字,这样,我们的一个谜团就解开了,计算机也没什么神秘的吗。
图 2〈存储器构造〉
图 3〈存储器构造〉
让我们看图 2。单片机里面都有这样的存储器,这是一个存储器的示意图:一个存储器就象一个个的小抽屉,一
个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,至于电
荷在小格子里是怎样存的,就不用我们操心了,你能把电线想象成水管,小格子里的电荷就象是水,那就好理解
了。存储器中的每个小抽屉就是一个放数据的地方,我们称之为一个“单元”。
有了这么一个构造,我们就能开始存放数据了,想要放进一个数据 12,也就是 00001100,我们只要把第二号
和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了(看图 3)。可是问题出来了,看图 2,一个存
储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个
单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的,因
此,要在结构上稍作变化,看图 2,在每个单元上有个控制线,我想要把数据放进哪个单元,就给一个信号这个
单元的控制线,这个控制线就把开关打开,这样电荷就能自由流动了,而其它单元控制线上没有信号,所以开关
不打开,不会受到影响,这样,只要控制不一样单元的控制线,就能向各单元写入不一样的数据了,同样,如果
要某个单元中取数据,也只要打开对应的控制开关就行了。
2、存储器译码
那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元元的控制线都引到集成电路的外面不就
行了吗?事情可没那么简单,一片 27512 存储器中有 65536 个单元,把每根线都引出来,这个集成电路就得有
6 万多个脚?不行,怎么办?要想法减少线的数量。我们有一种办法称这为译码,简单介绍一下:一根线能代表 2
种状态,2 根线能代表 4 种状态,3 根线能代表几种,256 种状态又需要几根线代表?8 种,8 根线,所以
65536 种状态我们只需要 16 根线就能代表了。
3、存储器的选片及总线的概念
至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用从什么地方来的呢?它
就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件,如图 4 所示。这样问
剩余63页未读,继续阅读
资源评论
luhaina521
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功