STC12C5410AD的增强型8051内核课件

上传人:我*** 文档编号:139691700 上传时间:2020-07-23 格式:PPT 页数:23 大小:150.50KB
返回 下载 相关 举报
STC12C5410AD的增强型8051内核课件_第1页
第1页 / 共23页
STC12C5410AD的增强型8051内核课件_第2页
第2页 / 共23页
STC12C5410AD的增强型8051内核课件_第3页
第3页 / 共23页
STC12C5410AD的增强型8051内核课件_第4页
第4页 / 共23页
STC12C5410AD的增强型8051内核课件_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《STC12C5410AD的增强型8051内核课件》由会员分享,可在线阅读,更多相关《STC12C5410AD的增强型8051内核课件(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为核心,加上通过内部总线而挂在其周围的暂存器T

2、MP1,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”指令

6、访问。,1)工作寄存器区 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和堆栈

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

8、器都在SFR区中。 特殊功能寄存器及其复位值如教材表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),地址范围是2800H2F

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

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

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

12、位的定义如下:,1)ISPEN:ISP/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)首先定义

13、ISP/IAP命令及等待时间: ISP_IAP_BYTE_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

14、ISP_ADDRH, #BYTE_ADDR_HIGH ;送地址高字节 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动作完成后,才会继续执行程序。 N

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

16、 #BYTE_ADDR_HIGH ;送地址高字节 MOV ISP_ADDRL, #BYTE_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)数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号