单片机中存储器扩展位地址线怎么算_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中设置如下图:

77843894bda42703daf9ada2750c0801.png

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

1271de9b86f3aeb1c851ca7a9f011537.png

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

c0f552c52b91ec8637b94942e150dbb4.png

【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模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Java]对double变量进行四舍五入,并保留小数点后位数

[Java]对double变量进行四舍五入,并保留小数点后位数 - 雾霾王者 - 博客园 [Java]对double变量进行四舍五入,并保留小数点后位数 1.功能 将double类型变量进行四舍五入,并保留小数点后位数 2.代码 import java.math.BigDecimal; import ja…

尊贵豪礼:微软2017最有价值专家MVP奖套件开箱图集

IT之家编者按:台湾省某科技网站站长获得了微软2017年度最有价值专家(Most Valuable Professional,MVP)奖,得奖的领域则是 Windows and Devices for IT。这位站长于是就展示了这份MVP的礼包开箱,从照片上看&…

echart vue 图表大小_vue之将echart封装为组件

最近的新项目里,有大量数据图表类的需求,为了增强代码的复用性,减少冗余,我开始思考如何将echart封装为组件调用。本文将会以雷达图为案例,一步步讲解在vue项目中如何使用echart,如何将其封装为能重复调用的…

个性化配置你的SQL Server on Linux

问题引入 这天老鸟满面春风找到菜鸟:“鸟儿啊,看你最近研究SQL Server On Linux如鱼得水,干得不错啊。不过呢,这是一个张扬个性的年代,要创新,要与众不同,那你怎么在Linux平台对SQL Server做个性…

idea查看读取的那个nacos配置和yaml配置 naocos 日志

logging.level.com.alibaba.cloud.nacos.client.NacosPropertySourceBuilderdebug

二叉树的前中后序查找+思路分析

思路分析 代码实现 package com.atguigu.tree;/*** 创建人 wdl* 创建时间 2021/3/24* 描述*/ public class BinaryTreeDemo {public static void main(String[] args) {//先需要创建一颗二叉树BinaryTree binaryTree new BinaryTree();//创建需要的节点HeroNode root new He…

spark sql uv_使用Spark Streaming SQL进行PV/UV统计

作者:关文选,花名云魄,阿里云E-MapReduce 高级开发工程师,专注于流式计算,Spark Contributor1.背景介绍PV/UV统计是流式分析一个常见的场景。通过PV可以对访问的网站做流量或热点分析,例如广告主可以通过PV…

二叉树删除节点+思路分析

思路分析 代码实现 ![在这里插入代码片](https://img-blog.csdnimg.cn/20210325193201194.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzgzNjYw,size_16,color_FFFFFF,t_70)

ddm模型公式_简单判断目前行情——从股利贴现模型切入

本文目录:1.介绍股利贴现模型;2.以贵州茅台为例根据现有情况估计模型内部各参数;3.得出结论;一、股利贴现模型(DDM)我们知道给一项资产定价最朴素的想法是将它未来产生的所有现金流以一定的贴现率贴现至当前…

分布式事务与一致性算法Paxos amp; raft amp; zab

1.CAP原理 要想数据高可用,就得写多份数据写多分数据就会导致数据一致性问题数据一致性问题会引起性能问题 2.一致性模型 弱一致性最终一致性(一段时间达到一致性)强一致 1、2 异步冗余;3是同步冗余 3. 扩展服务的方案 数据分区&…

打开数据库_数据库客户端navicat遇到问题怎么办?

前面的文章介绍了:mysql数据库如何安装,客户端navicat如何安装。下面是客户端navicat使用过程中常见问题的解决办法。【问】使用navicat连接数据库报错信息:12511251Client does not support authentication protocol requested by server,co…

遍历线索化二叉树+图解

图解 代码实现 package com.atguigu.tree.threadedbinarytree;/*** 创建人 wdl* 创建时间 2021/3/25* 描述*/ public class ThreadedBinaryTreeDemo {public static void main(String[] args) {//测试一把中序线索化二叉树的功能HeroNode root new HeroNode(1, "tom&quo…

JS实现星星评分功能实例代码(两种方法)

转载自 JS实现星星评分功能实例代码(两种方法) 一、方法1 1、用到图片 2、结构和样式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style>ul {padding-left: 0;…

SQL on Linux Run on Docker

摘要 SQL Server 2016以及SQL on Linux版本已经支持跑在Docker容器中&#xff0c;也展示微软拥抱开源的决心和勇气。这篇博文就是以SQL on Linux为例&#xff0c;看看如何将SQL Server实例部署在Docker容器中。 背景 大概在两个月之前&#xff0c;在SQL On Linux刚发布预览版本…

三条中线分的六个三角形_八年级数学上册:三角形已知两条边如何求第三边

三角形一、定义&#xff1a;由不在同一条直线上的三条线段首尾顺次相接所组成的平面图形叫做三角形。1、三角形的内角&#xff1a;三角形的没两条边所组成的角叫做三角形的内角2、三角形的外角&#xff1a;三角形的任意一边与另一边的反向延长线所组成的角叫做三角形的外角。二…

Xamarin的坑 - 绑定(二) - 高德iOS SDK(.Framework)绑定的一些事

编者语&#xff1a;入门总是用一个hello world&#xff0c;总会让人觉得写code会是很容易的事。开篇绑定了一下微信SDK,不会有太多的难点&#xff0c;可是接下来的这个例子如果欠缺一些耐心&#xff0c;估计你整个人就崩溃了(我从来不会放弃任何的事)。ps这里得谢谢CSDN回帖的人…

android 监听安装来源_Flutter插件开发之APK自动安装

点击上方的终端研发部&#xff0c;右上角选择“设为星标”每日早9点半&#xff0c;技术文章准时送上公众号后台回复“学习”&#xff0c;获取作者独家秘制精品资料往期文章记五月的一个Android面试经今日头条屏幕适配方案落地研究图解算法&#xff1a;说一道字节跳动的算法题除…

JavaScript学习总结(一)——JavaScript基础

转载自 JavaScript学习总结(一)——JavaScript基础 一、JavaScript语言特点 1.1、JavaScript是基于对象和事件驱动的(动态的) 它可以直接对用户或客户输入做出响应&#xff0c;无须经过Web服务程序。它对用户的响应&#xff0c;是采用以事件驱动的方式进行的。所谓事件驱动…

idea下使用springinitializr创建项目时 初始化失败的解决

idea自带的地址无使用使用阿里的就可以了 idea下使用springinitializr创建项目时 初始化失败的解决 周山 关注 2020.08.05 13:32:26字数 10阅读 1,085 image.png 修改初始化创建时Custom处 https://start.aliyun.com/ image.png

如何使Mac Docker支持SQL on Linux容器Volume特性

问题引入 这天老鸟火急火燎的找到菜鸟&#xff1a;“鸟儿啊&#xff0c;按照你之前的文章SQL on Linux Run on Docker&#xff0c;当我销毁SQL on Linux Docker容器以后&#xff0c;我容器中的所有数据库数据丢失啦&#xff0c;怎么办&#xff0c;怎么办啊&#xff1f;”。菜鸟…