STCCAS的增强型内核实用教案

上传人:莉**** 文档编号:77950730 上传时间:2022-04-20 格式:PPTX 页数:24 大小:509.17KB
返回 下载 相关 举报
STCCAS的增强型内核实用教案_第1页
第1页 / 共24页
STCCAS的增强型内核实用教案_第2页
第2页 / 共24页
STCCAS的增强型内核实用教案_第3页
第3页 / 共24页
点击查看更多>>
资源描述
逻辑(lu j)符号图 第1页/共23页第一页,共24页。上电复位上电复位(f wi)(f wi)电电路路 STC12C5A60S2单片机内部集成MAX810专用复位电路,时钟频率(pnl)在12MHZ以下时,复位脚可接1K电阻再接地,也可以使用如右图所示的复位电路。第2页/共23页第二页,共24页。常见常见(chn jin)(chn jin)的晶的晶振连接方法振连接方法 晶体振荡器M M的典型值是,电容(dinrng)C1(dinrng)C1、C2C2的典型值是47Pf47Pf。第3页/共23页第三页,共24页。第4页/共23页第四页,共24页。2.2.2 CPU 以以8 8位算术位算术(sunsh)/(sunsh)/逻辑运算部件逻辑运算部件ALUALU为核心,加上通过内为核心,加上通过内部总线而挂在其周围的暂存器部总线而挂在其周围的暂存器TMP1TMP1,TMP2TMP2,累加器,累加器ACCACC,寄存器,寄存器B B,程序状态标志寄存器程序状态标志寄存器PSWPSW以及布尔处理机就组成了整个运算器的逻辑以及布尔处理机就组成了整个运算器的逻辑电路。电路。 单片机的中央处理器CPUCPU由运算器和控制器组成(z chn)(z chn)。 程序程序(chngx)(chngx)状态标志寄存器状态标志寄存器PSW: PSW: CYCY:进位标志位进位标志位 当执行加当执行加/ /减法指令时,如果操作结果的最高位减法指令时,如果操作结果的最高位D7D7出现进出现进/ /借位,则借位,则CYCY置置“1”“1”,否则清零。此外,否则清零。此外,CPUCPU在进行移位操作时也会影响这个标志位。在进行移位操作时也会影响这个标志位。ACAC:辅助进位标志位辅助进位标志位 当执行加当执行加/ /减法指令时,如果低四位数向高四位数产生进减法指令时,如果低四位数向高四位数产生进/ /借位,则借位,则ACAC置置“1”“1”,否则清零。,否则清零。 F0F0:用户标志用户标志0 0 该位是由用户定义的一个状态标志。该位是由用户定义的一个状态标志。RS1RS1,RS0RS0:工作寄存器组选择控制位工作寄存器组选择控制位OVOV:溢出标志位溢出标志位 指示运算过程中是否发生了溢出。指示运算过程中是否发生了溢出。 F1F1:用户标志用户标志1 1 该位是由用户定义的一个状态标志。该位是由用户定义的一个状态标志。P P:奇偶标志位奇偶标志位 如果累加器如果累加器ACCACC中中1 1的个数为偶数,的个数为偶数,P=0P=0;否则否则P=1P=1。D7D6D5D4D3D2D1D0CYACF0RS1 RS0 OVF1P第5页/共23页第五页,共24页。2 2控制器控制器 控制器是控制器是CPUCPU的大脑中枢,包括定时控制逻辑、指令寄存器、译码的大脑中枢,包括定时控制逻辑、指令寄存器、译码器、地址指针器、地址指针DPTRDPTR及程序及程序(chngx)(chngx)计数器计数器PCPC、堆栈指针、堆栈指针SPSP、RAMRAM地址寄存地址寄存器、器、1616位地址缓冲器等。位地址缓冲器等。 第6页/共23页第六页,共24页。 STC12C5A60S2单片机存储器结构的主要单片机存储器结构的主要(zhyo)特点是程序存储器特点是程序存储器和数据存储器的寻址空间是分开的,有和数据存储器的寻址空间是分开的,有4个物理上相互独立的存储器空间:个物理上相互独立的存储器空间:程序程序Flash存储器、数据存储器、数据Flash存储器(存储器(EEPROM)、内部数据存储器和外)、内部数据存储器和外部数据存储器部数据存储器第7页/共23页第七页,共24页。1 1程序程序(chngx)Flash(chngx)Flash存储器存储器 程序程序Flash存储器用于存放用户程序、数据和表格等信息。存储器用于存放用户程序、数据和表格等信息。STC12C5A60S2单单片机片内集成了片机片内集成了60KB的程序的程序Flash存储器,其地址为存储器,其地址为0000HF000H。单片机复位。单片机复位后,程序计数器的内容为后,程序计数器的内容为0000H,从,从0000H单元开始单元开始(kish)执行程序。执行程序。特殊单元特殊单元 0003H 外部中断外部中断0中断服务程序的入口地址中断服务程序的入口地址000BH 定时定时/计数器计数器0中断服务程序的入口地址中断服务程序的入口地址0013H 外部中断外部中断1中断服务程序的入口地址中断服务程序的入口地址001BH 定时定时/计数器计数器1中断服务程序的入口地址中断服务程序的入口地址0023H 串行通信口串行通信口1中断服务程序的入口地址中断服务程序的入口地址002BH ADC中断服务程序的入口地址中断服务程序的入口地址0033H 低电压检测中断服务程序的入口地址低电压检测中断服务程序的入口地址003BH PCA中断服务程序的入口地址中断服务程序的入口地址0043H 串行通信口串行通信口2中断服务程序的入口地址中断服务程序的入口地址004BH SPI中断服务程序的入口地址中断服务程序的入口地址读取程序存储器中保存的表格常数等内容时,使用读取程序存储器中保存的表格常数等内容时,使用MOVC指令。指令。第8页/共23页第八页,共24页。2 2数据数据(shj)(shj)存储器存储器 数据存储器也称为随机存取数据存储器。数据存储器也称为随机存取数据存储器。STC12C5A60S2单片机的数据存储器单片机的数据存储器在物理上和逻辑在物理上和逻辑(lu j)上都分为两个地址空间:内部数据存储区和外部数据存储区。上都分为两个地址空间:内部数据存储区和外部数据存储区。 (1)内部数据存储区)内部数据存储区 STC12C5A60S2单片机片内集成了单片机片内集成了256字节字节RAM,可用于存放程序执行的中间结,可用于存放程序执行的中间结果和过程数据。内部果和过程数据。内部RAM的地址范围是的地址范围是00HFFH,共,共256个单元,分为三部分:个单元,分为三部分:低低128字节字节RAM:00H7FH。用。用“MOV”和和“MOV Ri”指令访问。指令访问。高高128字节字节RAM:80HFFH。用。用“MOV Ri”指令访问。指令访问。特殊功能寄存器(特殊功能寄存器(SFR)区:)区:80HFFH,用,用“MOV”指令访问。指令访问。第9页/共23页第九页,共24页。1 1)工作寄存器区)工作寄存器区 00H 00H1FH1FH共共3232个单元用作工作寄存器,分为四组(每一组称个单元用作工作寄存器,分为四组(每一组称为一个寄存器组),每一组中包括为一个寄存器组),每一组中包括(boku)8(boku)8个个8 8位的工作寄存器,位的工作寄存器,分别是分别是R0R0R7R7。PSWPSW寄存器中的寄存器中的RS1RS1和和RS0RS0的组合决定当前使用的的组合决定当前使用的工作寄存器组。工作寄存器组。2)位寻址区 20H2FH之间的单元既可以像普通RAM单元一样按字节存取,也可以对单元中的任何(rnh)一位单独存取,共128位,所对应的位地址范围是00H7FH。特殊功能寄存器中,直接地址可被8整除的寄存器(除了、和以外)也可以进行位寻址。 可进行位寻址的单元,请见教材图2-8和图2-9.RS1RS1RS0RS0工作寄存器组工作寄存器地址0 00 00 0R7R7R0R0对应的地址为0707H H00H00H0 01 11 1R7R7R0R0对应的地址为0 0FHFH08H08H1 10 02 2R7R7R0R0对应的地址为1717H H10H10H1 11 13 3R7R7R0R0对应的地址为1 1FHFH18H18H第10页/共23页第十页,共24页。3 3)用户)用户RAMRAM和堆栈区和堆栈区 内部内部(nib)RAM(nib)RAM中的中的30H30H0FFH0FFH单元是用户单元是用户RAMRAM和堆栈区。和堆栈区。STC12C5A60S2STC12C5A60S2单片机有一个单片机有一个8 8位的堆栈指针位的堆栈指针SPSP,并且堆栈区,并且堆栈区只能设置在内部只能设置在内部(nib)(nib)数据存贮区。单片机复位以后,数据存贮区。单片机复位以后,SPSP为为07H07H,指向了工作寄存器组,指向了工作寄存器组0 0中的中的R7R7,因此用户初始化程序,因此用户初始化程序都应对都应对SPSP设置初值,一般设在设置初值,一般设在30H30H以后为宜。以后为宜。STC12C5A60S2STC12C5A60S2的堆栈是向上生成的。的堆栈是向上生成的。 4 4)特殊功能寄存器()特殊功能寄存器(SFRSFR) 80H 80HFFHFFH既为高既为高128128字节字节RAMRAM区的地址范围,又为特区的地址范围,又为特殊功能寄存器区的地址范围,地址空间重叠,但物理上是独殊功能寄存器区的地址范围,地址空间重叠,但物理上是独立的,使用时通过不同的寻址方式加以区分。高立的,使用时通过不同的寻址方式加以区分。高128128字节的字节的RAMRAM区使用间接寻址访问,特殊功能寄存器使用直接寻址访区使用间接寻址访问,特殊功能寄存器使用直接寻址访问。除了程序计数器问。除了程序计数器PCPC和和4 4个工作寄存器组外,其余的寄存个工作寄存器组外,其余的寄存器都在器都在SFRSFR区中。区中。 特殊功能寄存器及其复位值如教材表特殊功能寄存器及其复位值如教材表2-22-2所示所示 。第11页/共23页第十一页,共24页。(2)外部数据存储区 外部数据存储区也称为扩展RAM区或XRAM(附加(fji)RAM)。STC12C5A60S2单片机片内除了集成256字节的内部RAM以外,片内还集成了1024字节的外部数据存储器,地址范围为0000H03FFH,可用于存放数据。在汇编语言中,XRAM通过MOVX 指令间接寻址,即使用“MOVX DPTR”或者“MOVX Ri”指令访问。在C语言中,可使用xdata声明存储类型即可。如:unsigned char xdata i= 0; 单片机芯片内的XRAM是否可以访问受辅助(fzh)寄存器AUXR(地址为8EH,复位值为00H)中的EXTRAM位控制。AUXR的各位定义如下:位位号号D7D6D5D4D3D2D1D0位位名名称称T0 x12T1x1T1x12 2UART_UART_M0 x6M0 x6BRTRS2SMODBRTx12EXTRAMS1BRSEXTRAM:内部/外部RAM存取控制位。 0:内部XRAM可以存取;1:芯片外数据(shj)存储器存取,禁止访问内部XRAM。第12页/共23页第十二页,共24页。3数据数据(shj)Flash存储器存储器 STC12C5A60S2单片机内部集成了单片机内部集成了1K字节的数据字节的数据Flash存储器(存储器(EEPROM),地址范围是),地址范围是0000H03FFH,与程序,与程序Flash存储器空间是分开的。这存储器空间是分开的。这1K字节的数据字节的数据Flash存储器分存储器分为为2个扇区,每个扇区包含个扇区,每个扇区包含512字节,对应的地址范围分别为:字节,对应的地址范围分别为:第一扇区:第一扇区:0000H01FFH 第二扇区:第二扇区:0200H03FFH 使用时,建议同一次修改的数据放在同一个扇区,不是使用时,建议同一次修改的数据放在同一个扇区,不是同一次修改的数据放在不同的扇区,不一定用满。数据同一次修改的数据放在不同的扇区,不一定用满。数据Flash存储器的擦除操作是按扇区进行的。存储器的擦除操作是按扇区进行的。 这些数据这些数据Flash存储器擦写次数在存储器擦写次数在10万次以上,可用于万次以上,可用于保存一些需要在应用保存一些需要在应用(yngyng)过程中修改的一些参数数据。过程中修改的一些参数数据。 第13页/共23页第十三页,共24页。(1)ISP/IAP Flash数据(shj)寄存器IAP_DATA IAP_DATA寄存器(地址为C2H,复位值为0FFH)是对数据Flash进行ISP/IAP操作时的数据寄存器。ISP/IAP从Flash读出的数据放在该寄存器中,向Flash 写入的数据也需放在该寄存器中。第14页/共23页第十四页,共24页。(2)ISP/IAP地址(dzh)寄存器IAP_ADDRH和IAP_ADDRL IAP_ADDRH(地址是C3H,复位(f wi)值为00H)是ISP/IAP操作时的地址寄存器高8位; IAP_ADDRL(地址是C4H,复位(f wi)值为00H)是ISP/IAP操作时的地址寄存器低8位。第15页/共23页第十五页,共24页。(3)ISP/IAP命令寄存器IAP_CMD IAP_CMD(地址为C5H,复位(f wi)值为XXXXXX00B)各位的定义如下其中,D7D2保留未用。MS1和MS0用于设置(shzh)要执行的命令,如表2-3所示。MS1MS0ISP/IAP Flash命令命令00待机模式,无待机模式,无ISP读写操作读写操作01对对“Data Flash /EEPROM区区”进行字节读进行字节读10对对“Data Flash /EEPROM区区”进行字节编进行字节编程程11对对“Data Flash /EEPROM 区区”进行扇区擦进行扇区擦除除ISP/IAP操作时的命令(mng lng)模式寄存器,需命令(mng lng)触发寄存器触发方可生效。表2-3 ISP/IAP命令与MS1和MS0之间的关系 (4)ISP/IAP操作时的命令触发寄存器IAP_TRIG IAP_TRIG寄存器的地址为C6H。在IAPEN(IAP_CONTR.7)=1时,对IAP_TRIG先写入5AH,再写入A5H,ISP/IAP命令才会生效。位位号号D7D6D5D4D3D2D1D0位位名名称称-MS1MS0第16页/共23页第十六页,共24页。(5)ISP/IAP控制寄存器IAP_CONTRIAP_CONTR(地址为C7H,复位(f wi)值为00001000B)各位的定义如下:1)ISPEN:ISP/IAP功能允许位。 0:禁止(jnzh)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用于设置等待时间。位号D7D6D5D4D3D2D1D0位名称IAPENSWBSSWRSTCMD_FAIL1WT2WT1WT0第17页/共23页第十七页,共24页。(1)首先定义ISP/IAP命令及等待时间: ISP_IAP_BYTE_READ EQU 1 ;字节(z ji)读 ISP_IAP_BYTE_PROGRAM EQU 2 ;字节(z ji)编程,前提是该字节(z ji)是空,0FFh ISP_IAP_SECTOR_ERASE EQU 3 ;扇区擦除,要某字节(z ji)为空,要擦一扇区 WAIT_TIME EQU 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 ;允许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动作完成(wn chng)后,才会继续执行程序。NOP ;数据读出到IAP_DATA寄存器后,CPU继续执行程序 MOV A, IAP_DATA ;将读出的数据送往累加器第18页/共23页第十八页,共24页。(3)字节编程(写)操作 进行字节编程(写)操作时,需要保证要写的地址单元内容为空(值为0FFH),如果不为空,则先使用扇区擦除命令,将要进行字节编程的单元所在扇区擦除为空。将要写入的内容送入IAP_DATA寄存器,要编程的单元地址送入IAP_ADDRH和IAP_ADDRL寄存器,设置等待时间,允许ISP/IAP操作,送出字节编程命令并设置触发(chf)器。典型代码如下:;字节编程演示代码,该字节为空(0FFH)时,可对其编程,否则要先执行扇区擦除MOV IAP_DATA, #ONE_DATA ;送字节编程数据到IAP_DATAMOV IAP_ADDRH, #BYTE_ADDR_HIGH ;送地址高字节MOV IAP_ADDRL, #BYTE_ADDR_LOW ;送地址低字节MOV IAP_CONTR, #WAIT_TIME ;设置等待时间 ORL IAP_CONTR, #10000000B ;允许ISP/IAP操作 MOV IAP_CMD, #ISP_IAP_BYTE_PROGRAM ;送字节编程命令 MOV IAP_TRIG, #5AH ;先送5AH,再送A5H到ISP/IAP触发(chf)寄存器MOV ISP_TRIG, #0A5H ;送完A59H 后,ISP/IAP命令立即被触发(chf)启动;CPU等待IAP动作完成后,才会继续执行程序.第19页/共23页第十九页,共24页。(4)数据Flash擦除 数据Flash擦除时,只有扇区擦除,没有字节擦除。如果要对某个扇区进行擦除,而其中有些字节的内容(nirng)需要保留,则需将其先读到单片机内部的RAM 中保存,再将该扇区擦除,然后将需保留的数据写回该扇区,所以每个扇区中用的字节数越少越好,操作起来越灵活越快。擦除时,扇区中任意一个字节的地址都是该扇区的地址,无需求出首地址。;扇区擦除的典型代码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/IAPMOV IAP_CMD, #ISP_IAP_SECTOR_ERASE ;送扇区擦除命令MOV IAP_TRIG, #5AH ;先送5AH,再送A5H到ISP/IAP触发寄存器MOV IAP_TRIG, #0A5H ;送完A5H后,ISP/IAP命令立即被触发起动;CPU等待IAP动作完成后,才会继续执行程序.第20页/共23页第二十页,共24页。(5)数据Flash存储器的操作小结 对于数据Flash存储器的操作有三个基本命令,分别是字节读、字节编程和扇区擦除。进行字节编程时,只能将1改为0,或1保持为1、0保持为0。如果该字节是11111111B,则可将其中的1编程为0,如果该字节中有的位为0,要将其改为1,则须先将整个扇区擦除,因为只有“扇区擦除”才可以将0变为1。 建议: 1)同一次修改的数据放在同一扇区中,不是(b shi)同一次修改的数据放在另外的扇区,这样,可不需读出保护。 2)如果一个扇区只用一个字节,那就是真正的EEPROM。STC12C5A60S2单片机的Data Flash比外部EEPROM要快很多,读一个字节大概需要2个时钟周期(),编程一个字节大概需要60us。 3)如果在一个扇区中存放了大量的数据,某次只需要修改其中的一个字节或一部分字节时,则另外的不需要修改的数据须先读出放在单片机的RAM中,然后擦除整个扇区,再将需要保留的数据和需修改的数据一并写回该扇区中。这时,每个扇区使用的字节数越少越方便(不需读出一大堆需保留数据)。第21页/共23页第二十一页,共24页。思考题 1简述PSW寄存器的各个位的作用。 2STC2C5A60S2单片机的存储器分为哪几个空间?中断(zhngdun)服务程序的入口地址分别是什么? 3明STC2C5A60S2单片机内部数据存储区空间分配情况。32个通用寄存器各对应哪些RAM单元?位地址28H,87H,7FH,92H,E0H,F1H,各对应哪些单元的哪些位?位地址和字节地址有什么区别?第22页/共23页第二十二页,共24页。感谢您的观看(gunkn)!第23页/共23页第二十三页,共24页。NoImage内容(nirng)总结逻辑符号图。P:奇偶标志位 如果累加器ACC中1的个数为偶数,P=0。R7R0对应的地址为1FH18H。内部RAM中的30H0FFH单元是用户RAM和堆栈区。STC12C5A60S2单片机有一个8位的堆栈指针SP,并且堆栈区只能设置在内部数据存贮区。高128字节的RAM区使用(shyng)间接寻址访问,特殊功能寄存器使用(shyng)直接寻址访问。扇区擦除,要某字节为空,要擦一扇区。感谢您的观看第二十四页,共24页。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!