易懂单片机教程.docx

上传人:b****1 文档编号:10693602 上传时间:2023-05-27 格式:DOCX 页数:85 大小:188.88KB
下载 相关 举报
易懂单片机教程.docx_第1页
第1页 / 共85页
易懂单片机教程.docx_第2页
第2页 / 共85页
易懂单片机教程.docx_第3页
第3页 / 共85页
易懂单片机教程.docx_第4页
第4页 / 共85页
易懂单片机教程.docx_第5页
第5页 / 共85页
易懂单片机教程.docx_第6页
第6页 / 共85页
易懂单片机教程.docx_第7页
第7页 / 共85页
易懂单片机教程.docx_第8页
第8页 / 共85页
易懂单片机教程.docx_第9页
第9页 / 共85页
易懂单片机教程.docx_第10页
第10页 / 共85页
易懂单片机教程.docx_第11页
第11页 / 共85页
易懂单片机教程.docx_第12页
第12页 / 共85页
易懂单片机教程.docx_第13页
第13页 / 共85页
易懂单片机教程.docx_第14页
第14页 / 共85页
易懂单片机教程.docx_第15页
第15页 / 共85页
易懂单片机教程.docx_第16页
第16页 / 共85页
易懂单片机教程.docx_第17页
第17页 / 共85页
易懂单片机教程.docx_第18页
第18页 / 共85页
易懂单片机教程.docx_第19页
第19页 / 共85页
易懂单片机教程.docx_第20页
第20页 / 共85页
亲,该文档总共85页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

易懂单片机教程.docx

《易懂单片机教程.docx》由会员分享,可在线阅读,更多相关《易懂单片机教程.docx(85页珍藏版)》请在冰点文库上搜索。

易懂单片机教程.docx

易懂单片机教程

准备工作

 在你决定学习单片机之前,请做好如下准备工作:

  一、硬件准备:

随着技术的发展,单片机开发手段也越来越先进,而价格却不断下降。

当FLASH型单片机被广泛应用后,采用软件模拟加写片验证成为一种经济实用的实验方法。

而近年来很多单片机都具有了ISP功能,只要一根下载线即可以编程,不再需要编程器。

美国SST公司推出的SST系列单片机更是集成了仿真功能,配合Keil软件,可使用户的目标板直接具有仿真功能,将单片机的易用性推向一个新的高度。

  我们推荐给大家的学习单片机的设备是:

方案1:

(1)计算机一台;

(2)具有仿真功能的实验板一块,(3)其它如电烙铁、实验电源等常规工具。

方案2:

(1)计算机一台;

(2)下载型实验板一块;(3)下载线一根;(4)其它如电烙铁、实验电源等常工具。

方案1的特点是实验板本身具有仿真能力,性价比高。

方案2价格略低。

如果你想学单片机,而又不愿做这些投资,我劝你最好还是放弃,否则可能只会挫伤你学习的积极性和浪费你的时间。

好在这些投资并不算多。

  计算机:

你能上网,计算机当然有了。

  实验仿真板:

本站和一些其他网站可提供。

很多人愿意比较,甚至问作者哪家的好,我自己当然只会说我的好^_^,没别的,和我的教材配套,度身定做。

而且还可以为学习AVR单片机做点准备,因为该板还可以使用AVR单片机。

点击这里查看详情

  实验板:

本站也能提供了一块商品化的实验板。

如果你愿意自己动手做,那么本站提供的一块单面板可能很适合你,本板可以使用89S52单片机,不过提醒你,本板上未设计有下载接口,如果你想用下载线,得要自己焊线或重新设计线路板。

  下载线:

本站提供了一根下载线,该下载线严格按照ATMEL公司提供的电路设计,全贴片工艺,全部电路安装于一个普通的并行接口外壳中,经过测试,稳定性良好。

你也可以自制,本站也提供了自制方案供下载,我们也推荐电子技术网站的ISPPRO下载线,这是目前可见的最完善的下载线

二、软件准备:

单片机开发中除必要的硬件外,同样离不开软件,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。

运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。

掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

学了一段时间之后,有朋友或许觉得不过瘾了,老是纸上谈兵,用个LED亮亮,有什么意思。

下面我们就准备让大家实战一场了,敬请关注实战之一:

流水灯(这次是用真的电灯了,当心啦,没接触过强电的千万别试,爆了管子可别怪我^_^。

单片机教学

(2)

单片机的内部、外部结构

(一)

一、单片机的外部结构

拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。

1、电源:

这当然是必不可少的了。

单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚。

2、振蒎电路:

单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。

只要买来晶振,电容,连上就可以了,按图1接上即可。

3、复位引脚:

按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。

4、EA引脚:

EA引脚接到正电源端。

至此,一个单片机就接好,通上电,单片机

就开始工作了。

图1

二、任务分析

我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个引脚相连,否则单片机就没法控制它了,那么和哪个引脚相连呢?

单片机上除了刚才用掉的5个引脚,还有35个,我们将这个LED和1脚相连。

(见图1,其中R1是限流电阻)

按照这个图的接法,当1脚是高电平时,LED不亮,只有1脚是低电平时,LED才发亮。

因此要1脚我们要能够控制,也就是说,我们要能够让1引脚按要求变为高或低电平。

即然我们要控制1脚,就得给它起个名字,总不能就叫它一脚吧?

叫它什么名字呢?

设计51芯片的INTEL公司已经起好了,就叫它P1.0,这是规定,不可以由我们来更改。

名字有了,我们又怎样让它变'高'或变'低'呢?

叫人做事,说一声就可以,这叫发布命令,要计算机做事,也得要向计算机发命令,计算机能听得懂的命令称之为计算机的指令。

让一个引脚输出高电平的指令是SETB,让一个引脚输出低电平的指令是CLR。

因此,我们要P1.0输出高电平,只要写SETBP1.0,要P1.0输出低电平,只要写CLRP1.0就可以了。

现在我们已经有办法让计算机去将P10输出高或低电平了,但是我们怎样才能计算机执行这条指令呢?

总不能也对计算机也说一声了事吧。

要解决这个问题,还得有几步要走。

第一,计算机看不懂SETBCLR之类的指令,我们得把指令翻译成计算机能懂的方式,再让计算机去读。

计算机能懂什么呢?

它只懂一样东西——数字。

因此我们得把SETBP1.0变为(D2H,90H),把CLRP1.0变为(C2H,90H),至于为什么是这两个数字,这也是由51芯片的设计者--INTEL规定的,我们不去研究。

第二步,在得到这两个数字后,怎样让这两个数字进入单片机的内部呢?

这要借助于一个硬件工具"编程器"。

我们将编程器与电脑连好,运行编程器的软件,然后在编缉区内写入(D2H,90H)见图2,写入……好,拿下片子,把片子插入做好的电路板,接通电源……什么?

灯不亮?

这就对了,因为我们写进去的指令就是让

图2

P10输出高电平,灯当然不亮,要是亮就错了。

现在我们再拨下这块芯片,重新放回到编程器上,将编缉区的内容改为(C2H,90H),也就是CLRP1.0,写片,拿下片子,把片子插进电路板,接电,好,灯亮了。

因为我们写入的()就是让P10输出低电平的指令。

这样我们看到,硬件电路的连线没有做任何改变,只要改变写入单片机中的内容,就可以改变电路的输出效果。

三、单片机内部结构分析

我们来思考一个问题,当我们在编程器中把一条指令写进单片要内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢?

这个地方就是单片机内部的只读存储器即ROM(READONLYMEMORY)。

为什么称它为只读存储器呢?

刚才我们不是明明把两个数字写进去了吗?

原来在89C51中的ROM是一种电可擦除的ROM,称为FLASHROM,刚才我们是用的编程器,在特殊的条件下由外部设备对ROM进行写的操作,在单片机正常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为ROM。

半导体存储器

1.数的本质和物理现象。

我们知道,计算机可以进行数学运算,这可令我们非常的难以理解,计算机吗,我们虽不了解它的组成,但它总只是一些电子元器件,怎么可以进行数学运算呢?

我们做数学题如37+45是这样做的,先在纸上写37,然后在下面写45,然后大脑运算,最后写出结果,运算的原材料:

37、45和结果:

82都是写在纸上的,计算机中又是放在什么地方呢?

为了解决这个问题,先让我们做一个实验:

这里有一盏灯,我们知道灯要么亮,要么不亮,就有两种状态,我们可以用’0’和’1’来代替这两种状态,规定亮为’1’,不亮为’0’。

现在放上两盏灯,一共有几种状态呢?

我们列表来看一下:

状态

表达

00

01

10

11

请大家自已写上3盏灯的情况000001010011100101110111

我们来看,这个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,一个存储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的,因此,要在结构上稍作变化,看图2,在每个单元上有个控制线,我想要把数据放进哪个单元,就给一个信号这个单元的控制线,这个控制线就把开关打开,这样电荷就可以自由流动了,而其它单元控制线上没有信号,所以开关不打开,不会受到影响,这样,只要控制不同单元的控制线,就可以向各单元写入不同的数据了,同样,如果要某个单元中取数据,也只要打开相应的控制开关就行了。

2、存储器译码

那么,我们怎样来控制各个单元的控制线呢?

这个还不简单,把每个单元元的控制线都引到集成电路的外面不就行了吗?

事情可没那么简单,一片27512存储器中有65536个单元,把每根线都引出来,这个集成电路就得有6万多个脚?

不行,怎么办?

要想法减少线的数量。

我们有一种方法称这为译码,简单介绍一下:

一根线可以代表2种状态,2根线可以代表4种状态,3根线可以代表几种,256种状态又需要几根线代表?

8种,8根线,所以65536种状态我们只需要16根线就可以代表了。

图4

3、存储器的选片及总线的概念

至此,译码的问题解决了,让我们再来关注另外一个问题。

送入每个单元的八根线是用从什么地方来的呢?

它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件,如图4所示。

这样问题就出来了,这八根线既然不是存储器和计算机之间专用的,如果总是将某个单元接在这八根线上,就不好了,比如这个存储器单元中的数值是0FFH另一个存储器的单元是00H,那么这根线到底是处于高电平,还是低电平?

岂非要打架看谁历害了?

所以我们要让它们分离。

办法当然很简单,当外面的线接到集成电路的引脚进来后,不直接接到各单元去,中间再加一组开关(参考图4)就行了。

平时我们让开关打开着,如果确实是要向这个存储器中写入数据,或要从存储器中读出数据,再让开关接通就行了。

这组开关由三根引线选择:

读控制端、写控制端和片选端。

要将数据写入片中,先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写入片中。

如果要读,先选中该片,然后发出读信号,开关合上,数据就被送出去了。

注意图4,读和写信号同时还接入到另一个存储器,但是由于片选端不同,所以虽有读或写信号,但没有片选信号,所以另一个存储器不会“误会”而开门,造成冲突。

那么会不同时选中两片芯片呢?

只要是设计好的系统就不会,因为它是由计算控制的,而不是我们人来控制的,如果真的出现同时出现选中两片的情况,那就是电路出了故障了,这不在我们的讨论之列。

从上面的介绍中我们已经看到,用来传递数据的八根线并不是专用的,而是很多器件大家共用的,所以我们称之为数据总线,总线英文名为BUS,总即公交车道,谁者可以走。

而十六根地址线也是连在一起的,称之为地址总线。

半导体存储器的分类

按功能可以分为只读和随机存取存储器两大类。

所谓只读,从字面上理解就是只可以从里面读,不能写进去,它类似于我们的书本,发到我们手回之后,我们只能读里面的内容,不可以随意更改书本上的内容。

只读存储器的英文缩写为ROM(READONLYMEMORY)

所谓随机存取存储器,即随时可以改写,也可以读出里面的数据,它类似于我们的黑板,我可以随时写东西上去,也可以用黑板擦擦掉重写。

随机存储器的英文缩写为RAM(READRANDOMMEMORY)这两种存储器的英文缩写一定要记牢。

注意:

所谓的只读和随机存取都是指在正常工作情况下而言,也就是在使用这块存储器的时候,而不是指制造这块芯片的时候。

否则,只读存储器中的数据是怎么来的呢?

其实这个道理也很好理解,书本拿到我们手里是不能改了,可以当它还是原材料——白纸的时候,当然可以由印刷厂印上去了。

顺便解释一下其它几个常见的概念。

PROM,称之为可编程存储器。

这就象我们的练习本,买来的时候是空白的,可以写东西上去,可一旦写上去,就擦不掉了,所以它只能用写一次,要是写错了,就报销了。

EPROM,称之为紫外线擦除的可编程只读存储器。

它里面的内容写上去之后,如果觉得不满意,可以用一种特殊的方法去掉后重写,这就是用紫外线照射,紫外线就象“消字灵”,可以把字去掉,然后再重写。

当然消的次数多了,也就不灵光了,所以这种芯片可以擦除的次数也是有限的——几百次吧。

FLASH,称之为闪速存储器,它和EPROM类似,写上去的东西也可以擦掉重写,但它要方便一些,不需要光照了,只要用电学方法就可以擦除,所以就方便许多,而且寿面也很长(几万到几十万次不等)。

再次强调,这里的所有的写都不是指在正常工作条件下。

不管是PROM、EPROM还是FLASHROM,它们的写都要有特殊的条件,一般我们用一种称之为“编程器”的设备来做这项工作,一旦把它装到它的工作位置,就不能随便改写了。

单片机教学(3)

单片机的内外部结构分析

(二)

一、程序的完善

  上一次我们的程序实在是没什么用,要灯亮还要重写一下片子,下面我们要让灯不断地闪烁,这就有一定的实用价值了,比如可以把它当成汽车上的一个信号灯用了。

怎样才能让灯不断地闪烁呢?

实际上就是要灯亮一段时间,再灭一段时间,也就是说要P10不断地输出高和低电平。

怎样实现这个要求呢?

请考虑用下面的指令是否可行:

SETBP10

CLRP10

……

这是不行的,有两个问题,第一,计算机执行指令的时间很快,执行完SETBP10后,灯是灭了,但在极短时间(微秒级)后,计算机又执行了CLRP10指令,灯又亮了,所以根本分辨不出灯曾灭过。

第二,在执行完CLRP10后,不会再去执行SETBP10指令,所以以后再也没有机会让灭了。

  为了解决这两个问题,我们可以做如下设想,第一,在执行完SETBP10后,延时一段时间(几秒或零点几秒)再执行第二条指令,就可以分辨出灯曾灭过了。

第二在执行完第二条指令后,让计算机再去执行第一条指令,不断地在原地兜圈,我们称之为"循环",这样就可以完成任务了。

以下先给出程序(后面括号中的数字是为了便于讲解而写的,实际不用输入):

;主程序:

LOOP:

SETBP10    ;(1)

    LCALLDELAY  ;(2)

    CLRP10    ;(3)

    LCALLDELAY  ;(4)

    AJMPLOOP   ;(5)

;以下子程序

DELAY:

MOVR7,#250  ;(6)

D1:

MOVR6,#250   ;(7)

D2:

DJNZR6,D2   ;(8)

  DJNZR7,D1    ;(9)

  RET        ;(10)

  END        ;(11)

按上面的设想分析一下前面的五条指令。

  第一条是让灯灭,第二条应当是延时,第三条是让灯亮,第四条和第二条一模一样,也是延时,第五条应当是转去执行第一条指令。

第二和第四条实现的原理稍后谈,先看第五条,LJMP是一条指令,意思是转移,往什么地方转移呢?

后面跟的是LOOP,看一下,什么地方还有LOOP,对了,在第一条指令的前面有一个LOOP,所以很直观地,我们可以认识到,它要转到第一条指令处。

这个第一条指令前面的LOOP被称之为标号,它的用途就是给这一行起一个名字,便于使用。

是否一定要给它起名叫LOOP呢?

当然不是,起什么名字,完全由编程序的人决定,可以称它为A,X等等,当然,这时,第五条指令LJMP后面的名字也得跟着改了。

  第二条和第四条指令的用途是延时,它是怎样实现的呢?

指令的形式是LCALL,这条指令称为调用子程序指令,看一下指令后面跟的是什么,DELAY,找一下DELAY,在第六条指令的前面,显然,这也是一个标号。

这条指令的作用是这样的:

当执行LCALL指令时,程序就转到LCALL后面的标号所标定的程序处执行,如果在执行指令的过程中遇到RET指令,则程序就返回到LCALL指令的下面的一条指令继续执行,从第六行开始的指令中,可以看到确实有RET指令。

在执行第二条指令后,将转去执行第6条指令,而在执行完6,7,8,9条指令后将遇到第10条令:

RET,执行该条指令后,程序将回来执行第三条指令,即将P10清零,使灯亮,然后又是第四条指令,执行第四条指令就是转去执行第6,7,8,9,10条指令,然后回来执行第5条指令,第5条指令就是让程序回到第1条开始执行,如此周而复始,灯就在不断地亮、灭了。

  在标号DELAY标志的这一行到RET这一行中的所有程序,这是一段延时程序,大概延时零点几秒,至于具体的时间,以后我们再学习如何计算。

程序的最后一行是END,这不是一条指令,它只是告诉我们程序到此结束,它被称为"伪指令"。

二、单片机内部结构分析:

  为了知道延时程序是如何工作的,我们必需首先了解延时程序中出现的一些符号,就从R1开始,R1被称之为工作寄存器。

什么是工作寄存器呢?

让我们从现实生活中来找找答案。

如果出一道数学题:

123+567,让你回答结果是多少,你会马上答出是690,再看下面一道题:

123+567+562,要让你要上回答,就不这么容易了吧?

我们会怎样做呢?

如果有张纸,就容易了,我们先算出123+567=690,把690写在纸上,然后再算690+562得到结果是1552。

这其中1552是我们想要的结果,而690并非我们所要的结果,但是为了得到最终结果,我们又不得不先算出690,并记下来,这其实是一个中间结果,计算机中做运算和这个类似,为了要得到最终结果,往往要做很多步的中间结果,这些中间结果要有个地方放才行,把它们放哪呢?

放在前面提到过的ROM中可以吗?

显然不行,因为计算机要将结果写进去,而ROM是不可以写的,所以在单片机中另有一个区域称为RAM区(RAM是随机存取存储器的英文缩写),它可以将数据写进去。

  特别地,在MCS-51单片机中,将RAM中分出一块区域,称为工作寄存器区。

单片机第五课:

单片机的内外部结构分析(三)

一、延时程序分析

上一次课中,我们已经知道,程序中的符号R7、R6是代表了一个个的RAM单元,是用来放一些数据的,下面我们再来看一下其它符号的含义。

DELAY:

MOVR7,#250  ;(6)

D1:

MOVR6,#250  ;(7)

D2:

DJNZR6,D2   ;(8)

DJNZR7,D1   ;(9)  

RET       ;(10)

 

MOV:

这是一条指令,意思是传递数据。

说到传递,我们都很清楚,传东西要从一个人的手上传到另一个人的手上,也就是说要有一个接受者,一个传递者和一样东西。

从指令MOVR7,#250中来分析,R7是一个接受者,250是被传递的数,传递者在这条指令中被省略了(注意:

并不是每一条传递指令都会省的,事实上大部份数据传递指令都会有传递者)。

它的意义也很明显:

将数据250送到R7中去,因此执行完这条指令后,R7单元中的值就应当是250。

在250前面有个#号,这又是什么意思呢?

这个#就是用来说明250就是一个被传递的东西本身,而不是传递者。

那么MOVR6,#250是什么意思,应当不用分析了吧。

1.DJNZ:

这是另一条指令,我们来看一下这条指令后面跟着的两个东西,一个是R6,一个是D2,R6我们当然已知是什么了,查一下D2是什么。

D2在本行的前面,我们已学过,这称之为标号。

标号的用途是什么呢?

就是给本行起一个名字。

DJNZ指令的执行过程是这样的,它将其后面的第一个参数中的值减1,然后看一下,这个值是否等于0,如果等于0,就往下执行,如果不等于0,就转移,转到什么地方去呢?

可能大家已猜到了,转到第二个参数所指定的地方去(请大家用自已的话讲一下这条语句是怎样执行的)。

本条指令的最终执行结果就是,在原地转圈250次。

2.执行完了DJNZR6,D2之后(也就是R6的值等于0之后),就会去执行下面一行,也就是DJNZR7,D1,请大家自行分析一下这句话执行的结果。

(转去执行MOVR6,#250,同时R7中的值减1),最终DJNZR6,D2这句话将被执行250*250=62500次,执行这么多次同一条指令干吗?

就是为了延时。

3.一个问题:

如果在R6中放入0,会有什么样的结果。

二、时序分析:

前面我们介绍了延时程序,但这还不完善,因为,我们只知道DJNZR6,D2这句话会被执行62500次,但是执行这么多次需要多长时间呢?

是否满足我们的要求呢?

我们还不知道,所以下面要来解决这个问题。

先提一个问题:

我们学校里什么是最重要的。

(铃声)校长可以出差,老师可以休息,但学校一日无铃声必定大乱。

整个学校就是在铃声的统一指挥下,步调一致,统一协调地工作着。

这个铃是按一定的时间安排来响的,我们可以称之为“时序��时间的顺序”。

一个由人组成的单位尚且要有一定的时序,计算机当然更要有严格的时序。

事实上,计算机更象一个大钟,什么时候分针动,什么时候秒针动,什么时候时针动,都有严格的规定,一点也不能乱。

计算机要完成的事更复杂,所以它的时序也更复杂。

我们已知,计算机工作时,是一条一条地从ROM中取指令,然后一步一步地执行,我们规定:

计算机访问一次存储器的时间,称之为一个机器周期。

这是一个时间基准,好象我们人用“秒”作为

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2