基于AVR用MAX515芯片调节LED灯亮度2Word文档下载推荐.docx
- 文档编号:8027543
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:21
- 大小:386.37KB
基于AVR用MAX515芯片调节LED灯亮度2Word文档下载推荐.docx
《基于AVR用MAX515芯片调节LED灯亮度2Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于AVR用MAX515芯片调节LED灯亮度2Word文档下载推荐.docx(21页珍藏版)》请在冰点文库上搜索。
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.1系统结构框图:
3.2主要设计方框图如下:
扬声器发声
数模转换
单片机处理
降压整流
电压采集
3.3系统原理图
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仿真开发系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AVR MAX515 芯片 调节 LED 亮度