基于AVR用MAX515芯片调节LED灯亮度2.docx

上传人:b****5 文档编号:11540054 上传时间:2023-03-19 格式:DOCX 页数:21 大小:386.37KB
下载 相关 举报
基于AVR用MAX515芯片调节LED灯亮度2.docx_第1页
第1页 / 共21页
基于AVR用MAX515芯片调节LED灯亮度2.docx_第2页
第2页 / 共21页
基于AVR用MAX515芯片调节LED灯亮度2.docx_第3页
第3页 / 共21页
基于AVR用MAX515芯片调节LED灯亮度2.docx_第4页
第4页 / 共21页
基于AVR用MAX515芯片调节LED灯亮度2.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于AVR用MAX515芯片调节LED灯亮度2.docx

《基于AVR用MAX515芯片调节LED灯亮度2.docx》由会员分享,可在线阅读,更多相关《基于AVR用MAX515芯片调节LED灯亮度2.docx(21页珍藏版)》请在冰豆网上搜索。

基于AVR用MAX515芯片调节LED灯亮度2.docx

基于AVR用MAX515芯片调节LED灯亮度2

 

CHANGZHOUINSTITUTEOFTECHNOLOGY

 

单片机课程设计说明书

项目名称:

用MAX515芯片调节LED灯亮度

二级学院:

电子信息与电气工程学院

专业:

电气工程及其自动化

班级:

11电卓

学生姓名:

学号:

指导教师:

马金祥

职称:

讲师

起止时间:

2013年6月21日—2014年7月2日

目录

1.引言………………………………………………………………………………………1

2.设计内容

2.1设计内容及其要求……………………………………………………………………1

2.2产品认知………………………………………………………………………………1

2.3LED灯的认识…………………………………………………………………………2

2.4产品设计原理…………………………………………………………………………2

3.系统总体结构

3.1系统结构框图…………………………………………………………………………3

3.2主要设计框图…………………………………………………………………………3

3.3系统原理图……………………………………………………………………………3

4.硬件设计

4.1主要芯片介绍…………………………………………………………………………4

4.1.1ATMEGA16…………………………………………………………………………6

4.1.2MAX515…………………………………………………………………………8

4.2最小系统………………………………………………………………………………9

5.软件设计

5.1系统软件设计整体思路………………………………………………………11

5.2系统软件设计的一般原则……………………………………………………12

5.3系统软件设计的步骤…………………………………………………………12

5.4软件AVRStudio4的应用……………………………………………………12

5.5程序设计与调试…………………………………………………………………13

5.6protuse仿真……………………………………………………………………18

6.调试过程中遇到的问题及解决方法

7.小结………………………………………………………………………………18

8.参考文献…………………………………………………………………………19

附录1电路图………………………………………………………………………20

附录2源程序………………………………………………………………………21

附录3元器件清单…………………………………………………………………33

附录4实物图………………………………………………………………………34

 

1.引言

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

概括的讲,一块芯片就成了一台计算机。

 

单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

同时,学习使用单片机了解计算机原理与结构的最佳选择。

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

更不用说自动控制领域的机器人、智能仪表、医疗器械了。

因此,单片机的学习、开发与应用尤为重要。

而AVR单片机是各类单片机中比较典型和具有代表性的一种。

本实验是基于AVR系列单片机所设计的,以单片机芯片ATMEGA16作为核心控制器,通过硬件电路的制作以及软件程序的编制,实现控制LED的亮度。

 

2.设计内容和要求

 

2.1设计内容:

用带SPI接口的数/模转换芯片MAX515调节LED亮度

要求:

LED灯的亮度可以自动循环调节

2.2产品认知:

AVR单片机:

AVR单片机是Atmel公司1997年推出的RISC单片机。

RISC(精简指令系统计算机)是相对于CISC(复杂指令系统计算机)而言的。

RISC并非只是简单地去减少指令,而是通过使计算机的结构更加简单合理而提高运算速度的。

RISC优先选取使用频率最高的简单指令,避免复杂指令:

并固定指令宽度,减少指令格式和寻址方式的种类,从而缩短指令周期,提高运行速度。

由于AVR采用了RESC的这种结构,使AVR系列单片机都具备了1MIPS/MHz(百万条指令每秒/兆赫兹)的高速处理能力。

[3] 

AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑)。

提高了指令执行速度(1Mips/MHz),克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。

AVR单片机内嵌高质量的Flash程序存储器,擦写方便,支持ISP和IAP,便于产品的调试、开发、生产、更新。

内嵌长寿命的EEProm可长期保存关键数据,避免断电丢失。

片内大容量的RAM不仅能满足一般场合的使用,同时也更有效的支持使用高级语言开发系统程序,并可像MCS-51单片机那样扩展外部RAM。

AVR单片机的I/O线全部带可设置的上拉电阻、可单独设定为输入/输出、可设定(初始)高阻输入、驱动能力强(可省去功率驱动器件)等特性,使的得I/O口资源灵活、功能强大、可充分利用。

AVR单片机片内具备多种独立的时钟分频器,分别供URAT、I2C、SPI使用。

其中与8/16位定时器配合的具有多达10位的预分频器,可通过软件设定分频系数提供多种档次的定时时间。

AVR单片机独有的“以定时器/计数器(单)双向计数形成三角波,再与输出比较匹配寄存器配合,生成占空比可变、频率可变、相位可变方波的设计方法(即脉宽调制输出PWM)更是令人耳目一新。

[4] 

增强性的高速同/异步串口,具有硬件产生校验码、硬件检测和校验侦错、两级接收缓冲、波特率自动调整定位(接收时)、屏蔽数据帧等功能,提高了通信的可靠性,方便程序编写,更便于组成分布式网络和实现多机通信系统的复杂应用,串口功能大大超过MCS-51/96单片机的串口,加之AVR单片机高速,中断服务时间短,故可实现高波特率通讯。

面向字节的高速硬件串行接口TWI、SPI。

TWI与I2C接口兼容,具备ACK信号硬件发送与识别、地址识别、总线仲裁等功能,能实现主/从机的收/发全部4种组合的多机通信。

SPI支持主/从机等4种组合的多机通信。

AVR单片机有自动上电复位电路、独立的看门狗电路、低电压检测电路BOD,多个复位源(自动上下电复位、外部复位、看门狗复位、BOD复位),可设置的启动后延时运行程序,增强了嵌入式系统的可靠性。

AVR单片机具有多种省电休眠模式,且可宽电压运行(5-2.7V),抗干扰能力强,可降低一般8位机中的软件抗干扰设计工作量和硬件的使用量。

[5] 

LED灯

LED(LightEmittingDiode),发光二极管,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。

LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。

半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。

但这两种半导体连接起来的时候,它们之间就形成一个P-N结。

当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED灯发光的原理。

而光的波长也就是光的颜色,是由形成P-N结的材料决定的。

最初LED用作仪器仪表的指示光源,后来各种光色的LED在交通信号灯和大面积显示屏中得到了广泛应用,产生了很好的经济效益和社会效益。

2.3LED灯的优点:

1、节能.白光LED的能耗仅为白炽灯的1/10,节能灯的1/4.

2、长寿.寿命可达10万小时以上,对普通家庭照明可谓"一劳永逸".

3、可以工作在高速状态.节能灯如果频繁的启动或关断灯丝就会发黑很快的坏掉.

4、固态封装,属于冷光源类型。

所以它很方便运输和安装,可以被装置在任何微型和封闭的设备中,不怕振动,基本上用不着考虑散热。

5、led技术正日新月异的在进步,它的发光效率正在取得惊人的突破,价格也在不断的降低。

一个白光LED进入家庭的时代正在迅速到来。

6、环保,没有汞的有害物质。

LED灯泡的组装部件可以非常容易的拆装,不用厂家回收都可以通过其它人回收。

7、配光技术使LED点光源扩展为面光源,增大发光面,消除眩光,升华视觉效果,消除视觉疲劳;

8、透镜与灯罩一体化设计。

透镜同时具备聚光与防护作用,避免了光的重复浪费,让产品更加简洁美观;

9、大功率led平面集群封装,及散热器与灯座一体化设计。

充分保障了led散热要求及使用寿命,从根本上满足了LED灯具结构及造型的任意设计,极具LED灯具的鲜明特色。

10、节能显著。

采用超高亮大功率led光源,配合高效率电源,比传统白炽灯节电80%以上,相同功率下亮度是白炽灯的10倍;

11、超长寿命50,000小时以上,是传统钨丝灯的50倍以上。

LED采用高可靠的先进封装工艺—共晶焊,充分保障LED的超长寿命;

12、无频闪。

纯直流工作,消除了传统光源频闪引起的视觉疲劳

13、绿色环保。

不含铅、汞等污染元素,对环境没有任何污染

14、耐冲击,抗雷力强,无紫外线(UV)和红外线(IR)辐射。

无灯丝及玻璃外壳,没有传统灯管碎裂问题,对人体无伤害、无辐射。

15、低热电压下工作,安全可靠。

表面温度≤60℃(环境温度Ta=25℃时)

16、宽电压范围,全球通用LED灯。

85V~264VAC全电压范围恒流,保证寿命及亮度不受电压波动影响;

17、采用PWM恒流技术,效率高,热量低,恒流精度高;

18、降低线路损耗,对电网无污染。

功率因数≥0.9,谐波失真≤20%,EMI符合全球指标,降低了供电线路的电能损耗和避免了对电网的高频干扰污染;

19、通用标准灯头,可直接替换现有卤素灯、白炽灯、荧光灯

20、发光效率可高达801m/w,多种LED灯色温可选,显色指数高,显色性好;

2.4产品设计原理:

LED一般是恒流操作的,如何改变LED的亮度呢?

在一定的频率的方波中,调整高电平和低电平的占空比,即可实现。

比如我们用低电平点亮一个LED灯,我们假设把一个频率周期分为10个时间等份,如果方波中的高低电平占空比是9:

1,这是就是一个比较暗的亮度,如果方波中高低电平占空比是10:

0,这时,全部是高电平,灯是灭的。

如果占空比是5:

5,就是一个中间亮度,如果高低比是1:

9,是一个比较亮的亮度,如果高低是0:

10,这时全部是低电平,就是最亮的。

 

实际上应用中,电视屏幕墙中的几十百万LED象素都是这样控制的,而且每一个象素都有红绿蓝3个LED,每个LED可以变化的亮度是几百到几万或者更多的级别,以实现真彩色的显示。

还有在您的手机中,背光灯的亮度如果是可以变化的,也应该是这种工作方式。

目前的城市彩灯也有很多都使用了LED,需要控制亮度是也是PWM控制。

 

在程序中,我们将定时器2溢出定为1/1200秒。

每10次脉冲输出一个120HZ频率。

这每10次脉冲再用来控制高低电平的10个比值。

这样,在每个1/120秒的方波周期中,我们都可以改变方波的输出占空比,从而控制LED灯的亮度。

3.系统总体结构

3.1系统结构框图:

 

 

3.2主要设计方框图如下:

扬声器发声

数模转换

单片机处理

降压整流

电压采集

 

3.3系统原理图

 

4.硬件设计

4.1主要芯片介绍

4.1.1ATMEGA16

ATmega16是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。

由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。

ATmega16AVR内核具有丰富的指令集和32个通用工作寄存器。

所有的寄存器都直接与运算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。

这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。

ATmega16有如下特点:

16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP 封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及六个可以通过软件进行选择的省电模式。

工作于空闲模式时CPU停止工作,而USART、两线接口、A/D 转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作。

本芯片是以Atmel高密度非易失性存储器技术生产的。

片内ISPFlash允许程序存储器通过ISP 串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。

引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlashMemory)。

在更新应用Flash存储区时引导Flash区(BootFlashMemory)的程序继续运行,实现了RWW操作。

通过将8位RISCCPU与系统内可编程的Flash集成在一个芯片内,ATmega16成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。

ATmega16具有一整套的编程与系统开发工具,包括:

C语言 编译器、宏汇编、程序调试器/ 软件仿真器、仿真器及评估板。

ATMEGA16引脚功能

引脚名称及引脚功能说明

VCC电源正

GND 电源地

端口A(PA7..PA0)

端口A做为A/D 转换器的模拟输入端。

端口A为8位双向I/O口,具有可编程的内部上拉电阻。

其输出缓冲器具

有对称的驱动特性,可以输出和吸收大电流。

作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。

在复位过程中,即使系统时钟还未起振,端口A处于高阻状态。

端口B(PB7..PB0)

端口B为8位双向I/O口,具有可编程的内部上拉电阻。

其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。

作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。

在复位过程中,即使系统时钟还未起振,端口B处于高阻状态。

端口B也可以用做其他不同的特殊功能.

端口C(PC7..PC0)

端口C为8位双向I/O口,具有可编程的内部上拉电阻。

其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。

作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。

在复位过程中,即使系统时钟还未起振,端口C处于高阻状态。

如果JTAG接口使能,即使复位出现引脚PC5(TDI)、PC3(TMS)与PC2(TCK)的上拉电阻被激活。

端口C也可以用做其他不同的特殊功能.

端口D(PD7..PD0)

端口D为8位双向I/O口,具有可编程的内部上拉电阻。

其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。

作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。

在复位过程中,即使系统时钟还未起振,端口D处于高阻状态。

端口D也可以用做其他不同的特殊功能.

RESET复位输入引脚。

持续时间超过最小门限时间的低电平将引起系统复位。

门限时间见P36Table15。

持续时间小于门限间的脉冲不能保证可靠复位。

XTAL1

反向振荡放大器与片内时钟操作电路的输入端。

XTAL2

反向振荡放大器的输出端。

AVCC

AVCC是端口A与A/D转换器的电源。

不使用ADC时,该引脚应直接与VCC连接。

使用ADC时应通过一个低通滤波器与VCC连接。

AREF

A/D的模拟基准输入引脚。

ATMEGA16内核介绍

右边为AVR结构的方框图

为了获得最高的性能以及并行性,AVR采用了Harvard结构,具有独立的数据和程序总线。

程序存储器里的指令通过一级流水线运行。

CPU在执行一条指令的同时读取下一条指令(在本文称为预取)。

这个概念实现了指令的单时钟周期运行。

程序存储器是可以在线编程的FLASH。

ATmega16内部框图

快速访问寄存器文件包括32个8位通用工作寄存器,访问时间为一个时钟周期。

从而实现了单时钟周期的ALU操作。

在典型的ALU操作中,两个位于寄存器文件中的操作数同时被访问,然后执行运算,结果再被送回到寄存器文件。

整个过程仅需一个时钟周期。

寄存器文件里有6个寄存器可以用作3个16位的间接寻址寄存器指针以寻址数据空间,实现高效的地址运算。

其中一个指针还可以作为程序存储器查询表的地址指针。

这些附加的功能寄存器即为16位的X、Y、Z寄存器。

ALU支持寄存器之间以及寄存器和常数之间的算术和逻辑运算。

ALU也可以执行单寄存器操作。

运算完成之后状态寄存器的内容得到更新以反映操作结果。

程序流程通过有/无条件的跳转指令和调用指令来控制,从而直接寻址整个地址空间。

大多数指令长度为16位,亦即每个程序存储器地址都包含一条16位或32位的指令。

程序存储器空间分为两个区:

引导程序区(Boot区)和应用程序区。

这两个区都有专门的锁定位以实现读和读/ 写保护。

用于写应用程序区的SPM指令必须位于引导程序区。

在中断和调用子程序时返回地址的程序计数器(PC)保存于堆栈之中。

堆栈位于通用数据SRAM,因此其深度仅受限于SRAM的大小。

在复位例程里用户首先要初始化堆栈指针SP。

这个指针位于I/O空间,可以进行读写访问。

数据SRAM可以通过5种不同的寻址模式进行访问。

AVR 存储器空间为线性的平面结构。

AVR有一个灵活的中断模块。

控制寄存器位于I/O空间。

状态寄存器里有全局中断使能位。

每个中断在中断向量表里都有独立的中断向量。

各个中断的优先级与其在中断向量表的位置有关,中断向量地址越低,优先级越高。

 I/O 存储器空间包含64个可以直接寻址的地址,作为CPU外设的控制寄存器、SPI,以及其他I/O功能。

映射到数据空间即为寄存器文件之后的地址0x20-0x5F。

4.1.2MAX515

MAX515是Maxim公司生产的一种低功耗的电压输出型10位串行D/A转换器,兼容SPI接口,MAX515固定增益为2,用+5V单电源工作。

本例运行时,通过调节RV1向单片机输入模拟电压,单片机将A/D转换后的数字量输出给MAX515,经D/A转换后所输出的模拟电压控制LED亮度变化。

4.2最小系统

振荡电路:

本次设计采用的是1M的晶振,电路图如图所示

LED显示电路

5.软件设计

5.1系统软件设计整体思路

一个应用系统要完成各项功能,首先必须有较完善的硬件作保证。

同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。

甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单,如数字滤波,信号处理等。

因此充分利用其内部丰富的硬件资源和软件资源,采用与AVR系列单片机相对应的C语言和结构化程序设计方法进行软件编程。

C语言是一种计算机程序设计语言。

它既具有高级语言的特点,又具有汇编语言的特点。

它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件。

具体应用比如单片机以及嵌入式系统开发。

5.2系统软件设计的一般原则

  在单片机应用开发中代码使用效率、单片机的抗干扰性以及软件可靠性是实际工程设计的重点。

单片机应用软件系统设计包括功能模块划分、程序流程确立、模块接口设计以及程序代码编写。

我们依据系统的功能要求,将整体软件系统分割成若干个独立的程序模块。

这些程序模块可以是几条语句的集合、功能函数或程序文件。

随后,根据个程序模块的实现功能写出流程,一般需要写出具体的实现功能描述。

程序代码通常采用汇编语言或高级语言(C语言)编写。

本设计采用C语言编程,在此必须注意以下问题:

(1)提高程序代码效率

必须熟悉当前使用的C语言编译器,试验每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道代码效率。

(2)减少程序错误

我们在编写程序时,要注重考虑如下方面。

[1]物理参数[2]资源参数[3]应用参数[4]过程参数

(3)单片机的抗干扰性

防止干扰最有效的方法是去除干扰源、隔离干扰路径。

单片机干扰最常见的现象就是复位,导致程序运行异常。

设计系统是一般需要添加一个“看门狗”监控模块,在系统出现不可逆转的干扰时,监控模块将重启系统,并从断点处继续执行。

(4)系统的可靠性

[1]要测试单片机软件功能的完善性。

[2]上电、掉电测试。

[3]系统耗损测试。

5.3系统软件设计的步骤

系统进行软件设计时,先要对本课题硬件有一个熟练的掌握,知道系统的组成,数据的传输,信号是如何被控制的,以及信号的显示。

然后进行软件设计时,先搞清楚各个部分的子程序及他们的流程图,然后进行C语言编程,最后将它们系统的编程.

本次科研实践,要求利用AVR系列单片机进行设计。

故本次设计的程序利用软件AVRStudio4在Win2007环境下进行调试运行。

5.4软件AVRStudio4的应用

本次设计是利用ATmega16作为单片机的。

设计程序,应用AVRStudio4步骤为:

(1)打开AVRStudio4软件,选择NEWProject。

(2)选择AVRGCC环境,输入文件名,选择文件位置。

(3)选择调试平台和芯片型号。

左边的DebugPlatform框为选择调试平台,要根据实际使用的调试工具做选择。

这里是模拟仿真,选择AVRSimulator。

右边的Device框选择所用的单片机型号,这里选择ATmega16。

选择完毕,点击Finish,工程创建结束。

5.5程序设计及调试

5.5.1仿真开发系

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

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

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