- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AVR开发WinAVR与CodeBlocks简单教程精选
使用WinAVR + CodeBlocks 作为AVR 单片机开发环境
本文档包括:
程序的安装,配置,简单程序的编写,中断服务函数的格式,以及串口使用printf 输出的方法
需要软件:1. WinAVR(GCC AVR) 2.CodeBlocks
一、安装 WinAVR 若不是C 盘特别小,推荐安装在C 盘,后面设置比较方便
先安装WinAVR 的话比较方便,后面装CodeBlocks 的时候就会自动识别GCC 的编译器
安装完后桌面会有6 个图标。。。全部删掉,没用。
二、安装CodeBlocks 同样推荐安装在C 盘,就是一路next
安装完会提示你打开,你就打开,然后提示你选编译器,找到GNC AVR GCC 那个,
设为默认。
三、下面进行软件配置
如果前面是按照先装WinAVR ,后装CodeBlocks 的顺序安装,那么,这一步配置的东西并不多,可以
按喜好自己配置。说一下没有按照推荐方法安装需要检查的几个地方。
1. 打开SettingCompilerGlobal compiler settings 如图:
按照红色方框里面,选择GNU AVR GCC Compiler 。
2. 如图,在Search directoriesCompiler 里面Add 目录C:\WinAVR\avr\include 具体由你
WinAVR 安装的位置决定。
同样设置Linker 里面目录为C:\WinAVR\avr\lib 。
再找到Toolchain executables 这些如果按照默认路径便是已经配置好了,不需要修改。
这样开发环境已经搭建完毕!
推荐使用 CodeBlocks 的原因之一就是它的代码提示功能,在 SettingEditorCode
completion 里面可以设置输入几个字符后会进行代码补全,十分实用的功能。
实战演示
流水灯
1. FileNewProject… 选择AVR Project 点Go,Next 输入工程名字。下一步。
2. 相比较于以前版本,多了一个Debug 和Release 选项,想详细了解的可以自己查看相关
资料,这里选择Debug 不选Release。下一步。
3. 这个页面用来选择单片机。勾上Define F_CPU with the following value 相当于在程序里加
上了
#define F_CPUL
用来定义时钟频率
这里把Create Fuse, Lock, Signature files(.fuse .lock .sig) 选项去掉, 把Run avr-size after build
选项勾上,这里可以在编译完成后显示文件大小。
4. 这样工程就搭建完成了。
5. 编写程序
添加头文件
#include avr/iom16.h //ATmega16 具体按照芯片添加
#include util/delay.h //CodeBlocks 自带的一个delay.h 延时延时函数,具体可以打开研究
程序如下:
/*
测试程序
*/
#include avr/io.h
#include avr/iom16.h
#include util/delay.h
int main(void)
{
MCUCSR = 0x80;
MCUCSR = 0x80;
DDRC = 0xFF;
PORTC = 0xFF;
// Insert code
while(1)
{
PORTC = 0xF0;
_delay_ms(100);
PORTC = 0x0F;
_delay_ms(100);
} ;
return 0;
}
这里可以看到程序的大小。使用自带的.h 文件程序较大,因为要考虑各种复杂情况,自己
使用时简单的推荐自己写。
中断的使用
中断使用时需要添加#include avr/interrupt.h
下面给出给出一个外部中断INT0 的中断配置以及服务函数
void Init_Key(void)
{
ClrBit(DDRD, 2);
ClrBit(DDRD, 3);
MCUCR |= 0b00001010
您可能关注的文档
最近下载
- 五年(2021-2025)高考英语真题分类汇编:专题19 应用文写作(新高考)(全国通用)(解析版).docx VIP
- 呼和浩特市城市燃气热力集团有限公司招聘58名工作人员笔试备考题库及答案解析.docx VIP
- (全国职业技能比赛:高职)GZ069纺织品检验与贸易赛项理论和实操题库共计9套.docx VIP
- (正式版)DB42∕T 159-2024 《基坑工程技术规程》.pdf VIP
- 预拌混凝土ERP说明书.doc VIP
- 小学学校教育督导问责办法.docx VIP
- 二类医疗器械分类目录大全.pdf VIP
- 初中数学一元二次方程知识点练习题.doc VIP
- (高清版)DB42∕T 914-2013 《湖北省地下连续墙施工技术规程》.pdf VIP
- 2025 年入团考试真题精选及答案.doc VIP
文档评论(0)