欢迎光临MCUWAY! 本站网名:单片机之路  永久域名:www.mcuway.com

设为首页

加入收藏

电子基础 初学MCU 单片机类型 MCU程序 MCU应用 设计软件 测控电路 技术论坛
 您现在的位置: 单片机之路 >> 单片机类型 >> AVR系列 >> 文章正文

AVR单片机实现单灯闪烁(2)

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:\avr\ddss文件夹。 
    然后在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 进入仿真界面

[1] [2] 下一页

普通文章28课:单片机音乐汇编程序设计
普通文章27课:单片机的一些基本概念
普通文章26课:单片机矩阵式键盘接口技术
普通文章非常详细的51单片机引脚介绍
普通文章图解使用Keil C51软件的九个步骤
普通文章哈佛(Harvard)结构的单片机的原理图
普通文章单片机引脚及功能说明
普通文章c51单片机c语言教程介绍
普通文章第一课 建立你的第一个KeilC51项目
普通文章第二课 HEX文件的生成和MCU最小系统
普通文章第三课 C51语言的数据类型
普通文章第四课 C51常量
普通文章第五课 C51变量
普通文章第六课 C51运算符和表达式
普通文章第七课 运算符和表达式(关系运算符)
普通文章第八课 运算符和表达式(位运算符)
普通文章第九课 C51运算符和表达式(指针和地址
普通文章第十课 C51表达式语句及仿真器
普通文章第十一课 C51复合语句和条件语句
普通文章第十二课 C51开关分支语句
普通文章第十三课 C51循环语句
普通文章第十四课 C51函数
普通文章第十五课 C51数组的使用
普通文章第十六课 C51指针的使用
普通文章第十七课 C51结构、联合和枚举的使用

  • 上一篇文章:
  • 下一篇文章:
  • 更多精彩内容>>>

    普通文章电流单位
    普通文章功率单位
    普通文章什么是达林顿管?
    普通文章晶闸管的作用与原理

    学习单片机的必经之路——单片机之路,永久域名:www.mcuway.com