【毕业论文 毕业设计】智能型充电器的电源和显示的设计_第1页
【毕业论文 毕业设计】智能型充电器的电源和显示的设计_第2页
【毕业论文 毕业设计】智能型充电器的电源和显示的设计_第3页
【毕业论文 毕业设计】智能型充电器的电源和显示的设计_第4页
【毕业论文 毕业设计】智能型充电器的电源和显示的设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 题 目: 智能型充电器的电源和显示的设计 专 业: 计算机科学与技术 班 级: 计算机081班 姓 名: 学 号: 指导老师: 成 绩: 目 录第一章 绪 论 41.1 课题背景 41.2毕业设计任务和要求 4第二章 硬件电路设计 52.1 硬件电路主要芯片 52.1.1 Atmega16L主要引脚说明 52.1.2 Atmega16L的存储器 72.1.3 Atmega16L的时钟电路 72.1.4 Atmega16L的系统复位 72.2 LCD液晶显示 8 LCD的显示原 8 液晶显示控制驱动器 8 液晶显示模块的特点 102.3 硬件电路设计122.4 PROTELL99的应用简介 1

2、3第三章 软件设计 153.1 用C语言开发单片机的优势 153.2 液晶显示汉字或字符的原理163.3 LCD模块的指令说明 163.4 液晶显示界面 193.5 系统程序流程图19第四章 系统调试过程224.1 系统调试软件介绍 22 ICCAVR编译器简介 22 ICCAVR的设置 234.2 调试过程 23第五章 课程设计总结 25参考文献 26第一章绪 论如今,随着越来越多的手持式电器的出现,对高性能、小尺寸、重量轻的电池充电器的需求也越来越大。电池技术的持续进步也要求更复杂的充电算法以实现快速、平安的充电。因此需要对充电过程进行更精确的监控,以缩短充电时间、到达最大的电池容量,并防

3、止电池损坏。与此同时,对充电电池的性能和工作寿命的要求也不断地提高。从20世纪60年代的商用镍镉和密封铅酸电池到近几年的镍氢和锂离子技术,可充电电池容量和性能得到了飞速的开展。目前各种电器使用的充电电池主要有镍镉电池NiCd、镍氢电池NiMH、锂电池Li-Ion和密封铅酸电池SLA四种类型。电池充电是通过逆向化学反响将能量存储到化学系统里实现的。由于使用的化学物质的不同,电池有自己的特性。设计充电器时要仔细了解这些特性以防止过度充电而损坏电。目前,市场上卖得最多的是旅行充电器,但是严格从充电电路上分析,只有很少局部充电器才能真正意义上被称为智能充电器,随着越来越多的手持式电器的出现,对高性能、

4、小尺寸、轻重量的电池充电器的需求也越来越大。电池技术的持续进步也要求更复杂的充电算法以实现快速、平安地充电,因此,需要对充电过程进行更精确地监控(例如对充、放电电流、充电电压、温度等的监控),以缩短充电时间,到达最大的电池容量,并防止电池损坏。1.2 本设计任务和要求智能充电器的设计包括硬件和软件两大局部,本人的主要任务是完成充电器设计的LCD显示局部,其主要涉及的知识包括:自学AVR单片机的相关内容。设计电源电路。设计128*64液晶显示控制电路和用C语言编制LCD显示程序,用图形方式显示充电器电压、电流等参数。手工焊接和ICCAVR编译器的应用。 第二章 硬件电路设计经过前面对充电器原理、

5、液晶模块、ATmega16L等的总体了解和掌握以及对各种元器件和电路图的分析和比拟后,现在就可以开始进入硬件电路的设计了。在本章里,首先将介绍一下液晶模块访问方式的两种接口电路,然后对LCD显示电路原理图作一个详细的介绍,接着介绍充电电路中所用到的各种芯片和元器件的原理和一些功能,最后对PROTEL99的使用和PCB板的绘制以及焊接做一简单介绍,然后再将自己的设计思想和同组人所设计的两局部结合,达成统一。 通过比拟再结合本次设计的实际条件,由于Atmega16L芯片没有WR、RD管脚,而且为了使电路简单且方便软件实现,所以最终决定采用间接控制的方式来设计LCD显示电路。2.1 硬件电路主要芯片

6、2.1.1 以下是ATmega16L 图2-1 ATmega16L芯片引脚引脚说明:VCC 数字电路的电源GND 地端口A(PA7PA0) 端口A 作为A/D 转换器的模拟输入端。端口A 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。端口B(PB7PB0) 端口B 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。端口C(PC7PC0) 端口C 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。端口D(PD7PD0) 端口D 为8

7、 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。RESET 复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。XTAL1 反向振荡放大器与片内时钟操作电路的输入端。XTAL2 反向振荡放大器的输出端。AVCCAVCC是端口A与A/D转换器的电源。不使用ADC时,该引脚应直接与VCC连接。使用ADC时应通过一个低通滤波器与VCC相连。AREFA/D 的模拟基准输入引脚。2.1.2 AAVR结构有两个主要的存储空间:数据存储器空间和程序存储器空间,此外,Atmega16L还有一个EEPROM存储器以保存数据。这三个存储器都为线性的平面

8、结构。(1) Atmega16L具有16K字节的在线编程Flash,用于存储程序指令代码。因为AVR指令为16位或32位,故Flash组织成8K16的形式。用户程序的平安性要根据Flash程序存储器的两个区:引导(Boot) 程序区和应用程序区,分开来考虑。 (2) 数据存储器的寻址方式分为5种:直接寻址、带偏移量的间接寻址、间接寻址、带预减量的间接寻址和带后增量的间接寻址。 (3) ATmega16L 包含512 字节的EEPROM 数据存储器。它是作为一个独立的数据空间而存在的,可以按字节读写。EEPROM 的寿命至少为100,000 次擦除周期2.1.3 单片机的时钟用于产生工作所需要的

9、时序,其连接电路如下列图: 图2-2 晶体振荡器连接图XTAL1 与XTAL2 分别为用作片内振荡器的反向放大器的输入和输出,考虑到其最大频率不超过8MHz,这里选用的晶振为7.3728MHz。2.1.4Atmega16L有五个复位源:上电复位。电源电压低于上电复位门限Vpot时,MCU复位。如果在单片机加Vcc电压的同时,保持RESET引脚为低电平,那么可延长复位周期。Vcc Vpot VpotRESET Vrst VrstTIME-OUTINTERINAL tTOUT tTOUT RESET 图2-3 RESET引脚与VCC相连时, 图2-4 RESET引脚由外部控制时, 单片机的复位电平

10、 单片机的复位电平外电复位。引脚RESET上的低电平持续时间大于最小脉冲宽度时MCU复位。VccRESET VrstTIME-OUT tTOUTINTERNALRESET 图2-5 外部复位时序图看门狗复位。看门狗使能并且看门狗定时器溢出时复位发生。看门狗计数器溢出时,将产生一个晶振的复位脉冲。Vcc RESET WDT 1 XTAL CycleTIME-OUT RESET tTOUT TIME-OUTINTERNAL RESET 图2-6看门狗复位时序图掉电检测复位。掉电检测复位功能使能,且电源电压低于掉电检测复位门限Vpot时MCU即复位。JTAG AVR复位。复位存放器为1时MCU复位。

11、2.2 LCD液晶显示 2.2液晶显示器是一种功耗极低的显示器。随着液晶显示技术的开展,LCD显示器的规格众多,其专用驱动芯片也相互配套,使LCD在控制和仪表系统中广泛应用提供了极大的方便。要想在液晶模块上显示一个汉字或字符,需要3个最根本的控制操作:分别向3个控制器写指令代码、写显示数据和读显示数据。这里要特别引起注意的是完成这3项操作的前提条件是KS0108B控制器处于准备好的状态,即BUSY=0,由模块的软件特性知道,当BUSY=1时,系统的接口电路处于被封锁的状态,是不能接受除读状态指令外的任何操作的。上面已经介绍到,MGLS-19264液晶模块中液晶屏显示区为19264点阵,其中,它

12、们的每8个像素行组成一页,整个显示区共分为8页,每64列为一个区,这样,它就有左、中、右3个区,它的显示区示意图如下:左区 中区 右区0 1 2 62 63 64 65 127128 129 191DB0DB7DB0DB7 图2-7 液晶屏显示区示意图液晶模块显示字符是从上到下,从左到右进行显示的。假设定义从最左上角开始显示,那么先从上到下显示第0页的第一列,依次从左向右开始显示。MGLS-19264LCM的显示局部为左、中、右3个区,可以由CS片选的取值分别进行控制,其接口的片选定义如下:表2-1 MGLS的片选定义表CS1CS2选中区域 0 0 左区 0 1 中区 1 0 右区 1 1 未

13、选 有了上面的知识,就可以编写显示界面这一块程序。由于每个汉字或字符在图中位置是固定的,只要定义了相应的选区及X、Y地址,就可以显示出具体的位置。用lr来表示汉字的区域,当lr=0,表示左区;lr=1,表示中区;lr=2,表示右区。X表示页面,Y表示列地址。那么(lr.X.Y)就可以定义出这个字在屏上的实际位置。以第一行的“智字为例,这个字位于模块的左区,那么lr=0;它位于第一页和第二页,那么X=0;它位于列地址的48-63字节,Y=48,那么“智就可以通过(08)精确地表示出它的位置。这里要注意的是每个汉字占用的行地址是两页,如“智字占的就是X0和X1,即第二行的汉字其X=2而不是1。因此

14、,第二行的“2.2HD61202及其兼容液晶显示控制器是一种带有驱动输出的图形液晶显示控制器,而在小规模点阵液晶显示模块上使用液晶显示驱动器组成液晶显示驱动控制系统是非常有益的,这将使液晶显示模块的硬件电路简单化,从而降低模块的本钱,同时也提高了对软件功能的要求。许多显示功能如光标、字符库、闪烁都需要由软件编制而成。HD61203和HD61202就是这类液晶显示驱动控制器套件。之所以称它们为套件是因为HD61203和HD61202必须配套使用,通常有12864和19264两种规格。其特点如下:1内藏64*64=4096位显示RAM,RAM中每位数据对应LCD屏上的一个点的亮、暗状态。2HD61

15、202及其兼容控制器是列驱动器,具有64路列驱动输出。3HD61202及其兼容控制驱动器读、写时序与68系列微处理妻相符,因此它可直接与68系列微处理器借口相联。4HD61202及其兼容控制器的占空比为1/321/64。2.2MGLS-12864图形液晶显示模块的驱动和控制系统是由一片KS0107B或兼容驱动器( HD61203 )作为行驱动器和两片KS0108B或兼容驱动器(HD61203) 作为列驱动器组成的。它的主要技术参数及其供电特点如下:电源:DC+5V,模块内自带用于LCD驱动的负压电路。显示内容:12864全屏幕点阵。指令形式:七种指令。接口形式:与控制器采用8位数据总线和8位控

16、制线相连。工作环境:10+50模块应用有三种电源:逻辑电源、液晶驱动电压、背光电压。本次选用的模块是双电源供电VDD/V0,需要提供一个液晶驱动电压,用以调节比照度,接在液晶模块的V0引脚上,由于液晶的比照度会随着温度的变化而相应变化,所以其液晶显示驱动电压值应随着温度作相应的调整,这里采用了一个电位器,调整电压值。背光供电为流电源,选用电源太大不仅增加功耗,更有可能损坏背光灯和缩短模块的使用寿命。MGLS-12864液晶显示模块一共有20个引脚,它的接口定义如下:表2-2 MGLS-12864的接口电路序号符号状态功能D7三态数据总线D6三态数据总线D5三态数据总线4D4三态数据总线5D3三

17、态数据总线6D2三态数据总线7D1三态数据总线8D0三态数据总线9E输入R/W=“L,E的下降沿锁存数据线R/W=“H,E为“H时,数据由控制器输出至数据线10R/W输入R/W=“L,E=“H数据由控制器输出数据线R/W=“H,E的下降沿,数据由数据线输入到控制器11D/I输入D/I=“L,表示DB7DB0为显示数据D/I=“H,表示DB7DB0为显示指令12V0液晶显示器驱动电压13VCC电源正14GND电源地15CS1输入片选信号16CS2输入片选信号17VOUTLCD负压驱动电压18RET输入复位信号19LED+显示模块背光电源20LED-显示模块背光电源2.3硬件电路设计经过对以上对A

18、Tmega16L芯片的端口、存储器、时钟电路、以及复位电路和LCD液晶显示等原理的介绍后,现在就可以完成对这局部硬件电路的设计了。再结合前面的分析采用间接访问的方式实现单片机与液晶显示模块之间的连接。LCD模块的8位数据线接在了Atmega16L芯片B口的8位数据线上,这里用了一个74LS24作为锁存器使它们间接连接在一起。LCD的EN、D/I、CS1、CS2、R/W分别连接到PA3PA7上,其详细的接法见下列图 图2-8 硬件接线图2.4 PROTEL99的应用简介经过前面的努力,智能充电器硬件电路的设计在本人及同组人的共同努力下已经完成,接下来便是根据前面的设计用软件画出其原理图并生成板。

19、PROTEL99SE是一个全32位的电路板设计软件,使用该软件可以容易地设计电路原理图、画元件图、设计电路板图、画元件封装图和电路仿真。在这里主要用它来绘制电路原理图和生成印制电路板。原理图的设计步骤如下:设置原理图设计环境。其中,工作环境设置是使用Design/Options和Tool和Preferences菜单进行的,画原理图环境的设置主要包括图纸大小、捕捉栅格、电气栅格、模板设置等。放置元件,将电气和电子元件放置在图纸上。原理图布线。元件一旦放置在原理图上,不需要用导线将元件连接起来,连接时一定要符合电气规那么。编辑和调整。编辑元件的属性。包括元件名、参数、封装图等。调整元件和导线的位置

20、等操作。 本次设计所用的主要元件属性如下:表2-3 主要元件表说明编号封装元件名称 单片机U1DIP-40Atmega16LCDJ2DIP-20LCD模块电阻RRES2电容CCAP锁存器U5DIP-2074LS245NPN三极管QTO462N2222A晶体XXTAL-1XTAL通用运放U2A,U2BDIP8LM358检查原理图。使用电气规那么功能(ERC)检查原理图的连接是否合理和正确。给出检查报告,假设有错误那么要根据错误进行改正。生成网络表。所谓网络表就是元件名、封装、参数及元件之间的连接表,通过该表可以确认各个元件和它们之间的关系。打印原理图。第三章 软件设计由于本人主要负责设计软件局部

21、,而本人之前对C语言这门课的学习不是非常的精通,因此在着手本章之前本人对C语言以及AVR单片机与C语言编程方面的书籍做了认真仔细的回忆、学习和再研究,这样才对下面设计工作的开展打下了根底。在本章里,本人将先介绍C语言开发的优势,然后介绍LCD的显示原理、模块的软件特性等,接下来便是最主要的整个程序的设计。C语言是一种编译型的结构化程序设计语言,具有简单的语法结构和强大的处理功能,具有运行速度快、编译效率高,移植性好和可读性强等多种优点,可以实现对系统便件的直接操作。用C语言来编写目标系统软件,可以大大缩短开发周期,且明显地增加软件的可读性,便于改良和扩充,从而开发出大规模、高性能的应用系统。其

22、优势如下:可以大幅度加快开发进度,程序量越大,用C语言就越有优势。无需精通单片机指令集和具体的硬件,也能够编出符合硬件实际专业水平的程序。可以实现软件的结构化编程,使得软件的逻辑结构变得清晰、有条理、便于开发小组方案任务、分工合作。源程序的可读性和可维护性都很好。省去了人工分配单片机资源的工作,在汇编语言中要为每一个子程序分配单片机的资源。汇编语言的可移植性很差,而C语言只要将一些与硬件相关的代码作适当的修改,就可以方便地移植到其它种类的单片机上。C语言提供auto、static、flash等存储类型,针对单片机的程序存储空间、数据存储空间及EEPROM空间自动为变量合理地分配空间,而且C语言

23、提供复杂的数据类型,极大地增强了程序处理能力和灵活性。对于一些复杂系统的开发,可以通过移植(或C编译器提供)的实时操作系统来实现。3.2 液晶显示汉字或字符的原理 LCD本身不发光只是调节光的亮度,目前市面上的LCD显示器都是利用液晶的扭曲一向列效应制成,这是一种电场效应,夹在两片导电玻璃电极间的液晶经过一定处理,它内部的分子呈直角扭曲,当线性偏振光透过其偏振面便会旋转一个直角。当在玻璃电极上加上电压后,在电场作用下,液晶的扭曲结构消失,偏振光便可以直接通过。当去掉电场后液晶分子又恢复取扭曲结构。把这样的液晶置于两个偏振片之间,改变偏振片相对位置就可以得到白底黑子或黑底白字的显示形式。结合以上

24、知识具体显示原理如下:( 1 ) 线段的显示点阵图形式液晶由M*N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16*8=128个点组成,屏上64*16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的00H00FH的16字节的内容决定,当(000)=FFH时,如屏的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,那么显示屏的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=FFH,(003H)=00H,(00EH)=FFH

25、,(00FH)=00H时,那么在屏的顶部显示一条由8段亮线和8段暗线组成的虚线。这就是LCD显示的根本原理。( 2 ) 字符的显示用LCD显示一个字符时比拟复杂,因为一个字符由6*8或8*8点阵组成,既要找到和显示屏上某几个位置对应的显示RAM区的8字节,还要使每字节的不同的位为“1,其它的为“0,为“1的点亮,为“0的不亮,这样一来就组成某个字符。但对于内带字符发生器的控制器 (如HD61202)来说,显示字符就比拟简单了,可让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。3.3 LCD模块的指令说明要完成显

26、示程序的设计,必须了解LCD液晶模块的指令系统。这里采用的LCD是北京精电蓬远显示技术公司生产的MGLS系列图形液晶显示模块,其内藏KS0108B/HD61202控制器。KS0108B及其兼容控制驱动器( HD61202 )的指令系统比拟简单,一共只有7条指令,从作用上可分为两类。第一条指令和第二条指令为显示状态设置类;其余指令为数据读/写操作指令。下面是各个指令的功能:读状态指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 0BUSY 0 ON/OFF REST 0 0 0 0状态字是计算机了解HD61202及其兼容控制驱动器当前状态,或是HD61202及其兼

27、容控制驱动器向计算机提供其内部状态的唯一的信息渠道。状态字为一字节,其中仅有3位有效位,它们是:BUSY表示当前HD61202接口控制电路运行状态。BUSY=1表示HD61202正在处理计算机发来的指令或数据。此时接口电路被封锁,不能接受除读状态字以外的任何操作。BUSY=0表示HD61202接口电路已处于“准备好状态,等待计算机的访问。ON/OFF表示当前的显示状态。ON/OFF=1表示关显示状态;ON/OFF=0表示开显示状态。RESET表示当前HD61202的工作状态,即反映RST端的电平状态。当RST为低电平状态时,HD61202处于复位工作状态,RESET=1;当RST为高电平状态时

28、,HD61202为正常工作状态,RESET=0。显示开关指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 00 0 1 1 1 1 1 1/0该指令设置显示开关触发器的状态,由此控制显示数据锁存器的工作方式,从而控制显示屏上的显示状态。D位为显示开关控制位。当D=1为开显示设置,显示数据锁存器正常工作,显示屏上呈现所需的显示效果。显示起始行设置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 01 1 显示起始行( 0-63 ) 该指令设置了显示起始行存放器的内容。HD61202有64行显示的管理能力,该指令中L5L0为显示起始行

29、的地址,取值在03FH( 164行)范围内,它规定了显示屏上最顶一行所对应的显示存储器的行地址。如果定时间隔地,等间距地修改( 如加1或减1)显示起始行存放器的内容,那么显示屏将呈现显示内容向上或向下平滑滚动的显示效果。页面地址设置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 01 0 1 1 1 页号( 07 ) 该指令设置了页面地址X地址存放器的内容。HD61202将显示存储器分成8页,指令代码中P2-P0就是要确定当前所要选择的页面地址,取值范围为0-7H,代表第1-8页。该指令规定了以后的读写操作将在哪一个页面上进行。列地址设置指令R/W RSDB7

30、 DB6 DB5 DB4 DB3 DB2 DB1 DB00 00 1 显示列地址( 063 )该指令设置了Y地址计数器的内容,C5C0=03FH( 164 )代表了某一页面上的某一个单元地址,随后的一次读或写数据将在这个单元上进行。Y地址计数器具有自动加1功能,在每上次读写数据后它将自动加1,所以在连续进行读写数据时,Y地址计数器不必每次都设置一次。页面地址的设置和列地址的设置将显示存储器单元唯一确实定下来,为后来的显示数据的读写作了地址的选通。写数据指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 1写数据该操作将8位数据写入先前已确定的显示存储器的单元内。操

31、作完成后列地址计数器自动加1。读数据指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 1读显示数据该操作将HD61202接口部的输出存放器内容读出,然后列地址计数器自动加一。必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。3.4 液晶显示界面本着简单明了的根本思想前面提到,结合液晶显示模块的相关知识,设计出如下界面:智能型充电器智能型充电器电池:电压: V节数;电流: A状态:温度: 图3-1 LCD界面显示这次设计采用的液晶显示模块本是由北京精电公司所造的图形式的MGLS-12864芯片,其用一片KS0107B或兼容驱

32、动器( HD61203 )作为行驱动器和三片KS0108B或兼容驱动器(HD61203) 作为列驱动器组成的。3.5 系统程序流程图为了方便程序的设计,使自己在设计过程中做到思路清晰,设计起来游刃有余。这里首先画出了程序流程图,后面根据次流程图具体设计程序,现具体分析如下:(一)主程序流程图这次设计课题的主要内容是在充电器的充电过程中,采集参数,进行电压、电流、温度的实时显示。其主流程图设计如下:按 键 调 节按 键 调 节采样V、A、T显示V、A、T 充满?结 束YN 初 始 化采 集 电 池 电 压0开 始Y有 电 池无 电 池等 待扫 描 按 键有键按下?YNN 1 图3-2主程序流程图

33、(二)控制程序流程图要想在液晶模块上显示一个字符或汉字,首先必须得对控制字进行写指令代码、写显示数据和读显示数据3项操作。完成这3项工作都必须保证控制器处于不忙的情况下,这就必须有一个判忙子程序,其流程图如下:开 始读左边控制器的状态字开 始读左边控制器的状态字驱动器忙?送 状 态 字返 回YN图3-3 判忙程序流程图(三)显示程序流程图根据上面采用的方法设置汉字的初始值(lr、X、Y),当显示完第一列的8字节以后,跳到第二列又从上往下显示。由于一个汉字每一列有16字节,那么当一页的16列显示完,只相当于显示的汉字的上半局部,那么再次跳到下一页的初始位,进行汉字下半局部的显示,值到16列显示完

34、成,才表示一个汉字全部显示结束。第四章 系统调试4.1 系统调试软件介绍完成对系统的硬、软件设计后,就可以对系统进行调试了。本次设计本人采用了ICCAVR编译器作为系统的开发工具,进行程序的烧录和仿真。4 ICCAVR编译器简介(一) ICC AVR是ImageCraft公司针对AVR单片机而开发的一个C语言编译,它具有以下几个特点:1.支持不带SRAM的单片机器件。2.带嵌入式的应用程序编译器。3.带全局优化器。4.支持在线编程(STK200/300)。5.ICC AVR是一个运行于Windows 9X/NT的集成开发环境(ODE),它包括单片机软件开发所需要的编辑器、工程管理器和C编译器。

35、6.ICC AVR采用了工程的组织形式。程序的所有源文件全部以工程的一个要素保存在工程中,并且程序的编辑和编译也都在这个环境中进行。工程管理器最后还能生成HEX格式的烧录文件和COFF格式的仿真文件。 (二)ICC AVR支持的数据类型数据类型就是数据的不同表示形式,它们按照被描叙数据的性质及其所占存储空间的大小来划分。ICC AVR的C编译器可以支持4种数据类型,它们分别是:根本数据类型、构造类型、指针类型和空类型。根本数据类型包括字符型(Unsign Char和Signed Char)、整型(Unsigned Int和SignedInt)、长整型(Unsigned Long和Signed

36、long)、浮点型(Float)和双精度型(Double。根本数据类型不只有再分性,它不可以再分解为其他的数据类型。构造数据类塑包括数组型(Array)、结构体类型(Smuct)、公用体类型(Union)和枚举类刑(Enum)。构造数据类型由假设干个根本数据类型采用构造的方法成,因此,每个构造数据类烈都可以分解成假设干个根本数招类型。 指针是一种用来专门存放所指对象地址的变量,它指向计算机内的一个内存单元。指针的处理具有较高的灵活性,使用它可以有效地表示复杂的数据结构,有效地使用内存空间,方便地处理数组,因此,它是C语言中一种非常重要的数据类型。 空类型也就是Void类型。在调用函数时,函数通

37、常都会返同一个函数值。这个返回的函数值的数据类型可以在函数定义和函数说明中由用户指定。但有一些函数,它只进行一定的处理,在调用后并不需要返回某个函数值,那么这种函数可以定义为“空类型。当一个计算的几个运算分量的数据类型不相同时.要根据一些规那么把它们转换成某个共同的数据类型。这种转换可自动进行,也可以人工强制转换。通常来说,编译器会把“窄的数据类型自动转换成“宽数据类型,以保证计算信息不被丧失。 ICC AVR的主要设置点击菜单中“Tools栏中的“Application Builder命令,翻开应用构筑向导对话框,其框图如4-1所示。框图主要有以下页面:CPU选项:可对芯片的种类、频率、是否

38、使用看门狗以及是否使用INT0和INT1等进行选择。在这里选择M16芯片,7.3728频率,使用看门狗。PORTS选项:可以设计I/O的属性,其关系如下:表4-1 Ports选项中符号与端口实际设定Direction:“1Value: “1”Direction:“1Value: “1Direction:“1Value: “1Direction:“1Value: “1PORTA 0 xff 0 x00 0 xff 0 x00DDRA 0 x00 0 x00 0 xff 0 xff 4.2 调试过程为了稳固前面所学的知识,培养对AVR单片机学习的兴趣,同时也为了学会并熟练掌握ICCAVR编译器的应用,为最后的联机调试打下根底。在这里设计了一些最简单的单片机系统实例进行调试,其核心部件采用Atmega16L芯片。本来这次是准备在面包板上完成实验的,但后来觉得引脚插在面包板里面,松紧不一,且面包板是一个长条形,如果做到后面的实现随着线的增多,空间跨度太大,影响视觉,某根线一旦出了问题也不易检查,综合各方面考虑,最后选用了一次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论