基于Proteus的AVR单片机C语言程序设计与仿真
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 CodeVisionAVR的C语言编译器的使用

CodeVision AVR C Compiler是为Atmel AVR系列微控制器设计的一款C编译器,可以在Windows95/98/NT 4.0/2000/XP/Vista操作系统下运行。

1.CodeVisionAVR软件的安装

CodeVisionAVR软件可按如下步骤进行安装。

(1)双击安装文件setup.exe文件,弹出如图1-1所示的欢迎信息框,单击“Next”按钮继续。

图1-1 欢迎信息框

(2)在弹出的对话框中(如图1-2所示),单击“Browse”按钮以更改安装路径或直接单击“Next”按钮按照默认路径进行安装,直到安装结束为止。

图1-2 选择安装路径

2.CodeVisionAVR编辑环境及参数的设置

1)CodeVisionAVR编辑环境在计算机中安装好CodeVisionAVR2.03.4后,单击“开始”→“程序”→“CodeVisionAVR”→“CodeVisionAVR C Compiler”或在桌面上双击图标,将进入如图1-3所示的CodeVisionAVR集成工作环境界面。

图1-3 CodeVisionAVR集成工作环境界面

CodeVisionAVR集成工作环境界面主要由菜单栏、工具栏、导航区和源程序编辑区、信息窗口等部分组成。

(1)菜单栏:CodeVisionAVR共有9项菜单,每项都有下一级菜单。

File(文件)菜单包括新建、打开、保存、关闭、页面设置、打印、退出等操作,如图1-4所示,其快捷键为“Alt+F”。

图1-4 File菜单栏

Edit(编辑)菜单栏对源程序编辑区中的代码进行剪切、复制、粘贴、撤销、恢复等操作,如图1-5所示,其快捷键为“Alt+E”。

图1-5 Edit菜单栏

Search(搜寻)菜单栏用于在源程序编辑区中进行查找、替换或者在文件中进行查找、替换操作,如图1-6所示,其快捷键为奇数次的“Alt+S”。

图1-6 Search菜单栏

View(视图)菜单栏如图1-7所示,可用于展开或收缩代码层次,还可用于显示或隐藏相应信息。在该栏中,打勾表示显示相应信息,不打勾表示不显示相应信息。其快捷键为“Alt+V”。

图1-7 View菜单栏

Project(项目)菜单栏主要用于源程序的编译及调试,如图1-8所示,其快捷键为“Alt+P”。CVAVR是CodeVisionAVR的缩写。

图1-8 Project菜单栏

Tools(工具)菜单栏用于生成初始化代码、调用仿真调试器、对芯片编程、系统配置等操作,如图1-9所示,其快捷键为“Alt+T”。

图1-9 Tools菜单栏

Settings(设置)菜单栏用于软件环境、仿真软件、编程器等方面的设置,如图1-10所示,其快捷键为偶数次的“Alt+S”。

图1-10 Settings菜单栏

Windows(窗口)菜单栏用于设置窗口的排列方式,如图1-11所示,其快捷键为“Alt+W”。

图1-11 Windows菜单栏

Help(帮助)菜单栏用于为用户提供帮助文档,其快捷键为“Alt+H”。

(2)工具栏:CodeVisionAVR的工具栏包括File Toolbars,Edit Toolbars,Search Toolbars,View Toolbars,Project Toolbars,Tools Toolbars,Windows Toolbars,Help Toolbars几部分。单击菜单“View”→“Toolbars”,在其下拉式菜单中设置即可(打“√”,表示该项工具条打开)打开与关闭这些工具条。工具栏中的每个按钮对应一个具体的菜单命令,如表1-5所示。

表1-5 工具栏的按钮功能

续表

续表

(3)导航区:导航区中主要包括Code Navigator(代码导航栏)、Code Information(代码信息栏)、Function Call Tree(功能树)、Code Templates(代码模板)、Clipboard History(剪切板记录),如图1-12所示。

图1-12 导航区界面

在导航区中单击“Code Navigator”,选择代码导航栏后,在其空白处单击鼠标右键,将弹出如图1-13所示的菜单。

图1-13 导航栏右键菜单

2)CodeVisionAVR参数的设置CodeVisionAVR参数的设置主要包括Configure配置文件的设置、CVAVR集成环境的设置、仿真调试器的设置、编程器的设置等。

(1)Configure配置文件的设置:在CodeVisionAVR工作界面中执行菜单命令“Project”→“Configure”,可进行配置文件的设置。它有4个选项卡:Files,C Compiler,Before Build,After Build,在使用时,主要对Files、C Compiler进行相关设置即可。

File选项卡(如图1-14所示):包含两大项,即Input Files(输入文件)和Output Directories(输出目录)。

图1-14 Configure的Files选项卡

✧在Input Files项中可以向一个项目中添加或删除一个文件。单击“Add”按钮,通过选择框选择文件可将其添加到项目中;单击“Remove”按钮可以将选中文件从项目中删除;单击“Move Up”或“Move Down”时,可将选中文件向上或向下移动位置。

✧在Output Directories项中可以设置CodeVisionAVR编译项目后所产生的一些文件的保存路径;在“Executable Files”栏中可以设置生成的可执行文件的保存路径;在“Object Files”栏中可以设置生成的目标文件的保存路径;在“List Files”栏中可以设置生成的列表文件的保存路径;在“Linker Files”栏中可以设置生成的连接程序文件的保存路径。

C Compiler选项卡:主要是对Code Generation(代码生成)进行相关项的设置,如图1-15所示。

图1-15 Configure的C Compiler选项卡

✧ Chip(芯片型号)下拉列表框用于选择目标AVR微处理器的芯片;Clock(时钟频率)微调框用于设置系统时钟(在默认情况下,系统时钟为4MHz),可以直接输入频率值或使用上下箭头调整得到合适的值。

✧ Memory Model用于内存编译模式的设置。在Small状态下,使用16个位来存储指向SRAM中变量的指针,可访问的SRAM容量为65536字节。

✧ Optimize for用于优化对象的设置。选择Size时,可以将编译的程序优化为最小长度;选择Speed时,可以将编译的程序优化为最大执行速度。

✧ Optimization Level用于优化级别的设置。选择Low时,进行最低优化;选择Medium时,进行一般优化;选择Maximal时,进行最大限度的优化。

✧ Program Type用于程序类型的设置。对于允许自编程的设备而言,在Program Type下拉列表框中可以选择的程序类型为Application(应用程序)或Boot Loader(引导加载程序)。选择Application,可以在运行时从一个更高的存储器位置重新对主程序存储器进行编程;选择Boot Loader,微控制器不需要特殊的编程电缆或重新设置微控制器就可以对微控制器重复编程了。

✧(s)printf Features和(s)scanf Features分别用于打印和扫描功能的设置。

✧ RAM可对SRAM存储器进行设置。CodeVisionAVR会根据选定的具体微控制器选择数据栈大小和内部SRAM大小的默认值。Data Stack Size(数据堆栈大小)是为变量预留的内存大小;Heap Size为栈的大小;Internal RAM Size用于设置内部RAM的大小;External RAM Size用于设置外部RAM的尺寸大小。

✧ Code Generation用于代码产生选项的设置。bit Variables size用于设置bit位的数量;选中Promote char to int复选框,可将ANSI字符型操作数转换为整型;选中char is unsigned复选框,编译器会默认将字符型数据当做8位无符号数对待,其范围是0~255,若没选中该复选框,字符数据类型则默认为8位有符号数,其范围是-128~127;选中8 bit enums复选框,数据类型可以为8位枚举型;选中Enhanced Core Instructions复选框,将增强核心指令;选中Smart Register Allocation复选框,将对智能寄存器进行分配;选中Automatic Global Register Allocation复选框,将对自动全局寄存器进行分配;选中Store Global Constants in FLASH Memory复选框,会将全局常量存储在Flash存储器中;选中Use an External Startup Initialization File复选框,将使用外部的启动文件;选中Clear Global Variables at Program Startup复选框,将在程序启动时清除全局变量;选中Stack End Markers复选框,会在堆栈结束位置加上一个标志位,用于检测堆栈是否溢出;File Output Format(s)用于选择文件输出格式,选择COF ROM HEX EEP,AVR Studio集成开发软件调试程序使用COFF,其他一些可嵌入系统中的编程器使用ROM、HEX或EEP;选择OBJ ROM HEX EEP,用于某些可嵌入到系统中的编程器。

(2)CVAVR集成环境的设置:在CodeVisionAVR工作界面中执行菜单命令“Settings”→“Editor”,可进行CVAVR集成环境的设置。它有4个选项卡:General(常规)、Text(文本)、Syntax Highlighting(语法亮度)和Auto Complete(自动完成),在使用时,主要对前3个选项卡进行相关设置。

㊣ General(常规)选项卡:主要用于对File Load/Save(文件加载/保存)和Visual Aids(源代码视觉效果)进行设置,如图1-16所示。

图1-16 Editor的General选项卡

✧在File Load/Save中,选中Auto Load Modified Files复选框,将自动加载修改的文件;选中Create Backup Files复选框,将创建备份文件。在Auto Save Interval中可设定文件自动保存的间隔时间。

✧在Visual Aids中,选中Show Line Numbers复选框,将显示行号;选中Save Bookmarks复选框,将保存书签;选中Enable Code Folding复选框,将启用代码层叠;选中Save Folded Lines复选框,将保存折叠线。Collapse Mark Text可用于设置商标文字的前景颜色;Collapse Mark Bg可用于设置商标文字的背景颜色;Block Staples Color可用于设置折叠块的前景颜色;Matching Brace Text可用于设置匹配文字括号的前景颜色;Matching Brace Bg可用于设置匹配文字括号的背景颜色。

Text(文本)选项卡:如图1-17所示,选中Auto Indent复选框,会将源程序代码自动缩进;选中Backspace Unindents复选框,代码将退格不缩进;选中Optimal Fill复选框,代码自动最优填充;选中Convert Tabs to Spaces复选框,空格转换标签;选中Discard Trailing Spaces复选框,将从每一行的末尾自动删除空格。Tab Size用来设置Tab键跳跃的字符数;Block Indent Size用来设置块缩进的大小;Font用于字体的设置;Font Size用来设置字体的大小;Default Text Color用来设置字体的默认颜色;Default Background Color用来设置默认的背景颜色;Highlighted Text Color用来设置高亮字体的颜色;Highlighted Backg Color用来设置高亮背景的颜色;Non-Printable Text Color用来设置非打印字符颜色。

Syntax Highlighting(语法亮度)选项卡:可对代码进行高亮显示设置,可设置文本属性及编辑器的颜色,如图1-18所示。

图1-17 Editor的Text选项卡

图1-18 Editor的Syntax Highlighting选项卡

✧选中Syntax Highlighting Enabled复选框,启动相关代码的语法高亮显示:在Syntax Highlighter下拉表中选择C时表示C语言关键字高亮显示,选择Assembler时表示汇编语言关键字高亮显示;在Language element下拉列表中可选择相关的语言元素以进行高亮显示;在Text Color下拉列表中可对文字颜色进行设置;在Background Color下拉列表中可对背景颜色进行设置。

✧在Text Attributes(文本属性)中,选中Bold复选框时,代码中的符号将加粗显示;选中Italic复选框时,代码中的符号将倾斜显示;选中Underlined复选框时,代码中的符号下将添加下画线。

✧在Use Editor Colors for(使用编辑器的颜色)中,选中Text复选框时,文本颜色使用编辑的颜色;选中Background复选框时,背景将使用编辑器颜色。

(3)仿真调试器的设置:CodeVisionAVR不带在线调试、仿真功能,但可以生成AVR Studio兼容的调试文件(即.COFF文件),并可通过该文件与AVR Studio实现连接。使用前要先进行调试程序的设置。

在CodeVisionAVR工作界面中执行菜单命令“Settings”→“Debugger”,可配置CVAVR的仿真调试器,如图1-19所示。

图1-19 仿真调试器的设置

(4)编程器的设置:在CodeVisionAVR工作界面中执行菜单命令“Settings”→“Programmer”,可进行CVAVR编程器的设置,如图1-20所示。

图1-20 编程器的设置

CodeVisionAVR支持的AVR单片机编程器的类型有Kanda Systems STK200+ and STK300(并行连接),Atmel STK500 and AVRISP(串行连接),Atmel AVRISP MkII(USB连接),Atmel AVR Dragon(USB连接),Atmel JTAGICE MkII(USB连接),Atmel AVRProg(AVR910支持笔记本电脑),Dontronics DT006(并行连接),Vogel Elektronik VTEC-ISP(并行连接),Futurlec JRAVR(并行连接),MicroTronics ATCPU and Mega2000(并行连接)。

若并行连接时,通常会使用打印机端口。使用LPT1时,基址为378h;使用LPT2时,基址为278h;使用LPT3时,基址为3BCh。

3.CodeVisionAVR项目的生成

一个CodeVisionAVR项目就是一组文件和编译器设置的集合,它可以用来建立一个具体的程序。项目文件的扩展名为.prj。要建立一个完整的项目,生成源代码,并将可执行代码下载到目标芯片中,可通过以下步骤实现。

1)新建项目单击“开始”→“程序”→“CodeVisionAVR”→“CodeVisionAVR C Compiler”或在桌面上双击图标,将进入CodeVisionAVR集成工作环境界面(IDE)。

在IDE中执行菜单命令“File”→“New”或在工具栏中单击图标,将弹出如图1-21所示的“Create New File”对话框。在此对话框中选择“Source”时将会创建一个.C源程序文件,选择“Project”时将会创建一个项目文件。

图1-21 “Create New File”对话框

在图1-21中选择Project,并单击“OK”按钮时,将弹出如图1-22所示的对话框。在此对话框中要求用户确认是否使用CodeWizardAVR新建项目,若按下“Yes”时,则会打开CodeWizardAVR对话框,通过CodeVisionAVR项目向导来创建项目(具体内容将在4中进行讲述);若按下“No”时,将弹出如图1-23所示的对话框。

图1-22 CodeVisionAVR的“Confirm”对话框

先在图1-23中选择合适的保存路径并输入项目名,然后单击“保存”按钮,将弹出Configure配置文件对话框。在此对话框的C Compiler选项卡中设置Chip为ATmega16,Clock为8MHz,如图1-15所示。

图1-23 创建新项目对话框

在Configure配置文件对话框中进行相关设置后,若单击“OK”按钮,将会回到CodeVisionAVR的IDE界面,只不过此时IDE中将会新增一个Project Notes窗口,用户可以在此窗口中添加相关的项目说明信息。至此已经简单地创建了一个新项目,如图1-24所示,此项目名为“新建项目.prj”。

图1-24 创建的新项目

2)创建源程序文件创建好项目后,在IDE中执行菜单命令“File”→“New”或在工具栏中单击图标,在弹出的“Create New File”对话框中选择“Source”。此时,在IDE中会为新建的文件打开一个新的编辑器窗口,其标题栏显示文件名为untitled.C,该文件列在文件导航器的Other Files目录下。

在刚创建的编辑器窗口中先输入源程序文件,并执行菜单命令“File”→“Save”或在工具栏中单击图标,然后选择合适的保存路径,且输入源程序的文件名(假设此文件名为“新建一个项目.C”)并对其进行保存,此时文件导航器的Other Files目录下变为“新建一个项目.C”。

3)将源程序文件添加到项目中在IDE中执行菜单命令“Project”→“Configure”或在工具栏中单击图标,将弹出“Configure Project”对话框,先在此对话框的“File”栏中单击“Add”按钮,然后依据提示将刚才所创建的源程序文件添加到项目中,此时文件导航器Other Files目录的“新建一个项目.C”已经转移到“Project:新建项目”下,表示“新建一个项目.C”已经是所创建项目的一部分了,如图1-25所示。

图1-25 导航器将“新建一个项目.C”当做项目的一个源文件

4)在CodeVisionAVR中编译并生成项目源程序编写完,并将其添加到项目中后,就可对源程序进行编译了。在IDE中执行菜单命令“Project”→“Compile”或在工具栏中单击图标,会弹出一个Information对话框用于显示编译结果,同时会在LIST文件夹中产生一个“新建项目.asm”的汇编程序源文件。Information对话框的顶部列出了编译器的选项,下面是被编译的代码行数和警告、错误个数。对话框的其余部分列出了存储器的使用和用途。

如果在编译过程中有错误或警告产生,它们就会出现在编译器窗口下面的消息窗口(Message)和导航器窗口中。双击错误或警告信息可以高亮显示出问题的代码行。

生成项目会创建一个可执行文件。在IDE中执行菜单命令“Project”→“Build”(或Build All)或在工具栏中单击(或)图标,也会弹出一个Information对话框用于显示编译结果并产生一个“新建项目.asm”的汇编程序源文件。只不过此时Information对话框中有两个选项卡:Complier和Assembler。Assembler选项卡顶部显示了编译的版本、编译的步骤及存储器的使用情况。

注意:Compile命令和Build(或Build All)命令是不同的:Compile命令仅仅进行源代码的编译,不产生二进制目标文件,而Build(或Build All)命令能产生相应的二进制代码文件。

5)导出到AVR Studio进行项目调试源程序通过编译,只能说明程序的语法正确,并不代表所编写的程序就达到了实际需求,那么到底怎样判断程序是否正确呢?可以通过实验的方法来检验。最直接的方法就是将生成的二进制代码(如.HEX或.COFF文件)下载到目标芯片中运行,通过实际的运行来检验其是否达到设计要求。这种方法虽然最正确,但是不能告诉用户程序错误是由什么引起的,尤其是对于经验不足的用户来说,更不容易找出问题所在。另外一种方法是使用仿真或模拟的方法来进行程序的调试。

CodeVisionAVR不提供在线调试、仿真功能,因此需要由第三方调试工具来进行程序的调试。通常硬件仿真的价格都比较高,因此在很多时候可以通过软件模块来进行程序的调试,如AVR Studio和Proteus等。

编译好程序以后,执行菜单命令“Tools”→“Debugger”或单击工具栏上的图标,即可进入AVR Studio进行程序调试了。具体的调试方法将在1.4节中讲述。

6)对目标设备芯片编程 CodeVisionAVR IDE集成支持串口/并口AVRISP的下载烧写软件。用户将编程器通过串行口或打印机并行端口与计算机连接后,在CodeVisionAVR IDE中可直接将编译调试好的源程序固化到目标芯片中。

在固化程序前,应执行菜单命令“Setting”→“Programmer”,在弹出的对话框中选择合适的编程器类型及所使用的计算机端口。

在CodeVisionAVR IDE中执行菜单命令“Tools”→“Chip Programmer”或在工具栏中单击图标,将弹出如图1-26所示的Chip Programmer界面。它主要包括Chip(芯片)、FLASH和EEPROM、FLASH Lock Bits(FLASH存储器锁存位)、Program Fuse Bit(s)(可编程熔丝位)等的设置。

图1-26 Chip Programmer界面

(1)芯片:Chip下拉表框中的选项决定了Chip Programmer对话框中其他可用的选项,在该下拉列表框中可以选择合适的芯片类型。芯片类型不同,使得FLASH和EEPROM的缓存容量大小也不相同,并且也影响了Program Fuse Bit(s)中相关位的设定和Boot Lock bit0、Boot Lock bit1的设定。

(2)FLASH和EEPROM:编程器有两个存储器缓冲区,即FLASH存储器缓冲区和EEPROM存储器缓冲区。缓冲区的内容可以通过执行菜单命令“File”→“Load FLASH”(或“Load EEPROM”)进行加载,或执行菜单命令“File”→“Save FLASH”(或“Save EEPROM”)进行保存。

在一个文件被加载到相应的缓冲中后,其Start(起始)地址和End(结束)地址会相应更新,同时Checksum的值也会发生相应的更改。

执行菜单命令“Edit”→“FLASH”,将弹出如图1-27所示的对话框,在此可以查看和修改FLASH存储器缓冲区中的内容。执行菜单命令“Edit”→“EEPROM”,在弹出的对话框中可以查看和修改EEPROM存储器缓冲区中的内容。

图1-27 FLASH存储器缓冲区

(3)FLASH存储器锁存位(FLASH Lock Bits):Chip Programmer Options中的FLASH Lock Bits选项组有几个选项可用于选择芯片编程使用的安全级别,其中No Protection表示允许所有的读、写编程操作;Programming disabled表示对FLASH和EEPROM存储区只能读不能写;Programming and Verification disabled表示不能对芯片内容进行任何读、写操作。

执行菜单命令“Program”→“All”,锁定位将自动写入目标芯片中;执行菜单命令“Program”→“Lock bit”,可以单独写入锁定位;执行菜单命令“Read”→“Lock bit”,可以读取锁定位当前值;执行菜单命令“Program”→“Erase Chip”,可以将所有的锁定位设为No Protection。

(4)可编程熔丝位(Program Fuse Bit(s)):Chip Programmer Options中的Program Fuse Bit(s)选项组中有各种复选框,每个对应目标芯片上的一个熔丝位。

CKSEL和SUT熔丝位决定了AVR单片机所采用的时钟及复位启动延时时间,其设置含义如表1-6所示。BODEN(Brown Out Detection Enable)为掉电检测电路的功能控制,BODEN=1时,禁止掉电检测;BODEN=0时,允许掉电检测。BODLEVEL为掉电检测电路的电平选择控制,BODLEVEL=1时,选择2.7V电平;BODLEVEL=0时,选择4.0V电平。BOOTRST为复位入口地址的选择,BOOTRST=1时,程序从0x0000地址开始;BOOTRST=0时,复位后从BOOT区执行。BOOTSZ(BOOTSZ1、BOOTSZ0)可设置引导区程序大小及入口,BOOTSZ=00,引导区为1024Word,入口为0xc00;BOOTSZ=01,引导区为512Word,入口为0xe00;BOOTSZ=10,引导区为256Word,入口为0xf00;BOOTSZ=11,引导区为128Word,入口为0xf80。EESAVE可设置程序固化时EEPROM中的数据是否保留,EESAVE=1,不保留;EESAVE=0,保留。CKOPT可用于选择放大器模式,CKOPT=0,高幅度振荡输出;CKOPT=1,低幅度振荡输出。JTAGEN用于设置JTAG测试访问端口状态,OCDEN(On Chip Debug Enable)为片上调试使能位。在进行JTAG调试时,应将JTAGEN和OCDEN这两位都选中,并保持所有的锁定位处于非锁定状态;在实际使用时为了降低功耗,不选中JTAGEN和OCDEN这两位,这样可以减少2~3mA的电流。Check Signature可用于设置是否对该芯片进行签名。Check Erasure用于设置是否检查芯片擦除的正确性。Preserve EEPROM可用于设置是否通过芯片擦除循环来保存E2PROM的数据。Verify可用于设置是否检查FLASH和E2PROM编程的正确性。

表1-6 CKSEL和SUT熔丝位的设置

续表

在Chip Programmer界面中执行菜单命令“Program”→“All”,可将源程序及设定的熔丝位的相关信息下载到目标芯片中。

4.CodeWinzardAVR项目向导

在新建项目过程时,若使用CodeWinzardAVR项目向导可以在项目的开始阶段节省很多时间。CodeWinzardAVR能够自动生成硬件初始代码,它将产生的代码放在用户指定的文件中。CodeWinzardAVR提供的特性取决于所选择的具体微控制器和CodeVisionAVR的版本,它有多个选项卡。

1)选项卡的设置说明

(1)Chip选项卡:Chip选项卡是打开CodeWinzardAVR对话框时第一个可被选择的选项卡,如图1-28所示。Chip选项卡的下拉列表用于选择目标芯片,若改变此下拉列表中的芯片,将会更新对话框的其余部分。Clock微调框可用于选择芯片的时钟频率。若选中Check Reset Source复选框,可使代码检查复位源。在Program Type下拉列表框中,可以选择生成的程序类型是引导加载程序(Boot Loader)还是一般应用程序(Application)。

图1-28 Chip选项卡

(2)Ports选项卡:ATmega16有Port A、Port B、Port C、Port D共4组I/O端口。在Ports选项卡中可以设置各端口的初始化状态,如图1-29所示。从图中可以看出,Port A组端口的每个引脚有两个选项可用:数据方向(Data Direction)和上拉/输出值(Pullup/Output Value)。数据方向的设置决定了DDRx(Port A组端口为DDRA)寄存器的值,用于控制引脚是输入(In)还是输出(Out)。上拉/输出值的设置用来建立端口的初始值,如果引脚用于输入,上拉/输出值可以开启或关闭内部上拉电阻;如果引脚用于输出,则这个设置决定了端口输出的初始值。

图1-29 Ports选项卡

(3)External IRQ选项卡:用于启动/关闭外部中断及触发方式的设定,如图1-30所示。如果选中外部中断的复选框,就会在该中断的右边出现Mode下拉列表,在此列表中可选择中断的触发方式。

图1-30 External IRQ选项卡

(4)Times选项卡:用于定时器及看门狗(Watchdog)的设置,如图1-31所示。在此Time0设置使用系统时钟作为时钟源,频率为8000kHz。

图1-31 Times选项卡

(5)LCD选项卡:用于设置AVR单片机的哪些端子与液晶显示器(LCD)的引脚相连,如图1-32所示。在LCD Port下拉列表中可选择使用AVR的哪组端口,选中后,将在下方显示相应的位与LCD的相关引脚进行连接,用户可按此提示将相关引脚连接好。

图1-32 LCD选项卡

(6)Bit-Banged选项卡:可设置实时时钟DS1302使用AVR端口及引脚的一些情况。若在Port下拉列表中选择相应的端口组,则Bit-Banged选项卡将会有多个选项可进行设置,如图1-33所示。Port下拉列表可设置使用AVR的哪组端口;I/O Bit用于设置DS1302的数据输入/输出端使用AVR端口位的情况;SCLK Bit用于设置DS1302的串行时钟输入端使用AVR的端口位的情况;CE(/RST)Bit用于设置DS1302的复位输入端使用AVR的端口位的情况。

图1-33 Bit-Banged选项卡

(7)Project Information选项卡:用于填写与项目有关的信息,如图1-34所示。在Project Name中输入项目名称;在Version中输入版本号;在Date中设置日期;在Author中输入作者;在Company中输入公司名称;在Comments中输入相关注释。

图1-34 Project Information选项卡

(8)I2C选项卡:可设置某些I2C设备使用AVR相关端口的相关信息。若在I2C Port下拉列表中选择相应的端口组,则I2C选项卡将会有多个选项可进行设置,如图1-35所示。在I2C Prot下拉列表中可选择AVR端口;SDA Bit用于设置I2C设备的串行数据(/地址)I/O端使用AVR端口位的情况;SCL Bit用于设置I2C设备的串行时钟输入端使用AVR的端口位的情况;在下方相应I2C设备中将Enabled复选框选中,则表示该I2C设备与AVR单片机相连。

图1-35 I2C选项卡

(9)2Wire(I2C)选项卡:用于设置I2C总线的相关信息。若选中2Wire Enabled复选框,将会有多个选项可进行设置,如图1-36所示。选中2 Wire Enabled复选框时,将启用I2C总线;选中Generate Acknowledge Pulse复选框时,将产生应答脉冲信号;在Slave Address中可设置从设备地址;选中General Call Recognition复选框时,将产生普通调用识别信号;在Bit Rate中可设置位传输速率;选中2 Wire Interrupt复选框时,将启动I2C总线中断。

图1-36 2Wire(I2C)选项卡

(10)1Wire选项卡:可设置一些单总线设备使用AVR相关端口的相关信息。若在1Wire Port下拉列表中选择相应的端口组,则1Wire选项卡将会有多个选项可进行设置,如图1-37所示。在1Wire Port下拉列表中可选择AVR端口;Data Bit用于设置单总线设备的串行数据引脚使用AVR的端口位的情况;选中Enabled复选框时,表示选择DS1820/DS18B20作为单总线设备。

图1-37 1Wire选项卡

(11)USART选项卡:可设置AVR串行通信时的相关信息。若选中Receiver或Transmitter复选框,USART选项卡会有很多选项可进行设置,如图1-38所示。选中Receiver复选框,可使AVR单片机接收数据;选中Transmitter复选框,可使AVR单片机发送数据;选中Rx Interrupt复选框,将启动接收数据时产生的中断,并显示Receiver Buffer,以便设置接收缓冲器的字节长度;选中Tx Interrupt复选框,将启动发送数据时产生的中断,并显示Transmitter Buffer,以便设置发送缓冲器的字节长度;Baud Rate用来设置数据传输速率;Communication Parameters可设置通信参数,即数据帧格式;Mode用来设置通信方式。

图1-38 USART选项卡

(12)Analog Comparator选项卡:可模拟比较器的设置。若选中Analog Comparator Enabled复选框,Analog Comparator选项卡将会有很多选项可进行设置,如图1-39所示。选中Analog Comparator Enabled复选框,将启用模拟比较器;选中Bandgap Voltage Reference复选框,表示使用参考电压;选中Negative Input Multiplexer复选框,表示启用负反馈输入复用器;选中Analog Comparator Input Capture复选框,表示启动模拟比较器输入采样;选中Analog Comparator Interrupt复选框,表示允许设置模拟比较器的中断方式。模块比较器的中断方式有Interrupt on Output Toggle(输出触发中断)、Interrupt on Falling Output Edge(下降沿时产生中断)、Interrupt on Rising Output Edge(上升沿时产生中断)。

图1-39 Analog Comparator选项卡

(13)ADC选项卡:用于模数转换器的设置。若选中ADC Enabled复选框,ADC选项卡将会有很多选项可进行设置,如图1-40所示。选中ADC Enabled复选框,启用ADC模数转换器;选中Use 8 bits,转换有效位设置为8位;选中Interrupt复选框,将会显示Noise Canceler及Automatically Scan Inputs两个选项;选中Noise Canceler复选框,在进行模数转换过程中会消除噪声,而Auto Trigger Source和Automatically Scan Inputs这两个选项将隐藏;在Volt Ref中可设置参考电压引脚;在Clock中可设置转换时钟;在Auto Trigger Source中可设置自动触发源;在Automatically Scan Inputs中可设置自动扫描输入的相关参数。

图1-40 ADC选项卡

(14)SPI选项卡:可设置SPI总线的相关信息。若选中SPI Enable复选框,将会有多个选项可进行设置,如图1-41所示。选中SPI Enable复选框,将启用I2C总线;选中SPI Interrupt复选框,将启动SPI总线中断;选中Clock Rate x2复选框,将启用双时钟模式;在SPI Mode中可设置SPI的工作模式;在Clock Phase中可选择时钟相位,Cycle Half表示半个周期,Cycle Start表示周期开始;在Clock Polarity中可选择时钟极性,Low表示低电平,High表示高电平;在SPI Clock Rate中可选择SPI的时钟速率;在SPI Type中可选择SPI设备工作类型,Slave表示为从设备,Master表示为主设备;在Data Order中可设置数据方向,MSB First表示高位在前,LSB First表示低位在前。

图1-41 SPI选项卡

2)通过选项卡生成源代码如果对选项卡进行了相关设定后,在CodeWizardAVR中执行菜单命令“File”→“Generate,Save and Exit”,将会打开几个浏览窗口用于选择源文件名、项目文件名和代码向导文件名。输入正确文件名后,项目就会被创建并打开,CodeWizardAVR就生成源代码文件,在CodeVisionAVR的IDE界面的源程序窗口将会出现相应的源代码,用户只需对源代码进行相关修改即可实现所设计的功能。