MCS51向AVR的快速转换.pdfVIP

  • 8
  • 0
  • 约1.82万字
  • 约 12页
  • 2017-09-23 发布于浙江
  • 举报
从MCS51 向AVR 的快速转换 从MCS51 向AVR 的快速转换 詹卫前 ATMEL 的AVR 系列单片机是一个优秀的 RISC 结构单片机系列 与MCS51 相 比其有以下一些典型特点 AVR 的机器周期为1 个时钟周期 绝大多数指令为单周期指令 因此每MHZ 时钟有接近 1MIPS 的性能 程序存贮器与数据存贮器有分开的总线 程序可以高效地执行 8MHZ 频率下 工作的AVR 相当于224MHZ 频率下工作的MCS51 内置可重复编程的FLASH 程序存贮器和EEPROM 数据存贮器 支持对单片 机的在系统编程 ISP 在生产中可以 先装配后编程 从而缩短工艺流程和节约 购买万用编程器的费用 并且可以方便地升级或修改程序 内置上电复位电路和看门狗定时器 WatchDog 电路 在提高产品可靠性的 同时降低了电路的成本 部分 AVR 单片机与 MCS51 系列单片机管脚兼容 如 AT90S1200/2313 对应 AT89C1051/2051 AT90S4414/8515 对应 AT89C51/52 因此可以做到一套 PCB 板对 应两套电路 增加了用户备货的可选择性和灵活性 定时/计数器的功能大大增强 串口通信时波特率发生不占用定时器 注 在本文中AVR 的C 语言是指ICCAVR6.0 标准版 如需向其它版本的AVR C 语言 如IAR A90 CodeVision AVR 转换 可与双龙电子公司联系 一 AVR 和MCS51 存贮器配置的对比 1 存贮器布置 MCS51 的存贮器从使用角度看分三个地址空间 三个空间分别用MOV MOVX 和MOVC 指令访问 而AVR 的存贮器在物理结构上可分为五个部分 AT90S8515 为例 1 程序空间 000H~FFFH 访问时用LPM 指令访问 2 片内数据存贮器 0060H~025FH 访问时用 STS LDS 和ST LD 指令访 问 3 片外数据存贮器 0260H~FFFFH 访问时用 STS LDS 和 ST LD 指令 访问 4 32 个通用寄存器R0~R31 它们之间数据传送可使用MOV 指令 5 I/O 寄存器 00H~3FH 使用IN OUT 指令访问 看了以上介绍 仔细的读者可能发现有一部分数据存贮器的地址 0000H~005FH 是空闲的 其实这部分地址空间并不空闲 其被映射为通用寄存器 R0~R31 和 I/O 寄存器的数据空间地址 具体为 32 个通用寄存器 直接映射到 数据存贮器的 0000H~001FH 64 个 I/O 寄存器 直接映射到数据存贮器空间的 0020H~005FH 这种映射关系大大增强了 AVR 指令的灵活性 一方面对寄存器可以 广州天河双龙电子有限公司 http://WWW.SL.COM.CN 从MCS51 向AVR 的快速转换 象 SRAM 一样地访问 另一方面对寄存器的访问时 也可以使用X Y 和 Z 寄存器 作为索引 从而大大提高了访问寄存器的灵活性 2 堆栈工作方式 MCS51 的堆栈是一个由堆栈指针寄存器SP 单字节 控制的向上生长型堆栈 即将数据压入堆栈时SP 增大 在AVR 系列单片机的堆栈同样是受SP 寄存器控制 而堆栈的生长方向与MCS51 是不相同的 其向下生长 即将数据压入堆栈时SP 减小 另外要注意以下几点 1 MCS51 的堆栈空间只能放置在片内的SRAM 中 而AVR 的堆栈空间既可以 放置的片内 SRAM 中 也可以放置在

文档评论(0)

1亿VIP精品文档

相关文档