第2章 STC12C5A60S2的增强型8051内核.ppt_第1页
第2章 STC12C5A60S2的增强型8051内核.ppt_第2页
第2章 STC12C5A60S2的增强型8051内核.ppt_第3页
第2章 STC12C5A60S2的增强型8051内核.ppt_第4页
第2章 STC12C5A60S2的增强型8051内核.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章STC12C5A60S2的增强型8051内核,2.1 STC12C5A60S2单片机的引脚,LQFP48封装,DIP40封装,逻辑符号图,上电复位电路,STC12C5A60S2单片机内部集成MAX810专用复位电路,时钟频率在12MHZ以下时,复位脚可接1K电阻再接地,也可以使用如右图所示的复位电路。,常见的晶振连接方法,晶体振荡器M的典型值是11.0592MHz,电容C1、C2的典型值是47Pf。,2.2 STC12C5A60S2单片机的结构,2.2.1 STC12C5A60S2单片机的内部结构,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 STC12C5A60S2单片机的存储器,2.3.1 存储器空间及存储器,STC12C5A60S2单片机存储器结构的主要特点是程序存储器和数据存储器的寻址空间是分开的,有4个物理上相互独立的存储器空间:程序Flash存储器、数据Flash存储器(EEPROM)、内部数据存储器和外部数据存储器,1程序

4、Flash存储器,程序Flash存储器用于存放用户程序、数据和表格等信息。STC12C5A60S2单片机片内集成了60KB的程序Flash存储器,其地址为0000HF000H。单片机复位后,程序计数器的内容为0000H,从0000H单元开始执行程序。 特殊单元 0003H 外部中断0中断服务程序的入口地址 000BH 定时/计数器0中断服务程序的入口地址 0013H 外部中断1中断服务程序的入口地址 001BH 定时/计数器1中断服务程序的入口地址 0023H 串行通信口1中断服务程序的入口地址 002BH ADC中断服务程序的入口地址 0033H 低电压检测中断服务程序的入口地址 003BH

5、 PCA中断服务程序的入口地址 0043H 串行通信口2中断服务程序的入口地址 004BH SPI中断服务程序的入口地址 读取程序存储器中保存的表格常数等内容时,使用MOVC指令。,2数据存储器,数据存储器也称为随机存取数据存储器。STC12C5A60S2单片机的数据存储器在物理上和逻辑上都分为两个地址空间:内部数据存储区和外部数据存储区。 (1)内部数据存储区 STC12C5A60S2单片机片内集成了256字节RAM,可用于存放程序执行的中间结果和过程数据。内部RAM的地址范围是00HFFH,共256个单元,分为三部分: 低128字节RAM:00H7FH。用“MOV”和“MOV Ri”指令访

6、问。 高128字节RAM:80HFFH。用“MOV Ri”指令访问。 特殊功能寄存器(SFR)区:80HFFH,用“MOV”指令访问。,1)工作寄存器区 00H1FH共32个单元用作工作寄存器,分为四组(每一组称为一个寄存器组),每一组中包括8个8位的工作寄存器,分别是R0R7。PSW寄存器中的RS1和RS0的组合决定当前使用的工作寄存器组。,2)位寻址区 20H2FH之间的单元既可以像普通RAM单元一样按字节存取,也可以对单元中的任何一位单独存取,共128位,所对应的位地址范围是00H7FH。特殊功能寄存器中,直接地址可被8整除的寄存器(除了IP.7、IP.6和IE.6以外)也可以进行位寻址

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

8、址访问,特殊功能寄存器使用直接寻址访问。除了程序计数器PC和4个工作寄存器组外,其余的寄存器都在SFR区中。 特殊功能寄存器及其复位值如教材表2-2所示 。,(2)外部数据存储区 外部数据存储区也称为扩展RAM区或XRAM(附加RAM)。STC12C5A60S2单片机片内除了集成256字节的内部RAM以外,片内还集成了1024字节的外部数据存储器,地址范围为0000H03FFH,可用于存放数据。在汇编语言中,XRAM通过MOVX 指令间接寻址,即使用“MOVX DPTR”或者“MOVX Ri”指令访问。在C语言中,可使用xdata声明存储类型即可。 如:unsigned char xdata

9、i= 0;,单片机芯片内的XRAM是否可以访问受辅助寄存器AUXR(地址为8EH,复位值为00H)中的EXTRAM位控制。AUXR的各位定义如下:,EXTRAM:内部/外部RAM存取控制位。 0:内部XRAM可以存取;1:芯片外数据存储器存取,禁止访问内部XRAM。,3数据Flash存储器,STC12C5A60S2单片机内部集成了1K字节的数据Flash存储器(EEPROM),地址范围是0000H03FFH,与程序Flash存储器空间是分开的。这1K字节的数据Flash存储器分为2个扇区,每个扇区包含512字节,对应的地址范围分别为: 第一扇区:0000H01FFH 第二扇区:0200H03F

10、FH 使用时,建议同一次修改的数据放在同一个扇区,不是同一次修改的数据放在不同的扇区,不一定用满。数据Flash存储器的擦除操作是按扇区进行的。 这些数据Flash存储器擦写次数在10万次以上,可用于保存一些需要在应用过程中修改的一些参数数据。,2.3.2 数据Flash存储器的操作,1. 相关的特殊功能寄存器,(1)ISP/IAP Flash数据寄存器IAP_DATA,IAP_DATA寄存器(地址为C2H,复位值为0FFH)是对数据Flash进行ISP/IAP操作时的数据寄存器。ISP/IAP从Flash读出的数据放在该寄存器中,向Flash 写入的数据也需放在该寄存器中。,(2)ISP/I

11、AP地址寄存器IAP_ADDRH和IAP_ADDRL,IAP_ADDRH(地址是C3H,复位值为00H)是ISP/IAP操作时的地址寄存器高8位; IAP_ADDRL(地址是C4H,复位值为00H)是ISP/IAP操作时的地址寄存器低8位。,(3)ISP/IAP命令寄存器IAP_CMD IAP_CMD(地址为C5H,复位值为XXXXXX00B)各位的定义如下,其中,D7D2保留未用。MS1和MS0用于设置要执行的命令,如表2-3所示。,ISP/IAP操作时的命令模式寄存器,需命令触发寄存器触发方可生效。,表2-3 ISP/IAP命令与MS1和MS0之间的关系,(4)ISP/IAP操作时的命令触

12、发寄存器IAP_TRIG IAP_TRIG寄存器的地址为C6H。在IAPEN(IAP_CONTR.7)=1时,对IAP_TRIG先写入5AH,再写入A5H,ISP/IAP命令才会生效。,(5)ISP/IAP控制寄存器IAP_CONTR IAP_CONTR(地址为C7H,复位值为00001000B)各位的定义如下:,1)ISPEN:ISP/IAP功能允许位。 0:禁止ISP/IAP编程改变Flash; 1:允许编程改变Flash。 2)SWBS:软件选择从用户主程序区启动,还是从ISP程序区启动。 0:从用户主程序区启动; 1:从ISP程序区启动。 3)SWRST:是否产生软件复位控制位。 0:

13、不操作;1:产生软件系统复位,硬件自动清零。 4)CMD_FAIL:ISP/IAP命令是否触发成功标志。 如果送了ISP/IAP命令,并对ISP_TRIG送46H/B9H触发失败,则为1,需由软件清零。 5)WT2、WT1和WT0用于设置等待时间。,2. Flash存储器操作的方法,(1)首先定义ISP/IAP命令及等待时间: ISP_IAP_BYTE_READ EQU 1 ;字节读 ISP_IAP_BYTE_PROGRAM EQU 2 ;字节编程,前提是该字节是空,0FFh ISP_IAP_SECTOR_ERASE EQU 3 ;扇区擦除,要某字节为空,要擦一扇区 WAIT_TIME EQU

14、 0 ;设置等待时间 ;30MHz以下为0,24M以下1, 20MHz以下2 ;12M 以下3,6M 以下4,3M 以下5,2M 以下6,1M 以下7,(2)字节读操作 进行字节读操作时,需要给出要读的地址,设置等待时间,然后送出读字节命令并设置触发器,从IAP_DATA寄存器中读取数据。典型代码如下: ;字节读操作演示代码 MOV IAP_ADDRH, #BYTE_ADDR_HIGH ;送地址高字节 MOV IAP_ADDRL, #BYTE_ADDR_LOW ;送地址低字节 MOV IAP_CONTR, #WAIT_TIME ;设置等待时间 ORL IAP_CONTR, #10000000B

15、 ;允许ISP/IAP操作 MOV IAP_CMD, #ISP_IAP_BYTE_READ ;送字节读命令 MOV IAP_TRIG,#5AH ;先送5AH,再送A5H到ISP/IAP触发寄存器 MOV IAP_TRIG,#0A5H ;送完A5H后,ISP/IAP命令立即被触发启动 ;CPU等待IAP动作完成后,才会继续执行程序。 NOP ;数据读出到IAP_DATA寄存器后,CPU继续执行程序 MOV A, IAP_DATA ;将读出的数据送往累加器,(3)字节编程(写)操作 进行字节编程(写)操作时,需要保证要写的地址单元内容为空(值为0FFH),如果不为空,则先使用扇区擦除命令,将要进行

16、字节编程的单元所在扇区擦除为空。将要写入的内容送入IAP_DATA寄存器,要编程的单元地址送入IAP_ADDRH和IAP_ADDRL寄存器,设置等待时间,允许ISP/IAP操作,送出字节编程命令并设置触发器。典型代码如下: ;字节编程演示代码,该字节为空(0FFH)时,可对其编程,否则要先执行扇区擦除 MOV IAP_DATA, #ONE_DATA ;送字节编程数据到IAP_DATA MOV IAP_ADDRH, #BYTE_ADDR_HIGH ;送地址高字节 MOV IAP_ADDRL, #BYTE_ADDR_LOW ;送地址低字节 MOV IAP_CONTR, #WAIT_TIME ;设置

17、等待时间 ORL IAP_CONTR, #10000000B ;允许ISP/IAP操作 MOV IAP_CMD, #ISP_IAP_BYTE_PROGRAM ;送字节编程命令 MOV IAP_TRIG, #5AH ;先送5AH,再送A5H到ISP/IAP触发寄存器 MOV ISP_TRIG, #0A5H ;送完A59H 后,ISP/IAP命令立即被触发启动 ;CPU等待IAP动作完成后,才会继续执行程序.,(4)数据Flash擦除 数据Flash擦除时,只有扇区擦除,没有字节擦除。如果要对某个扇区进行擦除,而其中有些字节的内容需要保留,则需将其先读到单片机内部的RAM 中保存,再将该扇区擦除,

18、然后将需保留的数据写回该扇区,所以每个扇区中用的字节数越少越好,操作起来越灵活越快。擦除时,扇区中任意一个字节的地址都是该扇区的地址,无需求出首地址。 ;扇区擦除的典型代码 MOV IAP_ADDRH, #SECTOR_FIRST_BYTE_ADDR_HIGH ;送扇区起始地址高字节 MOV IAP_ADDRL, #SECTOR_FIRST_BYTE_ADDR_LOW ;送扇区起始地址低字节 MOV IAP_CONTR, #WAIT_TIME ;设置等待时间 ORL IAP_CONTR, #10000000B ;允许ISP/IAP MOV IAP_CMD, #ISP_IAP_SECTOR_ERASE ;送扇区擦除命令 MOV IAP_TRIG, #5AH ;先送5AH,再送A5H到ISP/IAP触发寄存器 MOV IAP_TRIG, #0A5H ;送完A5H后,ISP/IAP命令立即被触发起动 ;CPU等待IAP动作完成后,才会继续执行程序.,(5)数据Flash存储器的操作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论