·首页 ·单片机应用 ·pic单片机教程 ·arm学习教程 ·AVR单片机 ·DSP芯片 ·接口电路 ·无线通信 ·存储器 ·模拟电路
·电路图 ·嵌入式系统 ·WinCE ·ucLinux ·Vxworks ·ucOSII ·可编程逻辑器件 ·led显示屏 ·PCB设计 ·传感器技术 ·仪器仪表

单片机论文网>AVR单片机>文章内容


上篇:AVR 单灯闪烁的实现(3)
下篇:AVR 单灯闪烁的实现(1)

AVR 单灯闪烁的实现(2)

51c51  本站整理 

 
3.程序分析
  1.C程序是由函数构成的,一个C源程序至少包括一个函数,一个C源程序有且只有一个名为main()的函数,也可能包含其它函数。这个程序中有一个main函数和两个用户自定义函数:mDelay()和io_init()。
  2.和51单片机不同,AVR单片机的端口在使用之前必须先设定好输入或输出,并决定是否接上拉电阻,因此,AVR单片机编程时比51要稍复杂一点,但却提供了更为强大的功能。
AVR单片机的端口一共有3个寄存器,即DDxn、 PORTxn 和PINxn,其中DDXn是用来设定端口的输出方向的,这里仅需要将PB.0设为输出即可,因此,在初始化程序中有: DDRB = 0x01;
这样一行,即将PB.0设为输出。其他的均为0。
  3.这里仍用了51中常用的延时程序编写的方式即空循环的方式来产生延时,延时程序如mDelay()所示。需要说明的是,由于AVR单片机运算速度极快,应此,空循环次数当多才能产生足够长的延时,这里用了2段延时,才达到1ms的延时效果,这个循环次数是经过实际测试得到的,当参数为1时,延时1ms。
  4.实现过程
有了上述程序之后,我们介绍两种实现的方式,即用winavr和atmanavr来实现。
  4.1 用WINAVR实现
  开启winavr―>Programmer Notpads,将上述源程序输入其中。保存源程序,设保存在E盘AVR文件夹下的DDSS文件夹下,文件名为ddss.c。
开启winavr->Mfile,编缉Makefile,开启之后,即有一个makefile的模板,如图2所示。

            图2 Makefile的模板
  点击菜单Makefile->Main file name……即出现如图3所示的对话框,通常不需要更改此选项,最终产生的hex文件即main.hex。

       图3 设置主文件名
  接着点击Makefile->Mcu type,设定所用单片机的型号,如图4所示。
 
       图4 设置单片机型号
  我们选择Atmega8515为我们所用的型号。
其他选项的说明如第一课《AVR的C语言开发环境的建立》一文所作的说明。
设置好后,点击file->save as将其存到e:avrddss文件夹。 
然后在Programmer Notepads中,点击:Tools->Make All,即可对该文件进行编译、链接等处理,有关信息在output窗口中呈现。如有错误,单击错误行,即可定位,以便对此进行修改,直到编译、链接完全正确为止。此时,output窗口显示:
> Process Exit Code: 0
  此时,即可进入调试。启动AVRStudio,点击file->open,即出现open的通用对话框,进入ddss所在文件夹,打开文件时,可选一切文件,而AVRStudio会自动识别文件类型,如图5所示。
 
      图5 打开文件时的对话框
  选择main.elf文件,即出现如图6所示的对话框。

      图6 选择仿真器及芯片
这里我们选择Avr Simalator,芯片选择Atmgea8515。
点击finish即调入仿真文件并进入仿真界面,如图7所示。
 
      图7 进入仿真界面
  4.2 用ATMENAVR实现
  启动Atmenavr,选择“文件->新建”,即图现如图8所示界面。
 
      图8 AtmanAVR新建向导
  选择AVR C Wizard(exe),然后在右侧“工程名:”和“目录:”中设置正确的目录并命名一个工程名。我们设定为E:AVRatman目录,工程名为ddss。
点击确定后,进入向导,首先选择芯片,这里我们选择Atmega8515,时钟频率选为11.0592M,看门狗无效,不对外部RAM进行设置。设置完成后如图9所示。
 
      图9 工程设置向导第一步
  点击下一步,进入Step 2,这一步是设置端口方向,点击PORTB页面卡,选择Bit0为0(点击I即可),其余不需要更改。然后即可以点击“完成”。完成后即进入AtmanAvr的主界面,并自动产生了一些文件,如ddss.c,ddss.h等,双击ddss.c,打开后,可以发现已根据需要做好了io口的初始化的工作。
查看main函数,可以看到有这样的程序行:
while(1)
{
// TOD Add your code here
}
即可在此处加上自己的处理代码。我们在此处加上:
mDelay(500);
PORTB&=0xfe;
mDelay(500);
PORTB|=0x01;
然后,再自行编写mDelay函数,即可。
源程序编写好后,按F7进行编译、链接,如果有错误,会显示在输出窗口中,双击可定位。修改源程序,直到编译通过为止。
编译通过后,点击编译->开始调试->Go即可进入调试。如图10所示。
 
      图10 进入调试
  至此,用winavr和Atmenavr进行程序设计、调试的基本步骤都已经结束

相关资料:
·AVR 单灯闪烁的实现(3)
·AVR 单灯闪烁的实现(1)
·AVR单片机从零开始
·74HC595串入并出例子
·AVR开发软件介绍
·USART与PC通信例子
·ISP下载线介绍
·在BASCOM终端仿真窗口里练习QBASIC
·AVR熔丝设置
·BASCOM基础知识
·BASCOM-AVR入门第一例
·EEPROM的读写例子

Copyright © 2004-2007 单片机论文网 - 免责条款