历史上的今天
返回首页

历史上的今天

今天是:2024年10月28日(星期一)

正在发生

2019年10月28日 | 51单片机程序转AVR的方法

2019-10-28 来源:51hei

将 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语言 原则上不需要进行修改 除非为了程序结构的优化

推荐阅读

史海拾趣

Cables To Go公司的发展小趣事

在竞争激烈的电子行业中,优质的客户服务是赢得客户信任的关键。Cables To Go公司深知这一点,因此始终将客户服务放在首位。公司建立了一支专业的客服团队,随时为客户提供咨询、技术支持和售后服务。此外,公司还不断优化服务流程,提高服务效率,确保客户能够享受到及时、专业的服务。这种以客户为中心的服务理念赢得了客户的广泛赞誉。

Fagor Electrónica公司的发展小趣事

进入1960年代,Fagor Electrónica迎来了其发展的第一个重大里程碑。1964年,公司成功启动了第一批硅整流器的制造。这一创新不仅提高了产品的性能,还为公司带来了更大的市场份额。硅整流器的推出标志着Fagor Electrónica在电子制造技术上的领先地位,也为其后续的发展奠定了坚实的基础。

安信可(Ai)公司的发展小趣事

随着物联网技术的快速发展,安信可也迎来了技术升级的关键时刻。2014年9月,安信可成功引入ESP8266 SoC方案,这一技术升级为公司带来了更多的市场机会。到了2016年5月,安信可更是成功转型为一站式物联网模组解决方案提供商,为客户提供从模组到应用的全方位服务。

Electric Imp Inc.公司的发展小趣事

在电子行业的浪潮中,Electric Imp Inc.公司以其独特的物联网(IoT)解决方案崭露头角。公司创始人是一位资深的电子工程师,他敏锐地捕捉到了物联网市场的巨大潜力。在创业初期,公司面临资金短缺、技术瓶颈等挑战,但创始人带领团队夜以继日地研发,终于推出了第一款基于云计算的物联网设备管理平台。这款产品凭借其易用性、稳定性和可扩展性,迅速获得了市场的认可。

對餘科技(DIOFIT)公司的发展小趣事

随着科技的不断发展,DIOFIT公司始终将技术创新作为发展的核心驱动力。他们不断投入研发资金,引进先进技术和人才,致力于研发具有自主知识产权的电子产品。在物联网、人工智能等前沿领域,DIOFIT公司取得了一系列突破性的成果,推出了一系列具有竞争力的产品,成为行业内的技术创新引领者。

Amphenol Nexus公司的发展小趣事

1998年,Amphenol Nexus Technologies经历了一次重要的领导层更迭。拜尔斯先生退休,弗雷德·法拉哈尼(Fred Farahani)收购了Nexus, Inc.的股份,并与弗拉纳根先生成为合伙人。在Fred的领导下,公司开始关注销售和开发方面的新机遇,产品基础也扩展到包括微型连接器系列。这一变革为公司带来了新的增长点,使其在激烈的市场竞争中保持了领先地位。

问答坊 | AI 解惑

LDO低压差线性稳压器

LDO  LDO是low dropout regulator,意为低压差线性稳压器,是相对于传统的线性稳压器来说的。传统的线性稳压器,如78xx系列的芯片都要求输入电压要比输出电压高出2v~3V以上,否则就不能正常工作。但是在一些情况下,这样的条件显然是太苛刻了,如 ...…

查看全部问答>

2410 I2C 在什么情况下产生中断?

最近一段时间,接触了好几个具有 I2C 接口的从设备器件; 也对 I2C 的 WinCE 流驱动也有所了解。 开始用【查询】方式实现了一个 I2C 流驱动; 现在准备用【中断】方式实现 I2C 流驱动; 但是看了好几遍【2410数据手册】,都没有看明白; 2410 ...…

查看全部问答>

大家用wince6.0, 在vs2005里是怎么找函数和变量定义的???

转到声明,转到定义都用不了,怎么回事?是不是非托管代码的原因?…

查看全部问答>

关于USB接口的serial驱动

serial驱动是将USB接口模拟成串口?那是怎样与外部设备进行通信的?难道就和普通的串口一样?…

查看全部问答>

WinCE 4.2下软重启的工具

谁有WinCE 4.2下软重启的工具啊。网上的都是用于Win Mobile版本的。不能用。…

查看全部问答>

PLC与变频器的组合应用

                                      &n ...…

查看全部问答>

安装了IAR5.2,破解失败,怎么回事啊,用5.2的朋友进来看看

Fatal Error[Cp001]: Copy protection check, No valid license found for this product对程序进行编译就会有这个错误,用软件破解了啊,也在网上查了,但是还是没有解决我卸载好几遍了希望高手帮助啊…

查看全部问答>

在线MSP430编辑编译无需本地电脑安装CCS或IAR之类开发环境

在线MSP430编辑编译无需本地电脑安装CCS或IAR之类开发环境看了一下,支持代码彩色显示编写完了以后还可以在其网站服务器上进行编译,然后可以下载编译后的可烧写文件。使用google帐户登陆,无需注册。对于帐户安全,一般可以放心,使用OpenId方式来 ...…

查看全部问答>

这个红叉叉

各位大侠,请问电路图中的红叉叉是什么??代表什么意思??偶现在在自学电路哈哈!!!…

查看全部问答>

基于sensorTag的浴室湿度调节器

浴室的排风扇一直开着的话一方面浪费电源,另一方面不利于周围洗浴温度的上升。使用这样一款浴室湿度调节器,就可以及时的调节浴室内的湿度,使其控制在一个可视的,温度舒适的合理范围内。这样既可以节约能源又可以,避免浴室湿度过大视线受阻带来 ...…

查看全部问答>