




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章STC15单片机的内部结构第2章STC15单片机的内部结构第2章STC15单片机的内部结构STC15单片机内部总体结构及引脚功能STC15单片机存储体系结构并行I/O口STC15单片机时钟、复位及启动流程STC15系列单片机的省电模式STC15单片机的在线编程第2章STC15单片机的内部结构STC15单片机内部总体第一节STC15单片机内部总体结构及引脚功能总体结构
引脚功能
第一节STC15单片机内部总体结构及引脚功能总体结构 一、
总体结构图2.1早期51单片机的内核结构一、总体结构图2.1早期51单片机的内核结构一、
总体结构1.CPU和普通微处理器一样,CPU也是单片机的核心,其作用是读入和分析、执行每条指令,发出相应的控制信号,控制各个部件执行相应的操作。51系列单片机内部有一个8位的CPU,它是由运算器和控制器组成。运算器主要包括算术、逻辑运算部件ALU、累加器ACC、程序状态寄存器PSW、位处理器及十进制调整电路等,51单片机的位处理器特别方便进行位处理,因此适用于测控领域等具有很多开关量控制的场合。控制器包括时钟发生器、定时控制逻辑、指令寄存器、指令译码器、程序计数器PC等。程序计数器PC用于在CPU运行过程中,保存下一条要执行的指令在程序存储器中的地址,一般情况下,它总是自动加一,只在运行转移类或子程序调用类指令时,才会改变为相应的目标地址,这些概念和普通微处理器中的概念是相同的。PC的位数是16位,所以,51单片机程序存储器的空间大小是64KB。当单片机复位时,PC初始化为0000H,这也是51单片机上电复位以后,所执行的第一条指令的地址。一、总体结构1.CPU一、
总体结构2.存储器首先,与80X86等大部分微处理器不同,51单片机的存储体系将存储空间分为程序存储器及数据存储器两个独立的存储地址空间。这些空间物理上分布于芯片内和芯片外。在芯片内,根据不同的产品型号,可以有不同容量的程序存储器,这些存储器一般为可改写的ROM的类型,例如STC15W4K32S4,片内有32KB的Flash存储器;此外,单片机片内还有一定数量的数据存储器,采用RAM的形式,用于存储程序运行过程中产生的中间结果等;这个片内的数据存储器空间,还包括一些用于存储控制其他功能部件(如定时器)运行方式和参数的信息的单元,这些称为特殊功能寄存器(SpecialFunctionRegister,简称SFR)。最后,STC15系列的单片机片内还有一个单独编制的Flash存储区(片内EEPROM),用于存放那些程序运行时可实时修改、但系统断电后需要保持不变的数据。一、总体结构2.存储器一、
总体结构3.并行I/O口并行开关量(数字量)的输入/输出,是微控制器最基本的功能。STC15系列单片机,提供了最多8个可编程的并行I/O口(根据封装的不同,端口数也不同),大部分I/O口是8位的,有些口不足8位。如图Port0-Port7所示。这些I/O口命名为P0~P7,既可以将它们分别作为一个整体,用于8位开关量的输入与输出(若是8位端口的话),也可以将它们的各位口线分别独立地用于1位的开关量输入与输出。当这些口线单独使用时,它们被命名为Px.y,其中x代表其所在的并行口,可为0-7;y代表相应的位,可为0-7,例如P0.7,代表P0口的D7位。
4.其他功能部件51单片机内一般还集成有中断逻辑、两个或多个16位定时/计数器、一个或多个全双工串行口、多路A/D转换单元、同步串行数据传输SPI接口、多路PWM脉宽调制输出、多路比较器、看门狗和内部上电复位电路、高精度RC时钟、ISP/IAP接口等功能部件,这些部件给单片机的应用带来了极大的方便,具体结构和应用方式见以后的叙述。一、总体结构3.并行I/O口一、
总体结构图2.2STC15W4K32S4单片机详细结构图一、总体结构图2.2STC15W4K32S4单片机详二、
引脚功能图2.3STC15W4K32S4的PDIP40引脚图二、引脚功能图2.3STC15W4K32S4的PDI二、
引脚功能1.电源GND:接地。VCC(40脚):接电源正端。2.其他引脚图2.3中,其他引脚均为多功能,例如引脚1标注为RxD3/AD0/P0.0,表明该引脚具有三种功能:或者为RxD3,或者为AD0,或者为P0.0,这是经典单片机引脚布局共同的特点——具有多功能用途,以在有限的引脚数中安排尽可能多的功能。从图中还可以看出,这些引脚都是某一并行I/O口端口的某一位口线,表明这些引脚至少具有开关量(数字量)输入/输出的功能,但一般来讲,在某一应用系统中,只有不需要使用该引脚的其他功能时,才可以使用其并行输入/输出的功能。二、引脚功能1.电源二、
引脚功能(1)数据和地址低8位复用总线,地址高8位总线AD0~AD7:引脚1~8,为数据总线及低8位地址总线复用引脚。A8~A9:引脚32~39,为高8位地址总线。单片机应用系统也可看成由数据总线、地址总线、控制总线的三总线联接起来的一个典型微机系统,此系统具有8位数据总线,16位地址总线,可以用作于在片外扩充内存储器、I/O接口。当系统不需要使用这些总线时,相应引脚才可以用于第三功能。行输入/输出的功能。二、引脚功能二、
引脚功能(2)总线控制引脚RD:引脚30,数据总线的“读”控制,低电平有效。当CPU执行读片外数据存储器指令时,本信号有效,实现对片外数据存储器空间的读周期。WR:引脚31,数据总线的“写”控制,低电平有效。当CPU执行写片外数据存储器指令时,本信号有效,实现对片外数据存储器空间的写周期。ALE:引脚40,地址锁存允许。当CPU执行访问片外存储器空间的周期时,复用的总线AD0~AD7首先输出低8位地址,此时ALE为高,在AD0~AD7切换到数据总线D0~D7之前,ALE将变为低。单片机片外的一个锁存器(称为地址锁存器),可利用ALE这一个负跳变,将低8位地址锁存起来,供整个外存储器空间访问周期,提供稳定的低8位地址使用。二、引脚功能第二节STC15单片机存储体系结构程序存储器
数据存储器
片内数据Flash存储器
第二节STC15单片机存储体系结构程序存储器 STC15单片机存储体系结构图2.4STC15系列单片机存储体系结构STC15单片机存储体系结构图2.4STC15系列单片机STC15单片机存储体系结构STC15系列的单片机,可以说是有5个独立的存储器编址空间:程序存储器空间(位于片内)、片内基本数据RAM空间、片内扩展数据RAM空间、片内掉电不丢失的数据Flash(又称为EEPROM)空间、片外数据存储器空间。51单片机没有独立的I/O地址空间。若需要扩充I/O接口并分配访问地址,则需要占用片外数据存储器空间,即采用“内存映像”方式进行访问。STC15单片机存储体系结构一、
程序存储器程序存储器用于存放程序代码以及常数表格。程序存储器地址空间为64KB,地址从0000H到0FFFFH。经典单片机可能在片内集成较少的程序存储器空间,然后允许用户在片外扩充至总空间为64KB,STC15单片机各型号芯片片内分别集成了8~61KB容量的Flash程序存储器,STC公司认为已足够适用于各种应用系统,因此不再允许用户在片外再扩充程序存储器了,这样,对于STC15系列单片机,所有程序存储器都位于片内。各型号芯片,不管其片内程序存储器容量多大,都是从0000H开始连续编址。如图2.4最左边存储器示意图所示。用户程序只能通过MOVC指令读程序存储器的内容,不能写程序存储器单元(指带STC头的产品)。一、程序存储器一、
程序存储器STC15系列单片机程序存储空间中,有一些特殊地址单元已定义为特殊用途。这些特殊地址单元包括:0000H-0002H:复位地址,此地址存放系统复位后单片机执行的用户程序第一条指令的代码;0003H:外部中断0入口地址;000BH:定时/计数器0溢出中断入口地址;0013H:外部中断1入口地址;001BH:定时/计数器1溢出中断入口地址;0023H:串行口1中断入口地址;以上是经典51单片机程序存储器所占用的情况。一、程序存储器二、
数据存储器数据存储器用于存放程序运行过程中产生的中间数据等。51单片机对数据存储器可进行读和写操作。单片机数据存储器总体上可分为片内和片外两部分。片外可以扩充64KB,地址为十六进制的0000H~0FFFFH。这是可以用数据传送指令MOVX直接访问的空间。片内情况比较复杂,对于经典51单片机,片内数据存储器空间使用8位地址。80X51型产品,片内有256个存储单元,地址为00H~0FFH,其中低128字节、地址为00~7FH的单元为一般数据RAM;高128字节、地址为80H~0FFH的单元为所谓“特殊功能寄存器(简称SFR)”;对于型号为8X52等的芯片,虽然地址同样为00~FFH,但却有256+128个存储单元,80H~0FFH的地址由特殊功能寄存器(SFR)以及附加的一般数据RAM,共两个128字节的单元共享,它们的访问通过不同的寻址方式区别。这部分空间如图2.4靠左边紧挨着程序存储器的部分所示,这是用MOV等指令访问的空间,是CPU访问最为快捷方便的区域,可以称为片内基本的(常规的)数据RAM。二、数据存储器二、
数据存储器对于STC15系列单片机,片内除了具有上基本的数据RAM外(部分产品没有附加的128字节RAM),大部分芯片还扩展有更多的数据存储器空间。首先是扩展的数据RAM,以STC15W4K32S4为例,这部分空间为4KB-256=3840字节。这部分空间使用16位地址访问,地址编码为0000~0EFFH。其次,STC15单片机还有一块独立的Flash数据存储器,该数据存储器是电可擦除和电可改写的,同时掉电数据不丢失。二、数据存储器二、
数据存储器1.片内基本的数据RAM如前所述,单片机片内基本的数据RAM,组成图如图2.5所示。在片内基本数据RAM中,低128字节,地址为00~7FH的单元,用于存放程序运行的一般结果,其使用完全由用户自定义。其中(见图2.6):(1)地址00到1FH的32个单元,51单片机将其定义为工作寄存器区,共定义了4组工作寄存器,每组中各有8个寄存器,分别命名为R0~R7。用户程序可以方便地选择一组R0~R7作为当前工作寄存器进行访问。未被选择为当前工作寄存器的单元,不能使用R0~R7的名字来访问,但仍然可以通过地址来访问。(2)位寻址区。地址20H~2FH,共16字节的单元,这一区域的每一单元的每一位(共128位)都具有一个地址,称为位地址,这一部分位地址编码从00~7FH,依次从20H号单元的D0位到2FH号单元的D7位编址。这个区域的单元,除了可以作为一般字节单元进行读/写之外,CPU还可以对其中的每一位进行寻址、操作。(3)其他。地址为30H~7FH。这部分单元,用户可自由使用。一般可将堆栈区设置在这一区域。二、数据存储器1.片内基本的数据RAM二、
数据存储器图2.5片内基本数据RAM组成图图2.6片内基本RAM低128字节单元组成图二、数据存储器图2.5片内基本数据RAM组成图二、
数据存储器片内基本数据RAM地址从80H至FFH的单元有两部分,其中一部分称为特殊功能寄存器,简称为SFR。所谓特殊功能寄存器,主要包括控制片内各功能单元(定时器、串行口、中断等)工作方式的一些寄存器,以及一些命名的数据寄存器,如累加器A等等。STC15系列单片机的SFR地址与名称对应表如表2.1所示,注意其中有些地址单元是空白的,表明并无实际的特殊功能寄存器对应,因此也不能访问。寄存器名字下面的8为二进制数为单片机复位以后的初始值,x表示该位为随机值。这些SFR地址的编排,例如P0地址为80H,SP地址为81H,DPL地址为82H,等等。二、数据存储器二、
数据存储器表2.1SFR地址与名称对应表可位寻址不可位寻址地址+0+1+2+3+4+5+6+780HP011111111SP00000111DPL00000000DPH00000000S4CON00000000S4BUF××××××××——PCON0011000088HTCON00000000TMOD00000000TL000000000TL100000000TH000000000TH100000000AUXR00000001INT_CLKOAUXR20000000090HP111111111P1M100000000P1M000000000P0M100000000P0M000000000P2M100000000P2M000000000CUK_DIVPCON298HSCON00000000SBUF××××××××S2CON00000000S2BUF××××××××——P1ASF00000000————A0HP211111111BUS_SPEED××××××10P_SW100000000——————————A8HIE00000000SADDRWKTCLWKTCL_CNT01111111WKTCHWKTCH_CNT01111111S3CON00000000S3BUF××××××××——IE2×0000000B0HP311111111P3M100000000P3M000000000P4M100000000P4MO00000000IP2×××00000IP2H××××××00IPH×0000000B8HIP×0×00000SADENP_SW2——ADC_CONTR00000000ADC_RES00000000ADC_RESL00000000——C0HP411111111WDT_CONTR0×000000IAP_DATA11111111IAP_ADDRH00000000IAP_ADDRL00000000IAP_CMD××××××00IAP_TRIG××××××××IAP_CONTR00000000C8HP511111111P5M1××000000P5M0××000000P6M100000000P6M000000000SPSTAT00××××××SPCTL00000100SPDAT00000000D0HPSW00000000T4T3M00000000T4H00000000T4L00000000T3H00000000T3L00000000T2H00000000T2L00000000D8HCCON00××0000CMOD0××××000CCAPM0×0000000CCAPM1×0000000CCAPM2×0000000——————E0HACC00000000P7M100000000P7M000000000——————————E8HP611111111CL00000000CCAP0L00000000CCAP1L00000000CCAP2L00000000——————F0HB00000000PWMCFG00000000PCA_PWM000××××00PCA_PWM100××××00PCA_PWM200××××00PWMCR00000000PWMIF×0000000PWMFDCR××000000F8HP711111111CH00000000CCAP0H00000000CCAP1H00000000CCAP2H00000000——————二、数据存储器表2.1SFR地址与名称对应表可位寻址不二、
数据存储器A累加器ACC:和其他微处理器一样,A累加器也是CPU中使用最频繁的寄存器,一般算术运算指令都需要A累加器提供一个操作数。B寄存器:在程序中可用于存放用户的一般结果,在乘除指令中需要B寄存器提供一个操作数。DPL、DPH:这两个寄存器可合成一个16位的寄存器DPTR,DPH提供高8位,DPL提供低8位。在间接寻址方式中,DPTR作为间址寄存器,提供操作数的16位地址。当然,它们也可单独分别使用。实际上STC15单片机(若是有外部数据总线的封装)在物理上有两个DPTR16位寄存器,它们共用一个逻辑地址。可以通过名字为AUXR1(P_SW1)的SFR(地址为0A2H)的D0位选择当前有效的DPTR(即当前指令中的DPTR),此D0=1或0,分别选择某一个DPTR为有效。这样,方便在程序中,切换两个不同的16位地址指针。SP:堆栈指针,8位,总是指向堆栈顶单元,其值随着堆栈顶的浮动而变动,当推入一个字节进入堆栈,SP自动加1,当从堆栈弹出一个字节,SP自动减1。单片机复位以后,SP的值为07,指向片内基本数据RAM区,一般来讲,用户都需要将堆栈指针SP调到更合适的位置。二、数据存储器A累加器ACC:和其他微处理器一样,A累加器二、
数据存储器P0~P7:这8个SFR实际上是单片机中8个并行开关量输入/输出端口的输出锁存器和输入缓冲器。也就是说,CPU通过将数据写至某一个端口SFR寄存器Px,实现将该数据输出至对应引脚;或者,CPU通过读某一个端口SFR寄存器Py,实现输入对应引脚状态。这8个SFR是可以位寻址的,其每一位Px.y,都实际对应引脚口线的相应位Px.y。PSW:程序状态字,即一般所说的标志寄存器,存放程序运行过程中的一些特征标志。PSW各位的定义如表2.2所示。位
序
PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0标志位
CYACF0RS1RS0OV/P表2.2PSW的各状态位定义二、数据存储器P0~P7:这8个SFR实际上是单片机中8个二、
数据存储器(1)CY:进位标志位。在进行加(或减)法运算时,如果执行的结果最高位D7有进位(或借位),CY置1,否则CY清零。在进行位操作时,CY又是位操作累加器,助记符用C表示。(2)AC:辅助进位标志。进行加法或减法操作时,当发生低四位向高四位进位或借位时,AC由硬件置位,否则AC位被置0。在进行十进制调整指令时,将借助AC状态进行判断。(3)FO:用户标志位。该位为用户自定义的状态标记,用户可根据需要自由定义其意义。(4)RS1和RS0:当前工作寄存器选择控制位。通过软件置0或1该两位,来选择当前工作寄存器组,如表2.3所示。组号RS1RS0当前工作寄存器组对应RAM地址000000~07H101108~0FH210210H~17H311318H~1FH表2.3RS1、RS0选择的当前工作寄存器二、数据存储器(1)CY:进位标志位。在进行加(或减)法运二、
数据存储器(5)OV:溢出标志位。当执行算术加减指令时,此标志状态等于最高位与次高位向前的进位或借位的“异或”。在用补码表示的有符号的加减运算中,OV=1表示加减运算结果超出了结果表示的有效范围(-128~+127),即运算结果是错误的,反之,OV=0表示运算正确,即无溢出产生。乘除法指令也会影响溢出标志,具体请见指令系统。(6)P:奇偶标志位。P总是跟踪反应累加器A中1的个数的奇偶性,若累加器中1的个数为奇数则P=1,否则P=0。在表2.1中,地址能被8整除的那些SFR为可以位寻址的SFR,也就是说这些SFR的每一个二进制位也被编址了一个地址,称为位地址。这些位地址和低128字节RAM中的位地址是统一编址的。即这里的位地址从80H开始编址,直到0FFH。位地址的编址规律是:可位寻址SFR的字节地址值,是该SFR的D0位的位地址值,加1是D1位的地址,加7是D7位的位地址,如此等等。例如,P0的D0位位地址是80H;P0的D7位的位地址是87H。此外,表2.1中,各SFR方框中的二进制值,是该SFR在单片机复位以后的初始设置值。二、数据存储器(5)OV:溢出标志位。当执行算术加减指令时二、
数据存储器片内基本数据RAM中,还有一块物理存储器,其地址也是从80H至0FFH,和SFR地址空间相同。CPU通过不同的寻址方式来区别这两块区域的访问。具体来说,访问SFR,只能通过直接寻址的方法;访问另一块80H-0FFH,只能通过间接寻址的方法。间接寻址访问的这一块数据RAM,完全归用户自由使用,系统没有占用。由于对堆栈的访问是属于用SP堆栈指针间接寻址的,因此,也可以将堆栈设置在这一区域,以节省片内0~7FH区域的使用。也就是说,51单片机的堆栈,可以设置在片内基本数据RAM的低128字节地址区域,或者是高128字节地址使用间接寻址的区域,当然也只能设置在这两个区域之中。二、数据存储器二、
数据存储器2.片内扩展的数据RAM空间STC15大部分产品,在片内还扩展了另一部分数据存储器空间,这部分空间一般比上述基本数据RAM要大得多。以STC15W4K32S4为例,这部分空间为4KB-256B=3840字节,这部分空间使用16位地址访问,地址编码为0000~0EFFH。单片机对这部分空间的访问,使用和访问片外数据存储器空间一样的指令(即MOVX指令),单片机会根据SFR中地址为8EH的寄存器AUXR的D1位(名为EXTRAM)的状态,决定是访问片外的地址单元,还是片内的相应地址单元。当EXTRAM=0时,单片机MOVX指令访问片内的单元;当EXTRAM=1时,单片机MOVX指令访问片外的单元。用户可以用指令改变EXTRAM的状态。二、数据存储器2.片内扩展的数据RAM空间三、
片内数据Flash存储器除了以上数据存储器,STC15系列单片机片内还集成了一块较大容量的EEPROM(电可擦可编程只读存储器),用于掉电不丢失数据的存储,一般称之为数据Flash。该数据Flash有单独的地址空间,采用IAP技术(“在应用编程”,即下面要介绍的访问方法)访问时,地址编址从0开始。这些Flash单元,从首地址单元开始,每512字节为一个扇区。CPU每次擦除操作,都必须整个扇区全部擦除,因此建议同一次修改的数据放在同一个扇区,不是同一次修改的数据放在不同的扇区,这样比较好管理。例如,芯片STC15W4K32S4片内数据Flash有26KB,用IAP技术访问时,其地址为0000~67FFH,分为52个扇区。数据Flash可用于保存一些需要在应用过程中修改并且掉电不丢失的数据。在用户程序中,可以对数据Flash进行字节读/字节写/扇区擦除操作。为可靠起见,在工作电压Vcc偏低时,建议不要进行数据Flash的IAP访问操作。特殊功能寄存器PCON的D5位LVDF为低压检测标志位,当工作电压Vcc低于低压检测门槛电压时,该位置1,所以在LVDF为1时,不要进行Flash的IAP操作。三、片内数据Flash存储器除了以上数据存储器,STC15三、
片内数据Flash存储器表2.4数据Flash的IAP操作功能寄存器寄存器名地址MSB位地址及符号LSB复位值IAP_DATAC2H
11111111BIAP_ADDRHC3H
00000000BIAP_ADDRLC4H
00000000BIAP_CMDC5HMS1MS0xxxxx000BIAP_TRIGC6H
xxxxxxxxBIAP_CONTRC7HIAPENSWBSSWRSTCMD_FAIL-WT2WT1WT00000x000B以下说明中,ISP/IAP指的是采用ISP/IAP技术访问数据Flash的操作。(1)ISP/IAP数据寄存器IAP_DATAISP/IAP操作时的数据寄存器。IAP从Flash读出的数据放在此处,向Flash写的数据也需放在此处。(2)ISP/IAP地址寄存器IAP_ADDRH和IAP_ADDRLIAP_ADDRH:ISP/IAP操作时的地址寄存器高八位。IAP_ADDRL:ISP/IAP操作时的地址寄存器低八位。用于存放要读/写/擦除的数据Flash单元的地址。三、片内数据Flash存储器表2.4数据Flash的I三、
片内数据Flash存储器表2.5ISP/IAP操作命令编码MS1MS0命令/操作模式
00Standby待机模式,无ISP操作
01从用户的应用程序区对数据Flash区进行字节读
10从用户的应用程序区对数据Flash区进行字节编程
11从用户的应用程序区对数据Flash区进行扇区擦除(3)ISP/IAP命令寄存器IAP_CMD(4)ISP/IAP命令触发寄存器IAP_TRIGIAP_TRIG:ISP/IAP操作时的命令触发寄存器。在IAPEN(IAP_CONTR.7)=1时,对IAP_TRIG先写入5AH,再写入A5H,ISP/IAP命令才会生效。(5)ISP/IAP命令寄存器IAP_CONTR三、片内数据Flash存储器表2.5ISP/IAP三、
片内数据Flash存储器ISP/IAP控制寄存器相关位解释如下:IAPEN:ISP/IAP功能允许位。0:禁止IAP读/写/擦除;1:允许IAP读/写/擦除。CMD_FAIL:如果由IAP地址寄存器IAP_ADDRH和IAP_ADDRL的值指向了非法地址或无效地址,且送了ISP/IAP命令及触发,则CMD_FAIL为1,需由软件清零。WT2、WT1、WT0设置ISP/IAP操作时CPU等待时间,具体设置方法如表2.6所示。设置等待时间CPU等待时间(多少个CPU工作时钟)WT2WT1WT0读(2个时钟)编程(=55us)扇区擦除(=21ms)系统时钟1112个时钟55个时钟21012个时钟≥1MHz1102个时钟110个时钟42024个时钟≥2MHz1012个时钟165个时钟63036个时钟≥3MHz1002个时钟330个时钟126072个时钟≥6MHz0112个时钟660个时钟252144个时钟≥12MHz0102个时钟1100个时钟420240个时钟≥20MHz0012个时钟1320个时钟504288个时钟≥24MHz0002个时钟1760个时钟672384个时钟≥30MHz表2.6ISP/IAP操作CPU等待时间设置三、片内数据Flash存储器ISP/IAP控制寄存器相关位三、
片内数据Flash存储器在了解了以上SFR的用法后,可归纳出对数据Flash的ISP/IAP访问操作的基本步骤:(1)将读/写/擦除的数据Flash单元的地址装入IAP_ADDRH及IAP_ADDRL寄存器,注意,若要删除某一扇区,则地址可为该扇区任一单元地址;(2)若是编程操作,则将要写入的数据装入IAP_DATA寄存器;(3)根据系统时钟值及表2.6,设置IAP_CONTR中的等待时间编码WT2、WT1、WT0;(4)将IAP_CONTR的D7位置1;(5)根据操作类型,将操作命令编码写入IAP_CMD;(6)向IAP_TRIG寄存器先后写入5AH及0A5H。注意:在对某一个字节地址写入时,必须保证其内容为“0FFH”,也就是先要将以前写入的内容擦除掉,才能写入新的数据。三、片内数据Flash存储器在了解了以上SFR的用法后,可第三节并行I/O口并行I/O口的工作模式及其设置
并行I/O口使用注意
第三节并行I/O口并行I/O口的工作模式及其设置 并行I/O口并行I/O接口是实际应用中使用最多、最普遍的接口类型,开关量的输入/输出都是通过并行I/O接口实现的。STC15系列单片机,根据芯片型号和封装的不同,最多具有P0~P7共8个I/O口,62根口线。每个端口的每个口线,均具有输出的锁存和驱动,以及输入的三态缓冲,它们都可以被用户程序配置为4种工作模式之一。并行I/O口一、I/O口的工作模式及其设置STC15单片机的各I/O口的口线,均可被配置为如表2.7所示的4种工作模式之一。这种配置是通过设置几个SFR特殊功能寄存器PxM1及PxM1实现的。如表所示,通过设置PxM1寄存器,以及PxM0寄存器的相应位,可配置Px的相应口线的工作模式,这里,x=0~7,分别对应8个I/O口。例如,将寄存器P1M1的D1位设置为0,将P1M0的D1位设置为1,将把口P1的口线P1.1配置为推挽输出模式。模式PxM1PxM0I/O口工作模式000准双线I/O口模式,弱上拉。灌电流20mA,拉电流270μA101推挽输出,强上拉输出可达20mA,要外加限流电阻470~1KΩ210仅作为输入(高阻态)311开漏模式(无上拉),作输出时应外接上拉电阻表2.7端口的工作模式一、I/O口的工作模式及其设置STC15单片机的各I/O口的一、I/O口的工作模式及其设置4种工作模式的特点:1.模式0——准双向I/O口模式这是与经典51单片机兼容的一种工作模式。在这种工作模式下,口线可以进行开关量的输出/输入操作。如图2.7为任一位口线在此种工作模式下的结构原理图。当口线作输出功能时,直接向口线的锁存器SFR写1或0即可。输出1,口线输出级提供一个较弱的上拉,图中靠右边的两个较弱的上拉电路提供约几十和200μA拉电流负载;输出0时,输出级可提供较大的灌电流负载(最大20mA)。图中强拉的上拉管子的存在,使得当口锁存器的数据从0变至1时,口线能提供2个CPU时钟长的强上拉作用,从而有助于口引脚迅速地上拉至高电平。经过口线的输出级,1或0即出现在端口引脚上。当需要作输入功能,以引脚状态时,首先需要向口线锁存器写1,以关断引脚上连接的下拉管子,才能将引脚状态读入,如图2.7所示。其次,引脚状态是经三态缓冲器进入内部总线的,通过读相应的口线SFR,引脚状态就会读至CPU中。一、I/O口的工作模式及其设置4种工作模式的特点:一、I/O口的工作模式及其设置图2.7准双向输出口线的结构图一、I/O口的工作模式及其设置图2.7准双向输出口线的结一、I/O口的工作模式及其设置2.模式1——推挽输出模式这是一种同时提供较大拉电流负载和灌电流负载的准双向I/O模式。结构图如图2.8所示。其操作同上一种模式。在这种模式下,输出高电平时,引脚都能提供20mA的拉电流负载;输出低电平,引脚能提供20mA的灌负载负载。而口线作输入使用时,同上一种模式一样,也必须先向口锁存器写入1,以关断输出级中的下拉管子,使引脚状态能正确地进入输入缓冲器,读入至内部总线。图2.8推挽输出模式口线的结构图一、I/O口的工作模式及其设置2.模式1——推挽输出模式图一、I/O口的工作模式及其设置3.模式2——仅输入模式本工作模式仅作为输入方式使用,此时,引脚呈现为一个高输入阻抗的端子,对外设不会吸入较大的负载电流。结构图如图2.9所示。在此种模式之下,直接读口线的SFR,可读入引脚状态,读之前不需要先向口锁存器写1。图2.9仅输入模式口线的结构图一、I/O口的工作模式及其设置3.模式2——仅输入模式图2一、I/O口的工作模式及其设置4.模式3——开漏模式本工作模式下,输出级提供“开漏”输出,即集电极(漏极)开路输出(OC方式)。结构图如图2.10所示。当端口输出1时,输出级中的管子关断,接在其集电极的引脚处于悬空状态,此时需要在引脚上外接一个上拉电阻,以获得高电平;当端口输出0时,输出级的管子导通,引脚电位被钳制在低。开漏输出的口线,外部正确接法如图2.11所示。开漏输出的优势是可以提供“线与”功能:几个具有开漏输出的引脚并接在一起,所得到的新的端子,其逻辑状态是并接入的线的“与”。本工作模式下输入和准双向口输入一样,在读入口线SFR以得到引脚状态以前,需要先向相应的口线SFR写入1,以关断输出级的管子。
图2.10开漏输出模式口线的结构图图2.11开漏输出的口线接法一、I/O口的工作模式及其设置4.模式3——开漏模式二、并行I/O口使用注意事项1.关于数据/地址/控制三总线微型计算机系统一般采用三总线结构,即以数据总线DB、地址总线AB、控制总线CB连接各组成部件。对于STC15单片机为主处理器组成的系统来说,也是采用这样的结构。STC15单片机的数据总线,由P0口提供,双向8位,地址总线16位,由P0、P2口提供,P0口提供地址低8位,和数据总线复用,P2口提供高8位地址。控制总线主要信号由P3、P4口提供,例如,WR、RD、ALE等。如图2.12为STC15单片机片外扩展三总线的一般模型图。若单片机需要进行片外的三总线扩充,则使用到的相应口线都不能再作为一般的I/O使用了。图2.12STC15单片机三总线扩展模型二、并行I/O口使用注意事项1.关于数据/地址/控制三总线图二、并行I/O口使用注意事项2.引脚口线的多功能性STC单片机的口线,除上述介绍的三总线以外,其他也都具有多种功能。具体功能安排请见芯片的引脚图。这里需要注意一种情况,即STC15单片机一些产品,如STC15W4K60S4等,可以将几种特殊的片内部件的引脚,在多个端口间切换。例如,串口1的RxD和TxD引脚,既可安排在P3.0和P3.1上,也可安排在P3.6和P3.7上,还可安排在P1.6和P1.7上,串口1的这种安排,用户可以通过设置AUXR1(P_SW1)的SFR(地址0A2H)的D7、D6位的状态来控制。类似的部件还包括PCA/CCP/PWM、SPI、串口2~4等。当然,在实际应用中,这些部件的功能引脚显然各自只能出现在某一个口线上。同样,若单片机系统需要使用某一口线的第二或第三功能,则相应口线也不能再作为一般的I/O使用了。二、并行I/O口使用注意事项2.引脚口线的多功能性二、并行I/O口使用注意事项3.复位状态和驱动能力单片机复位后,各端口锁存器SFRs置全1。各端口处于准双线/弱上拉工作模式,进入程序后,用户可按实际需要,任意设置成4种工作模式之一。必须注意,不管该口线是工作在普通I/O还是第二功能、第三功能,若非工作于模式2——仅输入模式,则当需要从引脚输入时,都需要先向口线锁存器SFR的对应位写1。复位后各端口引脚已处于可输入状态,若运行过程中,修改了口线SFR对应位的状态,又需要使用该口线的输入功能,必须先向对应的锁存器SFR相应位写入1。STC15单片机的口线,都具有最大20mA的灌电流输出驱动能力,若工作于模式1——推挽输出模式,则还有20mA的拉电流驱动力。但是,单片机芯片总的功耗有限制,一般40引脚以上的芯片,总电流不超过120mA,40引脚以下的芯片,总电流不能超过90mA。因此,用户设计时,并不能每个引脚都使用其最大驱动能力。绝大部分引脚在驱动较大负载时,需外加驱动芯片或三极管增加驱动能力。二、并行I/O口使用注意事项3.复位状态和驱动能力二、并行I/O口使用注意事项4.读端口与读锁存器的区别单片机运行过程中,除了可能执行读引脚状态的操作外,还可能有另外一种读并行口的操作,即读口锁存器状态的操作。此时单片机内部会将端口锁存器的状态读入内部总线。显然,读引脚状态和读口锁存器状态,结果是不一样的。哪些指令产生读口锁存器的操作,哪些产生读引脚的操作呢?单片机对并行口的“读——改——写”指令执行的是读口锁存器的操作,除此之外其他的读口指令执行的是读引脚的操作。所谓“读——改——写”指令,是指那些先将端口(锁存器)数据读入,经过运算修改后,再写回端口(锁存器)的指令。例如ANLP0,A,该指令将P0口锁存器的内容和A累加器相与,结果回写到P0口锁存器,这里开始读的就是P0口锁存器。类似的指令还有以端口为目标操作数的ORL、XRL、JBC、CPL、INC、DEC等指令。二、并行I/O口使用注意事项4.读端口与读锁存器的区别第四节STC15单片机时钟、复位及启动流程时钟电路
复位及启动流程
第四节STC15单片机时钟、复位及启动流程时钟电路 一、时钟电路微处理器作为一个复杂的时序逻辑电路,其工作必须要有时钟驱动。给单片机提供合适的时钟是单片机能正常工作的基本条件。主频时钟的频率也直接决定单片机执行指令的速度。STC15系列单片机的时钟可以有两种产生方法,内部高精度R/C时钟和外部时钟(外部输入的时钟或外部晶体振荡产生的时钟)。一些产品两种方法都可以使用,如STC15W4K32S4系列等;另一些产品则只能使用内部高精度R/C时钟,如STC15F100W系列、STC15W201S系列等。一、时钟电路一、时钟电路1.外部时钟最常用的方法就是在片外接一个晶体振荡元件(简称晶振),利用片内的振荡电路产生主时钟,接法如图2.13所示。图2.13外接晶振产生时钟图2.14直接外接时钟一、时钟电路1.外部时钟图2.13外接晶振产生时钟图一、时钟电路图中晶振多为石英晶体,其振荡频率决定了主频时钟的频率,可根据系统对快速性的要求和具体单片机芯片允许的频率范围选择。例如传统的51芯片最高频率为12MHz,STC15最高主频35MHz或更高。实际应用中,并不是主频愈高愈好,主频愈高,对外围器件的要求愈高,功耗愈大,可靠性也会相应降低,所以应根据实际应用要求来确定较为合适的频率。对于石英晶体振荡器,图中电容器C1、C2可选30pF左右的独石或其他高频特性较好的电容。51单片机也可使用外时钟信号。即将外部已有的时钟信号引入单片机内作为主频时钟,接法如图2.14所示。图中的门电路可以提高驱动能力,改善波形特性。外部时钟信号一般需要保证一定的脉冲宽度,时钟频率低于单片机最高主频指标。一、时钟电路一、时钟电路2.内部R/C时钟STC15单片机也可以选择使用片内产生的R/C时钟,有些芯片则只能使用这种方式。STC单片机内部高精度R/C时钟具有±0.3%的精度,和±1%温飘(-40℃~+85℃)或±0.6%温飘(-20℃~+65℃)。STC15系列单片机选择这种时钟方式时,需要在给芯片装入程序代码时进行适当设置。利用STC公司发布的的ISP(在系统编程)软件——STC-ISP(V6.57),可以完成程序代码的下载(写入单片机片内程序Flash)及其他的一些初始化的设置,操作界面如图2.15所示。设置完后,单击“下载/编程”,这些设置及单片机的程序代码将一起写入到单片机。一、时钟电路2.内部R/C时钟一、时钟电路图2.15选择内部R/C时钟的设置一、时钟电路图2.15一、时钟电路3.主时钟分频、时钟输出和分频寄存器以上方法产生的时钟称为主时钟MCLK,单片机内部控制CPU、定时器、串行口、SPI、CCP/PWM/PCA、A/D转换的实际工作时钟称为系统时钟SysClk(相当于经典51单片机中的机器周期概念)。系统时钟是对主时钟分频而得,分频系数由一个SFR时钟分频控制器(CLK_DIV,地址97H)设置,CLK_DIV寄存器各位的定义如表2.8所示。SFRNameD7D6D5D4D3D2D1D0CLK_DIV(PCON2)MCKO_S1MCKO_S0ADRJTx_RxMCLKO_2CLKS2CLKS1CLKS0表2.8时钟分频寄存器的定义一、时钟电路3.主时钟分频、时钟输出和分频寄存器SFRNa一、时钟电路(1)CLKS2、CLKS1、CLKS0:系统时钟频率选择控制位,单片机系统时钟频率由这三位配置,具体设置情况如下表2.9所示。通过设置CLKS2、CLKS1、CLKS0这三位,可以让单片机在较低的频率上运行。CLKS2CLKS1CLKS0系统时钟频率设置000主时钟频率/1,不分频001主时钟频率/2010主时钟频率/4011主时钟频率/8100主时钟频率/16101主时钟频率/32110主时钟频率/64111主时钟频率/128表2.9主时钟分频设置一、时钟电路(1)CLKS2、CLKS1、CLKS0:系统时一、时钟电路(2)MCKO_S1及MCKO_S1设置引脚MCLKO/P5.4或MCLKO_2/P1.6是否对外输出时钟,输出的时钟频率为多少,具体情况见表2.10所示。还需要注意,STC15系列中,有的芯片输出的是系统时钟的分频信号,如STC15W4K32S4系列等,有的芯片输出的是主时钟的分频信号,如STC15W404S系列等。具体情况请见STC15产品手册。此外,STC15系列5V单片机I/O口的对外输出速度最快不超过13.5MHz,3.3V单片机I/O口的对外输出速度最快不超过8MHz,这个限制也需要在输出时钟时予以考虑。(3)MCLKO_2设置是在MCLKO/P5.4引脚还是在MCLKO_2/P1.6引脚上输出时钟,为0在MCLKO引脚,为1在MCLKO_2引脚。MCKO_S1MCKO_S0引脚MCLKO或MCLKO_2对外输出时钟设置00不对外输出时钟01对外输出时钟,输出时钟频率不分频
10对外输出时钟,输出时钟频率2分频
11对外输出时钟,输出时钟频率4分频
表2.10主时钟对外输出设置一、时钟电路(2)MCKO_S1及MCKO_S1设置引脚M一、时钟电路4.STC15单片机时序说明所谓时序,一般指的是在CPU运行时,引脚信号随着时钟而变化的时间与次序的安排。单片机的特点是,大部分指令的执行,只需在芯片内完成,因此也无引脚信号的变化。只是在执行片外数据存储器读/写操作时,才涉及片外总线的变化,而引起片外三总线的操作时序。一般而言,指令执行时引起的片内逻辑信号的变化,我们并不关心。但为了对指令的执行有一个基本的概念,以及对程序运行时间计算的了解,仍需要理解以下概念:(1)主时钟频率、系统时钟频率、机器周期。主时钟频率MCLK,如前所述,是单片机运行的基本时钟,它可以在片外产生,例如由片外输入或是由片外晶振决定;也可由片内R/C电路直接产生。这个频率是程序员感知的系统最高频率,其他时钟频率都是来源于它。一、时钟电路4.STC15单片机时序说明一、时钟电路系统时钟频率SysClk,这是STC15单片机引入的名词,它或者与主时钟MCLK同频率,或者是主时钟的若干分频得到。系统时钟是单片机片内各种操作的同步时钟,单片机内各种操作的工作时钟,比如指令执行时间单位、各种定时器的定时计数脉冲等等都是它。所以,系统时钟才是真正的片内的工作时钟。机器周期,这是传统单片机或其他微处理器的基本概念,它是处理器执行一个基本操作所需要的时间,也是系统工作的一个基本时间单位。在STC15单片机中,机器周期等价于系统时钟SysClk频率的倒数,即它与系统时钟是同一个信号、同一个概念。一、时钟电路一、时钟电路(2)指令执行时间。指令的执行时间,即指令执行所需要的机器周期数。传统上,将指令的执行时间简称为指令周期。STC15单片机的各类指令所需要的时间,在附录B的表格中都详细的标明了,总体来说,这些指令执行时间和指令长度(即指令代码的字节数)分为以下几种类型:①单字节单周期:这类指令的长度是一个字节,执行时间是一个机器周期(也可以说是在一个系统时钟内完成)。CPU在一个系统时钟内,完成取指令码、译码、执行等操作。②双字节单周期:这类指令的长度是2个字节,执行时间是一个机器周期。CPU在一个系统时钟内,完成取指令码两次(每次一字节)、译码、执行等操作。③单字节双周期:这类指令的长度是一个字节,但执行时间是两个机器周期。CPU在第一个系统时钟内,完成取指令码,然后在本时钟周期及接下来的时钟周期内,完成指令译码、执行等操作。④多字节多周期:这类指令的长度是两个或三个字节,执行时间最少2个机器周期,最多5个机器周期(不考虑访问片外数据存储器空间的指令)。CPU在第一个系统时钟内,完成取2个指令码字节,在第二个系统时钟内,取第三个指令码字节(如有的话),然后在第一时钟周期及接下来的时钟周期内,完成指令译码、执行等操作。一、时钟电路(2)指令执行时间。指令的执行时间,即指令执行所二、复位及启动流程单片机复位的意义是给片内各寄存器和触发器一个确定的初始状态。可靠的复位是单片机能正确执行用户程序的必要前提。STC15单片机的复位有两种类型四种组合:冷启动/热启动复位、硬(件)复位/软(件)复位,具体共有7种复位方式,包括:外部RST引脚复位,软件复位,掉电复位/上电复位,内部低压检测复位,MAX810专用复位电路复位,看门狗复位以及程序地址非法复位。以下首先介绍与复位操作有关的两个SFR,再介绍各类复位操作。二、复位及启动流程二、复位及启动流程1.ISP/IAP控制寄存器ISP/IAP控制寄存器(IAP_CONTR,地址0C7H)各位定义如表2.11所示。其中:SWBS:为0,则复位后从用户应用程序区启动,为1从系统ISP监控程序区启动(用于下载用户程序代码至本芯片的程序存储器)。SWRST:为1,软件控制产生复位;为0:无操作。位D7D6D5D4D3D2D1D0定义IAPENSWBSSWRSTCMD_FAIL-WT2WT1WT0表2.11ISP/IAP控制寄存器各位定义二、复位及启动流程1.ISP/IAP控制寄存器位D7D6二、复位及启动流程2.电源控制寄存器电源控制寄存器(PCON,地址87H)各位定义如表2.11所示。表2.12中,POF为冷启动复位标志,所谓冷启动,指单片机从无电到接通电源所进行的复位操作。当单片机冷启动复位后,POF=1;除此之外的热启动,此位保持不变。在冷启动后,此位可以立即用软件清零,如此,用户程序可以通过此位的状态是0还是1,来判断单片机是否是冷启动。位D7D6D5D4D3D2D1D0定义SMODSMOD0LVDFPOFGF1GF0PDIDL表2.12电源控制寄存器各位定义二、复位及启动流程2.电源控制寄存器位D7D6D5D4二、复位及启动流程3.掉电复位/上电复位这是一种冷启动复位,即给单片机接通电源的复位。当电源电压VCC低于掉电复位/上电复位检测门槛电压时,所有的逻辑电路都会复位。当内部VCC上升至上电复位检测门槛电压以上后,延时32768个时钟,掉电复位/上电复位结束。复位状态结束后,单片机将特殊功能寄存器IAP_CONTR中的SWBS位置1,同时从系统ISP监控程序区启动ISP监控程序,若监控程序检测不到合法的ISP下载指令流(即无用户程序代码下载),或下载ISP指令流完毕,均会执行一个软复位到用户的程序区执行用户程序。对于5V单片机,它的掉电复位/上电复位检测门槛电压为3.2V;对于3.3V单片机,它的掉电复位/上电复位检测门槛电压为1.8V。4.MAX810专用复位电路复位这也是一种冷启动复位。STC15系列单片机内部集成了MAX810专用复位电路。若MAX810专用复位电路在执行STC-ISP下载时被允许,则在掉电复位/上电复位状态结束后将产生约180mS复位延时,复位才被解除,解除后继续按前述掉电复位/上电复位流程同样操作。二、复位及启动流程3.掉电复位/上电复位二、复位及启动流程5.外部RST引脚复位这是一种通过在单片机RST引脚上的施加一定宽度的复位高电平信号引起的复位。这种复位属于热启动复位(按STC说法,是热启动/硬复位——由硬件引起的复位)。外部RST引脚在芯片出厂时被配置为I/O口线,要将其配置为复位引脚,可在用STC-ISP程序给STC15单片机下载程序代码时同时设置。如图2.15中可看到选项“复位脚用作I/O”已勾选,此时,RST所在的引脚将只能用作普通的并行I/O操作了。将RST复位引脚拉高并维持至少24个时钟加20us后,单片机会进入复位状态,将RST复位引脚拉回低电平后,单片机结束复位状态并将特殊功能寄存器IAP_CONTR中的SWBS位置1,同时从系统ISP监控程序区启动。若监控程序检测不到合法的ISP下载指令流(即无用户程序代码下载),或下载ISP指令流完毕,均会执行一个软复位到用户的程序区执行用户程序。如图2.16所示的简单的C充放电路,可用于RST引脚的复位。当上电或按按钮SW以后,电源将短时间将RST引脚拉为高电平,待电容充满电后(或按钮松开后),RST引脚电平将回复至低电平,复位信号结束。由于STC15单片机内部具有上电复位逻辑,因此,除非应用系统中需要手动复位外,一般不需要外部RST引脚复位,这是STC单片机与经典单片机不同的地方。二、复位及启动流程5.外部RST引脚复位二、复位及启动流程图2.16RST复位信号产生二、复位及启动流程图2.16RST复位信号产生二、复位及启动流程6.软件控制复位有时,在用户应用程序运行过程中,会因某种特殊原因,需要将单片机复位重启。这时STD15单片机可通过操作SFR中的IAP_CONTR,很简单实现此功能。如前所述,用户可以用指令设置IAP_CONTR中的D6/D5位——SWBS/SWRST,就可实现2种不同的复位,如表2.13所示。这种复位当然属于热启动复位(按STC说法,是热启动、软复位——由软件引起的复位)。SWBSSWRST启动类型11软件复位并切换到系统ISP监控程序区开始执行程序01软件复位并切换到用户应用程序区开始执行程序*0无操作表2.13软件控制复位操作二、复位及启动流程6.软件控制复位SWBSSWRST启动类二、复位及启动流程7.看门狗(WDT)复位“看门狗(WatchDog)”技术是在微机控制系统中常用的一种抗干扰技术。当微机控制系统在较强干扰环境下运行时,有时干扰会造成CPU中的程序计数器PC值乱码,从而造成程序跳到某个随机的位置,即程序跑飞。若没有应对措施,可能会造成系统瘫痪等严重后果。所谓看门狗,实际上是一种定时器((Watch-Dog-Timer,WDT),它会独立于程序运行而计时,当计时时间到(即WDT溢出)后,可以让它发出信号,迫使CPU复位,重新启动系统。当系统运行正常时,我们设计程序,让其在看门狗定时器WDT计时时间到之前,将WDT清零复位,重新开始计时,这样,WDT将不会溢出去复位CPU。这种清除WDT的操作,必须定时进行,定时间隔显然要小于WDT溢出时间。这样,只要程序运行正常,WDT将永远没机会溢出,去复位系统;而一旦系统程序跑飞,则很可能会丢失清除WDT的操作,这时WDT会很快溢出,从而迫使系统复位,避免瘫痪或造成更严重的后果。二、复位及启动流程7.看门狗(WDT)复位二、复位及启动流程STD15单片机中,集成了一个硬件看门狗定时器(WDT),从而实现了看门狗功能。因看门狗定时器溢出而造成的复位即为看门狗(WDT)复位,属热启动复位中的软复位(由软件引起的复位)。看门狗复位状态结束后,不影响特殊功能寄存器IAP_CONTR中SWBS位的值,对于STC15F/L101W系列等产品将根据复位前SWBS的值选择是从用户应用程序区启动,还是从系统ISP监控程序区启动。对于STC15W1K16S系列等产品,看门狗复位状态结束后始终从系统ISP监控程序区启动,与复位前SWBS的值无关,具体情况请参见STC15数据手册。与看门狗复位功能有关的特殊功能寄存器WDT_CONTR(地址0C1H)定义如表2.14所示。位D7D6D5D4D3D2D1D0定义WDT_FLAG-EN_WDTCLR_WDTIDLE_WDTPS2PS1PS0表2.14WDT_CONTR寄存器各位定义二、复位及启动流程STD15单片机中,集成了一个硬件看门狗定二、复位及启动流程WDT_FLAG:看门狗溢出标志位,当溢出时,该位由硬件置1,可用软件将其清零。EN_WDT:看门狗允许位,当设置为1时,看门狗启动。CLR_WDT:看门狗清零位,当设为1时,看门狗将重新计数。硬件将自动清零此位。IDLE_WDT:看门狗“IDLE”模式位,当设置为1时,看门狗定时器在“空闲模式”计数,当清零该位时,看门狗定时器在“空闲模式”时不计数PS2,PS1,PS0:看门狗定时器预分频值,如表2.15所示,其值与看门狗溢出时间计算有关。PS2PS1PS0Pre-scale预分频值000200140108011161003210164110128111256表2.15看门狗定时器预分频值二、复位及启动流程WDT_FLAG:看门狗溢出标志位,当溢出二、复位及启动流程8.其他复位STC15的内部低压检测复位,是当电源电压Vcc低于内部低压检测(LVD)门槛电压时所产生的复位,这种复位能发生的前提是在STC-ISP编程/烧录用户程序时,选择允许“低压检测复位(禁止低压中断)”。STC15单片机内置了8级可选内部低压检测门槛电压,设计者可以在STC-ISP编程/烧录用户程序时,根据产品型号和应用状态选择。本类复位属于热启动硬复位,其完成后,不影响特殊功能寄存器IAP_CONTR中的SWBS位的值,单片机根据复位前SWBS的值选择是从用户应用程序区启动,还是从系统ISP监控程序区启动。如果在STC-ISP编程/烧录用户应用程序时,没选择低压检测复位,则在用户程序中用户可将低压检测设置为低压检测中断。当电源电压VCC低于内部低压检测(LVD)门槛电压时,低压检测中断请求标志位(LVDF/PCON.5)就会被硬件置位。如果ELVD/IE.6(低压检测中断允许位)被设置为1,低压检测中断请求标志位就能产生一个低压检测中断(详详见中断一章)。二、复位及启动流程8.其他复位二、复位及启动流程程序地址非法复位,是指当程序计算器PC指向的地址超过了有效程序空间的范围所引起的复位。程序地址非法复位状态结束后,不影响特殊功能寄存器IAP_CONTR中SWBS位的值,单片机将根据复位前SWBS的值选择是从用户应用程序区启动,还是从系统ISP监控程序区启动,本类复位属于热启动软复位。综上所述,STC15单片机的复位启动分为冷启动/热启动、软复位/硬复位两种不同情形的组合,例如上电复位属于冷启动/硬复位,等等。复位启动后是执行用户区程序(即转至程序存储器地址0000H处),还是执行单片机中另一处特殊的代码——系统ISP监控程序,各类复位均有不同。具体请见表2.16。复位以后的流程,可以用图2.17表示。图中,单片机复位以后,只有在P3.2和P3.3同时为0时,才继续执行ISP的下载用户程序操作,是STC15单片机的特殊设计。P3.0为STC15单片机串口1的输入引脚,是用于和上位机通信,下载用户程序的输入脚。二、复位及启动流程程序地址非法复位,是指当程序计算器PC指向二、复位及启动流程表2.16STC15单片机复位类型复位源冷/热复位软/硬复位SWBS复位后操作掉电或上电冷硬1复位后从ISP监控程序区启动MAX810专用复位电路复位冷硬1复位后从ISP监控程序区启动RST引脚热硬1复位后从ISP监控程序区启动软件控制复位热软可设置由SWBS决定看门狗(WDT)复位热软不变由SWBS决定内部低压检测复位热硬不变由SWBS决定程序地址非法复位热软不变由SWBS决定二、复位及启动流程表2.16STC15单片机复位类型复位源二、复位及启动流程图2.17STC15单片机复位以后的流程二、复位及启动流程图2.17STC15单片机复位以后的流程第五节STC15系列单片机的省电模式
第五节STC15系列单片机的省电模式 STC15系列单片机的省电模式STC15系列单片机可以运行于3种省电模式,以降低功耗,它们分别是:低速模式,空闲模式和掉电模式。正常工作模式下,STC15系列单片机的典型功耗是2.7mA~7mA,而掉电模式下的典型功耗是<0.1uA,空闲模式下的典型功耗是1.8mA。所谓低速模式主要是降低系统工作频率,在前面时钟一节已有介绍。以下简单介绍空闲模式和掉电模式。这两种模式的应用涉及特殊功能寄存器PCON(电源控制寄存器,地址87H)的应用,PCON各位格式如表2.17所示。位D7D6D5D4D3D2D1D0定义SMODSMOD0LVDFPOFGF1GF0PDIDL表2.17电源控制寄存器PCON各位定义STC15系列单片机的省电模式STC15系列单片机可以运行于STC15系列单片机的省电模式其中:LVDF:为低压检测标志,当内部工作电压Vcc低于低压检测门槛电压,该位自动置1。该位同时也是低压检测中断请求标志位,被置1后,必须用软件清零。.POF:上电复位标志位,单片机掉电复位/上电复位后,此标志位为1,可由软件清零。PD:掉电模式控制位。IDL:空闲模式控制位。STC15系列单片机的省电模式其中:STC15系列单片机的省电模式1.空闲模式将PCON的IDL位置1,即进入空闲模式,此种模式下,仅CPU因无时钟停止工作,但是外部中断、内部低压检测电路、定时器、A/D转换等仍正常运行。而看门狗在空闲模式下是否工作取决于WDT_CONTR中IDLE_WDT位的设置(见前述)。在空闲模式下,RAM、堆栈指针(SP)、程序计数器(PC)、程序状态字(PSW)、累加器(A)等寄存器都保持原有数据。I/O口保持着空闲模式被激活前那一刻的逻辑状态。当任何一个中断产生时,IDL位将被硬件清零,将单片机从空闲状态中唤醒,并转去执行相应中断服务程序,中断返回后,CPU将继续执行主程序中进入空闲模式语句的下一条指令。另一种退出空闲模式的方式是:外部RST引脚复位,将复位脚拉高,产生复位。这种方法实际上就是产生一次RST引脚复位,其以后的流程见前述单片机RST复位流程。STC15系列单片机的省电模式1.空闲模式STC15系列单片机的省电模式2.掉电模式将PD位置1,单片机将进入PowerDown掉电模式。进入掉电模式后,单片机所使用的时钟(内部系统时钟或外部晶体/时钟)停振,由于无时钟源,CPU、看门狗、定时器、串行口、A/D转换等功能模块停止工作,外部中断(INT0/INT1/INT2/INT3/INT4)、CCP继续工作。如果低压检测电路被允许可产生中断,则低压检测电路也可继续工作,否则也将停止工作。但所有I/O口、SFRs(特殊功能寄存器)维持进入掉电模式/停机模式前那一刻的状态不变。将单片机从掉电模式中唤醒的方法之一,是使用掉电唤醒定时器。这实际上是设置一个闹钟,到了确定时间以后即唤醒CPU。与此相关的SFR是WKTCL(唤醒定时器低8位,地址0AAH)和WKTCH(唤醒定时器高8位,地址0ABH),其中WKTCH的D7位是允许掉电唤醒专用定时器工作位(WKTEN),只要设置此位为1,CPU进入掉电模式模式后,掉电唤醒专用定时器就将开始工作。STC15系列单片机的省电模式2.掉电模式STC15系列单片机的省电模式唤醒的时间由WKTCH(除最高位D7)以及WKTCL组成的一个15位计数值决定,计数时钟是其内部单独运行的一个时钟,其频率约为32768Hz(STC公司称此值误差较大,仅做参考),这样,最短的唤醒时间(即唤醒计数值为1时)为1/32768×16×1,约为488.28μS,最长唤醒时间约为488.28μS×32768=16秒。其他能将单片机从掉电模式中唤醒的方法包括多种外部中断以及RST引脚复位等。STC15系列单片机的省电模式第六节STC单片机的在线编程硬件连接
下载软件的操作
第六节STC单片机的在线编程硬件连接 STC15单片机的在线编程传统上,开发基于51单片机的应用系统,开发者需要先设计安装好硬件电路板(应用板),然后编写应用软件。程序基本编写到某一程度时,需要将程序代码写入(烧入)单片机片内的程序存储器,再将单片机插入到应用板的芯片插座上,上电试运行。将程序写入片内程序存储器(目前一般为Flash存储器)需要用到专门的写入设备——编程器。若在试运行期间,程序需要修改,则需要断开电源后,将单片机芯片从应用板上拔下来,再插上到编程器,用修改过的代码烧入芯片,然后再将芯片装回应用板。如此反复,直到软件不需要修改为止。这种方法,比较费时费力。随着单片机技术的发展,出现了可以在线编程的单片机。这种在线编程目前有两种实现方法:在系统编程(InSystemProgrammable,ISP)和在应用编程(InApplicationProgrammable,IAP)。ISP一般是通过单片机专用的串行通信接口,传送代码至单片机,并由单片机直接写入内部程序Flash存储器;而IAP技术更为灵活,它是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个,这样就实现了在应用系统运行时就可修改应用软件。STC15单片机的在线编程传统上,开发基于51单片机的应用系STC15单片机的在线编程ISP和IAP的实现一般只需要很少的外部辅助电路,将单片机直接连接到编辑调试软件的PC,利用PC的串行口或USB口,直接将代码从PC中传至单片机片内并烧入其程序存储器。这样就实现了不拔插单片机芯片,就能方便地改写程序代码的目的,而且还省掉了购置专门的编程器的开销。更重要地,这位远程调试、修改、升级应用程序提供了可能。STC15系列单片机都提供了ISP功能,而型号以IAP或IRC起头的芯片还提供了IAP功能。因此STC15单片机片内集成了专门的ISP监控程序代码,单片机复位以后,可能会首先执行这一段代码,只有用户无下载代码,或代码下载完毕以后,才会执行用户程序,如图2.17所示。以下简单介绍STC15系列芯片实现ISP的一般方法和步骤。STC15单片机的在线编程一、硬件连接要实现ISP操作,首先需要将应用系统的单片机和编辑调试软件的PC连接起来。单片机这一侧使用串行口,例如P3.0/RxD和P3.1/TxD接受和发送数据;PC侧若具有RS-232串行口,则直接使用串行口;现在PC一般没有串口,则可使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村旧房改造土建合同范例
- 个人建材销售合同范本
- 厂房木工劳务合同范例
- 单位购柴油合同范例
- 包工合同范例范例
- 原木砍伐工程合同范例
- 区域白酒经销合同范例
- 出售农村别墅合同范例
- 保障众筹合同范例
- 发电玻璃租赁合同范例
- 营养风险筛查(NRS2002)解读
- 文言文双文本阅读:钱若水(附答案解析与译文)
- 档案柜购买合同(五篇)
- 钢板进货检验记录
- 2023年病案编码员资格证考试题库(含答案)
- 《文化经典研读》之《大学》课件
- GB/T 38471-2023再生铜原料
- 《商务英语翻译教程》参考答案
- DB31 SW-Z 017-2021 上海市排水检测井图集
- 果蔬自发气调包装原理与应用演示文稿
- 人教版七年级下第一次月考历史试题及答案
评论
0/150
提交评论