找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5099|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)程序轉(zhuǎn)AVR的方法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:296052 發(fā)表于 2018-3-23 16:54 來(lái)自觸屏版 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
將 C51 向 ICCAVR的轉(zhuǎn)換進(jìn)行一次總結(jié)
1、 頭文件
對(duì)C51中定義寄存器的頭文件如 reg51.h at89x51.h等替換成相應(yīng)的 AVR頭文件 如 io8515.h io2313.h等
2、 中斷處理函數(shù)
在 C51 中以 interrupt 關(guān)鍵字來(lái)說(shuō)明某一個(gè)函數(shù)為中斷處理函數(shù) 在 ICCVAR 中可采用#pragma interrupt_handler預(yù)處理命令在程序開(kāi)始處聲明 具體用法如下:
#pragma interrupt_handler <中斷處理函數(shù)名> <中斷向量號(hào)>
注意 對(duì)原 C51 源程序中的 interrupt 和 using關(guān)鍵字應(yīng)當(dāng)刪除
3 、對(duì) C51 中的 bit 和 sbit 數(shù)據(jù)類型的處理
在 ICCAVR中不支持 bit 和 sbit數(shù)據(jù)類型 對(duì)這兩種類型可用 unsigned char來(lái)代替對(duì)有關(guān)位運(yùn)算用標(biāo)準(zhǔn) C 的位運(yùn)算功能進(jìn)行處理 也可采取在線匯編處理
4 、對(duì)中斷系統(tǒng) 定時(shí)器初始化
需重新根據(jù)相應(yīng)控制寄存器的功能給其賦值 方法與 C51 相同 具體如下 對(duì) MCS51中 TMOD TCON的處理改為對(duì) AVR的 TCCR0 TCCR1A TCCR1B TIFR的處理
對(duì) MCS51 中 IE IP的處理改為對(duì) AVR中 GIMSK TIMSK MCUCR SREG
的處理對(duì) MCS51 中 IE IP的處理改為對(duì) AVR中 GIMSK TIMSK MCUCR SREG的處理
5 將原 C51中有關(guān)對(duì)看門狗電路 外部 EEPROM的處理改為對(duì) AVR芯片內(nèi)部看門狗電路 內(nèi)部 EEPROM的處理
6 、對(duì) MCS51UART 的初始化改為對(duì) UCR和 UBRR和被始化
7、 如果使用片外 SRAM 應(yīng)當(dāng)對(duì) MCUCR初始化如果有引腳作為輸出引腳使應(yīng)當(dāng)對(duì)其方向寄存器進(jìn)行初始化
8、 對(duì) C51中符合 ANSI標(biāo)準(zhǔn)的 C語(yǔ)言 原則上不需要進(jìn)行修改 除非為了程序結(jié)構(gòu)的優(yōu)化

發(fā)自我的華為手機(jī)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:33897 發(fā)表于 2018-3-28 10:39 | 只看該作者
謝謝分享  樓主辛苦了
回復(fù)

使用道具 舉報(bào)

板凳
ID:380304 發(fā)表于 2018-7-28 21:11 | 只看該作者
新手的學(xué)習(xí),謝謝分享
回復(fù)

使用道具 舉報(bào)

地板
ID:176854 發(fā)表于 2018-8-10 17:08 | 只看該作者
學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表