第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页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

第2章STC12C5A60S2的增强型8051内核 2 1STC12C5A60S2单片机的引脚 LQFP48封装 DIP40封装 逻辑符号图 MCS51单片机的内部结构框图 总线 图1 2580C51单片机功能方框图 MCS51单片机的CPU结构 1 CPU CPU也叫中央处理器 是单片机的核心部件 主要完成单片机的运算和控制功能 1 运算器 包括算术逻辑单元ALU 布尔处理器 累加器ACC 寄存器B 暂存器TMP1和TMP2 程序状态字PSW寄存器及十进制调整电路等 2 控制器 包括定时控制逻辑 指令寄存器 译码器以及信息传送控制部件等 以实现控制功能 2 内部存储器 单片机内的存储器包括程序存储器和数据存储器 它们是相互独立 1 程序存储器 ROM 为只读存储器 用于存放程序指令 常数及数据表格 2 数据存储器 RAM 为随机存储器 用于存放数据 数据存储器又可分为内部数据存储器和外部数据存储器 在单片机内部有256个RAM单元来存放可读写的数据 其中 后128单元被专用寄存器占用 作为寄存器供用户使用的只是前128单元 3 定时 计数器 MCS 51单片机内部有2个16位的定时器 计数器 用于实现内部定时或外部计数的功能 并以其定时或计数的结果 查询或中断方式 来实现控制功能 4 中断系统控制器 MCS 51单片机具有中断功能 以满足控制应用的需要 MCS 51共有5个中断源 52系列有6个中断源 即外部中断2个 定时 计数器中断2个 串行口中断1个 全部中断可分为高级和低级两个优先级别 5 并行I O口MCS 51单片机内部共有四个8位的并行I O口 P0 P1 P2 P3 以实现数据的并行输入和输出 6 全双工串行口 MCS 51单片机还有一个全双工的串行口 以实现单片机与外部之间的串行数据传送 7 OSCOSC是单片机的时钟电路 时钟电路用于单片机产生时钟脉冲序列 协调和控制单片机的工作 单片机引脚说明 1 P0口 32脚 39脚 有三种使用方法 作为与外部传送数据的8位数据总线 D0 D7 作为扩展外部存储器时的低8位地址总线 A0 A7 作为普通I O口使用 2 P1口 1脚 8脚 作为普通I O口使用 无须外接上拉电阻 3 P2口 21脚 28脚 有两种使用方法 作为普通I O口使用 无须外接上拉电阻 作为扩展外部存储器时的高8位地址总线 A8 A15 4 P3口 10脚 17脚 有两种使用方法 作为普通I O口使用 无须外接上拉电阻 单片机引脚 5 VDD 40脚 5V电源 6 VSS 20脚 GND 7 XTAL1 19脚 XTAL2 18脚 接外部石英晶振的引脚 也可引入外部时钟 8 RESET 9脚 复位信号引脚 必须在此引脚上出现两个机器周期的高电平 才能保证单片机可靠的复位 复位后 单片机内部各寄存器的状态见表2 2所示 单片机引脚 9 ALE PROG 30脚 地址锁存允许信号 有以下三个作用 当外接存储器 RAM ROM 时 ALE 允许地址锁存 的输出用于锁存地址的低8位 一般ALE接锁存器的EN端 当没有外部存储器时 ALE端可输出脉冲信号 此频率为石英振荡频率的1 6 因此 它可用作对外部芯片提供输出的时钟 或用于定时的目的 在烧写EPROM时 作为烧写时钟输入端 单片机引脚 10 PSEN 29脚 外部程序存储器的读选通信号 11 VPP 脚31 访问程序存储器控制信号 当信号接低电平时 对ROM的读操作 执行程序 限定在外部程序储器 当接高电平时 对ROM的读操作 执行程序 从内部开始 在使用内部带程序存储器的单片机时 应接高电平 P3口的特殊功能 上电复位电路 STC12C5A60S2单片机内部集成MAX810专用复位电路 时钟频率在12MHZ以下时 复位脚可接1K电阻再接地 也可以使用如右图所示的复位电路 复位电路 单片机复位条件 必须使RST引脚持续2微秒高电平 外部时钟12MHz 常见的晶振连接方法 晶体振荡器M的典型值是11 0592MHz 电容C1 C2的典型值是47Pf 时序 关于MCS 51系列单片机的时序概念有4个 可用定时单位来说明 从小到大依次是 节拍 状态 机器周期和指令周期 下面分别加以说明 1 节拍与状态把振荡脉冲的周期定义为节拍 用P表示 也就是晶振的振荡频率fosc 2 状态振荡脉冲fosc经过二分频后 就是单片机时钟信号的周期 定义为状态 用S表示 一个状态包含两个节拍 其前半周期对应的节拍叫P1 后半周期对应的节拍叫P2 3 机器周期MCS 51系列单片机采用定时控制方式 有固定的机器周期 规定一个机器周期的宽度为6个状态 即12个振荡脉冲周期 因此机器周期就是振荡脉冲的十二分频 小提示当振荡脉冲频率为12MHz时 一个机器周期为1 s 当振荡脉冲频率为6MHz时 一个机器周期为2 s 2 2STC12C5A60S2单片机的结构 2 2 1STC12C5A60S2单片机的内部结构 2 2 2CPU 以8位算术 逻辑运算部件ALU为核心 加上通过内部总线而挂在其周围的暂存器TMP1 TMP2 累加器ACC 寄存器B 程序状态标志寄存器PSW以及布尔处理机就组成了整个运算器的逻辑电路 1 运算器 单片机的中央处理器CPU由运算器和控制器组成 程序状态标志寄存器PSW CY 进位标志位当执行加 减法指令时 如果操作结果的最高位D7出现进 借位 则CY置 1 否则清零 此外 CPU在进行移位操作时也会影响这个标志位 AC 辅助进位标志位当执行加 减法指令时 如果低四位数向高四位数产生进 借位 则AC置 1 否则清零 F0 用户标志0该位是由用户定义的一个状态标志 RS1 RS0 工作寄存器组选择控制位OV 溢出标志位指示运算过程中是否发生了溢出 F1 用户标志1该位是由用户定义的一个状态标志 P 奇偶标志位如果累加器ACC中1的个数为偶数 P 0 否则P 1 2 控制器 控制器是CPU的大脑中枢 包括定时控制逻辑 指令寄存器 译码器 地址指针DPTR及程序计数器PC 堆栈指针SP RAM地址寄存器 16位地址缓冲器等 3 单片机执行程序的过程 单片机的工作过程实质就是执行人们所编制程序的过程 即逐条执行指令的过程 计算机每执行一条指令都可分为三个阶段进行 即取指令 分析指令和执行指令 程序第一条指令地址送入程序计数器PC PC将指令地址送到地址寄存器 PC 1 PC 指示下一条指令地址 对于多字节指令 则加2或者加3 地址寄存器的内容通过内部地址总线送到存储器 经存储器中的地址译码电路选中该地址 被选中的地址单元的内容即操作码送到指令寄存器 根据指令译码器对操作码的译码结果 在时序电路的配合下由微操作控制电路发相应的控制信号 控制有关部件进行相应的动作 执行指令 对于算术逻辑运算指令 则把读出的数据送入暂存寄存器 然后与累加器中的另一数据一起送入加法器 按照操作码的要求进行运算 其结果再送回到累加器中 运算结果的状态信息送入状态标志寄存器中 一条指令执行完后 再把PC中的内容送入地址寄存器 取下一条指令 直到程序执行完毕为止 对于访问存储器的指令 读地址码所指示单元中的数据 送入累加器或指定的寄存器中 如果是存储器写入指令 则把累加器或指定寄存器中的数据写入到地址码所指示的单元中去 2 3STC12C5A60S2单片机的存储器 2 3 1存储器空间及存储器 STC12C5A60S2单片机存储器结构的主要特点是程序存储器和数据存储器的寻址空间是分开的 有4个物理上相互独立的存储器空间 程序Flash存储器 数据Flash存储器 EEPROM 内部数据存储器和外部数据存储器 1 程序Flash存储器 程序Flash存储器用于存放用户程序 数据和表格等信息 STC12C5A60S2单片机片内集成了60KB的程序Flash存储器 其地址为0000H F000H 单片机复位后 程序计数器的内容为0000H 从0000H单元开始执行程序 特殊单元0003H外部中断0中断服务程序的入口地址000BH定时 计数器0中断服务程序的入口地址0013H外部中断1中断服务程序的入口地址001BH定时 计数器1中断服务程序的入口地址0023H串行通信口1中断服务程序的入口地址002BHADC中断服务程序的入口地址0033H低电压检测中断服务程序的入口地址003BHPCA中断服务程序的入口地址0043H串行通信口2中断服务程序的入口地址004BHSPI中断服务程序的入口地址读取程序存储器中保存的表格常数等内容时 使用MOVC指令 2 数据存储器 数据存储器也称为随机存取数据存储器 STC12C5A60S2单片机的数据存储器在物理上和逻辑上都分为两个地址空间 内部数据存储区和外部数据存储区 1 内部数据存储区STC12C5A60S2单片机片内集成了256字节RAM 可用于存放程序执行的中间结果和过程数据 内部RAM的地址范围是00H FFH 共256个单元 分为三部分 低128字节RAM 00H 7FH 用 MOV 和 MOV Ri 指令访问 高128字节RAM 80H FFH 用 MOV Ri 指令访问 特殊功能寄存器 SFR 区 80H FFH 用 MOV 指令访问 1 工作寄存器区00H 1FH共32个单元用作工作寄存器 分为四组 每一组称为一个寄存器组 每一组中包括8个8位的工作寄存器 分别是R0 R7 PSW寄存器中的RS1和RS0的组合决定当前使用的工作寄存器组 2 位寻址区20H 2FH之间的单元既可以像普通RAM单元一样按字节存取 也可以对单元中的任何一位单独存取 共128位 所对应的位地址范围是00H 7FH 特殊功能寄存器中 直接地址可被8整除的寄存器 除了IP 7 IP 6和IE 6以外 也可以进行位寻址 可进行位寻址的单元 请见教材图2 8和图2 9 3 用户RAM和堆栈区内部RAM中的30H 0FFH单元是用户RAM和堆栈区 STC12C5A60S2单片机有一个8位的堆栈指针SP 并且堆栈区只能设置在内部数据存贮区 单片机复位以后 SP为07H 指向了工作寄存器组0中的R7 因此用户初始化程序都应对SP设置初值 一般设在30H以后为宜 STC12C5A60S2的堆栈是向上生成的 4 特殊功能寄存器 SFR 80H FFH既为高128字节RAM区的地址范围 又为特殊功能寄存器区的地址范围 地址空间重叠 但物理上是独立的 使用时通过不同的寻址方式加以区分 高128字节的RAM区使用间接寻址访问 特殊功能寄存器使用直接寻址访问 除了程序计数器PC和4个工作寄存器组外 其余的寄存器都在SFR区中 特殊功能寄存器及其复位值如教材表2 2所示 2 外部数据存储区外部数据存储区也称为扩展RAM区或XRAM 附加RAM STC12C5A60S2单片机片内除了集成256字节的内部RAM以外 片内还集成了1024字节的外部数据存储器 地址范围为0000H 03FFH 可用于存放数据 在汇编语言中 XRAM通过MOVX指令间接寻址 即使用 MOVX DPTR 或者 MOVX Ri 指令访问 在C语言中 可使用xdata声明存储类型即可 如 unsignedcharxdatai 0 单片机芯片内的XRAM是否可以访问受辅助寄存器AUXR 地址为8EH 复位值为00H 中的EXTRAM位控制 AUXR的各位定义如下 EXTRAM 内部 外部RAM存取控制位 0 内部XRAM可以存取 1 芯片外数据存储器存取 禁止访问内部XRAM 3 数据Flash存储器 STC12C5A60S2单片机内部集成了1K字节的数据Flash存储器 EEPROM 地址范围是0000H 03FFH 与程序Flash存储器空间是分开的 这1K字节的数据Flash存储器分为2个扇区 每个扇区包含512字节 对应的地址范围分别为 第一扇区 0000H 01FFH第二扇区 0200H 03FFH使用时 建议同一次修改的数据放在同一个扇区 不是同一次修改的数据放在不同的扇区 不一定用满 数据Flash存储器的擦除操作是按扇区进行的 这些数据Flash存储器擦写次数在10万次以上 可用于保存一些需要在应用过程中修改的一些参数数据 2 3 2数据Flash存储器的操作 1 相关的特殊功能寄存器 1 ISP IAPFlash数据寄存器IAP DATA IAP DATA寄存器 地址为C2H 复位值为0FFH 是对数据Flash进行ISP IAP操作时的数据寄存器 ISP IAP从Flash读出的数据放在该寄存器中 向Flash写入的数据也需放在该寄存器中 2 ISP IAP地址寄存器IAP ADDRH和IAP ADDRL IAP ADDRH 地址是C3H 复位值为00H 是ISP IAP操作时的地址寄存器高8位 IAP ADDRL 地址是C4H 复位值为00H 是ISP IAP操作时的地址寄存器低8位 3 ISP IAP命令寄存器IAP CMDIAP CMD 地址为C5H 复位值为XXXXXX00B 各位的定义如下 其中 D7 D2保留未用 MS1和MS0用于设置要执行的命令 如表2 3所示 ISP IAP操作时的命令模式寄存器 需命令触发寄存器触发方可生效 表2 3ISP IAP命令与MS1和MS0之间的关系 4 ISP IAP操作时的命令触发寄存器IAP TRIGIAP TRIG寄存器的地址为C6H 在IAPEN IAP CONTR 7 1时 对IAP TRIG先写入5AH 再写入A5H ISP IAP命令才会生效 5 ISP IAP控制寄存器IAP CONTRIAP CONTR 地址为C7H 复位值为00001000B 各位的定义如下 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 首先定义ISP IAP命令及等待时间 ISP IAP BYTE READEQU1 字节读ISP IAP BYTE PROGRAMEQU2 字节编程 前提是该字节是空 0FFhISP IAP SECTOR ERASEEQU3 扇区擦除 要某字节为空 要擦一扇区WAIT TIMEEQU0 设置等待时间 30MHz以下为0 24M以下1 20MHz以下2 12M以下3 6M以下4 3M以下5 2M以下6 1M以下7 2 字节读操作进行字节读操作时 需要给出要读的地址 设置等待时间 然后送出读字节命令并设置触发器 从IAP DATA寄存器中读取数据 典型代码如下 字节读操作演示代码MOVIAP ADDRH BYTE ADDR HIGH 送地址高字节MOVIAP ADDRL BYTE ADDR LOW 送地址低字节MOVIAP CONTR WAIT TIME 设置等待时间ORLIAP CONTR 10000000B 允许ISP IAP操作MOVIAP CMD ISP IAP BYTE READ 送字节读命令MOVIAP TRIG 5AH 先送5AH 再送A5H到ISP IAP触发寄存器MOVIAP TRIG 0A5H 送完A5H后 ISP IAP命令立即被触发启动 CPU等待IAP动作完成后 才会继续执行程序 NOP 数据读出到IAP DATA寄存器后 CPU继续执行程序MOVA IAP DATA 将读出的数据送往累加器 3 字节编程 写 操作进行字节编程 写 操作时 需要保证要写的地址单元内容为空 值为0FFH 如果不为空 则先使用扇区擦除命令 将要进行字节编程的单元所在扇区擦除为空 将要写入的内容送入IAP DATA寄存器 要编程的单元地址送入IAP ADDRH和IAP ADDRL寄存器 设置等待时间 允许ISP IAP操作 送出字节编程命令并设置触发器 典型代码如下 字节编程演示代码 该字节为空 0FFH 时 可对其编程 否则要先执行扇区擦除MOVIAP DATA ONE DATA 送字节编程数据到IAP DATAMOVIAP ADDRH BYTE ADDR HIGH 送地址高字节MOVIAP ADDRL BYTE ADDR LOW 送地址低字节MOVIAP CONTR WAIT TIME 设置等待时间ORLIAP CONTR 10000000B 允许ISP IAP操作MOVIAP CMD ISP IAP BYTE PROGRAM 送字节编程命令MOVIAP TRIG 5AH 先送5AH 再送A5H到ISP IAP触发寄存器MOVISP TRIG 0A5H 送完A59H后 ISP IAP命令立即被触发启动 CPU等待IAP动作完成后 才会继续执行程序 4 数据Flash擦除数据Flash擦除时 只有扇区擦除 没有字节擦除 如果要对某个扇区进行擦除 而其中有些字节的内容需要保留 则需将其先读到单片机内部的RAM中保存 再将该扇区擦除 然后将需保留的数据写回该扇区 所以每个扇区中用的字节数越少越好 操作起来越灵活越快 擦除时 扇区中任意一个字节的地址都是该扇区的地址 无需求出首地址 扇区擦除的典型代码MOVIAP ADDRH SECTOR FIRST BYTE ADDR HIGH 送扇区起始地址高字节MOVIAP ADDRL SECTOR FIRST BYTE ADDR LOW 送扇区起始地址低字节MOVIAP

温馨提示

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

评论

0/150

提交评论