ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:308.62KB ,
资源ID:20019812      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20019812.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(WinAVR开源且免费 开发必备Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

WinAVR开源且免费 开发必备Word下载.docx

1、这也是个非常大的问题,如果你一点都不懂软件,请也找本计算机编程的书看看吧。三、 开始AVRGCC编程吧好了,下面我们来看一个简单的程序吧。在WinAVR的Programmer NotePad 2中的图:图2执行Make All后,生成HEX文件(本例中的文件名2.HEX)。以下是它的全过程。 make.exe all- begin -avr-gcc (GCC) 3.4.1 /告知avr-gcc的版本号Copyright (C)2004 Free Software Foundation,Inc. /编译器所属于公司及其版权信息This is free software; see the sour

2、ce for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE./这是ELF文件的一些信息,ELF文件用于调试。Size before: /转换前的ELF文件信息2.elf :section size addr.text 208 0.data 0 8388704.bss 0 8388704.noinit 0 8388704.eeprom 0 8454144.stab 780 0.stabstr 1469 0Total 2457Conv

3、erting to AVR Extended COFF: 2.cof/将ELF文件转换成AVR Studio能够接受的格式avr-objcopy -debugging -change-section-address .data-0x800000 -change-section-address .bss-0x800000 -change-section-address .noinit-0x800000 -change-section-address .eeprom-0x810000 -O coff-ext-avr 2.elf 2.cofDiscarding local symbol outsid

4、e any compilation unit: .do_copy_data_start .do_copy_data_loop .do_clear_bss_start .do_clear_bss_loopSize after: /转换后的文件信息。Errors: none /编译过程中产生的错误数- end - /编译结束 Process Exit Code: 0 /avr-gcc结束信息,0表示正常结束接下来用AVRISP程序将2.hex文件下载后AVR单片机中,观看效果。(可以考虑买个双龙的试验器SL_AVRAD)。下面我们来看看avr-gcc的IDE吧。主窗口(图3)这是非常标准的Wind

5、ows Style窗口。当然它由于不是专为avr-gcc设计,所以对它进行设置是必不可少的!下面我就来设置它,以使它成为我们好用的工具吧。(呵呵!可千万别小看它哦)在设置它之前让我们来看看,我们希望是一个怎样的工具吧。参照其它软件的IDE。首先,我们得有个工程(项目)管理器,这点PN已有,不需我们去设它。其次,得方便我们编辑源代码,最好是有关键字(代码)高度显示,以方便我们识别它们。如果能再给我们实时的一些提示就更好了!这方便PN做得非常很好(有人说SI很好,不过我觉得每个人有每个人的习惯,不必强求)。再次,我们得在不离开IDE的情况下,编辑C语言的makefile文件。生成我“目标代码”(计

6、算机中术语的话叫可执行文件),并且,下载到我们单片机中。好了!来看看我们对它的设置吧!1、代码高亮设置将它设置成你习惯的模式。步骤如下:打开PN菜单Tools-Options,在Options对话框中选择Style-Schemes,你说看到了如图4、5、6所示的内容了。现在开始你的设置吧。代码高亮设置1-预编译(图4)代码高亮设置2-操作符(如+-*/括号等)(图5)代码高亮设置3-数字(图6)别小看这点小功能啊,它能帮你找到不少编程错误哦(图7)想将代码打印出来吗,有帮助的!(图8)其它高亮设置同上请大家自已动手吧!一定要按自己的习惯哦。3、 设置PN中的菜单“新建”和工具栏图标 ,点击它新

7、建文件时的文件缺省类型。我们当然希望是C类型文件啦,如下图:定义新建缺省的文件类型(图9)4、 下面开始设置的我们的avr-gcc工具菜单吧!C语文的Make工具设定(图10): 精心的设置可以让你的PN,不必其它工具差哦。5、 C语言Makefile对于初学者来说太难了,根本不知道它是干嘛的,怎么工作(说的有点夸张)及怎么编写。幸好WinAVR提供给了我们一个非常好用的工具mfile。下面就将它集成到我们的PN中来吧!Makefile工具在PN中的设定(图11)(注意本工具设置为特殊设置)Makefile的设置是将C:WinAVRbin下的wish84.exe、tcl84.dll、tk84.

8、dll三个文件复制到C:WinAVRmfile目录下。并用PN打开C:WinAVRmfilemfile.tcl。修改成下图所示修改mfile.tcl为图中选中的部分并保存(图12)6、 设置ISP Programmer工具ISP串行下载器的设置(图13)按下F4后运行的结果(图14)7、 到现在,我想你对PN有了一些了解了吧。看看下面几个图吧!几个快捷键及其对应工具的设置(图15)它们用着实在是方便啊Makefile执行后的图(图16)这是PN对大项目、大工程管理的超强部分了(图17)到此,Programmer NotePad 设置完成。四、 Avr-gcc简易入门1、 对端口的操作:A、 如

9、果我想将PORTB端口设置为输出口(8位),则在gcc中用如下方式DDRB=0xFF; 注意:0xFF=0B1111 1111表示全为1,代表了输出。如果你改上式为:DDRB=0x01; /即0B0000 0001,则表示,你将PORTB的第0位(PB0)设置为输出,其它PB1-7为输入。DDRB为AVR的端口设置寄存器。B、 从端口PORTB中读入状态,用如下方式:Unsigned Char a=PINB; /读入端口PORTB的状态。若端口PORTB的状态如下:PB0为高电平 1PB1为低电平 0PB2为高电平 1PB3为高电平 1PB4为高电平 1PB5为低电平 0PB6为低电平 0PB

10、7为高电平 1则有a = 0b1001 1101 = 0x9DC、 向端口PORTB写状态(设置状态):若要装PORTB第0位和第2位置1(高电平)。DDRB=0;/PORTB全部为输出。PORTB=0x03; /0b0000 0101D、 而更多的情况,我们是要将端口的某一位改变状态,而不是对整个端口操作。或只想知道端口的某一位的状态如何的?那么如何来做呢?例如:将PB4置1,PORTB=PORTB | 0x10; /0x10=0b0001 0000将PB4置0,PORTB=PORTB & 0xEF; /0xEF=0b1110 1111将PB4置翻转,PORTB=PORTB0x10; /0x

11、10=0001 0000检验PB4的状态,char a=PINB & 0x10; /如果PB4为1,是a0,否则a=0当然,上面写法对C语言来说,简直就是垃圾代码了。C语言有它自己的方式,PORTB |= 0x10;PORTB &= 0xEF;PORTB =0x10;If (PINB & 0x10) 你的语句; 是否感觉到比较简洁啊?!E、 当然avr-gcc也提供了两个函数对操作位,如:sbi (PORTB,4); cbi (PORTB,4);分别将PB4置1和清零。2、 变量的类型charunsigned charshortunsigned shortintunsigned intlong

12、unsigned longlong longunsigned long longfloatdoublevoid等等等等,这就请读者自己看资料了。3、 程序控制语句,C语言提供了非常丰富的程序流程控制语句。i. 循环语句A、 For(;)语句,如:for(i=0;i8;i+)循环体; /本例循环8次。注意!for语句是先比较后加减的。B、 While(exp)语句,如:i=0; While(i8)i+;也是先比较后执行循环体的。C、 Do while语句,如:dowhile(x8);/本例循环7次,因为它是先执行后比较的语句。因为i+在第一次比较时i已经是1了。ii. 分支语句。A、 if语句,

13、大名鼎鼎语句了,几乎所有编程软件都有它的身影。没什么好说的。B、 switch语句。等好了,这些就不说下去了,因为如果你连这些都不清楚。你该做的是找本C教程吧。4、 中断服务控制(SIGNAL)void UART_Init(void) /中断初始化函数/UART_Ready = 1;UART_ReceivedChar = 0;pUART_Buffer = 0; outp(BV(RXCIE)|BV(RXEN),UCR); / 允许串行接收中断 /outp( (u08)UART_BAUD_SELECT, UBRR); / 设置UART波特率 /sei(); / 打开全局中断 /SIGNAL(SIG

14、_UART_RECV) /串口接收完成中断服务进程(子程序)/ UART_ReceivedChar = 1; / 指示已经接收到一个字符 /UART_RxChar = inp(UDR); / 将收到的字符存储起来 /其中SIGNAL标示了下面的语句由中断来调用。五、 实例设计与编程试验电路图(图18)好了,写了这么多,让我们也看个实例先吧,硬件电路图如图18。软件编程如下:软件在PN中编写的结果如上图。其中第1、2行为预编译语句,它们告诉编译器一些重要的信息。如单片机内的寄存器名称对应的向量等.DDRB、PORTB就在io.h内定义的(其实它在本例中是在iom16.h中定义的,io.h是所有A

15、VR单片机公共定义,它从makefile中提取单片机类型,来从includeavr下取出对应的实际io*.h文件)。第4行为C语言的主函数,特别要注意的是,avr-gcc的主函数类型必须为int类型。否则出现警告错误warning: return type of main is not int。第5行定义了三个无符号字符型变量:i,j,k。第6行定义了端口PORTB全部为输出。第7行在端口PORTB中输出高电平。第8行到第18行为一个无限循环语句。第9行开始到第17行也是一个循环。用它的目的是将端口PORTB的某一位置低,让LED点亮。第10行是向端口的某一位(由变量k指定),其中十分重要的是 (1 0b0000 后变为 0001,k=2,执行1第11行到第15行由两个for循环构成的延时部分,它可以使LED移动的速度放慢,好让我们的肉眼能看到。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1