1、LOGO顺德职业技术学院3.3 芯片存储空间单片机技术基础单片机技术基础LOGO顺德职业技术学院1 本单元的目标本单元的目标芯片中的内存结构芯片中的内存结构(1)内存结构中各部分的作用内存结构中各部分的作用(2)内存中的编址和访问方式内存中的编址和访问方式(3)LOGO顺德职业技术学院2 芯片的主要组成部分芯片的主要组成部分MCU存储器:存储器:程序存储器;程序存储器;数据存储器;数据存储器;寄存器等等。寄存器等等。外围模块:外围模块:电源,振荡器电源,振荡器,复位,中断,复位,中断,时钟,看门,时钟,看门狗,等等。狗,等等。CPU:控制单元;控制单元;计算单元;计算单元;寄存器。寄存器。管脚
2、:管脚:MCU和外界交和外界交互的窗口。互的窗口。LOGO顺德职业技术学院3 芯片的模块结构简图芯片的模块结构简图CPU芯片总体结构简图寄存器寄存器I/O端口端口数据存储器数据存储器程序存储器程序存储器存储器存储器监控模块监控模块看门狗看门狗供电和稳压供电和稳压时钟模块时钟模块中断模块中断模块外围模块外围模块总线总线总线总线LOGO顺德职业技术学院4 存储器的作用存储器的作用电脑硬盘有什么作用电脑硬盘有什么作用?LOGO顺德职业技术学院4 存储器的作用存储器的作用v人脑的存储单元:人脑的存储单元:存储人的记忆;存储人的记忆;“记在心里记在心里”实际上是实际上是“存储在脑存储在脑中中”。v芯片的
3、存储器:芯片的存储器:存储芯片的程序(系存储芯片的程序(系统程序、用户程序)和数据;统程序、用户程序)和数据;“读写读写芯片芯片”实际上是实际上是“读写芯片的存储读写芯片的存储器器”。LOGO顺德职业技术学院5 存储器的管理存储器的管理存储器是一大片存储空间,对于这么大存储器是一大片存储空间,对于这么大的空间,芯片是如何管理它们呢的空间,芯片是如何管理它们呢?LOGO顺德职业技术学院5 存储器的管理(续)存储器的管理(续)v书本的章节管理书本的章节管理组成:节,章,书;组成:节,章,书;管理:书,章,节,如黄金时代管理:书,章,节,如黄金时代第四章第四章第二节第二节v建筑的楼层管理建筑的楼层管
4、理组成:房间,层,栋;组成:房间,层,栋;管理:栋,层,房间,如管理:栋,层,房间,如56303,56305LOGO顺德职业技术学院5 存储器的管理(续)存储器的管理(续)v芯片存储器管理芯片存储器管理组成:位,字节,存储空间组成:位,字节,存储空间 存储器是一个存储空间,是空间就有大小,存储器是一个存储空间,是空间就有大小,位位是它的最小单位,是它的最小单位,而每而每8位又组成了一个位又组成了一个字节字节,所有的字节就构成了整个,所有的字节就构成了整个存储器空间存储器空间。管理:存储空间,字节,位管理:存储空间,字节,位存储器以字节为单位进行管理,每一个字节都有一个地址存储器以字节为单位进行
5、管理,每一个字节都有一个地址(有有时地址又会以标号的形式出现,就像有些人还有一个别号一样时地址又会以标号的形式出现,就像有些人还有一个别号一样),访问一个特定的地址就可以访问特定的字节,从而访问特定的内容。访问一个特定的地址就可以访问特定的字节,从而访问特定的内容。如如MOV#2T,$0080 b7b6b5b4b3b2b1b0b7b6b5b4b3b2b1b0$0000$FFFF看程序“内存_demo_1.asm”的Memory Window 1LOGO顺德职业技术学院5 存储器的管理(续):标记管理存储器的管理(续):标记管理v人的标记管理:人的标记管理:b0b1b2b3b4b5b6b7b0b
6、1b2b3b4b5b6b7b0b1b2b3b4b5b6b7$0000$FFFF$0001FirstSecondLast人名人名编号编号周星驰周星驰007吴孟达吴孟达110v存储器的标记管理:存储器的标记管理:看程序“内存_demo_1.asm”中的程序,以及Code Window2LOGO顺德职业技术学院6 存储器的空间大小存储器的空间大小v灯有灯有“亮亮”和和“灭灭”两种状态,墙壁上有两种状态,墙壁上有两盏灯,则两盏灯会出现几种不同的情况?两盏灯,则两盏灯会出现几种不同的情况?灭灭 亮亮有4种情况(22224)LOGO顺德职业技术学院6 存储器的空间大小存储器的空间大小(续续)v一个三位数的
7、编码一个三位数的编码,每一位只能从每一位只能从0和和1中选中选择择,有几种情况?相当于三盏灯,根据亮灭有几种情况?相当于三盏灯,根据亮灭状态的不同有几种情况?状态的不同有几种情况?4 2 1000001010011100101110111 0 1 2 3 4 5 6 78种情况:种情况:2*2*2=23LOGO顺德职业技术学院6 存储器的空间大小存储器的空间大小(续续)vMotorola的八位芯片采用两个字节(的八位芯片采用两个字节(16位)的位)的长度来表示存储器中每个字节的地址长度来表示存储器中每个字节的地址,且采用统一且采用统一编址的方式编址的方式,那么存储器空间有多少字节那么存储器空间
8、有多少字节?v答案答案:两个字节是两个字节是16位位,而每一位只能取而每一位只能取1或者或者0,这这样组合得到的地址有样组合得到的地址有216种种,这也是这也是Motorola八八位芯片存储器的空间位芯片存储器的空间.另外另外,216=26*210=64*210=64K因此说因此说,Motorola八位芯片存储器空间的大八位芯片存储器空间的大小是小是64K字节字节.它们是它们是0000 0000 0000 0000 1111 1111 1111 1111,十六进制表示为十六进制表示为:$0000$FFFFLOGO顺德职业技术学院7 软件程序体验预备知识软件程序体验预备知识LOGO顺德职业技术学
9、院软件程序体验预备知识软件程序体验预备知识:汇编语言约定汇编语言约定1v在汇编语言中可以使用二进制、十进制、十六进在汇编语言中可以使用二进制、十进制、十六进制这三种数制。无前后缀符号的默认表示十六进制这三种数制。无前后缀符号的默认表示十六进制。制。数制数制前缀表示法前缀表示法后缀表示法后缀表示法举例举例二进制二进制%数字数字数字数字Q%00000011或或00000011Q十进制十进制!数字数字数字数字T!12或或12T十六进制十六进制$数字数字数字数字H$0F或或0FH数字数字数字数字5ALOGO顺德职业技术学院软件程序体验预备知识软件程序体验预备知识:汇编语言约定汇编语言约定2v在数字的前
10、面加在数字的前面加#表示立即数表示立即数(表示的仅仅是一个表示的仅仅是一个数字数字),数字前面不加数字前面不加#则表示是一个地址则表示是一个地址.LDA#$1FLDA$1F1FA2D$1F2DA$1FLOGO顺德职业技术学院软件程序体验预备知识软件程序体验预备知识:MOV指令指令vMOV数据数据,内存单元内存单元 表示:Move 数据 to 内存单元 例1:MOV#%00000001,$0000 例2:MOV#$0F,$0004 例3:MOV#02T,$000701H$00000FH$000402T$0007LOGO顺德职业技术学院软件程序体验预备知识软件程序体验预备知识:LDA,STA指令指
11、令vLDA数据数据 表示:Lode 数据 to A 例1:LDA#%00000001 例2:LDA#$0F 例3:LDA#02T01HA0FHA02TAvSTA内存单元内存单元 表示:Store A的数据 in 内存单元 例1:LDA$0100 例2:LDA$FC00 例3:LDA$FCBE01H$01000FH$FC0002H$FCBE01HA0FHA02HALOGO顺德职业技术学院软件程序体验预备知识软件程序体验预备知识:注释注释v在汇编程序中在汇编程序中,以分号以分号“;”开始的是注释部分开始的是注释部分,编编译软件将忽略它们译软件将忽略它们.注释部分是为了使我们的程序注释部分是为了使我
12、们的程序容易读懂容易读懂.例如例如 MOV#02T,$0000;赋值;MOV#12H,$0040;该句不运行 MOV#24T,$0007;赋值LOGO顺德职业技术学院软件程序体验软件程序体验运行程序运行程序“学生练习程序学生练习程序_内存分配内存分配.asm”,观察发生的现象观察发生的现象.如果系统提示某条语句出错如果系统提示某条语句出错,试着把该语句注试着把该语句注释掉释掉,重新编译重新编译,再仿真运行再仿真运行.LOGO顺德职业技术学院8 MC68HC908JL3内存分配(内存分配(1)$0000 口寄存器和特殊寄存器口寄存器和特殊寄存器$003F 64字节字节$0040 保留区保留区$0
13、07F 64字节字节$0080 RAM$00FF 128字节字节$0100 无用区无用区$EBFF 60160字节字节$EC00 用户用户FLASH ROM$FBFF 4096字节字节$FC00 监控程序监控程序(ROM)$FDFF 512字节字节$FE00 其他状态和控制寄存器其他状态和控制寄存器$FEOF 16字节字节$FE10 监控程序监控程序(ROM)$FFCF 448字节字节$FFD0 用户向量区用户向量区(FLASH)$FFFF 48字节字节芯片内存的总体分配结构芯片内存的总体分配结构看程序“内存_demo_1.asm”中Memory WindowLOGO顺德职业技术学院8 MC6
14、8HC908JL3内存分配(内存分配(2)口数据寄存器口数据寄存器:I/O口的输入输出的数据口的输入输出的数据口方向寄存器口方向寄存器:I/O口的方向设置口的方向设置,即输入还是输出即输入还是输出特殊寄存器特殊寄存器:芯片外围模块的状态和控制信号芯片外围模块的状态和控制信号未用区未用区:留作功能的扩展用留作功能的扩展用.单片机将单片机将IOIO端口并入寄存器的行列端口并入寄存器的行列,用对寄存器一用对寄存器一样的操作通过地址总线和数据总线来操作样的操作通过地址总线和数据总线来操作IOIO端口端口,芯芯片的片的I/OI/O端口在端口在6464K MAPK MAP图中与其他寄存器及用户图中与其他寄
15、存器及用户RAMRAM一一样有固定的地址样有固定的地址。口寄存器和特殊寄存器也是。口寄存器和特殊寄存器也是RAM.RAM.$0000 口寄存器和特殊寄存器口寄存器和特殊寄存器$003F 64字节字节LOGO顺德职业技术学院8 MC68HC908JL3内存分配(内存分配(3)保留区一般是厂家有意预留在芯片中,主要是保留区一般是厂家有意预留在芯片中,主要是用来以后需要时扩展一些功能的。在实际芯片中对用来以后需要时扩展一些功能的。在实际芯片中对其操作是无效的其操作是无效的,且在仿真时将被禁止。且在仿真时将被禁止。(看程序仿看程序仿真和实物运行结果真和实物运行结果)$0040 保留区保留区$007F
16、64字节字节LOGO顺德职业技术学院8 MC68HC908JL3内存分配(内存分配(4)RAM:可读写存储器,存储程序的数据,运行时可可读写存储器,存储程序的数据,运行时可读可写,分读可写,分变量区变量区和和堆栈区堆栈区$0080 RAM$00FF 128字节字节LOGO顺德职业技术学院8 MC68HC908JL3内存分配(内存分配(5)这是一个盲区,在实际芯片中对它们的读写这是一个盲区,在实际芯片中对它们的读写都是无效的都是无效的,且在仿真时将被禁止且在仿真时将被禁止。(看程序仿真看程序仿真和实物运行结果和实物运行结果)$0100 无用区无用区$EBFF 60160字节字节LOGO顺德职业技
17、术学院8 MC68HC908JL3内存分配(内存分配(6)用户的程序区:指令码,操作数,地址用户的程序区:指令码,操作数,地址$EC00 用户用户FLASH$FBFF 4096字节字节LOGO顺德职业技术学院8 MC68HC908JL3内存分配(内存分配(7)这是这是ROM区。监控程序是区。监控程序是芯片生产厂固化在芯片特定芯片生产厂固化在芯片特定空间的专用程序空间的专用程序。在仿真时不会被禁止在仿真时不会被禁止,但是但是在实际芯在实际芯片中对它们的读写都是无效的片中对它们的读写都是无效的。(看程序仿真和实物运看程序仿真和实物运行结果行结果)$FC00 监控程序监控程序$FDFF 512字节字
18、节$FE10 监控程序监控程序$FFCF 448字节字节LOGO顺德职业技术学院8 MC68HC908JL3内存分配(内存分配(8)芯片外围模块的状态和控制寄存器芯片外围模块的状态和控制寄存器$FE00 断点状态寄存器断点状态寄存器BSR 1字节字节$FE01 复位状态寄存器复位状态寄存器RSR 1字节字节$FE02 保留保留 1字节字节$FE03 断点标志控制寄存器断点标志控制寄存器BFCR 1字节字节$FE04 中断状态寄存器中断状态寄存器1 1字节字节$FE05 中断状态寄存器中断状态寄存器2 1字节字节$FE06 中断状态寄存器中断状态寄存器3 1字节字节LOGO顺德职业技术学院8 M
19、C68HC908JL3内存分配(内存分配(9)芯片外芯片外围模块围模块的状态的状态和控制和控制寄存器寄存器$FE07 保留保留 1字节字节$FE08 FLASH控制寄存器控制寄存器FLCR 1字节字节$FE09 FLASH块保护寄存器块保护寄存器FLBPR 1字节字节$FE0A FLASH测试控制寄存器测试控制寄存器FLTCR 1字节字节$FE0B 保留保留 1字节字节$FE0C 断点地址寄存器高位断点地址寄存器高位BRKH 1字节字节$FE0D 断点地址寄存器低位断点地址寄存器低位BRKL 1字节字节$FE0E 断点状态和控制寄存器断点状态和控制寄存器BRKSCR 1字节字节$FE0F保留保
20、留 1字节字节LOGO顺德职业技术学院8 MC68HC908JL3内存分配(内存分配(10)$FFD0 用户向量区用户向量区$FFFF 48字节字节程发生中断时,程发生中断时,CPU要取回的运行程序的地址要取回的运行程序的地址.例如复位向量例如复位向量(地址为地址为$FFFE,$FFFF)中的地址是中的地址是单片机单片机上电上电(复位复位)后后开始运行开始运行的地方的地方.程序“内存_demo_1.asm”从main_init开始LOGO顺德职业技术学院9 MC68HC908JL3内存结构的类型内存结构的类型1固化的程序固化的程序部分部分2RAM内存内存和寄存器和寄存器区区3 无效区无效区LO
21、GO顺德职业技术学院9 MC68HC908JL3内存结构的类型内存结构的类型1固化的程序固化的程序部分部分2RAM内存内存和寄存器和寄存器区区3 无效区无效区LOGO顺德职业技术学院9.1 类型类型1:固化的程序部分(固化的程序部分(1)特点特点芯片掉电后芯片掉电后内容不消失内容不消失。特例:用户程特例:用户程序中安排了烧序中安排了烧录程序,使部录程序,使部分程序在运行分程序在运行中改变。中改变。烧录程序后烧录程序后,一般内容,一般内容不可改变不可改变LOGO顺德职业技术学院9.1 类型类型1:固化的程序部分(:固化的程序部分(2)用户程序:用户程序:$EC00 用户用户FALSH$FBFF
22、4096字节字节$FFD0 用户向量区用户向量区$FFFF 48字节字节 非用户程序:非用户程序:ROM$FC00 监控程序监控程序$FDFF 512字节字节$FE10 监控程序监控程序$FFCF 448字节字节LOGO顺德职业技术学院9.1.1 用户程序:用户程序:FLASH$EC00 用户用户FALSH$FBFF 4096字节字节每页每页64字节,每行字节,每行32字节字节FLASH擦除操作以页为单位擦除操作以页为单位FLASH写入操作以页或者行为单位写入操作以页或者行为单位FLASH擦除操作将擦除操作将0变为变为1,写则相反,擦,写则相反,擦0写写0操作数、地址、指令码操作数、地址、指令
23、码LOGO顺德职业技术学院9.1.2 9.1.2 用户程序:用户向量区用户程序:用户向量区优先级中断向量标号中断向量地址中断名称低IF15$FFDE$FFDFAD转换完中断IF14$FFE0$FFE1键中断IF13:IF6未用IF5$FFF2$FFF3TIM溢出中断IF4$FFF4$FFF5TIM通道1中断IF3$FFF6$FFF7TIM通道0中断IF2未用IF1$FFFA$FFFB外中断$FFFC$FFFD软中断高$FFFE$FFFF复位LOGO顺德职业技术学院9.1.3 非用户程序:非用户程序:ROM 非用户程序:非用户程序:ROM$FC00 监控程序监控程序$FDFF 512字节字节$F
24、E10 监控程序监控程序$FFCF 448字节字节执行初始化、系统自检、引导用户进入目标操作执行初始化、系统自检、引导用户进入目标操作监控程序提供了擦监控程序提供了擦/写子程序供用户调用,烧录芯片写子程序供用户调用,烧录芯片与与PC机相连进行串行通信,借助机相连进行串行通信,借助PC机的人机交互机的人机交互功能,进行各种操作功能,进行各种操作芯片生产厂固化在芯片特定空间的专用程序芯片生产厂固化在芯片特定空间的专用程序 LOGO顺德职业技术学院9.2 类型类型2:RAM内存和寄存器区内存和寄存器区(1)1固化的程序固化的程序部分部分2RAM内存内存和寄存器和寄存器区区3 无效区无效区LOGO顺德
25、职业技术学院9.2 类型类型2:RAM内存和寄存器区内存和寄存器区(2)地址范围地址范围 :寄存器区寄存器区$0000$003$0000$003F F 用户用户RAMRAM:变量区变量区&堆栈堆栈$008000$008000FFFF 芯片内容不固化,芯片掉电,内容消失。芯片内容不固化,芯片掉电,内容消失。LOGO顺德职业技术学院9.2.1 寄存器区寄存器区$0000$003F口数据寄存器口数据寄存器$0000$0001$0003$0000$0001$0003口方向寄存器口方向寄存器$0004$0005$0007$0004$0005$0007特殊寄存器特殊寄存器LOGO顺德职业技术学院口数据寄存
26、器口数据寄存器$0000$0000PA PA 数据寄存器数据寄存器$0001$0001PB PB 数据寄存器数据寄存器$0002$0002未用未用$0003$0003PDPD数据寄存器数据寄存器I/O端口,每个寄存器有八个端口,每个寄存器有八个(A口为七个口为七个)引脚与外部设引脚与外部设备相连,获取或者输出电平信号备相连,获取或者输出电平信号因为既可输入也可输出,因此需要有个方向标志,该标因为既可输入也可输出,因此需要有个方向标志,该标志在方向寄存器中设置。志在方向寄存器中设置。MOV#10T,$0001LOGO顺德职业技术学院口方向寄存器口方向寄存器$0004$0004PAPA方向寄存器方
27、向寄存器$0005$0005PBPB方方向寄存器向寄存器$0006$0006未用未用$0007$0007PDPD方方向寄存器向寄存器0:输入,:输入,1:输出:输出MOV#%00010010,$0005LOGO顺德职业技术学院特殊寄存器特殊寄存器存储或者控制外围设备的状态,详细情况存储或者控制外围设备的状态,详细情况将在寄存器一章中介绍将在寄存器一章中介绍LOGO顺德职业技术学院9.3 RAM9.3 RAM:变量区变量区&堆栈堆栈(1)(1)变量区变量区堆栈区堆栈区$0080 RAM$00FF 128字节字节LOGO顺德职业技术学院9.3 RAM9.3 RAM:变量区变量区&堆栈堆栈(2)(2
28、)变量区内容可见,但完全不固定,完全由程序确定变量区内容可见,但完全不固定,完全由程序确定从从$00FF向上延伸为堆栈(先进后出的数据结构)向上延伸为堆栈(先进后出的数据结构)变量区由变量区由$0080开始定义,为显性操作,而有时开始定义,为显性操作,而有时对堆栈的操作,如:发生中断时将各种寄存器值对堆栈的操作,如:发生中断时将各种寄存器值压入堆栈为隐形操作,二者冲突则后果不可预计。压入堆栈为隐形操作,二者冲突则后果不可预计。LOGO顺德职业技术学院10 思考题思考题HC68HC908JL3C存储器如何分配存储器如何分配?(1)HC68HC908JL各部分内存的作用各部分内存的作用?(2)存储器是如何管理的,如何访问某存储单元?存储器是如何管理的,如何访问某存储单元?(3)LOGO顺德职业技术学院