将 C51 向 ICCAVR的转换进行一次总结 


1、头文件
对C51中定义寄存器的头文件如 reg51.h at89x51.h等替换成相应的 AVR头文件 如 io8515.h io2313.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中 TMOD TCON的处理改为对 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语言 原则上不需要进行修改 除非为了程序结构的优化

关键字:51单片机  程序转AVR  头文件 引用地址:51单片机程序转AVR的方法

上一篇:ATmega16单片机ad电流和电压采样程序
下一篇:warning: #1295-D: Deprecated declaration spistar - give arg types

推荐阅读

在为期三天的2018高通5G峰会上,vivo人工智能全球研究院院长周围透露了vivo的5G手机发展规划:2019年完成全球首批NSA和SA 5G手机的研发和批量生产,推出第一款5G预商用手机,并将在2020年真正实现5G智慧手机商用。        周围表示,5G与人工智能的深度融合,将成为5G手机时代的重要趋势。vivo是首批投入5G技术研发的终端公司之一,早在2016年,v...
中国储能网讯:2019年10月16-17日,中国智能量测产业技术创新战略联盟峰会在北京国家会议中心隆重召开,会议由国家电网有限公司指导,中国智能量测产业技术创新战略联盟主办。 会上,国家电网有限公司营销部做了题为“客户侧泛在电力物联网建设”主题报告,报告指出在源网荷储协同服务方面应用区块链等技术,探索用户侧储能、分布式光伏等自主交易服务...
据外媒 MacRumors 证实,iPhone 12 系列同样引入了对个人热点网络共享的支持,该网络通过更快的 5GHz Wi-Fi 进行了支持,而之前的 iPhone 个人热点网络则为 2.4GHz Wi-Fi。所有 iPhone 12 型号默认都启用 5GHz Wi-Fi 的个人热点功能。 在这些设备上的“设置”>“个人热点”菜单中,有一个新的“最大化兼容性”开关,启用后会将“个人热...
敲黑板!正在找工作的“后浪”青年们看这里~想收割秋天的第一份offer吗?2021年10月30日“潮起东南 芯动张江”线下双选会将在东南大学(九龙湖校区)C位登场!自报名渠道开通以来超60家国内知名半导体企业“组团相亲”一幕幕“揽才大战”即将上演“后浪”青年们将如何选择心仪的职场第一站快来一镜到底!集微网消息,人才是创新驱动的超级引擎,是企业持...

史海拾趣

问答坊 | AI 解惑

买开发板的经验教训

本帖最后由 ddllxxrr 于 2016-1-7 17:19 编辑 买开发板的经验教训(转发) 我先来谈谈我自己的经验教训吧! 我最早买的ARM开发板是**公司的4510-R2,是基于4510b和uClinux的开发板,当初选择**公司的想法是——大公司,应该比较有实力,技术支持 ...…

查看全部问答∨

选择Stellaris系列微控制器的理由

虽然是周立功很早以前的文章,但是很清晰地论证了他的一些优势 …

查看全部问答∨

bitblt加载大位图图片显示时间问题?

我分别用VC和EVC写了相同的代码,发现在调用bitblt函数的时候调用的时间不一样,分别是15ms和180ms 其中IDB_BITMAP1为800*480的位图 代码如下:   static DWORD time,oldtime,temp;   time = ::GetTickCount();    ...…

查看全部问答∨

MSP430-C编程-疑问求教---表达式

P5DIR |= 0x02; 请问这个表达式是什么意思呢, 0x02是00000010吧,那P5DIR|=0X02是不是等于P5DIR=P5DIR|00000010呢; 怎么看它定义的是哪个端口呢;又怎么知道P5DIR指向输入还是输出呢; 各位大哥,请帮帮我这个菜鸟吧..拜托了…

查看全部问答∨

迷茫疑惑 啊

各位大侠:              你好!              我是一个从事了3年vxworks应用层软件开发的小工人,做电力通讯的,现在我的职业规划是一边学习电力通讯的业务,一 ...…

查看全部问答∨

RealView Development Suite 4.0 Professional 软件

RealView Development Suite 4.0 Professional 软件http://www.mcu123.com/news/Soft/embsof/arm/200811/486.html…

查看全部问答∨

Hanker_M4学习笔记(一)

      可能看到我帖子的人,会有些失望,这么久了才提交个led循闪烁的程序,是不太应该,其实这几天都是在看M4的驱动编程,一直在归纳总结自己在M4学习中Keil软件方面的问题,大家也许看看我的文档,就能不这么责怪我了呵 ...…

查看全部问答∨

嵌入式学习的点点滴滴(我的学习笔记-《鸟哥的linux私房菜》3)

大家好,抽出一点时间写一下今天的学习笔记,这几天感觉自己挺认真的,晚上决定奖励自己去看场电影 (本想把自己的linux安装方法上传的,想想还是算了,网上有太多太多这样的教程啦,在这里提一个小的建议,就是像我一样的新手,在虚拟机中安装lin ...…

查看全部问答∨

DE0-Nano开发板求购

本帖最后由 ddllxxrr 于 2016-1-7 16:30 编辑 谁有闲置的DE0-Nano开发板,求购 本站强荐:185娱乐亗城.足球亗真_人.彩票齐全亗手机可投亗注任何游戏. 首次开户送10元.首存送58元.信誉绝对保证185.cc …

查看全部问答∨

Helper2416-03——Ubuntu下vim的安装

Ubuntu下vim的安装 参与Helper2416开发板助学计划心得 对于linux的学习,想必不能不对vi的学习,对于新手来说,一般都不习惯vi的应用,特别是系统自带的vi,进入不能按照我们平时的习惯去删除、移动等操作。ubuntu中vi在编辑状态下方向键不能用, ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved