收藏 分享(赏)

STC12C5410AD的增强型8051内核.ppt

上传人:scg750829 文档编号:8315905 上传时间:2019-06-20 格式:PPT 页数:23 大小:216KB
下载 相关 举报
STC12C5410AD的增强型8051内核.ppt_第1页
第1页 / 共23页
STC12C5410AD的增强型8051内核.ppt_第2页
第2页 / 共23页
STC12C5410AD的增强型8051内核.ppt_第3页
第3页 / 共23页
STC12C5410AD的增强型8051内核.ppt_第4页
第4页 / 共23页
STC12C5410AD的增强型8051内核.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、第2章 STC12C5410AD的增强型8051内核,2.1 STC12C5410AD单片机的引脚 (SOP-32封装格式),逻辑符号图,上电复位电路,STC12C5410AD单片机内部集成MAX810专用复位电路,时钟频率在12MHZ以下时,复位脚可接1K电阻再接地,也可以使用如图所示的复位电路。,常见的晶振连接方法,晶体振荡器M的典型值是11.0592MHz,电容C1、C2的典型值是15Pf。,2.2 STC12C5410AD单片机的结构,2.2.1 STC12C5410AD单片机的内部结构,2.2.2 CPU结构,以8位算术/逻辑运算部件ALU为核心,加上通过内部总线而挂在其周围的暂存器

2、TMP1,TMP2,累加器ACC,寄存器B,程序状态标志寄存器PSW以及布尔处理机就组成了整个运算器的逻辑电路。,1运算器,单片机的中央处理器CPU由运算器和控制器组成。,程序状态标志寄存器PSW:,CY:进位标志位 当执行加/减法指令时,如果操作结果的最高位D7出现进/借位,则CY置“1”,否则清零。此外,CPU在进行移位操作时也会影响这个标志位。 AC:辅助进位标志位 当执行加/减法指令时,如果低四位数向高四位数产生进/借位,则AC置“1”,否则清零。 F0:用户标志0 该位是由用户定义的一个状态标志。 RS1,RS0:工作寄存器组选择控制位 OV:溢出标志位 指示运算过程中是否发生了溢出

3、。 F1:用户标志1 该位是由用户定义的一个状态标志。 P:奇偶标志位 如果累加器ACC中1的个数为偶数,P=0;否则P=1。,2控制器,控制器是CPU的大脑中枢,包括定时控制逻辑、指令寄存器、译码器、地址指针DPTR及程序计数器PC、堆栈指针SP、RAM地址寄存器、16位地址缓冲器等。,2.3 STC12C5410AD单片机的存储器,2.3.1 存储器空间及存储器,STC12C5410AD单片机存储器结构的主要特点是程序存储器和数据存储器的寻址空间是分开的,有4个物理上相互独立的存储器空间:程序Flash存储器、内部数据存储器、外部数据存储器和数据Flash存储器(EEPROM),1程序存储

4、器,程序存储器用于存放用户程序、数据和表格等信息。STC12C5410AD单片机片内集成了10KB的程序Flash存储器,其地址为0000H27FFH。单片机复位后,程序计数器的内容为0000H,从0000H单元开始执行程序。特殊单元 0000H 复位入口地址0003H 外部中断0中断服务程序的入口地址000BH 定时/计数器0中断服务程序的入口地址0013H 外部中断1中断服务程序的入口地址001BH 定时/计数器1中断服务程序的入口地址0023H 串行中断服务程序的入口地址002BH ADC和SPI中断服务程序的入口地址0033H PCA和PWM中断服务程序的入口地址读取程序存储器中保存的

5、表格常数等内容时,使用MOVC指令。,2数据存储器,数据存储器也称为随机存取数据存储器。STC12C5410AD单片机的数据存储器在物理上和逻辑上都分为两个地址空间:内部数据存储区和外部数据存储区。(1)内部数据存储区STC12C5410AD单片机片内集成了256字节RAM,可用于存放程序执行的中间结果和过程数据。内部RAM的地址范围是00HFFH,共256个单元,分为三部分: 低128字节RAM:00H7FH。用“MOV”和“MOV Ri”指令访问。 高128字节RAM:80HFFH。用“MOV Ri”指令访问。 特殊功能寄存器(SFR)区:80HFFH,用“MOV”指令访问。,1)工作寄存

6、器区 00H1FH共32个单元用作工作寄存器,分为四组(每一组称为一个寄存器组),每一组中包括8个8位的工作寄存器,分别是R0R7。PSW寄存器中的RS1和RS0的组合决定当前使用的工作寄存器组。,2)位寻址区20H2FH之间的单元既可以像普通RAM单元一样按字节存取,也可以对单元中的任何一位单独存取,共128位,所对应的位地址范围是00H7FH。特殊功能寄存器中,直接地址可被8整除的寄存器(除了IP.7、IP.6和IE.6以外)也可以进行位寻址。可进行位寻址的单元,请见教材图2-8和图2-9.,3)用户RAM和堆栈区内部RAM中的30H0FFH单元是用户RAM和堆栈区。STC12C5410A

7、D单片机有一个8位的堆栈指针SP,并且堆栈区只能设置在内部数据存贮区。单片机复位以后,SP为07H,指向了工作寄存器组0中的R7,因此用户初始化程序都应对SP设置初值,一般设在30H以后为宜。 STC12C5410AD的堆栈是向上生成的。 4)特殊功能寄存器(SFR)对于STC12C5410AD单片机,80HFFH既为高128字节RAM区的地址范围,又为特殊功能寄存器区的地址范围,地址空间重叠,但物理上是独立的,使用时通过不同的寻址方式加以区分。高128字节的RAM区使用间接寻址访问,特殊功能寄存器使用直接寻址访问。除了程序计数器PC和4个工作寄存器组外,其余的寄存器都在SFR区中。 特殊功能

8、寄存器及其复位值如教材表2-2所示 。,(2)外部数据存储区外部数据存储区也称为扩展RAM区或XRAM(附加RAM)。STC12C5410AD单片机片内除了集成256字节的内部RAM以外,片内还集成了256字节的外部数据存储器,地址范围为0000H00FFH,可用于存放数据。在汇编语言中,XRAM通过MOVX 指令间接寻址,即使用“MOVX DPTR”或者“MOVX Ri”指令访问。在C语言中,可使用xdata声明存储类型即可。,3数据Flash存储器,STC12C5410AD单片机内部集成了2K字节的数据Flash存储器(EEPROM),地址范围是2800H2FFFH,虽然起始地址紧接在程序

9、Flash存储器之后,但与程序Flash存储器空间是分开的。这2K字节的数据Flash存储器分为4个扇区,每个扇区包含512字节,对应的地址范围分别为: 第一扇区:2800H29FFH 第二扇区:2A00H2BFFH 第三扇区:2C00H2DFFH 第四扇区:2E00H2FFFH使用时,建议同一次修改的数据放在同一个扇区,不是同一次修改的数据放在不同的扇区,不一定用满。数据Flash存储器的擦除操作是按扇区进行的,因此,每个扇区用的越少越方便,256个字节以内比较合理。 这些数据Flash存储器擦写次数在10万次以上,可用于保存一些需要在应用过程中修改的一些参数数据。,2.3.2 数据Flas

10、h存储器的操作,1. 相关的特殊功能寄存器,(1)ISP/IAP Flash数据寄存器ISP_DATA,ISP_DATA寄存器是对数据Flash进行ISP/IAP操作时的数据寄存器。 ISP/IAP从Flash读出的数据放在该寄存器中, 向Flash 写入的数据也需放在该寄存器中。,ISP_DATA寄存器各位的定义如下:,(2)ISP/IAP地址寄存器ISP_ADDRH和ISP_ADDRLISP_ADDRH各位的定义如下:,ISP_ADDRL各位的定义如下:,其中,ISP_ADDRH是ISP/IAP操作时的地址寄存器高8位; ISP_ADDRL是ISP/IAP操作时的地址寄存器低8位。,(3)

11、ISP/IAP命令寄存器ISP_CMDISP_CMD各位的定义如下:,其中,D7D2保留未用。MS1和MS0用于设置要执行的命令,如表2-3所示。,ISP/IAP操作时的命令模式寄存器,须命令触发寄存器触发方可生效。,表2-3 ISP/IAP命令与MS1和MS0之间的关系,(4)ISP/IAP操作时的命令触发寄存器ISP_TRIGISP_TRIG寄存器的地址为E6H。在ISPEN(ISP_CONTR.7)=1时,对ISP_TRIG先写入46H,再写入B9H,ISP/IAP命令才会生效。,(5)ISP/IAP控制寄存器ISP_CONTR ISP_CONTR各位的定义如下:,1)ISPEN:ISP

12、/IAP功能允许位。0:禁止ISP/IAP编程改变Flash;1:允许编程改变Flash。 2)SWBS:软件选择从用户主程序区启动,还是从ISP程序区启动。0:从用户主程序区启动;1:从ISP程序区启动。 3)SWRST:是否产生软件复位控制位。 0:不操作; 1:产生软件系统复位,硬件自动清零。4)CMD_FAIL:ISP/IAP命令是否触发成功标志。如果送了ISP/IAP命令,并对ISP_TRIG送46H/B9H触发失败,则为1,需由软件清零。 5)WT2、WT1和WT0用于设置等待时间。,2. Flash存储器操作的方法,(1)首先定义ISP/IAP命令及等待时间:ISP_IAP_BY

13、TE_READ EQU 1 ;字节读 ISP_IAP_BYTE_PROGRAM EQU 2 ;字节编程,前提是该字节是空,0FFh ISP_IAP_SECTOR_ERASE EQU 3 ;扇区擦除,要某字节为空,要擦一扇区 WAIT_TIME EQU 0 ;设置等待时间;30MHz以下为0,24M以下1, 20MHz以下2;12M 以下3,6M 以下4,3M 以下5,2M 以下6,1M 以下7,(2)字节读操作首先给出要读的地址,设置等待时间,然后送出读字节命令并设置触发器, 从ISP_DATA寄存器中读取数据。典型代码如下:MOV ISP_ADDRH, #BYTE_ADDR_HIGH ;送地

14、址高字节MOV ISP_ADDRL, #BYTE_ADDR_LOW ;送地址低字节MOV ISP_CONTR, #WAIT_TIME ;设置等待时间ORL ISP_CONTR, #10000000B ;允许ISP/IAP操作MOV ISP_CMD, #ISP_IAP_BYTE_READ ;送字节读命令MOV ISP_TRIG,#46H ;先送46H,再送B9H到ISP/IAP触发寄存器MOV ISP_TRIG,#0B9H ;送完B9H后,ISP/IAP命令立即被触发起动;CPU等待IAP动作完成后,才会继续执行程序。NOP ;数据读出到ISP_DATA寄存器后,CPU继续执行程序 MOV A,

15、 ISP_DATA ;将读出的数据送往累加器,(3)字节编程(写)操作保证要写的地址单元内容为空(值为0FFH),如果不为空,则先使用扇区擦除 命令,将要进行字节编程的单元所在扇区擦除为空。将要写入的内容送入ISP_DATA 寄存器,要编程的单元地址送入ISP_ADDRH和ISP_ADDRL寄存器,设置等待时间, 允许ISP/IAP操作,送出字节编程命令并设置触发器。最后等待编程完毕即可。 典型代码如下:MOV ISP_DATA, #ONE_DATA ;送字节编程数据到ISP_DATAMOV ISP_ADDRH, #BYTE_ADDR_HIGH ;送地址高字节MOV ISP_ADDRL, #B

16、YTE_ADDR_LOW ;送地址低字节MOV ISP_CONTR, #WAIT_TIME ;设置等待时间 ORL ISP_CONTR, #10000000B ;允许ISP/IAP操作 MOV ISP_CMD, #ISP_IAP_BYTE_PROGRAM ;送字节编程命令 MOV ISP_TRIG, #46H ;先送46H,再送B9H到ISP/IAP触发寄存器MOV ISP_TRIG, #0B9H ;送完B9H 后,ISP/IAP命令立即被触发起动;CPU等待IAP动作完成后,才会继续执行程序. NOP ;字节编程成功后,CPU继续执行程序,(4)数据Flash擦除数据Flash擦除只有扇区擦

17、除,没有字节擦除。如果要对某个扇区进行擦除,而 其中有些字节的内容需要保留,则需将其先读到单片机内部的RAM 中保存,再将该 扇区擦除,然后将须保留的数据写回该扇区,所以每个扇区中用的字节数越少越好, 操作起来越灵活越快。擦除时,扇区中任意一个字节的地址都是该扇区的地址,无需 求出首地址。扇区擦除的典型代码: MOV ISP_ADDRH, #SECTOR_FIRST_BYTE_ADDR_HIGH ;送扇区起始地址高字节 MOV ISP_ADDRL, #SECTOR_FIRST_BYTE_ADDR_LOW ;送扇区起始地址低字节 MOV ISP_CONTR, #WAIT_TIME ;设置等待时间

18、 ORL ISP_CONTR, #10000000B ;允许ISP/IAP MOV ISP_CMD, #ISP_IAP_SECTOR_ERASE ;送扇区擦除命令 MOV ISP_TRIG, #46H ;先送46H,再送B9h到ISP/IAP触发寄存器 MOV ISP_TRIG, #0B9H ;送完B9H后,ISP/IAP命令立即被触发起动 ;CPU等待IAP动作完成后,才会继续执行程序. NOP ;扇区擦除成功后,CPU继续执行程序,(5)数据Flash存储器的操作小结对于数据Flash存储器的操作有三个基本命令,分别是字节读、字节编程和扇区 擦除。进行字节编程时,只能将“1”改为“0”,或

19、“1”保持为“1”,“0”保持为“0”。如果 该字节是“11111111B”,则可将其中的“1”编程为“0 ”,如果该字节中有的位为“0”, 要将其改为“1”,则须先将整个扇区擦除,因为只有“扇区擦除”才可以将“0”变为“1”。建议:1)同一次修改的数据放在同一扇区中,不是同一次修改的数据放在另外的扇区, 就不须读出保护。2)如果一个扇区只用一个字节,那就是真正的EEPROM。STC12C5410AD单片 机的Data Flash比外部EEPROM要快很多,读一个字节/编程一个字节大概需要2个时 钟周期55us。3)如果在一个扇区中存放了大量的数据,某次只需要修改其中的一个字节或一部 分字节时,则另外的不需要修改的数据须先读出放在单片机的RAM中,然后擦除整个 扇区,再将需要保留的数据和需修改的数据一并写回该扇区中。这时,每个扇区使用 的字节数是使用的越少越方便(不需读出一大堆需保留数据)。 在第五章将给出一个完整的程序。,思考题 简述PSW寄存器的各个位的作用。 STC2C5410AD单片机的存储器分为哪几个空间?中断服务程序的入口地址分别是什么? 说明STC2C5410AD单片机内部数据存储区空间分配情况。32个通用寄存器各对应哪些RAM单元? 位地址29H,61H,7FH,90H,E0H,F1H,各对应哪些单元的哪些位?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报