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中设置如下图:
我们平常使用的STC单片机,有很多型号,具体存储器大小都要看型号:
【89/90系列的机器周期需要12个或6个时钟周期】
【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模式。
8051单片机彻底研究(基础篇)
需要PDF文件书的联系我
第1章单片机的来龙去脉.................................................................2
1-1单片机从头说起.....................................................................2
1-2单片机与个人电脑的比较............................................................2
1-3典型的单片机应用系统.................................................................4
1-4最简化的单片机系统...........................................................................5
1-5单片机开发的实际问题.................................................................7
1-6本书的单片机学习环境....................................................................8
第2章8051单片机简介..............................................................12
2-1微型控制器与微型处理器................................................................12
2-2时势造英雄:MCS-51系列单片机..................................................12
2-38051单片机功能方框图...............................................................14
2-48051系统复位分析...................................................................20
习题.............................................................................................22
第3章单片机的汇编语言....................................................................26
3-18051单片机的程序设计..............................................................26
3-2写汇编程序的预备知识................................................................26
3-3汇编语言的基本架构.................................................................27
3-4写汇编语言前:熟悉寄存器与指令..............................................28
3-5试写一个8051汇编程序..............................................................30
3-6配合示波器做汇编语言的除错......................................................31
3-7更进一步的8051汇编程序.........................................................33
3-88051的反汇编程序....................................................................34
习题............................................................................................34
第4章8051的存储器...........................................................................36
4-18051内部存储器的分配.................................................................36
4-2程序存储器空间..............................................................................37
4-3外部数据存储器空间.....................................................................37
4-4内部数据存储器空间.............................................................38
习题...........................................................................................39
第5章8051指令的寻址模式..............................................................42
5-18051执行指令的过程...............................................................42
5-28051的直接寻址模式............................................................45
5-38051的间接寻址模式...................................................................46
5-48051的寄存器寻址模式...............................................................47
5-58051的立即寻址模式.....................................................................49
5-68051的索引寻址模式....................................................................49
习题..............................................................................................51
第6章 8051指令说明..........................................................................54
6-18051指令格式.................................................................................54
6-28051指令概述.................................................................................54
6-38051指令集整理.......................................................................56
6-4影响标志位的指令.................................................................58
6-58051指令解析一:算术运算指令....................................................59
6-68051指令解析二:逻辑运算与移位指令..........................................62
6-78051指令解析三:数据传送指令.....................................................64
6-88051指令解析四:布尔变量操作指令................................................68
6-98051指令解析五:程序分支指令......................................................69
习题.....................................................................................75
第7章8051单片机的引脚说明.............................................................78
7-18051单片机的引脚...................................................................78
7-2认识AT89C2051........................................................................81
7-38051与AT89C2051的差异...........................................................84
7-4AT89C系列的下一步..............................................................84
习题.............................................................................................8.6
第8章8051基本程序练习..................................................................88
8-1工具的准备............................................................................88
8-28051汇编程序X8051与LINK4的操作................................................89
8-3基础范例一:LED的亮与灭.........................................................90
8-4基础范例二:蜂鸣器的使用.........................................................92
8-5基础范例三:指示灯...................................................................93
8-6基础范例四:七段显示器的使用..................................................95
8-7基础范例五:按键的使用............................................................99
习题.......................................................................................102
第9章8051控制板线路说明..............................................................104
9-1如何选用控制板......................................................................104
9-2AT2051控制板的特点..............................................................105
9-3线路分析.................................................................................105
9-4AT2051控制板的应用与学习方向..................................................108
9-5AT2051元件表及元件照片.........................................................110
9-6组装指南.............................................................................112
9-7组装的测试步骤...................................................................113
第10章8051定时/计数彻底研究......................................................124
10-1什么是定时/计数................................................................124
10-28051定时器和计数器安排......................................................124
10-3定时/计数器相关的寄存器.......................................................125
10-48051的Timer定时/计数器设置步骤...............................................127
10-5 Timer模式0彻底研究...........................................................128
10-6Timer模式1彻底研究..............................................................130
10-7 Timer模式2彻底研究.........................................................137
10-8 Timer模式3彻底研究.........................................................138
10-98051Timer模式3的再探讨.....................................................139
第11章8051中断彻底研究.........................................................142
11-1为何要有中断...............................................................142
11-28051的中断................................................................142
11-5中断的寄存器(IE和IP)的介绍..........................................146
11-68051的中断源彻底研究..........................................................148
11-78051的中断设置步骤............................................................150
11-8AT2051控制板在中断上的安排................................................151
11-9内部计数器0中断程序范例.......................................................151
11-10外部负边沿中断INTO程序范例.............................................157
11-11外部低电平中断程序范例.................................................160
11-12串行传输中断程序范例.....................................................162
习题.........................................................................................168
第12章8051串行通信彻底研究(一).............................................170
12-1为何要通信....................................................................170
12-2如何进行串行通信......................................................171
12-3RS232C的规格...............................................................173
12-48051的串行接口概述..........................................................175
12-5申行传输控制有关的寄存器:SCON.............................................177
12-68051串行传输的波特率设置.....................................................178
12-7串行传输模式0彻底研究..................................................179
12-8串行传输模式1彻底研究.......................................................184
12-9串行传输模式2彻底研究......................................................188
12-10串行传输模式3彻底研究...................................................191
第13章8051串行通信彻底研究(二).................................................196
13-18051的多处理器通信彻底研究......................................................196
13-2AT2051的串行硬件线路分析.........................................................199
13-3AT2051控制板如何与PC连接....................................................200
13-4多处理器通信的写法分析.........................................................201
13-58051串行接口发送硬件分析.....................................................202
13-6串行传输实用程序范例............................................................205
13-7串行传输的应用与影响..........................................................207
习题...........................................................................................208
进阶练习篇
第14章 AT2051进阶练习(一).......................................................210
14-1练习:蜂鸣器的控制................................................................210
14-2练习:中断服务程序所占用的时间..............................................213
14-3练习:七段显示器的初步使用....................................................215
14-4练习:ACC值的转换与显示.......................................................218
14-5练习:BCD值的转换与显示...................................................221
14-6练习:按键操作的确认.............................................................224
14-7练习:学习波形Duty Cycle的计算与显示......................................227
14-8练习:学习温度值的换算与显示...................................................227
14-9练习:温度值每秒读取两次的写法...............................................228
14-10练习:另一种温度测量的写法..................................................229
习题...........................................................................................230
第15章AT2051进阶练习(二)...............................................................234
15-1练习:启动RS485串行通信接口.................................................234
15-2练习:练习温度值转成ASCIⅡ字符串的写法.......................................235
15-3练习:串行传输的写法.........................................................236
15-4练习:串行传输的写法二..........................................................237
15-5练习:将温度的精确度提高到小数点后一位...................................238
15-6练习:串行除错程序的加入.......................................................239
习题.........................................................................................240
第16章AT2051进阶练习(三)...................................................242
16-1练习:写入一个字节的数据到E'PROM 24LC16内...........................242
16-2练习:E2PROM的读回写法分析...............................................243
16-3练习:ID值读取的写法....................................................244
16-4练习:如何判断E2PROM是否存在...........................................245
16-5练习:ID值的在线更改...........................................................246
16-6练习:配合ID调用的串行通信程序........................................246
16-7练习:串行通信程序的除错....................................................247
16-8练习:RS485通信程序的完整版............................................248
第17章汇编语言的写法分析与除错.....................................................254
17-1汇编语言的难点.........................................................................254
17-2写程序的重点..............................................................................254
17-3LED除错法..................................................................................254
17-4蜂鸣器除错法...........................................................................255
17-5DISPLAY除错法.........................................................................255
17-6串行通信除错法.........................................................................256
17-7仪器协助除错法.........................................................................257
17-8高级仪器除错法...................................................................257
习题.......................................................................................258
第18章8051例程归纳整理..................................................................260
18-1清除4个内部DATA MEMORY地址.............................................260
18-2清除4个外部DATA MEMORY地址...............................................260
18-3将外部数据存储器上4个字节值存入内部数据存储器...........................261
18-4将4个内部数据值转存到外部数据存储器中......................................261
18-5内部数据存储器内4字节相加(不含正负符号)...............................262
18-6内部数据存储器的值和外部数据存储器的值相加...............................262
18-7内部数据存储器的4字节相减.....................................................263
18-8将内部数据存储器内的值取补码.................................................263
18-9对外部数据存储器做16位的加法运算.........................................264
18-10对外部存储器做减法运算.........................................................264
18-11内部数据存储器做值的比较..........................................................265
18-12外部数据存储器做整段值的比较.............................................265
18-13内部数据存储器区与累加器做比较...............................................266
18-144字节不含正负符号的乘法运算...............................................266
18-154字节不含正负符号的除法运算...................................................267
18-16对外部数据存储器内的值做异或运算产生一个校验码..........................268
18-17确认外部数据存储器(4字节)的校验码是否正确............................269
18-18在内部数据存储器内产生4个随机数..............................................269
18-19检查外部数据存储器(16位)是否为0000H.....................................270
18-20检查外部数据存储器(16位)的值是否为1000................................271
18-21检查外部数据存储器(16位)的值是否比5000大............................271
18-22将外部数据存储器(16位)值转换成6个BCD码.............................272
18-23将ACC值(<99)转换成两个BCD码..........................................273
18-24将累加器的值转换成3个BCD码...................................................273
18-25检查一段外部数据存储器(2KB)的读写功能...................................274
18-26计算2KB程序空间的校验和(CHECKSUM).......................................274
18-27清除外部数据存储器共2048个地址...............................................275
18-28将1个字节值转换成ASCⅡ码,供数据显示用..................................275
18-29将ASCII码转换成二进.制...................................................276
第19章混合式示波器的认识与使用....................................................280
19-2基本测量示范....................................................................283
19-3特殊信号测量.........................................................................285
第20章数字电表的使用...................................................................288
20-1数字电表功能..............................................................................288
20-2数字电表操作要点...................................................................288
20-3数字电表使用时的特别注意事项...................................................290
20-4AT2051控制板操作示范............................................................291
20-5电表的校正.........................................................................291
习题............................................................................................293
第21章USB烧录器的安装与使用........................................................296
21-1旗威USB烧录器....................................................................296
21-2烧录器的安装...........................................................................296
21-3烧录程序的安装....................................................................297
21-4烧录功能说明............................................................................297
21-5 Files文件菜单......................................................................299
21-6IC芯片菜单........................................................................301
21-7Programmer烧录器菜单.............................................................303
21-8Diagnostic 诊断菜单....................................................................305
21-9USB烧录器特殊用法...............................................................306
21-10USB烧录器注意事项...........................................................307
习题.......................................................................................307
附录............................................................................................309
附录AASCII表..........................................................................309
附录B8051相关IC引脚图............................................................311
附录C8051指令集总整理..................................................................314
附录D8051指令整理(按功能划分)................................................324
附录E8051指令整理(按十六进制排列)..........................................329
附录F8051SFR表与RESET后的初始值.............................................336
附录GSFR特殊功能寄存器整理表....................................................337
附录H如何购买电子元件.............................................................340
附录l如何识别晶体管(三极管)的引脚..............................................342
附录J如何看Data Sheet................................................................345
附录K如何焊接...........................................................................347
附录L如何上网找元件..............................................................349
相关问答
8051单片机 的 存储器 分为?8051单机片的存储器分为:(1)64KB的程序存储器地址空间:0000H~FFFFH,其中0000H~0FFFH为片内4KB的ROM地址空间,1000H~FFFFH为外部ROM地址空间;(2)2...
8051单片机 的程序 存储器 是可以存储?8051单片机的程序存储器可以存储用户程序,扩展型8051单片机还可以在这个空间存储掉电保护的用户数据,也就是当成EEPROM使用。需要特别注意的是,如果单片机采...
8051单片机 内部 存储器 怎么输出?8051单片机内部存储器应该按照它的功率大小输出,应该按照它的内部数据量输出,应该按照他实际需要的输出8051单片机内部存储器应该按照它的功率大小输出,应该...
8051单片机 如何访问数据 存储器 ?8051单机片将EA引脚接地,则运行片外程序存储器;EA接VCC,则运行片内程序存储器。当然,即使EA接VCC,如果程序运行时指令地址超过了片内程序存储器地址范围,也...
8051单片机 怎么访问外部数据 存储器 ?8051单片机可以通过串行总线及并行总线访问外部数据存储器。常用的串行总线包括SPI和I2C,这两种总线的本质都是在时钟信号的协调下访问外部数据存储器,只不过...
说明 8051单片机 内部数据储存区空间分配情况。32个通用寄存器各对应哪些RAM单元?片内数据存储区一般指的是片内ram。内部数据存储器(片内ram)一共有256字节。这256字节被分成两半,低128字节的ram区称为用户数据ram,高128字节为sfr区,sfr区...
8051单片机 内部结构分为哪四大部分?8051单片机的内部结构分为四大部分:中央处理器(CPU)、存储器(包括程序存储器和数据存储器)、输入/输出(I/O)端口和定时/计数器。中央处理器是单片机的核心...
8051单片机存储器 结构的主要特点是什么?8051单片机存储器结构包括两类存储器:内部RAM和ROM。内部RAM包含了128字节的随机存储器,用于存储变量、数据和程序。ROM包含了4K或8K的只读存储器,用于存储可...
msc-51的程序 存储器 用于?程序存储器用来存放编制好的始终保留的固定程序和表格常数;数据存储器用以存放数据或中间运行结果。8051单片机内部设置有256字节的RAM,其中有128字节的内部R...
8051单片机 各有哪两种功能?8051单片机具有两种主要的功能,一是作为微控制器,可用于控制各种设备和系统,包括家用电器、工业自动化、汽车电子、医疗设备等;二是作为嵌入式系统的核心,...