|
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] 下一页 |
|