将 C51 向 ICCAVR的转化进行一次总结
1、 头文件
对C51中界说寄存器的头文件如 reg51.h at89x51.h等替换成相应的 AVR头文件 如 io8515.h
2、 中止处理函数
在 C51 中以 interrupt 关键字来阐明某一个函数为中止处理函数 在 ICCVAR 中可采用#pragma interrupt_handler预处理指令在程序开端处声明 详细用法如下:
#pragma interrupt_handler <中止处理函数名> <中止向量号>
留意 对原 C51 源程序中的 interrupt 和 using关键字应当删去
3 、对 C51 中的 bit 和 sbit 数据类型的处理
在 ICCAVR中不支持 bit 和 sbit数据类型 对这两种类型可用 unsigned char来替代对有关位运算用规范 C 的位运算功用进行处理 也可采纳在线汇编处理
4 、对中止体系 定时器初始化
需从头依据相应操控寄存器的功用给其赋值 办法与 C51 相同 详细如下
对 MCS51 中 IE IP的处理改为对 AVR中 GIMSK TIMSK MCUCR SREG
的处理对 MCS51 中 IE IP的处理改为对 AVR中 GIMSK TIMSK MCUCR SREG的处理
5 将原 C51中有关对看门狗电路 外部 EEPROM的处理改为对 AVR芯片内部看门狗电路 内部 EEPROM的处理
6 、对 MCS51UART 的初始化改为对 UCR和 UBRR和被始化
7、 假如运用片外 SRAM 应当对 MCUCR初始化假如有引脚作为输出引脚使应当对其方向寄存器进行初始化
8、 对 C51中契合 ANSI规范的 C言语 原则上不需要进行修正 除非为了程序结构的优化
单片机51到AVR程序的移植
将C51向ICCAVR的转换进行一次总结1、头文件对C51中定义寄存器的头文件如reg51hat89x51h等替换成相应的AVR头文件如io85
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/263594.html