51单片机存储器小结

发布者:转眼人老最新更新时间:2018-10-10 来源: eefocus关键字:51单片机  存储器 手机看文章 扫描二维码
随时随地手机看文章

存储器分为程序存储器(ROM)和数据存储器(RAM),两种又都可以分为片内和片外,片外即需要自己在单片机外部扩展。


8051单片机的片内程序存储器有4K,片内数据存储器有256个字节,其中又分为高128字节位特殊功能寄存器区,真正用户能用的RAM只有低128字节。


8052单片机有8K片内程序存储器,而数据存储器除了低128字节外还有扩展的高128字节,地址上跟特殊功能寄存器一样,但物理上是独立的,寻址方式不一样,扩展的高128字节只能间接寻址。


Keil中变量的存储类型:

存储类型

说明

code

程序空间(无需改变的变量)

data

直接访问的内部数据存储器(速度最快)

idata

间接访问的内部数据存储器(可以访问全部256字节RAM)

bdata

可位寻址的内部数据存储器

xdata

外部数据寄存器(最大64K)

pdata

分页的外部数据寄存器(最大256字节,少用)


【如无使用关键字,系统则按默认处理(根据存储模式)】

Keil中的存储模式:

存储模式

说明

Small

变量默认为data型,最大128字节

Compare

变量默认为pdata型,最大256字节

Large

变量默认为xdata型,最大64K

Keil中设置如下图:51单片机存储器小结


我们平常使用的STC单片机,有很多型号,具体存储器大小都要看型号:51单片机存储器小结


【89/90系列的机器周期需要12个或6个时钟周期】

51单片机存储器小结

【12/15系列的机器周期只需要1个时钟周期】


51单片机上的FFT算法


最近用增强型51单片机做了一个简易的点阵音乐频谱显示器,最主要是自己刚学完信号处理课程,想自己写一个FFT算法。现将已经能够在51单片机上运行的FFT算法供需要的伙伴们参考。


在51单片机上运行FFT算法,需要注意一下几点:


由于51单片机的内存RAM很小,只有128字节,52有256字节,而16点的浮点数输入,就需要2*4*16=128字节的内存开销,所以只有256字节的做多只能做16点的FFT运算。而且必须要用idata定义才能将其定义在高128字节。所以要做16点以上的FFT运算,必须选用有内部扩展RAM的51系列单片机,然后用xdata定义,并且要将存储模式设为LARGE模式。


关键字:51单片机  存储器 引用地址:51单片机存储器小结

上一篇:51单片机的仿真栈(模拟栈/可重入栈)
下一篇:关于程序效率的问题,你有思考过吗?

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

51单片机定时器定时模式
写点专业的知识吧,也是初学,大家共同学习。好,废话少说,进入主题 初学51单片机的人都接触到定时器这个东西,关于定时器也有很多资料,包括内部结构,如何执行。但是说到模式,我想刚学的时候听他们讲的那堆乱七八糟的模式都很费解,什么模式0,模式1,十六位,八位。我到现在也没有明白。但是我在编程时,对这东西有一个初步的理解。 首先是定时器为啥要先装初值,这东西打个比方,古代定时用的是沙漏,沙漏是先在桶中装上沙子,在钻一个眼,沙子都溜走时,为一个周期。如果要定时,装的就是最后的那个时间,加入我定10毫秒,则是10、9、8、7、6 ,直到0,启动中断。而还有一种方法就在木桶中滴水,木桶的容积是一定的,水滴满以后就是一个周期。加入那个木桶可以装
[单片机]
51单片机12864液晶字符显示
51单片机的12864液晶字符显示,采用液晶的并行接法 #include reg52.h #include intrins.h #include stdlib.h #define uchar unsigned char #define uint unsigned int #define LCD_data P0 //定义数据口 sbit LCD_RS=P3^5; //数据命令选择端,高电平为写数据,低电平写命令 sbit LCD_RW=P3^6;//读写控制端,高电平读信息,低电平写信息 sbit LCD_EN=P3^7; // 使能端 sbit LCD_PSB=P3^4; //拉高 ,选择并行 //单片机特殊功能位
[单片机]
8051 特有的内存型态
code 以 MOVC @A+DPTR 读取的程序内存 data 可以直接存取的内部数据存储器 idata 以 Mov @Rn 存取的内部数据存储器 bdata 可以位寻址(Bit Addressable)的内部存储器 xdata 以 MOVX @DPTR 存取的外部数据存储器 pdata 以 MOVX @Rn 存取的外部数据存储器 特殊资料型态 bit 一般位(bit)变量 sbit 绝对寻址的位(bit)变量 语法 sbit my_flag = location; (location 范围从 0x00 ~0x7F) 范例 sbit EA = 0xAF; 或是配合 bdata宣告的位(bit)
[单片机]
学习51单片机必知的寄存器知识
说起单片机存储器,大家可能知道RAM和ROM,但具体需要怎么用,还需要深入了解下,那今天通程创品就来大家详细了解下51单片机存储器的相关知识,希望对大家有帮助。 程序存储器(又称数据Flash),顾名思义,是用来存储用户的程序,使单片机能够按照编写的代码顺序执行,完成指定的任务。所以程序存储器是只读存储器(只读存储器),我们已经听过很多次了。代码存储在里面,一般有常数、表格、pi值、数码管形状、SCM ID号、内部参考信号源、关机唤醒定时器频率、IRC参数等数据。 注意:单片机每次都是烧录程序,烧录就是为了把代码放到程序存储器中,而我们用的电脑则是把硬盘的数据和程序放到RAM,再用CPU去读取RAM里面的数据和程序 一
[单片机]
51单片机写个电动小风扇方案
接下来我将为你介绍如何使用51单片机来实现一个简单的电动小风扇。 1、硬件准备 首先,我们需要准备好以下硬件: 51单片机主板 直流电机 驱动模块 电池盒或电源模块 一些导线和杜邦线 2、电路连接 接下来,我们需要将这些硬件进行连接。具体连接方式如下: 将直流电机连接到驱动模块上,驱动模块需要根据电机的电压和电流进行选择。 将驱动模块的输入端连接到单片机主板上的某个IO口,用于控制电机的开关。 将电池盒或电源模块连接到单片机主板上,用于提供电源。 连接完成后,检查一遍电路是否连接正确,然后进行下一步。 3、编写代码 现在,我们需要编写控制代码来控制电机的开关。以下是一个简单的示例代码: #include
[单片机]
用<font color='red'>51单片机</font>写个电动小风扇方案
基于51单片机的温度测量系统
引言 单片机在电子产品中的应用已经越来越广泛,并且在很多电子产品中也将其用到温度检测和温度控制。为此在本文中作者设计了基于atmel公司的AT89C2051的温度测量系统。这是一种低成本的利用单片机多余I/O口实现的温度检测电路, 该电路非常简单, 易于实现, 并且适用于几乎所有类型的单片机。 一.系统硬件设计 系统的硬件结构如图1所示。 570)?'570px':'auto'; }" src="/uploadfile/mcu/uploadfile/201201/20120103114135868.gif"> 1.1 数据采集 数据采集电路如图2所示, 由温度传感器DS18B20采集被控对象的实时温
[单片机]
51单片机与汇编之定时器中断闪烁LED
话不多说,先上程序 ORG 0000h AJMP START ORG 000BH AJMP TIME0 START: MOV 66H,#0 MOV TMOD,#00000001B MOV TH0,#0BBH MOV TL0,#0CCH SETB EA SETB ET0 SETB TR0 AJMP $ TIME0: PUSH ACC PUSH PSW MOV TH0,#0BBH MOV TL0,#0CCH INC 66H MOV A,66H CJNE A,#30,TIME00 CPL P1.0 MOV 66H,#0 TIME00: POP PSW POP ACC RETI END 这段程序的达成的目标是:用定时器产生一个中断,中断内
[单片机]
51单片机学习笔记(三)_定时器和计数器
注:定时器与计数器原理与使用方法相似、此处计数器知识为基础普及、后面详讲 2个定时器(寄存器)、定时器0、定时器1、(计数器0、计数器1) TMOD:定时器/计数器模式控制寄存器 详见百度百科TMOD 每经过一个机器周期、寄存器+1 TF:定时器溢出标志。溢出时自动置1。中断时硬件清零否则必须软件清零。 TR:定时器运行控制位。置1开始计时、清零停止计时。 C/T:该位为0时用作计时器、该位为1时用作计数器。 溢出时时间-开始计时时间=预设定时时间 一个机器周期共有12个振荡脉冲周期 若设定时为0.02s,则: 12*(65535-X)/11059200=0.02s 定时器作 加1 次数:X=471
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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