《匠人手记》推荐网上购书渠道:
  互动出版网(china-pub)   >>>
  当当网(dangdang)   >>>
  卓越亚马逊网    >>>
  淘宝网(taobao)   >>>
  更多购书渠道……   >>> 

设为首页加入收藏联系匠人管理入口21IC首页21IC博客21IC社区侃单片机回复的贴参与的贴

天气预报
百宝日历
载入中...

百宝专栏

载入中...
最新货色

载入中...

粉丝评论

载入中...

载入中...



百宝信息

载入中...

百宝流量

(2006-07-01开始)


匠人手记

MCS-51单片机的指令时序
程序匠人 发表于 2006-7-28 19:51:00  阅读全文 | 回复(0) | 引用通告 | 编辑

MCS-51单片机的指令时序
时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。

    ·节拍与状态:
    我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P1),后半周期对应的节拍定义为2(P2)。

    ·机器周期:
    MCS-51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,我们可以记着S1P1、S1P2……S6P1、S6P2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6MHz的时钟频率,一个机器周期就是2us,而如使用12MHz的时钟频率,一个机器周期就是1us。

    ·指令周期:
    执行一条指令所需要的时间称为指令周期,MCS-51的指令有单字节、双字节和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器周期不相同,可能包括一到四个不等的机器周期(这些内容,我们将在下面的章节中加以说明)。

    ·MCS-51的指令时序:
    MCS-51指令系统中,按它们的长度可分为单字节指令、双字节指令和三字节指令。执行这些指令需要的时间是不同的,也就是它们所需的机器周期是不同的,有下面几种形式:

    ·单字节指令单机器周期
    ·单字节指令双机器周期
    ·双字节指令单机器周期
    ·双字节指令双机器周期
    ·三字节指令双机器周期
    ·单字节指令四机器周期(如单字节的乘除法指令)

    下图是MCS-51系列单片机的指令时序图:

MCS-51的指令时序
    上图是单周期和双周期取指及执行时序,图中的ALE脉冲是为了锁存地址的选通信号,显然,每出现一次该信号单片机即进行一次读指令操作。从时序图中可看出,该信号是时钟频率6分频后得到,在一个机器周期中,ALE信号两次有效,第一次在S1P2和S2P1期间,第二次在S4P2和S5P1期间。

    接下来我们分别对几个典型的指令时序加以说明。

    ·单字节单周期指令:
    单字节单周期指令只进行一次读指令操作,当第二个ALE信号有效时,PC并不加1,那么读出的还是原指令,属于一次无效的读操作。

    ·双字节单周期指令:
    这类指令两次的ALE信号都是有效的,只是第一个ALE信号有效时读的是操作码,第二个ALE信号有效时读的是操作数。

    ·单字节双周期指令:
    两个机器周期需进行四读指令操作,但只有一次读操作是有效的,后三次的读操作均为无效操作。
    单字节双周期指令有一种特殊的情况,象MOVX这类指令,执行这类指令时,先在ROM中读取指令,然后对外部数据存储器进行读或写操作,头一个机器周期的第一次读指令的操作码为有效,而第二次读指令操作则为无效的。在第二个指令周期时,则访问外部数据存储器,这时,ALE信号对其操作无影响,即不会再有读指令操作动作。

    上页的时序图中,我们只描述了指令的读取状态,而没有画出指令执行时序,因为每条指令都包含了具体的操作数,而操作数类型种类繁多,这里不便列出,有兴趣的读者可参阅有关书籍。
    ·外部程序存储器(ROM)读时序
    右图8051外部程序存储器读时序图,从图中可看出,P0口提供低8位地址,P2口提供高8位地址,S2结束前,P0口上的低8位地址是有效的,之后出现在P0口上的就不再是低8位的地址信号,而是指令数据信号,当然地址信号与指令数据信号之间有一段缓冲的过度时间,这就要求,在S2其间必须把低8位的地址信号锁存起来,这时是用ALE选通脉冲去控制锁存器把低8位地址予以锁存,而P2口只输出地址信号,而没有指令数据信号,整个机器周期地址信号都是有效的,因而无需锁存这一地址信号。
外部程序存储器时序图
    从外部程序存储器读取指令,必须有两个信号进行控制,除了上述的ALE信号,还有一个PSEN(外部ROM读选通脉冲),上图显然可看出,PSEN从S3P1开始有效,直到将地址信号送出和外部程序存储器的数据读入CPU后方才失效。而又从S4P2开始执行第二个读指令操作。
    ·外部数据存储器(RAM)读时序
    右图8051外部数据存储器读写时序图,从ROM中读取的需执行的指令,而CPU对外部数据存储的访问是对RAM进行数据的读或写操作,属于指令的执行周期,值得一提的是,读或写是两个不同的机器周期,但他们的时序却是相似的,我们只对RAM的读时序进行分析。
    上一个机器周期是取指阶段,是从ROM中读取指令数据,接着的下个周期才开始读取外部数据存储器RAM中的内容。
外部程序存储器时序图
    在S4结束后,先把需读取RAM中的地址放到总线上,包括P0口上的低8位地址A0-A7和P2口上的高8位地址A8-A15。当RD选通脉冲有效时,将RAM的数据通过P0数据总线读进CPU。第二个机器周期的ALE信号仍然出现,进行一次外部ROM的读操作,但是这一次的读操作属于无效操作。
    对外部RAM进行写操作时,CPU输出的则是WR(写选通信号),将数据通过P0数据总线写入外部存储

看《匠人手记》,与匠人同行!北航出版,正在热卖!

发表评论:
载入中...

芯片专题

器件专题

软件专题

硬件专题

综合专题

项目专题

原创专题

器件检测
LCD LED
按键 触摸键
E2PROM
电池 电机
电阻 电容 电感

指令系统
软件算法
编程规范
滤波算法
串行通讯

PCB设计
I2C PWM
红外遥控
充电技术
中断 ADC 

匠人手记
匠人夜话
网络心路
一周热点串烧
从零开始玩PIC
DIY旋转时钟

广告5号位 [投放]


学习板、开发板、编程器、下载器、仿真器(查看详情……)

广告3号位 [投放]

站内搜索


站外搜索


百度  google
mp3  歌词 
图片  FLASH 
知道  文档
新闻  词典 
地图  mp3 
软件  天网 
雅虎  爱问 
搜狗  讯雷 
网讯  华军 
天空 

21IC器件搜索
百宝箱分站
  • 《匠人的百宝箱》21IC站
  • 《匠人的百宝箱》21IC笔记团队
  • 《匠人手记》21IC书友会
  • 《匠人的百宝箱》MCUBLOG站
  • 《匠人的百宝箱》MCUBLOG笔记团队
  • 《匠人的百宝箱》EDN站
  • 《匠人手记》EDN书友会
  • 《匠人的百宝箱》与非网站
  • 《匠人的百宝箱》新浪站
  • 《匠人的百宝箱》百度站
  • 《匠人的百宝箱》网易126站
  • 《匠人的百宝箱》网易163站
  • 《匠人的百宝箱》互动出版网站
  • 广告4号位 [投放]

     
     

    匠人原创

    推荐阅读

    往日酷贴

     

    友情连接

     [更多酷站连接]

     

     

     

     

    [欢迎交换连接]

    [百宝箱之与非门分舵]

    [电脑圈圈的家当]

    [IC921的博客]

    [hotpower 的水潭]

    [八楼的呼吸]

    [柔月阁]

    [PIC论坛]

    [SMARTCODE电子书斋]

    [阿摆手记]

    [电子伙伴]

    [xwj的文君阁]

    [所长的BLOG]

    [海边淘沙]

    [单片机开发联盟]

    [数字电视之家]

    [软件开发之窗]

    [unaided的笔记]

    [小飞的笔记]

    [ICC AVR开发网]

    [我爱研发网]

    [infernal的笔记]

    [网址之家]

    [好东西网址大全]

    [美萍中文精选]

    [水牛的仓库]

    [逍遥电子]

    [ningpanda的博客]

    [雄鹰的空中加油站]

    [一网见天下]

    [Armoric]

    [股剩是怎样炼成的]

    [嵌入式365]

    [C-Design]

    [AVR猎手的地盘]

    [中国高校自动化网]

    [SunK]