AVR直流电机控制系统硬件设计概述.docx

上传人:牧羊曲112 文档编号:1662128 上传时间:2022-12-13 格式:DOCX 页数:72 大小:575.97KB
返回 下载 相关 举报
AVR直流电机控制系统硬件设计概述.docx_第1页
第1页 / 共72页
AVR直流电机控制系统硬件设计概述.docx_第2页
第2页 / 共72页
AVR直流电机控制系统硬件设计概述.docx_第3页
第3页 / 共72页
AVR直流电机控制系统硬件设计概述.docx_第4页
第4页 / 共72页
AVR直流电机控制系统硬件设计概述.docx_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《AVR直流电机控制系统硬件设计概述.docx》由会员分享,可在线阅读,更多相关《AVR直流电机控制系统硬件设计概述.docx(72页珍藏版)》请在三一办公上搜索。

1、沈阳理工大学学士学位论文摘 要近年来,电机调速系统在工业自动化、生产过程控制、测控仪表等领域的应用越来越深入和广泛。ATmega16是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。主要由ATmega16为核心设计由LMD18200驱动芯片,采用232通讯协议的串行通信控制电路构成的直流电机PWM调速控制系统。系统主要完成由上位机和ATmega16控制直流电机的起动,停止和加减速等功能。文章详细介绍了本调速控制系统的工作原理、PWM驱动接

2、口电路和K1010光电耦合器,LMD18200驱动电路,串行通信控制电路相应的软件设计。软件通过ICCAVR编写,然后用AVRStudio进行仿真并将编译通过的程序代码下载到ATmega16之中对系统进行控制。关键词:ATmega16;直流电机;PWM;LMD18200AbstractIn recent years, the SCM application which used in the field of industrial automation, production process becomes more and more deepen and extensive.ATmega16

3、 is a microcontroller buildup on AVR RISC configuration which is a low consume microcontroller of 8-bit CMOS.The data of ATmega16 have a high dispatcher which can reach 1MIPS/MHz for advanced instruction volum and the instruction of single clock cycle,so it can relaxed the conflict between consume a

4、nd dispose speed.This design show us that a PWM speed system of DC-motor using ATmega16 is introduced in this paper. This paper elaborates on the system principle,optical Encoder, LMD18200 driving system, High Reliability Photo CouplerK1010,the DC-motor PWM digital control system,and system serial c

5、ommunication agreement of 232 communication. The system is mainly completed the start, stop and acceleration and decelerationn functions by which the master PC and ATmega16 control the DC motor. The article described in detail the speed control systems working principle, the PWM drive interface circ

6、uit and K1010 Optocoupler,LMD18200 drive circuit, the relative software design of the serial communication control circuit.The software is programmed through ICCAVR, then simulated by AVRStudio and the compiled code is downloaded to ATmega16 to control the system.Key words: ATmega16; DC-motor; PWM;L

7、MD18200目 录1 绪论11.1 课题的背景及意义11.2 直流电机的发展21.3 本设计完成的工作22 AVR单片机简介32.1 单片机系统概述32.2 ATmega16功能概述32.3 ATmega16单片机52.3.1 ATmega16单片机的特点及特性52.3.2 ATmega16单片机引脚配置及说明82.3.3 CPU92.3.4 存储器102.3.5I/O口介绍122.3.6 复位电路172.3.7 时钟电路183 直流电机控制系统硬件设计213.1 总体电路设计213.2 时钟电路213.3 系统复位电路213.4 串行通信接口电路设计223.4.1 主要特点223.4.2

8、内部结构233.4.3 Max232引脚图233.4.4 Max232 电路设计233.5 驱动电路243.5.1 LMD18200芯片介绍243.5.2 各引脚的功能及原理263.5.3 驱动电路设计273.6 光电耦合电路284 软件设计304.1 初始化程序设计304.1.1 I/O初始化304.1.2 定时器初始化304.1.3 串口初始化314.2 主程序324.3 中断及转速控制子程序344.4 串行数据传输程序364.5 ICCAVR374.5.1 开发环境ICCAVR介绍374.5.2 开发及编译374.6 AVRStudio仿真384.6.1 仿真器的特点384.6.2 连接

9、JTAG ICE394.6.3 仿真环境404.7 ATmega16单片机控制直流电机程序代码42结 论49致 谢50参考文献51附录A 英文原文52附录B 中文翻译60附录C 总体电路设计图.67681 绪论1.1 课题的背景及意义在电气时代的今天,电动机一直在现代化的生产和生活中起着十分重要的作用。无论是在工农业生产还是在日常生活中的家用电器,都大量地使用着各种各样的电动机。因此对电动机的控制变得越来越重要了。电动机的控制技术的发展得力于微电子技术、电力电子技术、传感器技术、永磁材料技术、自动控制技术、微机应用技术的最新发展成就。正是这些技的进步使电动机控制技术在近二十多年内发生了翻天覆地

10、的变化。在各类机电系统中,由于直流电机具有良好的起动、制动和调速性能,直流调速技术已广泛运用于工业、航天领域的各个方面。直流电机由于具有速度控制容易,启、制动性能良好,且在宽范围内平滑调速等特点而在冶金、机械制造、轻工等工业部门中得到广泛应用。随着生产和科技的发展,一方面对电机调速系统在控制精度、工作速度、快速启、制动及逆转性能以及在宽范围的调速等诸方面要求越来越高;另一方面,电机控制系统也经历了交磁放大器、磁放大器、可控离子变速器、可控硅和计算机控制的发展历程。尤其是最近几年来,随着微电子技术和计算机技术的发展及单片机的广泛应用,使调速装置向集成化、小型化和智能化方向发展。目前,最常用的直流

11、调速技术是脉宽调制(PWM)直流调速技术,它具有调速精度高、响应速度快、调速范围宽和耗损低等特点。国内中小功率直流电机的调速系统大量地采用脉冲宽度(PWM)调速技术,正在迅速地取代SCR直流调速系统。尤其是单片机控制的智能化调速系统有可能直接安装在电机座上而做到与电机一体化,节省了专用控制机矩,从而使设备的可靠性、自动化程度大大提高.本文所介绍的单片机直流电机调速系统试图在机电一体化方面做些工作。AVR单片机是基于RISC指令架构的8位单片机。RISC通过优选使用频率最高的简单指令,避免复杂指令,采用固定指令长度,减少指令格式和寻址方式等方法来缩短指令周期,提高处理起的运算速度。采用这种RIS

12、C结构,使得AVR系列的单片机具备1MIPS/MHZ的高速处理能力。AVR高端产品ATmega系列的部分单片机中还集成了在线调试单元,通过JTAG即可实现在线调试和程序下载功能。这使得AVR单片机成为一种能满足多种需求的高灵活性和低成本的高速微处理器。1.2 直流电机的发展直流电机可以对旋转角度和转动速度进行高精度控制。直流电机作为控制执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统和精密机械等领域。例如,在仪器仪表,机床设备以及计算机的外围设备中(如打印机和绘图仪等),凡需要对转角进行精确控制的情况下,使用直流电机最为理想。随着微电子和计算机技术的发展,直流电机的需求量与日

13、俱增,在各个国民经济领域都有应用。直流电动机是最早出现的电动机,也是最早实现条素的电动机。由于它具有良好的线性调速特性,控制简单,效率高及优异的动态特性,长期以来一直战局着调速控制领域的统治地位。近年来,随着交流变频电机及无刷电机的调速控制技术的不断成熟,直流电机正面临着巨大的挑战。在多数调速控制场合,直流电机仍是最佳选择。在本世纪初,由于资本主义列强争夺殖民地,造船工业发展很快,同时也使得直流电动机的技术得到了长足的进步。到了80年代后,由于廉价的微型计算机以多功能的姿态出现,直流电动机的控制方式更加灵活多样。原来的直流电机控制系统采用分立元件或者集成电路组成的控制回路,不仅调试安装复杂,要

14、消耗大量元器件,而且一旦定型之后,要改变控制方案就一定要重新设计电路。计算机则通过软件来控制直流电机,更好地挖掘出电动机的潜力。因此,用计算机控制直流电机已经成为了一种必然的趋势,也符合数字化的时代趋势。现在比较常用的直流电机包括反应式直流电机、永磁式直流电机、混合式直流电机和单相式直流电机等。其中反应式直流电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。现阶段,反应式直流电机获得最多的应用。1.3 本设计完成的工作本次毕业设计是单片机控制直流电机方面的应用。这个设计最终目的是设计出一个可以控制直流电机旋转的系统。本次设计主要实现了以下几个功能:(1) 设计两个稳压

15、电源接口,可以接入适合单片机工作的5V电源和LMD18200使用的12V电源。(2) 设计一个外围驱动电路来驱动直流电机旋转。(3) 使用上位机串口控制直流电机转速。最后编写软件部分,将程序输入单片机并运行系统,使系统工作。2 AVR单片机简介2.1 单片机系统概述随着材料科学、工艺技术、计算机技术的发展与进步,电路系统向着集成度极高的方向发展。CPU的生产制造技术,也朝着综合性、技术性、实用性发展。如CPU的运算位数从4位、8位到32位机的发展,运算速度从8MHz、32MHz到1.6GHz。可以说是日新月异的发展着。其中单片机在控制系统中的应用是越来越普遍了。单片机控制系统是以单片机(CPU

16、)为核心部件,扩展一些外部接口和设备,组成单片机工业控制机,主要用于工业过程控制。要进行单片机系统设计首先必须具有一定的硬件基础知识;其次,需要具有一定的软件设计能力,能够根据系统的要求,灵活地设计出所需要的程序;第三,具有综合运用知识的能力。最后,还必须掌握生产过程的工艺性能及被测参数的测量方法,以及被控对象的动、静态特性,有时甚至要求给出被控对象的数学模型。2.2 ATmega16功能概述AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU)精简指令集高速8位单片机。AVR的单片机可以广泛应用于计算机外部设备

17、、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。AVR的主要特性:高可靠性、功能强、高速度、低功耗和低价位,一直是衡量单片机性能的重要指标,也是单片机占领市场、赖以生存的必要条件。早期单片机主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原因,所以采取稳妥方案:即采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。以后的 CMOS单片机虽然采用提高时钟频率和缩小分频系数等措施,但这种状态并未被彻底改观(51以及51兼容)。此间虽有某些精简指令集单片机(RISC)问世,但依然沿袭对时钟分频的作法。AVR单片机的推出,彻底打破这种旧设计格局,废除了机器周期,抛弃复杂指令计算机(CI

18、SC)追求指令完备的做法;采用精简指令集,以字作为指令长度单位,将内容丰富的操作数与操作码安排在一字之中(指令集中占大多数的单周期指令都是如此),取指周期短,又可预取指令,实现流水作业,故可高速执行指令。当然这种速度上的升跃,是以高可靠性为其后盾的。AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑)。提高了指令执行速度(1Mips/MHz),克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。故AVR单片机在软/硬件开销、速度、性能和成

19、本诸多方面取得了优化平衡,是高性价比的单片机。 AVR单片机内嵌高质量的Flash程序存储器,擦写方便,支持ISP和IAP,便于产品的调试、开发、生产、更新。内嵌长寿命的EEProm可长期保存关键数据,避免断电丢失。片内大容量的RAM不仅能满足一般场合的使用,同时也更有效的支持使用高级语言开发系统程序,并可像MCS-51单片机那样扩展外部 RAM。AVR单片机的I/O线全部带可设置的上拉电阻、可单独设定为输入/输出、可设定(初始)高阻输入、驱动能力强(可省去功率驱动器件)等特性,使的得I/O口资源灵活、功能强大、可充分利用。AVR单片机片内具备多种独立的时钟分频器,分别供URAT、I2C、SP

20、I使用。其中与8/16位定时器配合的具有多达10位的预分频器,可通过软件设定分频系数提供多种档次的定时时间。AVR单片机独有的“以定时器/计数器(单)双向计数形成三角波,再与输出比较匹配寄存器配合,生成占空比可变、频率可变、相位可变方波的设计方法(即脉宽调制输出PWM)”更是令人耳目一新。增强性的高速同/异步串口,具有硬件产生校验码、硬件检测和校验侦错、两级接收缓冲、波特率自动调整定位(接收时)、屏蔽数据帧等功能,提高了通信的可靠性,方便程序编写,更便于组成分布式网络和实现多机通信系统的复杂应用,串口功能大大超过MCS-51/96单片机的串口,加之AVR单片机高速,中断服务时间短,故可实现高波

21、特率通讯。面向字节的高速硬件串行接口TWI、SPI。TWI与I2C接口兼容,具备ACK信号硬件发送与识别、地址识别、总线仲裁等功能,能实现主/从机的收/发全部4种组合的多机通信。SPI支持主/从机等4种组合的多机通信。AVR单片机有自动上电复位电路、独立的看门狗电路、低电压检测电路BOD,多个复位源(自动上下电复位、外部复位、看门狗复位、BOD复位),可设置的启动后延时运行程序,增强了嵌入式系统的可靠性。AVR单片机具有多种省电休眠模式,且可宽电压运行(5-2.7V),抗干扰能力强,可降低一般8位机中的软件抗干扰设计工作量和硬件的使用量。AVR单片机技术体现了单片机集多种器件(包括FLASH程

22、序存储器、看门狗、EEPROM、同/异步串行口、TWI、SPI、A/D模数转换器、定时器/计数器等)和多种功能(增强可靠性的复位系统、降低功耗抗干扰的休眠模式、品种多门类全的中断系统、具输入捕获和比较匹配输出等多样化功能的定时器/计数器、具替换功能的I/O端口)于一身,充分体现了单片机技术的从“片自为战”向“片上系统SoC”过渡的发展方向。总结,与其它8-bit MCU相比,AVR 8-bit MCU最大的特点是: 哈佛结构,具备1MIPS/MHz的高速运行处理能力; 超功能精简指令集(RISC),具有32个通用工作寄存器,克服了如8051 MCU采用单一ACC进行处理造成的瓶颈现象; 快速的

23、存取寄存器组、单周期指令系统,大大优化了目标代码的大小、执行效率,部分型号FLASH非常大,特别适用于使用高级语言进行开发; 作输出时与PIC的HI/LOW相同,可输出40mA(单一输出),作输入时可设置为三态高阻抗输入或带上拉电阻输入,具备10mA-20mA灌电流的能力; 片内集成多种频率的RC振荡器、上电自动复位、看门狗、启动延时等功能,外围电路更加简单,系统更加稳定可靠; 大部分AVR片上资源丰富:带E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等; 大部分AVR除了有ISP功能外,还有IAP功能,方便升级或销毁应用程序。

24、2.3 ATmega16单片机ATmega16是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。 ATmega16 AVR内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。2.3.1 ATmega16单片机的特点及特性1、特点16K字节的系统内可编程Flash

25、(具有同时读写的能力,即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端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡

26、,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU 和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作。2、产品特性 高性能、低功耗的8位AVR微处理器 先进的RISC 结构 131条指令 大多数指令执行时间为单个时钟周期 32个8位通用工作寄存器 全静态工作 工作于16MHz时性

27、能高达16MIPS 只需两个时钟周期的硬件乘法器 非易失性程序和数据存储器 16K 字节的系统内可编程Flash,擦写寿命:10,000次 具有独立锁定位的可选Boot代码区,通过片上Boot程序实现系统内编程,真正的时读写操作 512字节的EEPROM,擦写寿命:100,000次 1K字节的片内SRAM 可以对锁定位进行编程以实现用户程序的加密 JTAG 接口(与IEEE 1149.1标准兼容) 符合JTAG 标准的边界扫描功能 支持扩展的片内调试功能 通过JTAG 接口实现对Flash、EEPROM、熔丝位和锁定位的编程3、外设特点 两个具有独立预分频器和比较器功能的8位定时器/计数器 一

28、个具有预分频器、比较功能和捕捉功能的16位定时器/计数器 具有独立振荡器的实时计数器RTC 四通道PWM 8路10位ADC,8个单端通道,2个具有可编程增益(1x,10x,或200x)的差分通道 面向字节的两线接口 两个可编程的串行USART 可工作于主机/从机模式的SPI串行接口 具有独立片内振荡器的可编程看门狗定时器 片内模拟比较器 特殊的处理器特点 上电复位以及可编程的掉电检测 片内经过标定的RC振荡器 片内/片外中断源 6种睡眠模式:空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby模式以及扩展的Standby模式 I/O和封装 32个可编程的I/O口 40引脚PDIP封

29、装,44引脚TQFP封装,与44引脚MLF封装 工作电压: ATmega16L:2.7-5.5V ATmega16:4.5-5.5V 速度等级 0-8MHz ATmega16L 0-16MHz ATmega16 ATmega16L在1MHz,3V,25C时的功耗 正常模式:1.1mA 空闲模式:0.35mA 掉电模式:1A2.3.2 ATmega16单片机引脚配置及说明图2.1 ATmega16引脚图VCC:数字电路的电源GND:地端口A(PA7.PA0):端口A做为A/D转换器的模拟输入端。端口A为8位双向I/O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电

30、流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口A处于高阻状态。端口B(PB7.PB0):端口B为8位双向I/O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口B处于高阻状态。端口C(PC7.PC0):端口C为8位双向I/O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即

31、使系统时钟还未起振,端口C处于高阻状态。如果JTAG接口使能,即使复位出现引脚PC5(TDI)、PC3(TMS)与 PC2(TCK)的上拉电阻被激活。端口D(PD7.PD0):端口D为8位双向I/O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口D处于高阻状态。RESET:复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。门限时间见P36Table15。持续时间小于门限间的脉冲不能保证可靠复位。XTAL1:反向振荡放大器与片内时钟操作电路

32、的输入端。XTAL2:反向振荡放大器的输出端。AVCC:是端口A与A/D转换器的电源。不使用ADC时,该引脚应直接与VCC连接。使用ADC时应通过一个低通滤波器与VCC连接。AREF A/D:的模拟基准输入引脚。2.3.3 CPUATMEGA16 AVR内核的结构。CPU的主要任务是保证程序的正确执行。因此它必须能够访问存储器、执行运算、控制外设以及处理中断。为了获得最高的性能以及并行性,AVR采用了Harvard结构,具有独立的数据和程序总线。程序存储器里的指令通过一级流水线运行。CPU在执行一条指令的同时读取下一条指令(在本文称为预取)。这个概念实现了指令的单时钟周期运行。程序存储器是可以

33、在线编程的FLASH。快速访问寄存器文件包括32个8位通用工作寄存器,访问时间为一个时钟周期。从而实现了单时钟周期的ALU操作。在典型的ALU操作中,两个位于寄存器文件中的操作数同时被访问,然后执行运算,结果再被送回到寄存器文件。整个过程仅需一个时钟周期。 寄存器文件里有6个寄存器可以用作3个16位的间接寻址寄存器指针以寻址数据空间,实现高效的地址运算。其中一个指针还可以作为程序存储器查询表的地址指针。这些附加的功能寄存器即为16位的X、Y、Z寄存器。 ALU支持寄存器之间以及寄存器和常数之间的算术和逻辑运算。ALU也可以执行单寄存器操作。运算完成之后状态寄存器的内容得到更新以反映操作结果。程

34、序流程通过有/无条件的跳转指令和调用指令来控制,从而直接寻址整个地址空间。大多数指令长度为16位,亦即每个程序存储器地址都包含一条16位或32位的指令。 程序存储器空间分为两个区:引导程序区(Boot区)和应用程序区。这两个区都有专门的锁定位以实现读和读/写保护。用于写应用程序区的SPM指令必须位于引导程序区。 在中断和调用子程序时返回地址的程序计数器(PC)保存于堆栈之中。堆栈位于通用数据SRAM,因此其深度仅受限于SRAM的大小。在复位例程里用户首先要初始化堆栈指针SP。这个指针位于I/O空间,可以进行读写访问。数据SRAM可以通过5种不同的寻址模式进行访问。 AVR存储器空间为线性的平面

35、结构。 AVR有一个灵活的中断模块。控制寄存器位于I/O空间。状态寄存器里有全局中断使能位。每个中断在中断向量表里都有独立的中断向量。各个中断的优先级与其在中断向量表的位置有关,中断向量地址越低,优先级越高。 I/O存储器空间包含64个可以直接寻址的地址,作为CPU外设的控制寄存器、SPI,以及其他I/O功能。映射到数据空间即为寄存器文件之后的地址0x20-0x5F。2.3.4 存储器ATmega16的存储器。AVR结构具有两个主要的存储器空间:数据存储器空间和程序存储器空间。此外,ATmega16还有EEPROM存储器以保存数据。这三个存储器空间都为线性的平面结构。1、系统内可编程的Flas

36、h程序存储器ATmega16具有16K字节的在线编程Flash,用于存放程序指令代码。因为所有的AVR指令为16位或32位,故而Flash组织成8K16位的形式。用户程序的安全性要根据Flash程序存储器的两个区:引导(Boot)程序区和应用程序区,分开来考虑。Flash存储器至少可以擦写10,000次。ATmega16的程序计数器(PC)为13位,因此可以寻址8K字的程序存储器空间。2、SRAM数据存储器图2.2给出了ATmega16 SRAM空间的组织结构。前1120个数据存储器包括了寄存器文件、I/O存储器及内部数据SRAM。起始的96个地址为寄存器文件与64个I/O存储器,接着是102

37、4字节的内部数据SRAM。数据存储器的寻址方式分为5种:直接寻址、带偏移量的间接寻址、间接寻址、带预减量的间接寻址和带后增量的间接寻址。寄存器文件中的寄存器R26到R31为间接寻址的指针寄存器。直接寻址范围可达整个数据区。 图2.2 ATmega16 SRAM 空间的组织结构 带偏移量的间接寻址模式能够寻址到由寄存器Y和Z给定的基址附近的63个地址。在自动预减和后加的间接寻址模式中,寄存器X、Y和Z自动增加或减少。ATmega16的全部32个通用寄存器、64个I/O寄存器及1024个字节的内部数据SRAM可以通过所有上述的寻址模式进行访问。3、EEPROM数据存储器ATmega16包含512字

38、节的EEPROM 数据存储器。它是作为一个独立的数据空间而存在的,可以按字节读写。EEPROM 的寿命至少为100,000次擦除周期。EEPROM的访问由地址寄存器、数据寄存器和控制寄存器决定。2.3.5 I/O口介绍作为通用数字I/O使用时,所有AVR I/O端口都具有真正的读-修改-写功能。这意味着用SBI或CBI指令改变某些管脚的方向(或者是端口电平、禁止/使能上拉电阻)时不会无意地改变其他管脚的方向(或者是端口电平、禁止/使能上拉电阻)。输出缓冲器具有对称的驱动能力,可以输出或吸收大电流,直接驱动LED。所有的端口引脚都具有与电压无关的上拉电阻。并有保护二极管与VCC和地相连,如图2.

39、3所示。图2.3 I/O引脚等效原理图1、I/O引脚等效原理图每个端口都有三个I/O存储器地址:数据寄存器 PORTx、数据方向寄存器DDRx和端口输入引脚PINx。数据寄存器和数据方向寄存器为读/写寄存器,而端口输入引脚为只读寄存器。但是需要特别注意的是,对PINx寄存器某一位写入逻辑“1”将造成数据寄存器相应位的数据发生“0”与“1”的交替变化。当寄存器MCUCR的上拉禁止位PUD置位时所有端口引脚的上拉电阻都被禁止。2、端口配置引脚通用数字I/O的端口引脚是与第二功能复用的。使能某些引脚的第二功能不会影响其他属于同一端口的引脚用于通用数字I/O目的。每个端口引脚都具有三个寄存器位:DDx

40、n、PORTxn和PINxn,DDxn位于DDRx寄存器,PORTxn位于PORTx寄存器,PINxn位于PINx寄存器。DDxn用来选择引脚的方向。DDxn为“1”时,Pxn配置为输出,否则配置为输入。引脚配置为输入时,若PORTxn 为“1”,上拉电阻将使能。如果需要关闭这个上拉电阻,可以将PORTxn清零,或者将这个引脚配置为输出。复位时各引脚为高阻态,即使此时并没有时钟在运行。当引脚配置为输出时,若PORTxn为“1”,引脚输出高电平“1”,否则输出低电平“0”。在(高阻态)三态(DDxn, PORTxn = 0b00)输出高电平(DDxn, PORTxn = 0b11)两种状态之间进

41、行切换时,上拉电阻使能(DDxn, PORTxn = 0b01)或输出低电平(DDxn,PORTxn = 0b10)这两种模式必然会有一个发生。通常,上拉电阻使能是完全可以接受的,因为高阻环境不在意是强高电平输出还是上拉输出。如果使用情况不是这样子,可以通过置位SFIOR寄存器的PUD来禁止所有端口的上拉电阻。在上拉输入和输出低电平之间切换也有同样的问题。用户必须选择高阻态(DDxn,PORTxn = 0b00)或输出高电平(DDxn,PORTxn = 0b10)作为中间步骤。3、端口的第二功能(1)端口A的第二功能端口A作为ADC模拟输入的第二功能示于表2.1。如果端口A的部分引脚置为输出,

42、当转换时不能切换,否则会影响转换结果。表2.1端口A的第二功能端口引脚第二功能PA7ADC7 (ADC 输入通道7)PA6ADC6 (ADC 输入通道6)PA5ADC5 (ADC 输入通道5)PA4ADC4 (ADC 输入通道4)PA3ADC3 (ADC 输入通道3)PA2ADC2 (ADC 输入通道2)PA1ADC1 (ADC 输入通道1)PA0ADC0 (ADC 输入通道0)(2)端口B的第二功能引脚配置如下: SCK端口B,Bit7SCK:SPI通道的主机时钟输出,从机时钟输入端口。工作于从机模式时,不论DDB7设置如何,这个引脚都将设置为输入。工作于主机模式时,这个引脚的数据方向由DD

43、B7控制。设置为输入后,上拉电阻由PORTB7控制。 MISO端口B,Bit6MISO:SPI通道的主机数据输入,从机数据输出端口。工作于主机模式时,不论DDB6设置如何,这个引脚都将设置为输入。工作于从机模式时,这个引脚的数据方向由DDB6控制。设置为输入后,上拉电阻由PORTB6控制。表2.2 端口B的第二功能端口引脚第二功能PB7SCK (SPI 总线的串行时钟)PB6MISO (SPI 总线的主机输入/从机输出信号)PB5MOSI (SPI 总线的主机输出/从机输入信号)PB4SS (SPI 从机选择引脚)PB3AIN1 (模拟比较负输入)OC0 (T/C0输出比较匹配输出)PB2AI

44、N0 ( 模拟比较正输入)INT2 (外部中断2输入)PB1T1 (T/C1 外部计数器输入)PB0T0 (T/C0 外部计数器输入)XCK(USART 外部时钟输入/输出) MOSI端口B,Bit5MOSI:SPI通道的主机数据输出,从机数据输入端口。工作于从机模式时,不论DDB5设置如何,这个引脚都将设置为输入。当工作于主机模式时,这个引脚的数据方向由DDB5控制。设置为输入后,上拉电阻由PORTB5控制。 SS端口B,Bit4SS:从机选择输入。工作于从机模式时,不论DDB4设置如何,这个引脚都将设置为输入。当此引脚为低时SPI 被激活。工作于主机模式时,这个引脚的数据方向由DDB4控制

45、。设置为输入后,上拉电阻由PORTB4控制。 AIN1/OC0端口B,Bit3AIN1,模拟比较负输入。配置该引脚为输入时,切断内部上拉电阻,防止数字端口功能与模拟比较器功能相冲突。OC0,输出比较匹配输出:PB3引脚可作为T/C0比较匹配的外部输出。实现该功能时,PB3引脚必须配置为输出(设DDB3为1)。在PWM模式的定时功能中,OC0引脚作为输出。 AIN0/INT2端口B,Bit2AIN0,模拟比较正输入。配置该引脚为输入时,切断内部上拉电阻,防止数字端口功能与模拟比较器功能相冲突。INT2,外部中断源2:PB2引脚作为MCU的外部中断源。 T1端口B,Bit1T1,T/C1计数器源。

46、 T0/XCK端口B,Bit0T0,T/C0计数器源。XCK,USART外部时钟。数据方向寄存器(DDB0)控制时钟为输出(DDB0置位)还是输入(DDB0 清零)。只有当USART工作在同步模式时,XCK引脚激活。(3)端口C的第二功能端口C的第二功能如表2.3。若JTAG接口使能,即使出现复位,引脚PC5(TDI)、PC3(TMS)与PC2(TCK)的上拉电阻将被激活。表2.3 端口C的第二功能端口引脚第二功能PC7TOSC2 ( 定时振荡器引脚2)PC6TOSC1 ( 定时振荡器引脚1)PC5TDI (JTAG 测试数据输入)PC4TDO (JTAG 测试数据输出)PC3TMS (JTAG 测试模式选择)PC2TCK (JTAG 测试时钟)PC1SDA ( 两线串行总线数据输入/ 输出线)PC0SCL ( 两线串行总线时钟线)第二功能配置如下: TOSC2端口C,Bit7TOSC2,定时振荡器引脚2:当寄存器ASSR 的AS2 位置1,使能T/C2的异步时钟,引脚PC7 与端口断开,成为振荡器放大器的反向输出。在这种模式下,晶体振荡器与该引脚相联,该引脚不能作为I/O 引脚。 TOSC1端口C,Bit6TOSC1,定时振荡器引脚1:当寄存器ASSR

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号