微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR单片机C语言入门一例

AVR单片机C语言入门一例

时间:11-20 来源:互联网 点击:
AVR单片机C语言编译软件有IAR、ICCAVR、winavr、Atmanavr、CodeVisionAVR等。其中CodeVisionAVR又称CVAVR,它可以说是目前最容易入门的C编译器,它体积小巧,但是代码效率却很高, 风格与keil-C51类似,与Keil-C51一样支持位变量、支持IO端口的位操作(其它的如IAR、ICCAVR、GCCAVR都没有此功能)下面就以CodeVisionAVR1.25.1为例来说说如何使用这个软件。

 

设置软件的工作界面。软件的默认字体并不太好看,需要设置一下,先运行CodeVisionAVR,点击菜单栏的“Settings”选择“Editor”就可以打开设置界面了,其中“Font”就是字体,请选择自己喜欢的字体和大小,推荐使用Fixedsys字体;另外“Comments”是注释,颜色选择灰白色比较容易区分;关键字“C Keywords”选择蓝色比较大众化。这样,工作界面就算设置完毕了。

 

新建工程。点击菜单栏的“File”选择“New”;在对话框里选择“Project”新建一个工程;在新建工程对话框里选择“yes”就出现了向导界面了。我们是以ATmega48为例,芯片当然是选择ATmega48了;芯片时钟一般是默认1M内部RC时钟,在时钟框里输入“1”就是了;由于我们刚开始还不熟练,所以其它的选项就不必理会;最后,我们点击向导的“File”菜单,选择“Generate,Save and Exit”保存向导产生的文件,一共是3个,分别是C文件、工程文件、向导文件。

 

编写源代码。完成上面的步骤后就可以出现主编辑窗口了,里面的内容就是软件向导产生的一些初始化代码,如果你不喜欢这些代码,可以把其中的一部分或者全部删除, 并写入自己的代码。

 

编译源代码。写好代码后点击编译按钮(或者点击菜单栏的“Project—>Make”),如果源代码没有错误,那么就可以产生烧写单片机所需要的hex文件了,如果源代码有错误的话则不会产生hex文件,并且软件会在左边的窗口里显示出红色的错误提示,单击它就可以定位到错误的地方了。

 

烧写hex文件。烧写也称‘编程’或者‘下载’;CVAVR集成芯片的ISP下载功能。不过由于这个软件是E文的,怕有部分E文不好的朋友操作不慎把芯片锁死,所以这个步骤就不详细的介绍了,推荐使用双龙公司的中文SL-ISP编程软件。

 

下面是一个最简单的例子,就是让ATmega48单片机的‘PD3’引脚输出1Hz的方波驱动LED。 硬件方面,新买回来的ATmega48的时钟是默认的内部RC振荡时钟,频率是1MHz,我们只要把芯片接上5V电源 就可以工作了,电路够简单吧,代码如下:

//编译器: CodeVisionAVR 1.25.1 Evaluation
//芯片时钟: 1000000Hz
#include//单片机是ATmega48
#include//延时函数的头文件
voidmain(void)//主函数,单片机从这里开始运行
{
PORTD.3=0;//配合DDRD.3=1使用就使PD3端口推换输出低电平
DDRD.3 =1;//设置PD3引脚为输出
while(1)//循环语句,括号里面的表达式是"真"就循环
{
delay_ms(500);//延时500ms
PORTD.3=~PORTD.3;//电平取反
};
}

 

另外有一点要提一下的就是,上面的源代码编译后产生的机器代码大小是111words,就是222字节,表面上看这个CVAVR软件的代码效率不高,但是事实却恰恰相反,随着源代码的增多,你就会发现,这个编译软件产生的机器代码不管是大小还是运行时间都是非常优秀的,这也是本站推荐使用的其中一个原因。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top