打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
单片机51到AVR程序的移植——转别人的帖子
将 C51 向ICCAVR的转换进行一次总结 
1、 头文件
对C51中定义寄存器的头文件如 reg51.h at89x51.h等替换成相应的 AVR头文件 如io8515.h  io2313.h等
2、 中断处理函数
在 C51 中以 interrupt 关键字来说明某一个函数为中断处理函数 在 ICCVAR 中可采用#pragmainterrupt_handler预处理命令在程序开始处声明 具体用法如下: 
#pragma interrupt_handler <中断处理函数名><中断向量号>
在CodeVisionAVR中格式:interrupt [USART0_RXC] void com_rece_interrupt(void)
注意 对原 C51 源程序中的 interrupt 和 using关键字应当删除 
3 、对 C51 中的 bit 和 sbit 数据类型的处理
在 ICCAVR中不支持 bit 和 sbit数据类型 对这两种类型可用 unsigned char来代替对有关位运算用标准 C的位运算功能进行处理 也可采取在线汇编处理 
4 、对中断系统 定时器初始化
需重新根据相应控制寄存器的功能给其赋值 方法与 C51 相同 具体如下 对 MCS51中 TMODTCON的处理改为对 AVR的 TCCR0 TCCR1A TCCR1B TIFR的处理 ,
对 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语言 原则上不需要进行修改 除非为了程序结构的优化
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何看懂数据手册?
AVR单片机外部中断触发的流水灯程序
MCS
AVR单片机C语言的使用特点
avr单片机的定时器、中断和PWM(转)
计算机技术控制
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服