将 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语言 原则上不需要进行修改 除非为了程序结构的优化
上一篇:ATmega16单片机ad电流和电压采样程序
下一篇:warning: #1295-D: Deprecated declaration spistar - give arg types
推荐阅读
史海拾趣
FLIR一直将技术创新视为企业发展的核心驱动力。在过去的几十年里,公司不断推出具有革命性的红外热像仪产品。例如,1985年,FLIR研制出全球首台无需液氮制冷的高性能红外热像仪系统;1993年,公司推出了全球首台高分辨率平面(FPA)热像仪;2000年,FLIR又推出了可同时拍摄红外图像和可见光图像的红外热像仪ThermaCAM PM695。这些创新产品不仅提升了红外热像仪的性能和易用性,还推动了整个行业的技术进步和产业升级。
随着公司业务的不断发展,启臣微开始积极拓展海外市场。公司在西安设立研发中心,在深圳和昆山设立销售中心,并与多家国际知名企业建立了合作关系。这些举措不仅提升了公司的国际影响力,也为公司带来了更多的发展机遇。
在洲光源公司的发展历程中,品质一直是其核心竞争力之一。公司始终坚持严格的质量控制标准,从原材料采购到产品生产、检测的每一个环节都严格把关。同时,洲光源还注重品牌塑造和市场推广,通过参加各种行业展会、举办技术交流会等方式,不断提升品牌知名度和影响力。这些努力使得洲光源的红外LED产品逐渐在市场上脱颖而出,成为众多客户的首选品牌。
Chesivale Electronics公司自成立以来,一直致力于电子技术的研发与创新。在早期,公司面临市场竞争激烈、技术瓶颈等重重困难。然而,公司的研发团队坚持不懈,最终成功研发出一款具有划时代意义的芯片技术。这款芯片不仅性能卓越,而且成本大大降低,迅速在市场上获得了广泛的认可。这一技术突破为Chesivale Electronics公司赢得了大量的订单和市场份额,也为公司的后续发展奠定了坚实的基础。
Chesivale Electronics公司自成立以来,一直致力于电子技术的研发与创新。在早期,公司面临市场竞争激烈、技术瓶颈等重重困难。然而,公司的研发团队坚持不懈,最终成功研发出一款具有划时代意义的芯片技术。这款芯片不仅性能卓越,而且成本大大降低,迅速在市场上获得了广泛的认可。这一技术突破为Chesivale Electronics公司赢得了大量的订单和市场份额,也为公司的后续发展奠定了坚实的基础。
随着汽车工业的发展,大陆集团开始将业务扩展到汽车轮胎领域。1901年,马牌轮胎首次与德国戴姆勒·奔驰汽车公司合作参加汽车竞赛,这标志着大陆集团正式进入汽车轮胎市场。仅仅三年后,大陆集团就生产出了全世界第一条带花纹的汽车轮胎,这一创新大大提高了轮胎的抓地力和安全性。1908年,大陆集团又生产出了全世界第一个可拆装的车轮,使车轮和车轴分开,由此大大节省了换轮胎的时间。这些技术创新使得大陆集团在汽车轮胎市场上占据了重要地位。
我分别用VC和EVC写了相同的代码,发现在调用bitblt函数的时候调用的时间不一样,分别是15ms和180ms 其中IDB_BITMAP1为800*480的位图 代码如下: static DWORD time,oldtime,temp; time = ::GetTickCount(); ...… 查看全部问答∨ |
P5DIR |= 0x02; 请问这个表达式是什么意思呢, 0x02是00000010吧,那P5DIR|=0X02是不是等于P5DIR=P5DIR|00000010呢; 怎么看它定义的是哪个端口呢;又怎么知道P5DIR指向输入还是输出呢; 各位大哥,请帮帮我这个菜鸟吧..拜托了… 查看全部问答∨ |
RealView Development Suite 4.0 Professional 软件 RealView Development Suite 4.0 Professional 软件http://www.mcu123.com/news/Soft/embsof/arm/200811/486.html… 查看全部问答∨ |
|
可能看到我帖子的人,会有些失望,这么久了才提交个led循闪烁的程序,是不太应该,其实这几天都是在看M4的驱动编程,一直在归纳总结自己在M4学习中Keil软件方面的问题,大家也许看看我的文档,就能不这么责怪我了呵 ...… 查看全部问答∨ |
嵌入式学习的点点滴滴(我的学习笔记-《鸟哥的linux私房菜》3) 大家好,抽出一点时间写一下今天的学习笔记,这几天感觉自己挺认真的,晚上决定奖励自己去看场电影 (本想把自己的linux安装方法上传的,想想还是算了,网上有太多太多这样的教程啦,在这里提一个小的建议,就是像我一样的新手,在虚拟机中安装lin ...… 查看全部问答∨ |
本帖最后由 ddllxxrr 于 2016-1-7 16:30 编辑 谁有闲置的DE0-Nano开发板,求购 本站强荐:185娱乐亗城.足球亗真_人.彩票齐全亗手机可投亗注任何游戏. 首次开户送10元.首存送58元.信誉绝对保证185.cc … 查看全部问答∨ |
Ubuntu下vim的安装 参与Helper2416开发板助学计划心得 对于linux的学习,想必不能不对vi的学习,对于新手来说,一般都不习惯vi的应用,特别是系统自带的vi,进入不能按照我们平时的习惯去删除、移动等操作。ubuntu中vi在编辑状态下方向键不能用, ...… 查看全部问答∨ |