导读:开发avr单片机,咱们以avr 8515芯片为比如,来介绍它的运用办法,希望对感兴趣的朋友有所协助。
WinAVR 的装备与 makefile 一直是新手入门的两个难点。咱们经过具体的测验,引荐咱们不需求作任何的装备,而且介绍了如何用最简略的办法创立自己的 makefile 文件。运用本文,十来分钟你就能入门 WinAVR /GCC.
首要:下载安装WinAVR-20050214.exe软件安装好后(现在查阅最新的版别是07年的,即2007xxxx),你就能在电脑上看到如下的功用菜单:
阐明如下:
称号 |
阐明 |
Programmers Notepad |
GCC言语修正器。可供给运用程序接口。 |
Mfile |
GCC需求一个叫 makefile 的参数文件才干进行编译。Mfile 是一个东西,能够让用户方便地修正 makefile 上的参数。不过咱们不引荐运用它。咱们引荐直接用记事本翻开 makefile 进行修正。 |
AVR Insight |
仿真调试东西 |
TkInfo |
GNU的超文本浏览器 |
Uninstall WinAVR |
卸载 WinAVR 软件 |
WinAVR User Manual |
WinAVR 用户手册 |
GNU Maunals Online |
GNU的在线协助 |
AVR-libc Manual |
AVR GCC的C言语函数库协助手册 |
过程一:翻开 PN 东西
过程二: 在硬盘树立一个专门寄存avr文件的目录, 例如,咱们在D:盘新建一个AVR的目录,留意!不要用中文目录!也不要存在其他的有中文目录的途径。
在PN东西的修正窗口中输入下面的一个简略的跑马灯程序:
在PN东西的修正窗口中输入下面的一个简略的跑马灯程序:#include “avr/io.h”static void io_init(void)
{
PORTA = 0xff;
DDRA = 0xff;
}
void mDelay(uint16_t DelayTim)
{ uint16_t i;
for(;DelayTim>0;DelayTim–)
{ for(i=0;i<4000;i++)
{;}
for(i=0;i<3900;i++)
{;}
}
}
int main(void){
uint8_t i=0;
io_init();
while(1)
{ if(++i>=8)
i=0;
PORTA=~(0x01<>i可改动流水灯方向mDelay(500);}
}
然后:菜单 File –>save as..把它保存在刚刚树立的d:avr目录下,命名为led.c
回到前面点程序菜单的winavr的mfile出现前面的界面
点击主菜单Makefile->Main file name…即出现如图2所示的对话框,一般不需求更改此选项,终究发生的hex文件即main.hex。
接着点击Makefile->Mcu type,设定所用单片机的类型,如图3所示咱们挑选ATmega8515为咱们所用的类型。
点击:Make–>Debug Format:可挑选输出的调试文件格局,应挑选最终一项:ELF/DRARF-2(AVR Studio ELF,GDB[experimental] ),这样能够由发生供AVR studio 4以上版别调试用的ELF格局的文件。
图4 挑选主文件
其他的项一般能够不用改动。
编译 (Make All):
回到Programmer Notepads中,点击:Tools->Make All,即可对该文件进行编译、链接等处理,有关信息在output窗口中出现。如有过错,单击过错行,即可定位,以便对此进行修正,直到编译、链接完全正确中止。此刻,output窗口显现:> Process Exit Code: 0 (不然程序有问题请查看)
烧写程序/演示
用下载线连接好方针板上的ATmega8515L或Atmega8515,敞开电源 ,
依照上图挑选: 单片机作业在内部时钟8MHZ
留意:熔丝位装备过错将会锁死芯片导致再编程失利。
加载编译的文件main.hex
特别留意!因为51单片机和AVR单片机的复位信号相反,而XL600/XL1000首要规划为51单片机运用,为此, 假如按XL600/XL1000的复位键后,则中止运转, 按下不动,才从头运转。初学者请留意!别的因为软件规划的原因或许关键两次智能一键通, 才干正常的下载。
附表:Atmega8515/L的熔丝装备阐明(具体资料请参阅官方Datasheet)
表1.时钟源挑选
默许时钟源:
芯片在出厂时CKSEL = “0001”, SUT = “10”。默许时钟源为有最长发动时刻的内部RC振荡器(频率1M)。默许设置能够确保用户经过体系内或并行编程得到他们希望的时钟源。
标定的片内RC 振荡器供给了固定的1.0、2.0、4.0 或8.0 MHz 的时钟。这些频率都是5V、25°C 下的标称数值。这个时钟也能够作为体系时钟,只需依照表2 对熔丝位CKSEL进行编程即可。
表2. 片内标定的RC 振荡器作业形式