




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.:.;Programmer Notepad的配置与AVRGCC入门作者:佚名 来源:不详 录入: HYPERLINK jdzj/user/info.asp?username=Admin Admin 更新时间:2021-7-26 19:29:16 点击数:3 【字体: 】单片机AVR的编程工具很多,有C,ASM,PASCAL,BASIC等等。除ASM由ATMEL公司免费提供外,其它大多数的工具都是需求收费的。而C编译器更是其中收费最高的编译器。但也有例外,那就是GCC它不但免费而且功能也几乎是“最强的。所以我作为入门者,就开场 HYPERLINK shop.picavr/ o 需求购买单片机开
2、发板和电子元器件的朋友可到东哥电子商城看看,DG300A 51/AVR开发板 ¥280元 学习它了!一、 单片机编程1、 单片机与电脑的编程有些许不同,它除一些必要地算法外,更重要的是对端口的操作。如开关量采集、开关量控制输出、模拟量的输入、通讯的操作、显示器与键的控制等等都需求操作端口。2、 电脑存储永久数据普通都在硬盘等介质中。而单片机那么存放在EPROM、EEPROM、FLASH等存储器中。3、 通讯接口的编程对单片机来说是至关重要的,特别在工控、网络等的运用中犹为重要。4、 单片机的编程与电脑编程相比有诸多限制。这就要求编程者对单片机硬件有一定的了解。二、 AVR单片机编程1、 AVR
3、单片的硬件:我们以ATMega 16为例为阐明一下AVR单片机吧!这是ATMEGA 16的引脚及其功能图(其DataSheet)A、 从图中我们可以看出有4个8位端口共32个引脚,大多有双重功能。它们分别命名为PORTA、PORTB、PORTC、PORTD。B、 PORTA具备普通IO口功能外还有AD转换功能,其精度可以到达10位,即采集到的ADC的值最大不超越10230-1023,对应外面实践电压值的精度需求一定的简单换算主要看其参考电压。如参考电压为2.5V,那么有2.5V为1023,那么其精度为2.5V/1023就是0.00244V。如参考电压为5V,那么有5V/1023也就是0.004
4、9V。C、 PORTB口除了根本的IO功能外,特别要提的是PB4、5、6、7的功能,它是SPI同步串行接口,更重要的是,它可以用来下载程序。D、 其它的暂且不说,必竟不是AVR单片机的引见文章嘛。2、 AVR单片机的软件:软件当然是用来控控制这些接口的运作及其代表的含义的。这也是个非常大的问题,假设他一点都不懂软件,请也找本计算机编程的书看看吧。三、 开场AVRGCC编程吧好了,下面我们来看一个简单的程序吧。在WinAVR的Programmer NotePad 2中的图:图2执行Make All后,生成HEX文件本例中的文件名2.HEX。以下是它的全过程。 make.exe all- begi
5、n -avr-gcc (GCC) 3.4.1 /告知avr-gcc的版本号Copyright (C)2004 Free Software Foundation,Inc. /编译器所属于公司及其版权信息This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE./这是ELF文件的一些信息,ELF文件用于调试。Size before: /转换前的ELF文件信息2.e
6、lf :section size addr.text 208 0.data 0 8388704.bss 0 8388704.noinit 0 8388704.eeprom 0 8454144.stab 780 0.stabstr 1469 0Total 2457Converting to AVR Extended COFF: 2.cof/将ELF文件转换成AVR Studio可以接受的格式avr-objcopy -debugging -change-section-address .data-0 x800000 -change-section-address .bss-0 x800000 -c
7、hange-section-address .noinit-0 x800000 -change-section-address .eeprom-0 x810000 -O coff-ext-avr 2.elf 2.cofDiscarding local symbol outside any compilation unit: .do_copy_data_startDiscarding local symbol outside any compilation unit: .do_copy_data_loopDiscarding local symbol outside any compilatio
8、n unit: .do_clear_bss_startDiscarding local symbol outside any compilation unit: .do_clear_bss_loopSize after: /转换后的文件信息。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 2457Errors: none /编译过程中产生的错误数- end - /编译终了 Proces
9、s Exit Code: 0 /avr-gcc终了信息,0表示正常终了接下来用AVRISP程序将2.hex文件下载后AVR单片机中,观看效果。可以思索买个双龙的实验器SL_AVRAD。下面我们来看看avr-gcc的IDE吧。主窗口(图3)这是非常规范的Windows Style窗口。当然它由于不是专为avr-gcc设计,所以对它进展设置是必不可少的!下面我就来设置它,以使它成为我们好用的工具吧。呵呵!可千万别小看它哦在设置它之前让我们来看看,我们希望是一个怎样的工具吧。参照其它软件的IDE。首先,我们得有个工程工程管理器,这点PN已有,不需我们去设它。其次,得方便我们编辑源代码,最好是有关键字
10、代码高度显示,以方便我们识别它们。假设能再给我们实时的一些提示就更好了!这方便PN做得非常很好有人说SI很好,不过我觉得每个人有每个人的习惯,不用强求。再次,我们得在不分开IDE的情况下,编辑C言语的makefile文件。生成我“目的代码计算机中术语的话叫可执行文件,并且,下载到我们单片机中。好了!来看看我们对它的设置吧!1、代码高亮设置将它设置成他习惯的方式。步骤如下:翻开PN菜单Tools-Options,在Options对话框中选择Style-Schemes,他说看到了如图4、5、6所示的内容了。如今开场他的设置吧。代码高亮设置1-预编译图4代码高亮设置2-操作符(如+-*/括号等)图5
11、代码高亮设置3-数字图6别小看这点小功能啊,它能帮他找到不少编程错误哦图7想将代码打印出来吗,有协助 的!图8其它高亮设置同上请大家自已动手吧!一定要按本人的习惯哦。3、 设置PN中的菜单“新建和工具栏图标 ,点击它新建文件时的文件缺省类型。我们当然希望是C类型文件啦,如以下图:定义新建缺省的文件类型图94、 下面开场设置的我们的avr-gcc工具菜单吧!C语文的Make工具设定(图10): 精心的设置可以让他的PN,不用其它工具差哦。5、 C言语Makefile对于初学者来说太难了,根本不知道它是干嘛的,怎样任务说的有点夸张及怎样编写。幸好WinAVR提供应了我们一个非常好用的工具mfile
12、。下面就将它集成到我们的PN中来吧!Makefile工具在PN中的设定图11留意本工具设置为特殊设置Makefile的设置是将C:WinAVRbin下的wish84.exe、tcl84.dll、tk84.dll三个文件复制到C:WinAVRmfile目录下。并用PN翻开C:WinAVRmfilemfile.tcl。修正成以下图所示修正mfile.tcl为图中选中的部分并保管图126、 设置ISP Programmer工具ISP串行下载器的设置图13按下F4后运转的结果图147、 到如今,我想他对PN有了一些了解了吧。看看下面几个图吧!几个快捷键及其对应工具的设置图15它们用着真实是方便啊Mak
13、efile执行后的图图16这是PN对大工程、大工程管理的超强部分了图17到此,Programmer NotePad 设置完成。四、 Avr-gcc简易入门1、 对端口的操作: A、 假设我想将PORTB端口设置为输出口8位,那么在gcc中用如下方式DDRB=0 xFF; 留意:0 xFF=0B1111 1111表示全为1,代表了输出。假设他改上式为:DDRB=0 x01; /即0B0000 0001,那么表示,他将PORTB的第0位PB0设置为输出,其它PB1-7为输入。DDRB为AVR的端口设置存放器。B、 从端口PORTB中读入形状,用如下方式:Unsigned Char a=PINB;
14、/读入端口PORTB的形状。假设端口PORTB的形状如下:PB0为高电平 1PB1为低电平 0PB2为高电平 1PB3为高电平 1PB4为高电平 1PB5为低电平 0PB6为低电平 0PB7为高电平 1那么有a = 0b1001 1101 = 0 x9DC、 向端口PORTB写形状设置形状:假设要装PORTB第0位和第2位置1高电平。DDRB=0;/PORTB全部为输出。PORTB=0 x03; /0b0000 0101D、 而更多的情况,我们是要将端口的某一位改动形状,而不是对整个端口操作。或只想知道端口的某一位的形状如何的?那么如何来做呢?例如:将PB4置1,PORTB=PORTB | 0
15、 x10; /0 x10=0b0001 0000将PB4置0,PORTB=PORTB & 0 xEF; /0 xEF=0b1110 1111将PB4置翻转,PORTB=PORTB0 x10; /0 x10=0001 0000检验PB4的形状,char a=PINB & 0 x10; /假设PB4为1,是a0,否那么a=0当然,上面写法对C言语来说,几乎就是渣滓代码了。C言语有它本人的方式,例如:PORTB |= 0 x10;PORTB &= 0 xEF;PORTB =0 x10;If (PINB & 0 x10) 他的语句; 能否觉得到比较简约啊?!E、 当然avr-gcc也提供了两个函数对操
16、作位,如:sbi (PORTB,4); cbi (PORTB,4);分别将PB4置1和清零。2、 变量的类型charunsigned charshortunsigned shortintunsigned intlongunsigned longlong longunsigned long longfloatdoublevoid等等等等,这就请读者本人看资料了。3、 程序控制语句,C言语提供了非常丰富的程序流程控制语句。i. 循环语句 A、 For(;)语句,如:for(i=0;i8;i+)循环体; /本例循环8次。留意!for语句是先比较后加减的。B、 While(exp)语句,如:i=0;
17、While(i8)循环体;i+; /本例循环8次。也是先比较后执行循环体的。C、 Do while语句,如:i=0;doi+;循环体;while(x8);/本例循环7次,由于它是先执行后比较的语句。由于i+在第一次比较时i曾经是1了。ii. 分支语句。A、 if语句,大名鼎鼎语句了,几乎一切编程软件都有它的身影。没什么好说的。B、 switch语句。等好了,这些就不说下去了,由于假设他连这些都不清楚。他该做的是找本C教程吧。4、 中断效力控制SIGNALvoid UART_Init(void) /中断初始化函数/UART_Ready = 1;UART_ReceivedChar = 0;pUAR
18、T_Buffer = 0; outp(BV(RXCIE)|BV(RXEN),UCR); / 允许串行接纳中断 /outp( (u08)UART_BAUD_SELECT, UBRR); / 设置UART波特率 /sei(); / 翻开全局中断 / SIGNAL(SIG_UART_RECV) /串口接纳完成中断效力进程子程序/ UART_ReceivedChar = 1; / 指示曾经接纳到一个字符 /UART_RxChar = inp(UDR); / 将收到的字符存储起来 /其中SIGNAL标示了下面的语句由中断来调用。五、 实例设计与编程 实验电路图图18好了,写了这么多,让我们也看个实例先吧,硬件电路图如图18。软件编程如下:软件在PN中编写的结果如上图。其中第1、2行为预编译语句,它们通知编译器一些重要的信息。如单片机内的存放器称号对应的向量等.DDRB、PORTB就在io.h内定义的其实它在本例中是在iom16.h中定义的,io.h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吃住旅游安全协议书
- 2025年03月浙江嘉兴市海宁市事业单位公开招聘工作人员49人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025年上海市15区高三语文二模试题汇编之现代文二(教师版)
- 徐州医科大学《学术写作与文献检索》2023-2024学年第一学期期末试卷
- 浙江省宁波市慈溪市部分校2025届数学五年级第二学期期末考试模拟试题含答案
- 成都工贸职业技术学院《中国现当代文学作品选二》2023-2024学年第一学期期末试卷
- 广东建设职业技术学院《高分子材料与应用》2023-2024学年第二学期期末试卷
- 邢台应用技术职业学院《英语新闻阅读与思辨》2023-2024学年第二学期期末试卷
- 江苏城市职业学院《社会调查与统计分析》2023-2024学年第一学期期末试卷
- 百色学院《互动媒体设计》2023-2024学年第一学期期末试卷
- 人教版七年级地理(下)全册复习教案(含教学反思)
- JJF 1603-2016(0.1~2.5)THz太赫兹光谱仪校准规范
- 医药卫生病原微生物检测技术知识与技能比武竞赛题库
- 《民法典》-第二编 物权编-案例分析,解读-3
- 膜片钳常见问题汇总(人人都会膜片钳)
- 讲故事技能培训
- 海岸动力学全册配套完整课件
- 工作面防飞矸封闭式管理规定
- 干部人事档案管理岗位培训的讲义课件
- 财务人员廉政谈话记录 财务个人谈话记录3篇
- 沪教牛津版小学三至六年级英语单词表
评论
0/150
提交评论