avr单片机新手入门的第一个范例档.docx
- 文档编号:30569087
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:11
- 大小:479.26KB
avr单片机新手入门的第一个范例档.docx
《avr单片机新手入门的第一个范例档.docx》由会员分享,可在线阅读,更多相关《avr单片机新手入门的第一个范例档.docx(11页珍藏版)》请在冰豆网上搜索。
avr单片机新手入门的第一个范例档
新手入门的第一个范例
作者:
527dz()/2004-09-01/armok对涉及PonyProg内容修改成SL_ISP,加入时钟校正/www.OurAVR.com
你准备好AVR下载电缆和AVR的开发软件了吗?
如果准备好了,我们就来体验一下玩单片机的乐趣吧!
做实验前,请先下载准备好以下三个软件:
ICCAVR6.31A,AVRStudio4.10,SL_ISP1.3.可以到本站此处下载:
AVR开发软件介绍及下载
实验目标:
现在我们的目标是设计一个电路,用AVR单片机来控制一个红色的LED和绿色的LED。
电路加电后,首先绿色的LED点亮,5秒钟以后,绿色的LED熄灭,然后红色的LED点亮5秒钟。
最后红色的LED和绿色的LED以1Hz左右的频率交替闪烁。
通过本实验可以让我们了解玩AVR单片机的基本步骤和基本开发软件的简单使用。
实验器材:
需要准备的器材:
Atmega8或者其他AVR单片机一片、红色LED一只、绿色LED一只、万能实验板一块、7805、100uF电容各一只、470欧姆电阻两只。
实验电路图:
用C(ICC)语言编写程序:
创建一个新项目:
从ICC的“Project”菜单中选择“New”命令,选择一个目录后,将这个项目取名为test_C1存盘。
存盘后,在ICC窗口的右边(项目管理器)显示了新建工程的目录结构,如下图:
项目管理器显示的项目
新建源程序文件:
选择“Fill”菜单的“New”命令,ICC自动生成一个Untitled-0的文件。
然后“Fill”菜单的“SaveAs”命令,将Untitled-0文件名改为test_C1.c后存盘。
添加源程序文件到项目中去:
鼠标右键点击项目管理器的File目录,选择弹出窗口的“AddToFile”命令将test_C1.c文件加入到项目中,如下图:
源程序文件添加到了项目中
开始编辑源程序:
C源代码下载:
点击此处下载
源程序编译:
选择“Project”菜单下的“Operation”命令弹出编译选项。
选择你安装ICC的include和Lib子目录的文件路径:
Compiler选项中“OutputFormat”选择“COFF/HEX”,同时生成.cof和.hex文件。
Cof文件用于在AVRStudio中进行软件仿真,hex文件是最后要下载到单片机中的文件。
另外,要根据你使用的AVRStudio选择相应的版本。
选择目标单片机类型,本次实验选择Atmega8。
编译选项设置完毕以后,选择“Project”菜单中的“RebuildAll”命令,如果源程序没有问题,即可完成源程序的编译。
编译完成后,我们看到在你的项目的目录中生成了一个test_C1.cof和test_C1.hex文件。
程序调试:
用AVRStudio软件模拟单片机的运行,在电脑上观察单片机执行情况是否符合我们的要求。
选择“File”菜单中的“OpenFile”命令,如果是调试C语言编写的程序则打开test_C1.cof文件。
这时弹出仿真选项窗口,如下图:
这里选择软件仿真“AVRSimulator”目标CPU选择“Atmega8”。
点击上面窗口的“Finish”按钮后,出现下面界面:
左边的Workspace的I/O子窗口显示的是CPU的状态,右边窗口显示的是你的源程序。
将CPU的I/O口和Processor状态展开,如下图:
在这里我们可以详细的观察控制本实验中两个LEB的PB0、PB1脚的电平变化,以及延时情况。
我们注意到在上面窗口中,显示的时钟频率是4MHz,但本实验采用的时钟频率是1MHz,因此选择“Debug”菜单中的“AVRSimulatorOptions”命令,弹出下面窗口:
现在我们可以来看看你的程序是否能够满足我们的要求了!
在“Debug”菜单中可以选择多种程序执行方式,注意观察CPU的状态窗口,看看PB0、PB1脚的输出电平是否按照我们计划的规律在变化。
搭建实验电路板:
将实验所需元器件按实验一电路图在万能实验板上焊接好。
这里我是直接采用自制的下载插座插到实验板上的CPU插座上进行程序下载,也可以在万能实验板上将单片机的MISO、SCK、MOSV、RST、VCC、GND脚用一个插座引出,再接到你的下载电缆上。
RC振荡时钟校正及下载程序到CPU中去:
Atmega8内部集成了可校准的RC振荡器,可以提供固定的1.0、2.0、4.0、8.0MHZ的系统时钟源。
在使用时需要设置CKSEL(3-0)熔丝位,而且需要在OSCCAL寄存器中装载时钟校准值。
不同的芯片和不同的频率,该校准字都不一样。
例如在本实验中,我们在芯片下载之前,可以先用下载线和双龙的下载软件读出芯片1MHZ的时钟校准值,然后直接在程序中赋值给OSCCAL。
操作过程如下:
打开双龙的ISP下载软件,主界面上出现下面编程选项,最后输入hex烧录文件的路径,
双击“内部RC校正”,出现下面界面,选择“1MHZ”后,点击“确认”。
回到主界面后,点击“读取”即可获取芯片的校正值。
下图显示了我使用的芯片在1MHZ时的校正值为0X98。
然后在程序中用OSCCAL=0X98语句装载时钟校正值。
1MHZ内部时钟的熔丝位按下图设置:
回到刚才输入hex路径的主界面,按“编程”就开始执行将程序下载到CPU。
注意:
Ponyprog2000也是比较好用的下载软件,在上一个实验中介绍过,但遗憾的是该软件读出的时钟校正值只有1MHZ的校正,其他频率的校正值无法读出。
而双龙的SLISP软件可以读出4个频率的不同校正值。
实验结果:
完成程序下载到CPU后,你就能观察到两个LED灯,按程序的设计在闪动了!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- avr 单片机 新手入门 第一 范例
![提示](https://static.bdocx.com/images/bang_tan.gif)