版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022/12/9机电系统控制电路设计12AVR单片机原理与应用2.1单片机电路开发过程2.2AVR单片机概述2.3Atmega128硬件体系结构2.4基于Atmega128的电路系统设计2022/12/8机电系统控制电路设计12AVR单片机原理2022/12/9机电系统控制电路设计22.1单片机电路开发过程明确系统设计硬件电路编写程序调试和仿真下载程序软硬件联调功能优化程序优化2022/12/8机电系统控制电路设计22.1单片机电路开发2022/12/9机电系统控制电路设计3明确系统系统要求:利用AVR单片机来控制一个红色LED和绿色LED。电路加电后,两个LED均点亮,1s后熄灭,然后点亮绿色的LED,1s以后,绿色的LED熄灭,然后红色的LED点亮1s。最后红色的LED和绿色的LED以1Hz左右的频率闪烁。需要考虑的元器件:AVR单片机一片、DC/DC转换模块、发光二极管若干、电容若干、电阻若干、晶振一个、按钮一个等。2.1单片机电路开发过程2022/12/8机电系统控制电路设计3明确系统系统要求:利2022/12/9机电系统控制电路设计4设计硬件电路2.1单片机电路开发过程2022/12/8机电系统控制电路设计4设计硬件电路2.1单2022/12/9机电系统控制电路设计5编写程序2.1单片机电路开发过程2022/12/8机电系统控制电路设计5编写程序2.1单片机2022/12/9机电系统控制电路设计6调试和仿真编译项目2.1单片机电路开发过程2022/12/8机电系统控制电路设计6调试和仿真编译项目22022/12/9机电系统控制电路设计7程序下载下载程序2.1单片机电路开发过程返回2022/12/8机电系统控制电路设计7程序下载下载程序2.2022/12/9机电系统控制电路设计82.2AVR单片机概述ATMEL公司是世界上高级半导体产品设计、制造和行销的领先者,产品包括了微处理器、可编程逻辑器件、非易失性存储器、安全芯片、混合信号及RF射频集成电路。1997年,由ATMEL公司挪威设计中心的A先生与V先生利用ATMEL公司的Flash新技术,共同研发出RISC精简指令集的高速8位单片机,简称AVR。相对于出现较早也较为成熟的51系列单片机,AVR系列单片机片内资源更为丰富,接口也更为强大,同时由于其价格低等优势,在很多场合可以替代51系列单片机。2022/12/8机电系统控制电路设计82.2AVR单片机概2022/12/9机电系统控制电路设计92.2AVR单片机概述AVR单片机特点---速度快AVR微处理器
以更快的速度运行程序-MIPS/MHzAVRRISC–速度优先5个并行数据总线32个累加器单时钟周期8,16,24,32和64-bit算术操作增强的RISC指令集线性地址映射为速度而设计2时钟周期的硬件乘法器嵌入式高速存储器MIPS即MillionInstructionPerSecond的简写--计算机每秒种执行的百万指令数。是衡量计算机速度的指标。2022/12/8机电系统控制电路设计92.2AVR单片机概2022/12/9机电系统控制电路设计102.2AVR单片机概述AVR单片机特点---片上资源丰富AVR微处理器
减小PCB尺寸AVR–ALLINSIDE高集成度 Flash程序存储器
EEPROM数据存储器 CPU
外部存储器接口 PWM SRAM数据存储器 TWI 8-bit定时器
硬件乘法器 SPI 16-bit定时器
中断处理 U(S)ART 实时时钟
上电复位 10-bitADC 输入捕捉
看门狗定时器 掉电检测 输出比较
片内振荡器 模拟比较器 上拉电阻2022/12/8机电系统控制电路设计102.2AVR单片机2022/12/9机电系统控制电路设计112.2AVR单片机概述AVR单片机特点---代码更少AVR微处理器
减小你的程序代码AVRRISC–为最小代码而设计5个并行数据总线32个累加器4个数据/堆栈指针8,16,24,32和64-bit算术操作增强的RISC指令集线性地址影射适应ANSIC和汇编相比付出代价极小指令集由编译专家建构和调整2022/12/8机电系统控制电路设计112.2AVR单片机2022/12/9机电系统控制电路设计12传统的折衷方式适合于
ANSIC速度传统CISC传统RISC代码效率速度2.2AVR单片机概述AVR单片机特点---代码更少2022/12/8机电系统控制电路设计12传统的折衷方式适合2022/12/9机电系统控制电路设计13AVR微处理器
降低系统功耗每一个电子都被考虑在内:单时钟周期执行5个并行数据总线6种MCU睡眠模式最小幅度振荡器0泄漏输入1.8–6.0V工作电压2.2AVR单片机概述AVR单片机特点---功耗更低2022/12/8机电系统控制电路设计13AVR微处理器22022/12/9机电系统控制电路设计142.2AVR单片机概述AVR单片机特点---可选择型号种类多MEGAAVR ATmegaxxx (16KB-128KB)针对需要大程序容量的复杂应用ClassicAVR AT90Sxxxx (1KB-8KB)针对需要大吞吐量,低功耗和中等程序容量的应用TinyAVR ATtinyxx (1KB-2KB)针对需要低价格的低端8位MCU市场2022/12/8机电系统控制电路设计142.2AVR单片机2022/12/9机电系统控制电路设计152.2AVR单片机概述AVR单片机特点---可选择型号种类多存储器大小性能(1KB-2KB)(1KB-8KB)(16KB-128KB)完全兼容2022/12/8机电系统控制电路设计152.2AVR单片机2022/12/9机电系统控制电路设计16
低功耗mega8新产品已淘汰主流产品未来产品90S231390S2323/43tiny2890S8535mega161tiny1590S4433mega128mega890S8515tiny26mega32mega8515mega8535tiny13mega169mega162mega64
tiny2313mega256mega1690S1200tiny11/12mega329CANAVRmega1032.2AVR单片机概述AVR单片机产品更新换代2022/12/8机电系统控制电路设计16低功耗mega82022/12/9机电系统控制电路设计17AVR的中低档Tiny与AT90S系列产品2.2AVR单片机概述2022/12/8机电系统控制电路设计17AVR的中低档Ti2022/12/9机电系统控制电路设计18AVR的中高档Mega系列产品2.2AVR单片机概述2022/12/8机电系统控制电路设计18AVR的中高档Me2022/12/9机电系统控制电路设计19ATtiny10/11/12特点2.2AVR单片机概述2022/12/8机电系统控制电路设计19ATtiny10/2022/12/9机电系统控制电路设计20ATtiny10/11/12特点2.2AVR单片机概述2022/12/8机电系统控制电路设计20ATtiny10/2022/12/9机电系统控制电路设计21ATtiny10/11/12特点2.2AVR单片机概述2022/12/8机电系统控制电路设计21ATtiny10/2022/12/9机电系统控制电路设计22ATtiny10/11/12特点2.2AVR单片机概述2022/12/8机电系统控制电路设计22ATtiny10/2022/12/9机电系统控制电路设计23AT90S1200单片机特点2.2AVR单片机概述2022/12/8机电系统控制电路设计23AT90S12002022/12/9机电系统控制电路设计24AT90S1200单片机特点2.2AVR单片机概述2022/12/8机电系统控制电路设计24AT90S12002022/12/9机电系统控制电路设计25AT90S8515单片机特点2022/12/8机电系统控制电路设计25AT90S85152022/12/9机电系统控制电路设计26AT90S8515单片机特点2.2AVR单片机概述2022/12/8机电系统控制电路设计26AT90S85152022/12/9机电系统控制电路设计27AT90S8515单片机特点2.2AVR单片机概述2022/12/8机电系统控制电路设计27AT90S85152022/12/9机电系统控制电路设计28ATmega8单片机特点2.2AVR单片机概述2022/12/8机电系统控制电路设计28ATmega8单片2022/12/9机电系统控制电路设计292.2AVR单片机概述ATmega8单片机特点2022/12/8机电系统控制电路设计292.2AVR单片机2022/12/9机电系统控制电路设计302.2AVR单片机概述ATmega8单片机特点2022/12/8机电系统控制电路设计302.2AVR单片机2022/12/9机电系统控制电路设计31引脚配置2.2AVR单片机概述ATmega8单片机特点返回2022/12/8机电系统控制电路设计31引脚配置2.2AV2022/12/9机电系统控制电路设计322.3Atmega128硬件体系结构Atmega128芯片特性Atmega128引脚配置及说明Atmega128的存储器组织Atmega128的重要寄存器介绍Atmega128基本配置电路2022/12/8机电系统控制电路设计322.3Atmeg2022/12/9机电系统控制电路设计33Atmega128的I/O端口2.3Atmega128硬件体系结构Atmega128的中断处理Atmega128的定时/计数器Atmega128的USARTAtmega128的TWI(I2C)2022/12/8机电系统控制电路设计33Atmega1282022/12/9机电系统控制电路设计342.3Atmega128硬件体系结构Atmega128芯片特性高性能、低功耗的AVR8位微处理器先进的RISC结构–133条指令–大多数可以在一个时钟周期内完成–32x8通用工作寄存器+外设控制寄存器–全静态工作–工作于16MHz时性能高达16MIPS–只需两个时钟周期的硬件乘法器2022/12/8机电系统控制电路设计342.3Atmeg2022/12/9机电系统控制电路设计352.3Atmega128硬件体系结构Atmega128芯片特性非易失性的程序和数据存储器–128K字节的系统内可编程Flash
寿命:10,000次写/擦除周期–4K字节的EEPROM
寿命:100,000次写/擦除周期–4K字节的内部SRAM–多达64K字节的优化的外部存储器空间–可以对锁定位进行编程以实现软件加密–可以通过SPI实现系统内编程2022/12/8机电系统控制电路设计352.3Atmeg2022/12/9机电系统控制电路设计362.3Atmega128硬件体系结构Atmega128芯片特性JTAG接口(与IEEE1149.1标准兼容)–遵循JTAG标准的边界扫描功能–支持扩展的片内调试–通过JTAG接口实现对Flash,EEPROM,熔丝位和锁定位的编程2022/12/8机电系统控制电路设计362.3Atmeg2022/12/9机电系统控制电路设计372.3Atmega128硬件体系结构Atmega128芯片特性外设特点–两个具有独立的预分频器和比较器功能的8位定时器/计数器–两个具有预分频器、比较功能和捕捉功能的16位定时器/计数器–具有独立预分频器的实时时钟计数器–两路8位PWM–输出比较调制器–6路分辨率可编程(2到16位)的PWM2022/12/8机电系统控制电路设计372.3Atmeg2022/12/9机电系统控制电路设计382.3Atmega128硬件体系结构Atmega128芯片特性外设特点–8路10位ADC8个单端通道,7个差分通道,2个具有可编程增益(1x,10x,或200x)的差分通道–面向字节的两线接口–两个可编程的串行USART–可工作于主机/从机模式的SPI串行接口–具有独立片内振荡器的可编程看门狗定时器–片内模拟比较器2022/12/8机电系统控制电路设计382.3Atmeg2022/12/9机电系统控制电路设计392.3Atmega128硬件体系结构Atmega128芯片特性特殊的处理器特点–上电复位以及可编程的掉电检测–片内经过标定的RC振荡器–片内/片外中断源–6种睡眠模式:空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby2022/12/8机电系统控制电路设计392.3Atmeg2022/12/9机电系统控制电路设计402.3Atmega128硬件体系结构Atmega128芯片特性模式以及扩展的Standby模式–可以通过软件进行选择的时钟频率–通过熔丝位可以选择ATmega103兼容模式–全局上拉禁止功能
I/O和封装–53个可编程I/O口线–64引脚TQFP与64引脚MLF封装2022/12/8机电系统控制电路设计402.3Atmeg2022/12/9机电系统控制电路设计412.3Atmega128硬件体系结构Atmega128芯片特性工作电压–2.7-5.5VATmega128L–4.5-5.5VATmega128速度等级–0-8MHzATmega128L–0-16MHzATmega1282022/12/8机电系统控制电路设计412.3Atmeg2022/12/9机电系统控制电路设计422.3Atmega128硬件体系结构Atmega128芯片特性返回2022/12/8机电系统控制电路设计422.3Atmeg2022/12/9机电系统控制电路设计43Atmega128引脚配置及说明2022/12/8机电系统控制电路设计43Atmega1282022/12/9机电系统控制电路设计442.3Atmega128硬件体系结构Atmega128引脚配置及说明VCC――数字电路的电源。GND――地。端口A(PA7..PA0)――端口A为8位双向I/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口A为三态。端口B(PB7..PB0)――端口B为8位双向I/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口B为三态。2022/12/8机电系统控制电路设计442.3Atmeg2022/12/9机电系统控制电路设计452.3Atmega128硬件体系结构Atmega128引脚配置及说明端口C(PC7..PC0)――端口C为8位双向I/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口C为三态。端口D(PD7..PD0)――端口D为8位双向I/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口D为三态。2022/12/8机电系统控制电路设计452.3Atmeg2022/12/9机电系统控制电路设计462.3Atmega128硬件体系结构Atmega128引脚配置及说明端口F(PF7..PF0)――端口F为ADC的模拟输入引脚。如果不作为ADC的模拟输入,端口F可以作为8位双向I/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口F为三态。如果使能了JTAG接口,则复位发生时引脚PF7(TDI)、PF5(TMS)和PF4(TCK)的上拉电阻使能。端口F也可以作为JTAG接口。端口G(PG4..PG0)――端口G为5位双向I/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。复位发生时端口G为三态。2022/12/8机电系统控制电路设计462.3Atmeg2022/12/9机电系统控制电路设计472.3Atmega128硬件体系结构Atmega128引脚配置及说明RESET――复位输入引脚。超过最小门限时间的低电平将引起系统复位。低于门限时间的脉冲不能保证可靠复位。XTAL1――反向振荡器放大器及片内时钟操作电路的输入。XTAL2――反向振荡器放大器的输出。AVCC――AVCC为端口F以及ADC转换器的电源,需要与VCC相连接,即使没有使用ADC也应该如此。使用ADC时应该通过一个低通滤波器与VCC连接。AREF――AREF为ADC的模拟基准输入引脚。PEN――PEN是SPI串行下载的使能引脚。在上电复位时保持PEN为低电平将使器件进入SPI串行下载模式。在正常工作过程中PEN引脚没有其他功能。返回2022/12/8机电系统控制电路设计472.3Atmeg2022/12/9机电系统控制电路设计482.3Atmega128硬件体系结构Atmega128基本配置电路Atmega128单片机复位电路时钟电路下载电路电源2022/12/8机电系统控制电路设计482.3Atmeg2022/12/9机电系统控制电路设计49Atmega128基本配置电路电源模块
任何电路控制系统,首要解决的问题是电源问题。对于单片机控制系统而言,电源系统的稳定性决定着控制系统的稳定性,也是系统能否可靠工作的前提条件。如何设计一个单片机控制系统的电源?这是我们设计过程中首要解决的问题。2022/12/8机电系统控制电路设计49Atmega1282022/12/9机电系统控制电路设计50Atmega128基本配置电路复位电路复位电路可以由简单的RC电路构成,但在对稳定性有较高要求的应用场合,一般要采用专用的复位芯片(如MAX809/810等)。这里给出常见的RC复位电路,可以满足一般应用的需要。
系统上电复位:在系统上电时,通过电阻R1向电容C1充电,当C1两端的电压未达到高电平的门限电压时,Reset端输出为低电平,系统处于复位状态;当C1两端的电压达到高电平的门限电压时,Reset端输出为高电平,系统进入正常工作状态。
手动复位:当按下复位按钮S1时,C1两端的电荷被放掉,Reset端输出为低电平,系统进入复位状态,再重复以上的充电过程,系统进入正常工作状态。2022/12/8机电系统控制电路设计50Atmega1282022/12/9机电系统控制电路设计51Atmega128基本配置电路复位电路MAX809是一种单一功能的微处理器复位芯片,用于监控微控制器和其他逻辑系统的电源电压。它可以在上电、掉电和节电情况下向微控制器提供复位信号。当电源电压低于预设的门槛电压时,器件会发出复位信号,直到在一段时间内电源电压又恢复到高于门槛电压为止。从图中可以看出,MAX809是低电平有效的复位器件,而同类的MAX810是高电平有效的复位输出。MAX809复位电路2022/12/8机电系统控制电路设计51Atmega1282022/12/9机电系统控制电路设计52Atmega128基本配置电路上电复位:当电源电压低于上电复位门限(VPOT)时,MCU复位。外部复位:当引脚RESET上的低电平持续时间大于最小脉冲宽度时MCU复位。看门狗复位:当看门狗使能并且看门狗定时器超时时复位发生。掉电检测复位:当掉电检测复位功能使能,且电源电压低于掉电检测复位门限(VBOT)时MCU即复位。JTAGAVR复位:当复位寄存器为1时MCU即复位。ATmega128有5个复位源:2022/12/8机电系统控制电路设计52Atmega1282022/12/9机电系统控制电路设计53Atmega128基本配置电路ATmega128复位逻辑2022/12/8机电系统控制电路设计53Atmega1282022/12/9机电系统控制电路设计54Atmega128基本配置电路ATmega128复位特性2022/12/8机电系统控制电路设计54Atmega1282022/12/9机电系统控制电路设计55Atmega128基本配置电路上电复位时序MCU启动过程,RESET连接到VCC2022/12/8机电系统控制电路设计55Atmega1282022/12/9机电系统控制电路设计56Atmega128基本配置电路上电复位时序MCU启动过程,RESET由外电路控制2022/12/8机电系统控制电路设计56Atmega1282022/12/9机电系统控制电路设计57Atmega128基本配置电路外部复位时序工作过程中发生外部复位2022/12/8机电系统控制电路设计57Atmega1282022/12/9机电系统控制电路设计58看门狗定时器溢出时将产生持续时间为1个CK周期的复位脉冲。在脉冲的下降沿,延时定时器开始对tTOUT
记数。Atmega128基本配置电路看门狗复位时序2022/12/8机电系统控制电路设计58看2022/12/9机电系统控制电路设计59Atmega128基本配置电路看门狗定时器
看门狗定时器的设定可以调解看门狗复位的时间间隔。看门狗定时器由独立的1Mhz片内振荡器驱动。不同供电电压,振荡器频率不同。通过设置看门狗定时器的预分频器可以调节看门狗复位的时间间隔。看门狗复位指令WDR用来复位看门狗定时器。此外,禁止看门狗定时器或发生复位时定时器也被复位。复位时间有8个选项。如果没有及时复位定时器,一旦时间超过复位周期,ATmega128就复位,并执行复位向量指向的程序。2022/12/8机电系统控制电路设计59Atmega1282022/12/9机电系统控制电路设计60看门狗定时器预分频器选项Atmega128基本配置电路看门狗定时器2022/12/8机电系统控制电路设计60看门狗定时器预分频2022/12/9机电系统控制电路设计61Atmega128基本配置电路看门狗定时器
要实现看门狗定时器的功能,必须了解看门狗定时器控制寄存器-WDTCR。Bits7..5–Res:保留保留位,读操作返回值为零。2022/12/8机电系统控制电路设计61Atmega1282022/12/9机电系统控制电路设计62Atmega128基本配置电路看门狗定时器Bit4–WDCE:看门狗修改使能清零WDE时必须先置位WDCE,否则不能禁止看门狗。一旦置位,硬件将在紧接的4个时钟周期之后将其清零。
要实现看门狗定时器的功能,必须了解看门狗定时器控制寄存器-WDTCR。2022/12/8机电系统控制电路设计62Atmega1282022/12/9机电系统控制电路设计63Atmega128基本配置电路看门狗定时器Bit3–WDE:看门狗使能WDE为"1"时,看门狗使能,否则看门狗将被禁止。只有在WDCE为"1"时WDE才能清零。以下为关闭看门狗的步骤:1.在同一个指令内对WDCE和WDE写"1",即使WDE已经为"1"。2.在紧接的4个时钟周期之内对WDE写"0"。2022/12/8机电系统控制电路设计63Atmega1282022/12/9机电系统控制电路设计64Atmega128基本配置电路看门狗定时器Bits2..0–WDP2,WDP1,WDP0:看门狗定时器预分频器2,1,和02022/12/8机电系统控制电路设计64Atmega1282022/12/9机电系统控制电路设计65Atmega128基本配置电路软件设置看门狗定时器2022/12/8机电系统控制电路设计65Atmega1282022/12/9机电系统控制电路设计66Atmega128基本配置电路时钟电路所谓时钟,实际上就是以一个特定频率连续不断出现的方波。单片机在每一个方波的上升沿执行指令。一条指令如果能在一个时钟周期(即方波的一个周期)内执行完,成为“单周期指令”,否则称为“多周期指令”。2022/12/8机电系统控制电路设计66Atmega1282022/12/9机电系统控制电路设计67Atmega128基本配置电路时钟电路
应当注意的是,这里所说的“一个指令”,指的是一条汇编语句,而不是C语句。一条C语句可能会被编译成若干条汇编语句,而不同的C编译器编译的结果可能是不同的,即便是同一个C编译器,在不同条件下对同一条C语句进行编译的结果也可能是不同的。这就意味着,无法预知一条C语句将占用多少个时钟周期(即运行多长时间)。这就是用C语言对单片机进行编程的缺点,在某些对时序要求极高的情况下,人们通常采用汇编语言或者将C语言与汇编语言混合使用。但对于初学者而言,用C语言对单片机进行编程简单易学,且足以满足大部分的需要。2022/12/8机电系统控制电路设计67Atmega1282022/12/9机电系统控制电路设计68Atmega128基本配置电路时钟电路2022/12/8机电系统控制电路设计68Atmega1282022/12/9机电系统控制电路设计69Atmega128基本配置电路时钟电路2022/12/8机电系统控制电路设计69Atmega1282022/12/9机电系统控制电路设计70Atmega128基本配置电路时钟电路程序内部显示时钟软件设置时钟频率2022/12/8机电系统控制电路设计70Atmega1282022/12/9机电系统控制电路设计71芯片有如下几种通过熔丝位选择的时钟源Atmega128基本配置电路时钟电路2022/12/8机电系统控制电路设计71芯片有如下几种通过2022/12/9机电系统控制电路设计72Atmega128基本配置电路时钟电路AVR系列单片机在仿真调试之前,首先必须对AVR的熔丝位和锁定位进行配置。如果配置不当,则可能造成单片机不能正常工作,严重时可能导致单片机死锁。因此,对单片机熔丝位和锁定位的正确配置显得尤为重要。
熔丝位是对单片机具体功能和工作模式的限定,其正确配置与否直接影响到单片机能否正常工作;锁定位是对单片机的程序和数据进行加密,以防止单片机中的程序和数据被读出或写入。在进行配置时,一般先配置熔丝位,再配置锁定位。2022/12/8机电系统控制电路设计72Atmega1282022/12/9机电系统控制电路设计73ATmega128的熔丝位共有3个字节:熔丝位扩展字节、熔丝位高字节和熔丝位低字节。Atmega128基本配置电路时钟电路软件设置熔丝位2022/12/8机电系统控制电路设计73A2022/12/9机电系统控制电路设计74Atmega128基本配置电路下载电路当RESET位低电平时,可以通过串行SPI总线对Flash及EEPROM进行编程。串行接口包括SCK、MOSI(输入)及MISO(输出)。RESET为低之后,应在执行编程/擦除操作之前执行编程允许指令。不是所有的器件都使用SPI引脚专用于内部SPI接口。注意,在串行载入的说明中,MOSI与MISO分别描述连续数据的输入与输出。在ATmega128中,这些引脚映射为PDI与PDO。SPI串行编程及JTAG编程2022/12/8机电系统控制电路设计74Atmega1282022/12/9机电系统控制电路设计75Atmega128基本配置电路下载电路Atmega128SPI串行编程引脚映射尽管SPI编程接口重用SPII/O模块,但其中有一点不同:MOSI/MISO引脚映射到SPII/O模块的PB2与PB3在编程接口并不使用。而PE0与PE1用来传递数据.2022/12/8机电系统控制电路设计75Atmega1282022/12/9机电系统控制电路设计76Atmega128基本配置电路下载电路通过JTAG接口进行编程需要控制4个JTAG专用引脚:TCK、TMS、TDI及TDO。reset及时钟引脚不用控制。JTAG(JointTestActionGroup;联合测试行动小组)是一种国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如MCU、DSP、FPGA器件等。JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程现再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。2022/12/8机电系统控制电路设计76Atmega1282022/12/9机电系统控制电路设计77Atmega128基本配置电路下载电路返回2022/12/8机电系统控制电路设计77Atmega1282022/12/9机电系统控制电路设计782.3Atmega128硬件体系结构Atmega128的CPU内核结构2022/12/8机电系统控制电路设计782.3Atmeg2022/12/9机电系统控制电路设计79CPU的主要任务是保证程序的正确执行。因此它必须能够访问存储器,执行运算,控制外设以及处理中断。为了得到最大程度的性能以及并行性,AVR采用了Harvard结构,具有独立的数据和程序总线。程序存储器的指令通过一级流水线运行。CPU在执行一条指令的同时读取下一条指令(在本文称为预取)。这个概念实现了指令的单时钟周期运行。程序存储器为可以在线编程的FLASH。快速访问寄存器文件包括32个8位通用工作寄存器,而且都可以在一个时钟周期内访问。从而实现单时钟周期的ALU操作。在典型的ALU操作过程中,两个位于寄存器文件中的操作数同时被访问,然后执行相应的运算,结果再被送回寄存器文件。整个过程仅需要一个时钟周期。Atmega128的CPU内核结构2022/12/8机电系统控制电路设计79CPU的主要任务2022/12/9机电系统控制电路设计802.3Atmega128硬件体系结构Atmega128的存储器组织Flash程序存储器SRAM数据存储器
EEPROM数据存储器2022/12/8机电系统控制电路设计802.3Atmeg2022/12/9机电系统控制电路设计81Flash程序存储器Atmega128的存储器组织ATmega128具有128K字节的在线编程Flash。因为所有的AVR指令为16位或32位,故尔FLASH组织成64Kx16的形式。考虑到软件安全性,Flash程序存储器分为两个区:引导程序区和应用程序区。Flash存储器至少可以擦写10,000次。ATmega128的程序计数器PC为16位,因此可以寻址64K的程序存储器。
可利用SPI或JTAG接口实现对Flash的串行下载。2022/12/8机电系统控制电路设计81Flash程序存储2022/12/9机电系统控制电路设计82Flash程序存储器Atmega128的存储器组织
一般而言,C程序中的变量可以选择存放在SRAM或者EEPROM中,而常量可以选择放在SRAM或者Flash中。标准C的变量类型一般都适用于单片机的C语言,如char、float、double、unsignedint等。CodeVisionAVRC编译器中的数据类型如下表所示。2022/12/8机电系统控制电路设计82Flash程序存储2022/12/9机电系统控制电路设计83
AVR单片机中的Flash本来是用作程序存储空间的,但可以利用其存储容量大的特点,在剩余足够空间的前提下,将一些在使用中没有必要改变的数值或者字符串等存放在Flash中。当然,也可以将其存放在SRAM中,但Flash比SRAM的空间大好几倍;此外这些数值或字符串在使用过程中没有必要改动,存放在Flash中会比存放在SRAM更合适。CodeVisionAVRC编译器对于用户没有指定只能保存在Flash中的字符串,在启动时将字符串从程序存储区复制到数据存储区。Char*ptr_to_sram=”thisisplacedinSRAM”;上面例子中没有指定字符串只存储于Flash,因此启动时会将该字符串复制到数据存储空间。Charflash*ptr_to_flash=”thisisplacedinFlash”;在上例中,用户使用了flash关键字,因此字符串只存储于Flash空间。Flash程序存储器Atmega128的存储器组织2022/12/8机电系统控制电路设计83AVR单片2022/12/9机电系统控制电路设计84Flash程序存储器Atmega128的存储器组织2022/12/8机电系统控制电路设计84Flash程序存储2022/12/9机电系统控制电路设计85Atmega128的存储器组织SRAM数据存储器
ATmega128支持两种不同的SRAM配置普通模式兼容模式2022/12/8机电系统控制电路设计85Atmega1282022/12/9机电系统控制电路设计86EEPROM数据存储器Atmega128的存储器组织ATmega128包含4K字节的EEPROM。它是作为一个独立的数据空间而存在的,可以按字节读写。EEPROM的寿命至少为100,000次(擦除)。EEPROM的访问由地址寄存器,数据寄存器和控制寄存器决定。EEPROM的访问寄存器位于I/O空间。当执行EEPROM读操作时,CPU会停止工作4个周期,然后再执行后续指令;当执行EEPROM写操作时,CPU会停止工作2个周期,然后再执行后续指令。2022/12/8机电系统控制电路设计86EEPROM数据存2022/12/9机电系统控制电路设计87
CodeVisionAVRC编译器中,可以用eeprom关键字将全局变量分配至EEPROM中,如:
eeprominta;也可以在定义时对变量初始化,如:eeprominta=1;CodeVisionAVRC编译器中还可以将数组、字符串、结构体分配至EEPROM中,如:eepromchara[4]={0,1,2,3};//数组Chareeprom*ptr_to_eeprom=”thisisplacedinEEPROM”;//字符串Eepromstructa{charb;intc;chare[15];}f;在CodeVisionAVRC编译器中可以直接访问EEPROM中的全局变量,与访问SRAM中的数据方式相同。EEPROM数据存储器Atmega128的存储器组织2022/12/8机电系统控制电路设计87CodeV2022/12/9机电系统控制电路设计88EEPROM数据存储器Atmega128的存储器组织2022/12/8机电系统控制电路设计88EEPROM数据存EEPROM地址寄存器-EEARH和EEARL机电系统控制电路设计89EEPROM数据存储器Bits15..12–Res:保留保留位,读操作返回值为零。在写数据时要写入0以保证与未来产品的兼容。Bits11..0–EEAR11..0:EEPROM地址EEARH和EEARL指定了4K字节的EEPROM空间。EEPROM的地址是线性的,从0到4096。EEAR的初始值没有定义。在访问EEPROM之前必须为其赋予正确的数据。EEPROM地址寄存器-EEARH和EEARL机电系统控制2022/12/9机电系统控制电路设计90EEPROM数据存储器EEPROM数据寄存器-EEDRBits7..0–EEDR7.0:EEPROM数据对于EEPROM写操作,EEDR是需要写到EEAR单元的数据;对于EEPROM读操作,EEDR是从地址EEAR读取的数据。2022/12/8机电系统控制电路设计90EEPROM数据存2022/12/9机电系统控制电路设计91EEPROM数据存储器EEPROM控制寄存器-EECRBits7..4–Res:保留保留位,读操作返回值为零。Bit3–EERIE:EEPROM就绪中断使能若SREG的I为"1",则置位EERIE使能EEPROM就绪中断。清零EERIE则禁止此中断。当EEWE清零时EEPROM就绪中断即可发生。Bit2–EEMWE:EEPROM主机写使能EEMWE决定设置EEWE为"1"是否可以启动EEPROM写操作。当EEMWE为"1"时,在4个时钟周期内置位EEWE将把数据写入EEPROM的指定地址;若EEMWE为"0",则EEWE不起作用。EEMWE置位后4个周期,硬件对其清零。2022/12/8机电系统控制电路设计91EEPROM数据存2022/12/9机电系统控制电路设计92EEPROM数据存储器EEPROM控制寄存器-EECRBit1–EEWE:EEPROM写使能当EEPROM数据和地址设置好之后,需置位EEWE以便将数据写入EEPROM。此时EEMWE必须置位,否则EEPROM写操作将不会发生。Bit0–EERE:EEPROM读使能当EEPROM地址设置好之后,需置位EERE以便将数据读入EEAR。EEPROM数据的读取只需要一条指令,且无需等待。读取EEPROM时CPU要停止4个时钟周期。用户在读取EEPROM时应该检测EEWE。如果一个写操作正在进行,就无法读取EEPROM,也无法改变寄存器EEAR。2022/12/8机电系统控制电路设计92EEPROM数据存2022/12/9机电系统控制电路设计93voidEEPROMwrite(intlocation,unsignedchardatabyte){ unsignedcharsavedSREG; EEAR=location;//setaddress EEDR=databyte;//setdata savedSREG=SREG;//keepsettingsoitcanberestored CLI(); //disableinterrupts EECR|=BIT(EEMWE); //set"writeenable"bit EECR|=BIT(EEWE);//set"write"bit SREG=savedSREG;//restoreSREG EEAR=0;}EEPROM数据存储器向EEPROM中写数据程序2022/12/8机电系统控制电路设计93voidEEPR2022/12/9机电系统控制电路设计94unsignedcharEEPROMread(intlocation){ EEAR=location;//setaddress EECR|=BIT(EERE);//set"readenable"bit EEAR=0; return(EEDR);}EEPROM数据存储器从EEPROM中读数据程序2022/12/8机电系统控制电路设计94unsigned2022/12/9机电系统控制电路设计95EEPROM数据存储器返回2022/12/8机电系统控制电路设计95EEPROM数据存2022/12/9机电系统控制电路设计962.3Atmega128硬件体系结构Atmega128的重要寄存器介绍MCU控制寄存器-MCUCRBit7–SRE:外部SRAM/XMEM使能SRE为"1"时外部存储器接口使能。引脚AD7:0,A15:8,ALE,WR和RD工作于第二功能,且自动按照要求配置端口方向寄存器。SRE清零将使外部SRAM无效,相关端口可以当作普通I/O口使用。Bit6–SRW10:等待状态选择位对于ATmega103兼容模式,SRW10写"1“将使能等待状态,在读/写过程中插入一个时钟周期。2022/12/8机电系统控制电路设计962.3Atmeg2022/12/9机电系统控制电路设计972.3Atmega128硬件体系结构Atmega128的重要寄存器介绍MCU控制寄存器-MCUCRBit5–SE:睡眠使能为了使MCU在执行SLEEP指令后进入睡眠模式,SE必须置位。为了确保进入睡眠模式是程序员的有意行为,建议仅在SLEEP指令的前一条指令置位SE。一旦唤醒立即清除SE。Bits4..2–SM2..0:睡眠模式选择位2022/12/8机电系统控制电路设计972.3Atmeg2022/12/9机电系统控制电路设计982.3Atmega128硬件体系结构Atmega128的重要寄存器介绍MCU控制寄存器-MCUCR睡眠模式选择2022/12/8机电系统控制电路设计982.3Atmeg2022/12/9机电系统控制电路设计99MCU控制寄存器包含了电源管理的控制位。睡眠模式可以使应用程序关闭MCU中没有使用的模块,从而降低功耗。AVR具有不同的睡眠模式,允许用户根据自己的应用要求实施剪裁。进入睡眠模式的条件是置位寄存器MCUCR的SE,然后执行SLEEP指令。具体哪一种模式(空闲模式、ADC噪声抑制模式、掉电模式、省电模式、Standby模式和扩展Standby模式)由MCUCR的SM2、SM1和SM0决定。Atmega128的重要寄存器介绍MCU控制寄存器-MCUCR2022/12/8机电系统控制电路设计99MCU控制寄存器2022/12/9机电系统控制电路设计100Atmega128的重要寄存器介绍MCU控制寄存器-MCUCRBit1–IVSEL:中断向量选择当IVSEL为"0“时,中断向量位于Flash存储器的起始地址;当IVSEL为"1“时,中断向量转移到Boot区的起始地址。实际的Boot区起始地址由熔丝位BOOTSZ确定。Bit0–IVCE:中断向量修改使能改变IVSEL时IVCE必须置位。在IVCE或IVSEL写操作之后4个时钟周期,IVCE被硬件清零。如前面所述,置位IVCE将禁止中断。2022/12/8机电系统控制电路设计100Atmega122022/12/9机电系统控制电路设计101Atmega128的重要寄存器介绍MCU控制和状态寄存器-MCUCSRBit7–JTD:JTAG接口禁用当这一位为‘0’,且JTAG使能熔丝位JTAGEN被编程时JTAG接口使能;否则JTAG接口功能禁止。若JTAG接口未与其他JTAG电路连接,JTD位应置为‘1’,以避免JTAG接口TDO引脚的静态电流。Bit4–JTRF:JTAG复位标志若复位是由JTAG复位寄存器不为'0’且执行了的AVR_RESET指令引发的,JTRF置位。通过写入'0’或上电复位的方法可以将其清零。2022/12/8机电系统控制电路设计101Atmega122022/12/9机电系统控制电路设计102Atmega128的重要寄存器介绍MCU控制和状态寄存器-MCUCSRBit3–WDRF:看门狗复位标志看门狗复位发生时置位。上电复位将使其清零,也可以通过写”0”来清除。Bit2–BORF:掉电检测复位标志掉电检测复位发生时置位。上电复位将使其清零,也可以通过写”0”来清除。Bit1–EXTRF:外部复位标志外部复位发生时置位。上电复位将使其清零,也可以通过写”0”来清除。Bit0–PORF:上电复位标志上电复位发生时置位。只能通过写”0”来清除。2022/12/8机电系统控制电路设计102Atmega122022/12/9机电系统控制电路设计103Atmega128的重要寄存器介绍状态寄存器-SREG状态寄存器包含了最近执行的算术指令的结果信息。这些信息可以用来改变程序流程以实现条件操作。状态寄存器的内容只有在ALU运算结束后才会更新。这样,在多数情况下就不需要专门的比较指令了,从而使系统运行更快速,代码效率更高。在进入中断例程时状态寄存器不会自动保存;中断返回时也不会自动恢复。这些工作需要软件来处理。2022/12/8机电系统控制电路设计103Atmega122022/12/9机电系统控制电路设计104Atmega128的重要寄存器介绍状态寄存器-SREG•Bit7–I:全局中断使能置位时使能全局中断。单独的中断使能由其他独立的控制寄存器控制。如果I清零,则不论单独中断标志置位与否,都不会产生中断。任意一个中断发生后I清零,而执行RETI指令后置位以使能中断。I也可以通过SEI和CLI指令来置位和清零。•Bit6–T:位拷贝存储位拷贝指令BLD和BST利用T作为目的或源地址。BST把寄存器的某一位拷贝到T,而BLD把T拷贝到寄存器的某一位。2022/12/8机电系统控制电路设计104Atmega122022/12/9机电系统控制电路设计105Atmega128的重要寄存器介绍状态寄存器-SREG•Bit5–H:半进位标志半进位标志H表示算术操作发生了半进位。此标志对于BCD运算非常有用。•Bit4–S:符号位,S=N⊕VS为负数标志N与2的补码溢出标志V的异或。•Bit3–V:2的补码溢出标志支持2的补码运算。2022/12/8机电系统控制电路设计105Atmega122022/12/9机电系统控制电路设计106Atmega128的重要寄存器介绍状态寄存器-SREG•Bit2–N:负数标志表明算术或逻辑操作结果为负。•Bit1–Z:零标志表明算术或逻辑操作结果为零。•Bit0–C:进位标志表明算术或逻辑操作发生了进位。返回2022/12/8机电系统控制电路设计106Atmega122022/12/9机电系统控制电路设计107Atmega128的I/O端口2022/12/8机电系统控制电路设计107Atmega122022/12/9机电系统控制电路设计108作为通用数字I/O使用时,所有AVRI/O端口都具有真正的读-修改-写功能。输出缓冲器具有对称的驱动能力,可以输出或吸收大电流,直接驱动LED。所有的端口引脚都具有与电压无关的上拉电阻。每个端口都有三个I/O存储器地址:数据寄存器–PORTx数据方向寄存器–DDRx端口输入引脚–PINx数据寄存器和数据方向寄存器为读/写寄存器,而端口输入引脚为只读寄存器。当寄存器SFIOR的上拉禁止位PUD置位时所有端口的全部引脚的上拉电阻都被禁止。Atmega128的I/O端口2022/12/8机电系统控制电路设计108作为通用数字I/2022/12/9机电系统控制电路设计109端口A数据寄存器-PORTAAtmega128的I/O端口端口A数据方向寄存器-DDRA端口A输入引脚地址-PINA2022/12/8机电系统控制电路设计109端口A数据寄存2022/12/9机电系统控制电路设计110端口G数据寄存器-PORTGAtmega128的I/O端口端口G数据方向寄存器-DDRG端口G输入引脚地址-PING2022/12/8机电系统控制电路设计110端口G数据寄存2022/12/9机电系统控制电路设计111Atmega128的I/O端口特殊功能IO寄存器-SFIOR•Bit2–PUD:禁止上拉电阻置位时,即使将寄存器DDxn和PORTxn配置为使能上拉电阻({DDxn,PORTxn}=0b01),I/O端口的上拉电阻也被禁止。2022/12/8机电系统控制电路设计111Atmega122022/12/9机电系统控制电路设计112Atmega128的I/O端口端口引脚配置不论如何配置DDxn,都可以通过读取PINxn寄存器来获得引脚电平。如果有引脚未被使用,建议给这些引脚赋予一个确定电平。2022/12/8机电系统控制电路设计112Atmega122022/12/9机电系统控制电路设计113Atmega128的I/O端口端口引脚配置最简单的保证未用引脚具有确定电平的方法是使能内部上拉电阻。但要注意的是复位时上拉电阻将被禁用。如果复位时的功耗也有严格要求则建议使用外部上拉或下拉电阻。不推荐直接将未用引脚与VCC或GND连接,因为这样可能会在引脚偶然作为输出时出现冲击电流。2022/12/8机电系统控制电路设计113Atmega122022/12/9机电系统控制电路设计114Atmega128的I/O端口端口A的第二功能2022/12/8机电系统控制电路设计114Atmega122022/12/9机电系统控制电路设计115Atmega128的I/O端口端口B的第二功能2022/12/8机电系统控制电路设计115Atmega122022/12/9机电系统控制电路设计116Atmega128的I/O端口端口C的第二功能端口引脚第二功能PC7 A15(为外部存储器接口的地址高字节)PC6 A14(为外部存储器接口的地址高字节)PC5 A13(为外部存储器接口的地址高字节)PC4 A12(为外部存储器接口的地址高字节)PC3 A11(为外部存储器接口的地址高字节)PC2 A10(为外部存储器接口的地址高字节)PC1 A9(为外部存储器接口的地址高字节)PC0 A8(为外部存储器接口的地址高字节)2022/12/8机电系统控制电路设计116Atmega122022/12/9机电系统控制电路设计117Atmega128的I/O端口端口D的第二功能2022/12/8机电系统控制电路设计117Atmega122022/12/9机电系统控制电路设计118Atmega128的I/O端口端口E的第二功能2022/12/8机电系统控制电路设计118Atmega122022/12/9机电系统控制电路设计119Atmega128的I/O端口端口F的第二功能2022/12/8机电系统控制电路设计119Atmega122022/12/9机电系统控制电路设计120Atmega128的I/O端口端口G的第二功能2022/12/8机电系统控制电路设计120Atmega122022/12/9机电系统控制电路设计121Atmega128的I/O端口利用I/O端口实现八段数码管输出显示由八段LED构成各LED阴极或阳极并在一起,称为“位选线”:共阴、共阳其余8个引脚各自引出,称为“段选线”,各段可以分别控制2022/12/8机电系统控制电路设计121Atmega122022/12/9机电系统控制电路设计122Atmega128的I/O端口数字0123456789共阴极0x3F0x060x5B0x4F0x660x6D0x7D0x070x7F0x6F共阳极0xC00xF90xA40xB00x990x920x820xF80x800x90共阴极、共阳极数码管段码表2022/12/8机电系统控制电路设计122Atmega122022/12/9机电系统控制电路设计123Atmega128的I/O端口利用I/O端口点亮四个7段数码管返回2022/12/8机电系统控制电路设计123Atmega122022/12/9机电系统控制电路设计124Atmega128的中断处理2.3Atmega128硬件体系结构在程序运行期间,发生非预期的紧急事件通常是为了避免查询方式的程序设计用得最多的是外部中断与定时器中断外部中断:按键程序定时器中断:定时与循环扫描等应用场合中断服务程序中断发生时,主程序暂停,跳转到中断服务程序,称为“响应中断”执行完毕后返回主程序继续运行中断的概念2022/12/8机电系统控制电路设计124Atmega122022/12/9机电系统控制电路设计125Atmega128的中断处理中断属于一种对事件的实时处理过程。中断源可能随时停止单片机当前正在处理的工作,转而去处理中断事件,待中断时间处理完毕之后,再返回原来工作的断点处,继续原来的工作。对于单片机的中断系统,需要了解这几个概念:中断源、中断信号、中断向量、中断优先级、中断嵌套、中断控制(屏蔽)、中断响应条件、中断响应过程(中断服务程序)。如何很好的理解中断概念?2022/12/8机电系统控制电路设计125Atmega122022/12/9机电系统控制电路设计126Atmega128的中断处理中断源的理解中断源是指能够向单片机发出中断请求信号的部件和设备。对于单片机来讲,往往存在多个中断源。中断源一般可分为内部中断源和外部中断源。单片机内部集成的许多功能模块,如定时器、串行通讯口、模/数转换器等,它们在正常工作时往往无需CPU参与,而当处于某种状态或达到某个规定值需要程序控制时,会通过发出中断请求信号通知CPU。这一类的中断源位于单片机内部,称作内部中断源。内部中断源在中断条件成立时,一般通过片内硬件会自动产生中断请求信号,无须用户介入,使用方便。内部中断是CPU管理片内资源的一种高效的途径。系统中的外部设备也可以用作中断源,这时要求它们能够产生一个中断信号(通常是高(低)电平或者电平跳变的上升(下降)沿),送到单片机的外部中断请求引脚供CPU检测。这些中断源位于单片机外部,称为外部中断源。通常用作外部中断源的有输入输出设备、控制对象、以及故障源等。2022/12/8机电系统控制电路设计126Atmega122022/12/9机电系统控制电路设计127Atmega128的中断处理中断信号的理解中断信号是指内部或外部中断源产生的中断申请信号,这个中断信号往往是电信号的某种变化形式,通常有以下几种类型:脉冲的上升沿或下降沿(上升沿触发型或下降沿触发型)高电平或低电平(电平触发型)电平的变化(状态变化触发型)对于单片机来讲,不同的中断源,产生什么类型的中断信号能够触发申请中断,取决于芯片内部的硬件结构,而且通常也可以通过用户的软件来设定。单片机的硬件系统会自动对这些中断信号进行检测。一旦检测到规定的信号出现,将会把相应的中断标志位置“1”(在I/O空间的控制或状态寄存器中),通知CPU进行处理。2022/12/8机电系统控制电路设计127Atmega122022/12/9机电系统控制电路设计128Atmega128的中断处理中断向量的理解中断源发出的请求信号被CPU检测到之后,如果单片机的中断控制系统允许响应中断,CPU会自动转移,执行一个固定的程序空间地址中的指令。这个固定的地址称作中断入口地址,也叫做中断向量。中断入口地址往往是由单片机内部硬件决定的。一个单片机有若干个中断源,每个中断源都有着自己的中断向量。这些中断向量一般在程序存储空间中占用一个连续的地址空间段,称为中断向量区。由于一个中断向量通常仅占几个字节或一条指令的长度,所以在中断向量区一般不放置中断服务程序的。中断服务程序一般放置在程序存储器的其它地方,而在中断向量处放置一条跳转到中断服务程序的指令。这样,CPU响应中断后,首先自动转向执行中断向量中的转移指令,再跳转执行中断服务程序。2022/12/8机电系统控制电路设计128Atmega122022/12/9机电系统控制电路设计129Atmega128的中断处理中断优先级的理解单片机系统一般有多个中断源,当某一时刻同时有多个中断产生时,单片机该如何处理呢?这就有了中断优先级的概念。通常,单片机可以接收若干个中断源发出的中断请求。但在同一时刻,MCU只能响应这些中断请求中的其中一个。为了避免MCU同时响应多个中断请求带来的混乱,在单片机中为每一个中断源赋予一个特定的中断优先级。一旦有多个中断请求信号,MCU先响应中断优先级高的中断请求,然后再逐次响应优先级次一级的中断。中断优先级也反映了各个中断源的重要程度,同时也是分析中断嵌套的基础。2022/12/8机电系统控制电路设计129Atmega122022/12/9机电系统控制电路设计130Atmega128的中断处理中断优先级的理解对于中断优先级的确定,通常是由单片机的硬件结构规定的。一般的确定规则方式为两种:某中断对应的中断向量地址越小,其中断优先级越高(硬件确定方式)。通过软件对中断控制寄存器的设定,改变中断的优先级(用户软件可设置方式,注意:AVR不支持)。实际上,MCU在两种情况下需要对中断的优先级进行判断:第一种情况为同时有两(多)个中断源申请中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版高考物理二轮复习 第18讲 光学和热学实验
- 山东省武城县三校联考2024-2025学年度第一学期第二次月考七年级历史试题
- 2024-2025学年度上学期九年级十二月联考英语试卷
- 圆明园湖底防渗事件案例分析
- 5.2 桥式整流教学课件
- 高一(纲要上)统编版 历史 第一单元《第一单元复习 从中华文明起源到秦汉统一多民族封建国家的建立与巩固》课件
- 2025年中考英语一轮教材复习 写作话题7 兴趣爱好
- 2025年中考英语一轮教材复习 七年级(下) Unit 6-2
- 包装制品生产加工项目可行性研究报告写作模板-拿地备案
- 中国红军城保护性改造项目可研报告
- 医院灾害脆弱性分析-HVA
- 2022年1201广东选调生考试《综合行政能力测验》真题
- 2022年下半年广西普通高中学业水平合格性考试试题(语文)
- 国旗下讲话-“一二九运动纪念日”国旗下讲话稿
- (完整)城市污水处理-A2O工艺-毕业设计
- 慰问品采购投标方案(技术方案)
- ISO17025经典培训教材
- 政府经济学网上作业-第2次任务-以“政府支出”为主题-撰写一篇不少于1000字的小论文
- 人工智能辅助的网络协议设计
- 肾恶性肿瘤的护理查房
- 慢性便秘的生物反馈治疗
评论
0/150
提交评论