·上一文章:为何要使用C语言而不是汇编语言开发AVR单片机?
·下一文章:WJ-V4.0一个按键实现三个LED的亮灭延时控制
1. WinAVR 20050214 版本(C语言编写、编译软件)。
2. AVR Studio 4.12 (下载与调试软件)。
3. STK500 下载(烧录器)器 (接电脑及本实验板)
4. ATmega16 芯片及常用零件若干(详见电路图)2. 实验描述:
编写一段C代码,实现8只LED的跑马灯程序。
3. 电路图设计 :
.
.
4. 用WinAVR(GCC)语言编辑C代码
在C盘建立一个叫 C:\avr_test 的文件夹, (需要解压后才能使用,你会得到一个叫main.c的文件以及一个叫Makefile的文件。不要改名,直接拷贝到c:\avr_test文件夹内即可)。压缩包见最下面附件。
运行 WinAVR 的PN (Programmers Notepad), File --> Open 打开main.c 后,看到如下的界面
注:为了学习方便,你也可以直接点击这里查看main.c 的具体内容。直接点击这里查看makefile的具体内容。5. 编译 (Make All)
按下图操作。
编译成功后,会有如下的 Process Exit Code: 0 的信息。如果结果不是0,表明编译有问题,请检查你的 c:\avr_test 目录是否有main.c 与 Makefile 两个文件。编译成功后,原来只有2个文件的目录,现在变成了如下图的文件清单:
留意上面生成的 main.hex, 它是烧录文件。烧录(即下载)到AVR芯片后,就能运行。
6. 搭建电路实物图
你可以使用万能板将上述的电路搭建起来。 为了方便演示,我们将电源供电、ISP下载接口等,制作在一块Mega16功能小板内。可用于本新手入门的所有范例。外围的8只LED灯及电阻等,我们制作成新手入门热转印PCB板。将这两块PCB组合在一起,接上电源及STK500 ISP下载线。如下图:
7. 配置ATmega16的工作频率与振荡方式 (即设置熔丝位。如果你使用的是新芯片,可跳过此步)
本入门范例是使用1M的工作频率(如果设错,会导致延时不正确)。AVR单片机内置RC振荡,可产生单片机需要的时钟频率。如果精度要求较高时,也可以使用外接的晶振。本范例是使用内部RC振荡。打开 AVR Studio 软件,按下图操作。
弹出如下的界面:
点击如下图:表示:内部RC振荡 1M 工作时钟频率,启动时间:6个时钟周期+64毫秒按 Program 确认修改,STK500下载器会将修改更新到芯片中。仍是使用STK500刚才的界面,选择好芯片名称(DevICe), Flash 的烧录文件名后,按 Program 将电脑上的 main.hex 文件烧录到 ATmega16芯片内。
8. 运行
烧录成功后,实验板上的8只LED灯,立即以跑马灯的形式在闪动。
9. 恭喜你已经进入AVR的精彩世界!