学习51单片机必知的寄存器知识

发布者:东土大唐88最新更新时间:2023-09-05 来源: elecfans关键字:51单片机  定时器频率 手机看文章 扫描二维码
随时随地手机看文章

说起单片机存储器,大家可能知道RAM和ROM,但具体需要怎么用,还需要深入了解下,那今天通程创品就来大家详细了解下51单片机存储器的相关知识,希望对大家有帮助。


程序存储器(又称数据Flash),顾名思义,是用来存储用户的程序,使单片机能够按照编写的代码顺序执行,完成指定的任务。所以程序存储器是只读存储器(只读存储器),我们已经听过很多次了。代码存储在里面,一般有常数、表格、pi值、数码管形状、SCM ID号、内部参考信号源、关机唤醒定时器频率、IRC参数等数据。


注意:单片机每次都是烧录程序,烧录就是为了把代码放到程序存储器中,而我们用的电脑则是把硬盘的数据和程序放到RAM,再用CPU去读取RAM里面的数据和程序


一、存储器的存储单位与编址

1.存储单位

位(bit):计算机的最小数据单位

字节(Byte):1Byte = 8bits

字(Word):1Word = 2Bytes = 16bits

2.编址

51单片机的存储单元是一个字节,为了存取数据方便,每个存储单元都有编号,这个编号就是编址,编址采用二进制数。例如:0000 0010B可以代表第二个存储单元。


二、51单片机有哪些内部存储器

1.片内RAM

RAM(Random Access Memory)又叫随机存取存储器,正常情况下不仅可以写入数据到RAM,也可以从RAM读取数据。

单片机内部总共有256Bytes的RAM。RAM的每一个字节都有编码,从0000 0000开始直到1111 1111,不同区域的RAM有着不同的功能。可以把RAM想象成一栋办公楼,不同的楼层有不同的部门,不同的部门自然干不同的活。

注意:因为单片机一次只能处理8个bit的数据(字长为8),并且一个8位二进制数的范围是0到256,所以单片机一次能寻址的范围也就是0到256。

2.片内ROM

ROM(Read-OnlyMemory),又叫只读存储器,正常情况下只能从ROM读取数据,不能往写入数据。

单片机内部的ROM大小为4KB(4096Bytes),字节地址范围为000H~0FFFH。

在特殊条件下,可以把程序烧入到ROM中,所以ROM也叫程序存储器。

如果ROM的大小不够存入所有程序,也可以外接ROM。单片机最多可外接64KB的ROM。内部ROM和外部ROM是统一编址,要么就只用64KB的外部ROM,要么就用4KB的内部ROM+60KB的外部ROM(外部ROM的开头4KB闲置)。

51单片机是如何区分是片内ROM还是片外ROM呢?

片内ROM和片外ROM的区分:

在单片机既有片内ROM又有片外ROM时,会产生一部分重复的地址范围,

为了解决区分片内和片外ROM的问题,51单片机设置了一根控制线EA(低电平有效),所以

EA = 0 =>有效 =>访问片内存储器

EA = 1 =>无效 =>片内存储器被忽略

本质的原理:

就是当PC的值大于了某个值时将访问外部存储器,PC的值小于了某个值时将访问内部存储器。这个值由存储器容量的大小绝定,在8051单片机中,片内ROM = 4KB,所以当PC小于0FFFH时,访问片内ROM。


三、存储器数据读写说明

要对256字节存储器的每个存储单元进行读写,需要8根地址线和8根数据线,先送8位地址选中某个存储单元,再根据读控制或写控制,将选中的存储单元的8位数据从8根数据线送出,或通过8根数据线将8位数据存入选中的存储单元中。以图1存储器结构为例,当地址总线A7~A0将8位地址00011111(1FH)送入存储器时,会选中内部编址为1FH的存储单元,这时再从读控制线送入一个读控制信号,1FH存储单元中的数据00010111从8根数据总线D7~D0送出。


对于RAM和ROM,当我们写程序的时候,我们把程序误认为ROM,也就是说,我的某个逻辑形成了一系列的逻辑开关,但是当CPL进行操作的时候,在传输的过程中,交换逻辑需要不断的改变,所以RAM就诞生了。但是由于技术的限制,RAM不能下电来保存逻辑,即电路中的每个硅电子都不能被保存,并且这个过程限制了内存的大小。因此,RAM和ROM是通过CPU总线连接的。


通过51单片机的RAM地址,ROM地址,可以看到,ROM存储程序,通过CPU传递数据,到RAM,而RAM是各个寄存器的集合,按ROM程序形成逻辑,响应CPU,同时传递给ROM信号(这里ROM的逻辑已不变,相当于与或非的各种开关)。


关键字:51单片机  定时器频率 引用地址:学习51单片机必知的寄存器知识

上一篇:用51单片机体验高阻态的详细步骤讲解
下一篇:信息电话机关键模块的应用

推荐阅读最新更新时间:2024-11-03 21:36

51单片机教程:51单片机驱动四个8*8点阵
一、点阵原理 市面上有很多种类的点阵,但是最常用的还是这种8乘8点阵 内部结构如下图 可以发现点阵就是由led构成,并且有一排是阳极,另一排是阴极,有一排是控制行,另一排是控制列。 打开proteus搜索MATRIX,看到各种型号的点阵,选择8乘8即可 任意选择一个颜色的点阵,我们发现引脚没有做任何标记,默认上排:阴极、控制列;下排:阳极、控制行 (一定要自己测一下,proteus仿真布置的点阵每次方向都可能发生改变) 什么意思呢,也就是跟下图对应关系,只不过引脚位置发生改变 二、4个 “ 2乘2 ” 点阵拼成一个 “ 4乘4” 点阵 我们先从简单开始理解,首先画出4个 “2乘2” 点阵 然后把上下方向的阴
[单片机]
<font color='red'>51单片机</font>教程:<font color='red'>51单片机</font>驱动四个8*8点阵
51单片机(STC89C52RC) IO扩展实验
  最近碰到了需要扩展IO口的情况了,正在想办法从lcd1602身上挤出几个IO口,另一种可行的方法是添加专用IC,google之发现可以有更好的方法,网上流传经典IO接按键法,可以用5个IO口实现5X5矩阵键盘.参考 这里 :    我参照着实验了一番,并用protues仿真看看;用上面的例子,如图: iframe id="iframe_0.9038296684157103" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://img
[单片机]
<font color='red'>51单片机</font>(STC89C52RC) IO扩展实验
PCF8591(AD-DA)芯片-51单片机程序
注: PCF8591 是8位AD-DA芯片 转换数据0---5 对应 0--255 通信协议IIC 模拟量输出值和电压的关系: 输出电压=(参考电压-基点电位)/255 //以下是源码如果在网页上显示格式错乱可以从这里下载: http://www.51hei.com/f/8591c.rar //12MHZ 晶振 #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int #include IIC.h //i2c库函数 code uchar seg ={0x2
[单片机]
PCF8591(AD-DA)芯片-<font color='red'>51单片机</font>程序
第三节 趣讲51单片机之P1P2P3口深入讲解
一、P1口 P1口是4组Parallel Ports中最简单的。其结构图如下: 与P0口的区别是:由于没有端口复用功能,所以,P0口的V1变成了一个上拉电阻。 由于内部就有上拉电阻,所以,作为GPIO时,P1口不需要接上拉电阻,当然,您接了也没关系啦,就相当于两个上拉电阻并联嘛。 读端口、读引脚、写功能在P0中已经讲得非常详细了,此处略个一万字。 二、P2口 P2口的原理图如下图: 咋一看,和P0口有点像,都有控制信号,选择作为 地址/数据 总线还是作为GPIO;又和P0口有些不同,P2口没有推挽式输出的结构,即没有V1 MOS管。 我们说过,P0在作为 地址/数据 总线时
[单片机]
第三节 趣讲<font color='red'>51单片机</font>之P1P2P3口深入讲解
51单片机综合学习系统之 步进电机控制篇
大家好,通过以前的学习,我们已经对51单片机综合学习系统的使用方法及学习方式有所了解与熟悉,学会了红外线遥控的基本知识,体会到了综合学习系统的易用性与易学性,这一期我们将一起学习步进电机控制的基本原理与使用方法。 先看一下我们将要使用的51单片机综合学习系统能完成哪些实验与产品开发工作:分别有流水灯,数码管显示,液晶显示,按键开关,蜂鸣器奏乐,继电器控制,IIC总线,SPI总线,PS/2实验,AD模数转换,光耦实验,串口通信,红外线遥控,无线遥控,温度传感,步进电机控制等等。 上图是我们将要使用的51单片机综合学习系统硬件平台,本期实验我们用到了综合系统主机、步进电机,综合系统其它功能模块原理与使用详见
[单片机]
<font color='red'>51单片机</font>综合学习系统之 步进电机控制篇
51单片机霍尔测速与PWM调直流电机转速快慢
1.本设计采用STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机作为主控制器 · 2.采用霍尔传感器非接触式测电机转速 · 3.LCD1602液晶显示当前的转速,转速单位为转/分(RPM)。和显示当前的pwm占空比0~100%。 · 4.电机的速度可以通过按键调整,也可以开始暂停,正转和反转。 注意:磁铁和霍尔元件最近距离在2mm左右,太近可能会在电机转动时碰到霍尔元件,太远霍尔元件可能会检测不到磁铁。 使用说明: 液晶屏第一行显示电机转速,第二行显示占空比,占空比数值越大,电机转速越快。 系统一共有6个按键,单片机附近的独立按键是系统的复位按键,按下单片机会复位。 下面一排是
[单片机]
<font color='red'>51单片机</font>霍尔测速与PWM调直流电机转速快慢
8051单片机(STC89C52)两个倒计时器异步计数
#include STC89C5xRC.H void delay()//用定时器0实现5ms精准定时 { TMOD = 0x01; TH0 = 0xEA; TL0 = 0x84;//65536 - 5000 = 60036 TF0 = 0;//置溢出标志位为0 TR0 = 1;//开启定时器0 while(TF0 == 0); TR0 = 0;//暂停定时器0 } void disp_digit(int d, int r) { unsigned char code DIG_CODE = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7
[单片机]
80<font color='red'>51单片机</font>(STC89C52)两个倒计时器异步计数
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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