单片机内部结构分析

发布者:trendsetter9最新更新时间:2012-10-17 来源: dzsc关键字:单片机  内部结构  累加器 手机看文章 扫描二维码
随时随地手机看文章

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

看图(1)(本图太大,请大家找本书看吧,一般讲单片机的书,随便哪本都有)。从图中我们可以看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。

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

1.jpg2.jpg

表1

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

1.jpg

图2[page]

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

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

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

2.jpg

表2

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

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

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

(2)AC:半进位标志。

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

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

(4)RS1、RS0:工作寄存器组选择位。这个我们已知了。

(5)0V:溢出标志位。什么是溢出我们稍后再谈吧。

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

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

4、DPTR(DPH、DPL):数据指针,可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。

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

6、SP:堆栈指针。

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

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

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

关键字:单片机  内部结构  累加器 引用地址:单片机内部结构分析

上一篇:单片机的时序分析
下一篇:STC系列单片机开发注意事项

推荐阅读最新更新时间:2024-03-16 13:10

什么是单片机_51单片机学前预备知识
  一、单片机的概念:   二、单片机的用途:   工业自动化:数据采集,测控技术;   智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等;   消费类电子产品:洗衣机、电冰箱、空调机、手机等;   凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,80C51,arm等。   三、怎么学单片机:   实践第一;补充必要的理论知识,即缺什么补什么;做工程项目积累经验。(可在网络上搜索些题目,也可自己有什么想法大胆的去试验。)。   四、为什么选择51单片机作为单片机学习的入门:   学51单片机成本低,而且51单片机技术最成
[单片机]
第7课 数码管动态显示
在第6课里,我们讲到数码管的静态显示,利用静态显示法,通过控制位选和段选,可以让数任意几位数码管显示任意字符,但由于所有位数码管的相同的段选全部接在一起,所以只能同时显示相同的数字,例如8位同时显示8字,1、3、5位同时显示3字。但大家想一下,如果我们要让数码管同一时刻显示不同的数字,如图1所示的现象,用静态显示的方法就不能够实现,这里就只能用到动态显示的方法,今天这一节我们主要讲解数码管动态显示的原理的程序实现的方法。 图1 数码管同时显示123456 在讲解动态显示方法之前,我们先介绍在种数码管及单片机程序开发过程常用的方法-数组编码法。 1、数组编码 在跟数码管相关的程序中,可以对位进行编码,也可对段进
[单片机]
第7课 数码管动态显示
51单片机-按键入门
这一章我们讲解单片机最常用的硬件部分——按键! 1.原理图 按键分 独立按键 和 矩阵按键,本教程不讲解矩阵按键,4个独立按键已经满足大部分的程序测试。学会了独立按键,矩阵按键可参考宋老师的教程。 先看到我们开发板上的K4 我们单独拿这个按键来入门,看一下它的原理图 现在让单片机的P2.3输出低电平,则演化为下图所示 要是K4被按下导通,则 圈出部分都为0V电压,因为这些地方都被接了地。 2.原理 原理很简单,我们开发板上的按键用的是没有自锁功能的自弹起的按键,也就是像按家里电磁炉上的按键一样,按下之后两个断点就被短接起来,松手后这时按键自己弹起,两个断点就没有短接在一起了。 拿P2.7来说,当K4按
[单片机]
51<font color='red'>单片机</font>-按键入门
51单片机在表决系统中的应用
0 引言 随着我国社会主义民主的提高,表决器作为一种公正,迅速准确的表决工具,应用日益广泛。通过表决器,与会代表只需根据会议议程轻按表决器按钮,即可轻松地完成从签到到各类议案的电子表决工作。在不记名模式下,系统特有的保密功能使得代表按键能最大限度地反映其真实意愿,而不用担心被人窥视或记录追查。表决结果可自动统计产生,并根据会议要求以图文或报表方式来显示和打印。 1 设计方案 系统包括PC机:用于文件的编辑储存、打印、显示表决结果。大屏监视器显示表决结果及其它文件。表决采集网络:采集各代表的表决结果并做处理。经对系统功能要求的分析,认为单片机80C51最为适合多点分散,每单点功能相对简单的系统。从而组成主-从型“单片机网”
[单片机]
51<font color='red'>单片机</font>在表决系统中的应用
基于RS-485总线的PC与多单片机间的串行通信
0 前言 单片机因其优越的性价比和灵活的功能配置而被广泛的应用于测控领域。而PC则因为丰富的软、硬件资源,被广泛应用于网络监控系统中。这就是一台PC与多台单片机所组成的主从式网络测控系统。串行通信是计算机和外部设备进行数据交换的重要渠道,由于其成本低,性能稳定并遵循统一的标准,因而在工程中被广泛应用。本文以华东石油局的一台油田钻井的滚动轴承信号采集系统为例,讨论一种基于串行通信标准的测控系统的通信协议及其具体的软、硬件实现。在本系统中,上位机以PC和Windows操作系统为软、硬件资源;下位机采用ATMEL公司89C51,总线标准采用的是测控系统常用的RS-485。 1 通信系统的硬件设计 尽管RS-232有些缺点,但在
[单片机]
基于RS-485总线的PC与多<font color='red'>单片机</font>间的串行通信
C2000™ 实时 MCU 实现功能安全和网络安全的电动汽车动力总成
使用 C2000™ 实时 MCU 实现功能安全和网络安全的电动汽车动力总成 本技术文章系与 Prometo 功能安全和网络安全高级顾问 Jürgen Belz 共同编写。 从内燃机 (ICE) 过渡到电动汽车 (EV),需要至少新增五个电气/电子/可编程电子 (E/E/PE) 系统。图 1 描绘了电动汽车中的这些系统。 图 1:典型电动汽车动力总成方框图 为了实现零尾气排放并减少对化石燃料的持续依赖,电动汽车开始在充电站“补充能量”。这些电动汽车充电站可使用太阳能和风能等可再生能源转化成电能,从而增加电动汽车对环境的积极影响。车载充电器与高压电池形成一个功能单元,确保快速、高效充电,同时保护电池免于过度充电。国际标
[嵌入式]
C2000™ 实时 <font color='red'>MCU</font> 实现功能安全和网络安全的电动汽车动力总成
集成型混合信号微控制器配合便携医疗感测应用增长
  注重精密性能及灵活性、软件可重配置的传感器接口代表能够藉软件配合宽范围的应用。诸如通用串行总线(USB)及液晶显示器(LCD)驱动器等多种接口确保此方案能够快速地集成至宽范围的高性价比应用,而片外元器件数量极少。    挑选处理器   近年来,由于需要具备集成力及集成最新技术和功能,导致所有终端市场的电子产品在重新设计(design re-spin)前的平均寿命大幅缩短。ARM Coretex-M3等内核支持在平台与新迭代现有设计之间,透过直接的软件变更而非从头开始(ground up)的固定设计,进行简单的移植。ARM Cortex-M3这样的32位架构标准内核也能更好符合当前及下世代便携医疗设备设计日渐增多的运算及连接
[医疗电子]
集成型混合信号<font color='red'>微控制器</font>配合便携医疗感测应用增长
51单片机学习第二天
(1)数字电路中只有两种电平: 高电平和低电平 高电平:5V或者3.3,取决于单片机电源。 低电平:0V (2)RS232电平:计算机串口的电平 高电平:-12V 低电平:+12V 由上面的两个可知,当我们使用单片机跟电脑通信的时候,需要通过各种元器件将单片机的电平转换成计算机可识别的电平才能跟电脑进行通信。 二、进制 二进制 十六进制 三、二进制逻辑运算 四、8051的引脚封装 五、单片机工作的基本时序,一共四种 (1)振荡周期:也称时钟周期,是指为单片机提供时针脉冲信号的振荡源的周期。 (2)状态周期:每个状态周期为时针周期的2倍,是振荡周期经二分频后得到的。 (3)机器周期:一个机器周期包含6个状态周期
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved