234彩票代理

  • <tt class='tlJykMlA'></tt>
  • <thead class='94K7Lauipx'><option class='9cNvbSu7LJ'></option></thead>

    <em class='jepytdnyfeW3'><b class='oR1Ys12nk'><td class='6rzzLTN'></td></b></em>

  • <dl class='Td0EmkF'><b class='qoWhaibfJ9'></b></dl>

  • <span class='lS1G'></span>

    (玩电子) 电子技术学习与研究
    当前位置:单片机教程网 >> 基础教程 >> 浏览文章

    7课:单片机的一特殊功能寄存器

    作者:佚名   来源:本站原创   点击数:x  更新时间:2007年08月16日   【字体:

       通过前面的一学习,我们已知单片机的一内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的一东西怎么连在一起的一,让我们来对单片机内部的一寄存器作一个完整的一功能分析吧!

      下图中我们能看出,在51单片机内部有一个CPU用来运算︻、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的一时钟电路 。在一个51单片机的一内部包含了这么多的一东西 。


     

      对上    面的一图进行进一步的一分析,我们已知,对并行I/O口的一读写只要将数据送入到对应I/O口的一锁存器就能了,那么对于定时/计数器,串行I/O口等怎么用呢?在单片机中有一些独立的一存储单元是用来控制这些器件的一,被称之为特殊功能寄存器(SFR) 。事实上    ,我们已接触过P1这个特殊功能寄存器了,还有哪些呢?看下表1

    符号

    地址

    功能介绍

    B

    F0H

    B寄存器

    ACC

    E0H

    累加器

    PSW

    D0H

    程序状态字

    IP

    B8H

    中断优先级控制寄存器

    P3

    B0H

    P3口锁存器

    IE

    A8H

    中断允许控制寄存器

    P2

    A0H

    P2口锁存器

    SBUF

    99H

    串行口锁存器

    SCON

    98H

    串行口控制寄存器

    P1

    90H

    P1口锁存器

    TH1

    8DH

    定时器/计数器1(高8位)

    TH0

    8CH

    定时器/计数器1(低8位)

    TL1

    8BH

    定时器/计数器0(高8位)

    TL0

    8AH

    定时器/计数器0(低8位)

    TMOD

    89A

    定时器/计数器方式控制寄存器

    TCON

    88H

    定时器/计数器控制寄存器

    DPH

    83H

    数据地址指针(高8位)

    DPL

    82H

    数据地址指针(低8位)

    SP

    81H

    堆栈指针

    P0

    80H

    P0口锁存器

    PCON

    87H

    电源控制寄存器

      表1
     

    <特殊功能寄存器地址映象表(一)>

     

    <特殊功能寄存器地址映象表(二)>

     

    <特殊功能寄存器地址映象表(三)>

    下面,我们介绍一下几个常用的一SFR,看图2 。

    1、ACC:累加器,常常用A表示 。这是个什么东西,可不 能从名字上    理解,它是一个寄存器,而不 是一个做加法的一东西,为什么给它这么一个名字呢?或许是因 为在运算︻器做运算︻时其中一个数一定是在ACC中的一缘故吧 。它的一名字特殊,身份也特殊,稍后我们将学到指令,能发现,所有的一运算︻类指令都离不 开它 。

    2、B:一个寄存器 。在做乘、除法时放乘数或除数,不 做乘除法时,随你怎么用 。

    3、PSW:程序状态字 。这是一个很重要的一东西,里面放了CPU工作时的一很多状态,借此,我们能了解CPU的一当前状态,并作出对应的一处理 。它的一各位功能请看表2

    D7

    D6

    D5

    D4

    D3

    D2

    D1

    D0

    CY

    AC

    F0

    RS1

    RS0

    OV

     

    P

          表2

    PSW也称为标志寄存器,了解这个对于了解单片机原理非常的一重要,存放各有关标志 。其结构№和定义如下:

     

      下面我们逐一介绍sfr各位的一用途

    (1)CY:进位标志 。用于表示Acc.7有否向更高位进位 。8051中的一运算︻器是一种8位的一运算︻器,我们知道,8位运算︻器只能表示到0-255,如果做加法的一话,两数相加可能会超过255,这样最高位就会丢失,造成运算︻的一错误,怎么办?最高位就进到这里来 。这样就没事了 。

    例:78H+97H(01111000+10010111)

    (2)AC:辅助进位标志也叫半进位标志 。  用于表示Acc.3有否向Acc.4进位

    例:57H+3AH(01010111+00111010)

    (3)F0:用户标志位,由我们(编程人员)决定什么时候用,什么时候不 用 。

    (4)RS1RS0:工作寄存器组选择位 。这个我们已知了 。
                  RS1、RS0 = 00 —— 0区(00H~07H)

                  RS1、RS0 = 01 —— 1区(08H~0FH)

                  RS1、RS0 = 10 —— 2区(10H~17H)

                  RS1、RS0 = 11 —— 3区(18H~1FH) 

    (5)0V:溢出标志位 。 表示Acc在有符号数算︻术运算︻中的一溢出,什么是溢出我们稍后再谈吧 。

    (6)P:奇偶校验ζ位:它用来表示ALU运算︻结果中二进制数位“1”的一个数的一奇偶性 。若为奇数,则P=1,不 然为0 。

    例:某运算︻结果是78H(01111000),显然1的一个数为偶数,所以P=0 。

    4、DPTR(DPH、DPL):数据指针,能用它来访问外部数据存储器中的一任一单元,如果不 用,也能作为通用寄存器来用,由我们自已决定如何使用 。16位,由两个8位寄存器DPH、DPL组成 。主要用于存放一个16位地址,作为访问外部存储器(外RAM№和ROM)的一地址指针 。

    5、P0P1P2P3:这个我们已经知道,是四个并行输入/输出口的一寄存器 。它里面的一内容对应着管脚的一输出 。

    6、SP:堆栈指针 。(专用于指出堆栈顶部数据的一地址 。)
     

       堆栈介绍:日常生活中,我们都注意到过这样的一现象,家里洗的一碗,一只一只摞起来,最晚放上    去的一放在最上    面,而最早放上    去的一则放在最下面,在取▓的一时候正好相反,先从最上    面取▓,这种现象我们用一句话来概括:“先进后出,后进先出” 。请大家想想,还有什么地方有这种现象?其实比比皆是,建筑工地上    堆放的一砖头、材料→,仓库里放的一货物,都是“先进后出,后进先出”,这实际是一种存取▓物品的一规则,我们称之为“堆栈” 。

       在单片机中,我们也能在RAM中构造这样一个区域,用来存放数据,这个区域存放数据的一规则就是“先进后出,后进先出”,我们称之为“堆栈” 。为什么需要这样来存放数据呢?存储器本身不 是能按地址来存放数据吗?对,知道了地址的一确就能知道里面的一内容,但如果我们需要存放的一是一批数据,每一个数据都需要知道地址那不 是麻烦吗?如果我们让数据一个接一个地放置,那么我们只要知道第一个数据所在地址单元就能了(看图2)如果第一个数据在27H,那么第二、三个就在28H、29H了 。所以利用堆栈这种办法来放数据能简化操作

       那么51中堆栈什么地方呢?单片机中能存放数据的一区域有限,我们不 能够专门分配一块地方做堆栈,所以就在内存(RAM)中开辟一块地方,用于堆栈,但是用内存的一哪一块呢?还是不 好定,因 为51是一种通用的一单片机,各人的一实际需求各不 相同,有人需要多一些堆栈,而有人则不 需要那么多,所以怎么分配都不 合适,怎样来解决这个问题?分不 好干脆就不 分了,把分的一权利给用户(编程者),根据自已的一需要去定吧,所以51单片机中堆栈的一位置是能变化的一 。而这种变化就体现在SP中值的一变化,看图2,SP中的一值等于27H不 就相当于是一个指针指向27H单元吗?当然在真正的一51机中,开始指针所指的一位置并非就是数据存放的一位置,而是数据存放的一前一个位置,比如一开始指针是指向27H单元的一,那么第一个数据的一位置是28H单元,而不 是27H单元,为什么会这样,我们在学堆栈命令时再说明 。其它的一SFR,我们在用到时再介绍 。

    作者点评:这一课可能比较难懂了,看大家的一评论很多都这样说,其实并不 需要把上    面的一这些东西都死记硬背在脑子里面,这是很难的一,我们只需要理解他的一工作原理,一次看不 懂就要多看几次,等到要写程序的一时候,我们再把这些表格拿出来查阅所以建议你把本页保存为书签.笔者在开始学习单片机的一时候也是这样做的一.

    发表评论】【告诉好友】【收藏此文】【关闭窗口

    文章评论