51单片机的内部结构和程序执行过程解析

发布者:HappyHearted最新更新时间:2023-09-05 来源: elecfans关键字:51单片机  内部结构 手机看文章 扫描二维码
随时随地手机看文章

注:

1.ROM:只读存储器,单片机的只读存储区大多用于存储程序固又称程序存储器


51单片机是EPROM,所谓的EPROM是可擦除的只读存储器。可以把原来的程序擦除了,再写一个新的进去。


断电后是可以保存的,数据存储器(RAM)是不能保存的。

51单片机的内部结构和程序执行过程解析

RAM只能在程序执行的时候不断地重新存储定义的变量。如int x,int y

可以通过code这个指令来将定义的变量放在ROM,而不是RAM中,节省RAM资源

2.RAM:随机存取存储器,用于存储定义的变量等,速度快

51单片机的RAM存储容量远小于ROM,但是速度非常之快

内部详细图示

51单片机的内部结构和程序执行过程解析

内部的结构看似十分复杂,但是大致上可以分为两个部分:运算器(红色框)和控制器(蓝色框)。

运算器:主要作用是进行加减乘除和逻辑运算

内部的结构可以上网查询

控制器:控制单片机的各种操作

程序执行过程

1.程序地址

程序开始的时候,要先知道第一条程序的地址,这个通过PC(程序计数器)知道。

比如刚开始的时候地址是0000H,这个是16进制的。

当这个地址送给地址寄存器后,即取出第一条指令后,PC自动加1,准备取出下一条指令。

51单片机的内部结构和程序执行过程解析

2.程度读取

地址寄存器知道指令的地址后,就从ROM(只读存储器)里面取出地址所指向的一条指令。

并把取出来的指令放到指令寄存器中,经过指令编码器编译

51单片机的内部结构和程序执行过程解析

3.数据处理

指令有可能要用到加减乘除和赋值语句的判断。经过指令编码器,就知道要取出那些定义的数据或者哪些赋值语句。

通过总线来调取我们要用到的数据。并通过运算器来运算。

51单片机的内部结构和程序执行过程解析

比如说我们定义了int x和int y,这两个数据放在RAM中。

当我们取出了一个a = x + y 的指令后,需要x和y的值来计算。

那么通过上一张图的取数据的过程后取出了x和y的数据

通过运算器来运算。

51单片机的内部结构和程序执行过程解析

如图,取出x和y进入黑色框(运算器)中来的到最终结果

最终的结果还会通过a这个变量存储在数据存储器(RAM)中

4.操作器件

当然,除了计算这种步骤外,还有一种情况就是来直接控制IO口的高低电平或者其他的器件了。

51单片机的内部结构和程序执行过程解析

关键字:51单片机  内部结构 引用地址:51单片机的内部结构和程序执行过程解析

上一篇:51单片机制作简易电风扇定时控制器
下一篇:51单片机对LCD1602液晶显示的驱动控制设计

推荐阅读最新更新时间:2024-11-17 07:44

基于51单片机的电源延时检测器的设计
//此程序应一个网友要求而作, 批初步在硬件上测试通过 //晶振11.0592M,50ms常数是4c00,2ms常数是f8cc //功能为检测断电延时时间,是否合格(是否在2ms到50ms之间。) //2007/12/24 #include reg51.h sbit led0=P1^0; //显示错误 sbit led1=P1^1; //显示错误 //led0与led1同时亮,则测试通过,只亮一个,则错误,两个全不亮,则异常 sbit starttest=P1^2; //检测开始信号,被测电源关闭时,同时产生的信号
[单片机]
51单片机编写60秒倒计时程序
#include reg52.h #define guan P0 #define wei P2 #define uchar unsigned char #define uint unsigned int uint m=0; uchar a1,a0,k=0,j,k,s=60; sbit beep=P2^3; unsigned char code weiyu ={0x1f,0x2f,0x4f,0x8f}; //代码与P2对应做位处理,显示相应的位 unsigned char code table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x
[单片机]
MCS-51单片机的指令时序
时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。 节拍与状态: 我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P1),后半周期对应的节拍定义为2(P2)。 机器周期: MCS-51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1-S6,而一个状态包含两个节拍,那么一个机器周期就有12个节拍,我们可以记着S1P1、S1P2……S6P1、S6P2,一个机器周期共包
[单片机]
MCS-<font color='red'>51单片机</font>的指令时序
51单片机点阵解析
感谢大熙熙 对51单片机点阵代码的详细分析 http://www.cnblogs.com/one-meter/p/4188277.html 网址阐述了他对代码的解析 不过部分代码解析不够透彻 我融入了个人对代码的理解 并且做了详细的解析 代码参考了普中给的代码 网上代码很多可以自己下载测试 代码如下 #include reg52.h #include intrins.h //重定义 函数变量 #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //spi 所使用的 3个管脚
[单片机]
51单片机入门 - 定时器中断应用实例
定时器中断应用实例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 设计要求: 每秒点亮P1.0口的发光二极管一次,然后熄灭,使发光二极管形成闪烁效果 实现思路: 通过定时/计数器,每秒触发一次P1.0取反 涉及到的功能模块:定时器,中断,LED操作 定时器装填: 需要计数每秒的话,计数921600时溢出即可,在四种方式定时方式中,最大的计数范围是方式2:6553
[单片机]
<font color='red'>51单片机</font>入门 - 定时器中断应用实例
实现位变量反转功能
//////////////////////////////////////////////////////// 在51单片机中有个特殊的变量 sbit (位变量) 用它做一个变量反转是很简单的, nuber=!nuber就实现了。 为什么需要这个功能呢? 下面看一个程序 假设 LED是一个灯,LED=1为亮,LED=0为灭。 那么我想要他200毫秒闪烁, while(1) { LED=!LED; delay_ms(200); } 这是51单片机的写法。 在c语言中这样是不可取的,因为我们不能去映射某一位,(其实是我不会把寄存器映射某一位出来操作) 所以通常我用的都是函数LED_ON(),
[单片机]
51单片机驱动LCD1602程序详解
  51单片机LCD1602程序详解   LCD1602   工业字符型液晶。1602是指LCD显示的内容为16X2,即可以显示两行,每行16个字符。   特殊接口说明   RS:寄存器选择输入端   RS=1:指向数据寄存器   RS=0:指向指令寄存器   RW:读写控制输入端   RW=0:写操作 RW=1:读操作   E:使能信号输入端   读操作时,高电平有效;   写操作时,下降沿有效;   程序编写:   #include《reg51.h》   #include《intrins.h》 //其中有nop函数的定义   /*对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时
[单片机]
<font color='red'>51单片机</font>驱动LCD1602<font color='red'>程序</font>详解
基于51单片机的数控直流稳压电源的设计与实现
1 引言 直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多 功能直流稳压电源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。普 通直流稳压电源品种很多.但均存在以下问题:输出电压是通过粗调(波段开关)及细调(电 位器)来调节。这样,当输出电压需要精确输出,或需要在一个小范围内改变时(如 1.02~1.03V),困难就较大。另外,随着使用时间的增加,波段开关及电位器难免接触不良, 对输出会有影响。常常通过硬件对过载进行限流或截流型保护,电路构成复杂,稳压精度也 不高。本文设计了一种以单片机为核心的智能化高精度简易直流电源,克服了传统直流电压 源的缺点,具有很高的应用价值。 2 系统硬件设
[单片机]
基于<font color='red'>51单片机</font>的数控直流稳压电源的设计与实现
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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