avr单片机引脚功能1
AVR单片机JTAG接口的使用方法
![AVR单片机JTAG接口的使用方法](https://img.taocdn.com/s3/m/49079378590216fc700abb68a98271fe910eaf98.png)
AVR单片机JTAG接口的使用方法AVR单片机JTAG(Joint Test Action Group)接口是一种用于单片机的调试和编程工具。
它提供了一种高效的方式来进行硬件调试、固件编程和软件调试。
在本文中,我将详细介绍AVR单片机JTAG接口的使用方法。
1.JTAG接口简介JTAG接口由四条线组成,分别是TCK(时钟线)、TMS(状态线)、TDI(数据输入线)和TDO(数据输出线)。
它是一种串行接口,用于与其他外设进行通信。
JTAG接口能够通过硬件调试、固件编程和软件调试来提高系统调试的效率。
2.JTAG接口的初始化在使用JTAG接口之前,需要对其进行初始化。
首先,需要确定使用的JTAG接口类型,然后根据类型选择与之匹配的调试工具和软件。
接下来,需要连接JTAG接口的四个引脚到单片机的相应引脚上。
通常,这些引脚在单片机的数据手册中有详细的说明。
3.JTAG接口的连接连接JTAG接口的四个引脚到单片机的相应引脚上,确保连接正确无误。
通常,TCK(时钟线)和TMS(状态线)引脚是共享的,它们分别连接到单片机的相应引脚上。
TDI(数据输入线)和TDO(数据输出线)引脚则是分别连接到单片机的相应引脚上。
请务必根据单片机的数据手册正确连接JTAG接口引脚。
4.JTAG接口的编程在使用JTAG接口进行编程之前,需要确保已经安装了合适的调试工具和软件。
这些工具和软件可以帮助我们完成对单片机的编程操作。
通常,这些工具和软件提供了一些简单的命令和接口,用于与单片机进行通信。
通过这些命令和接口,我们可以读取和写入单片机的内部寄存器,从而实现对单片机的编程操作。
5.JTAG接口的调试使用JTAG接口进行调试可以帮助我们找到系统中的错误和问题。
通过读取和写入单片机的内部寄存器,我们可以查看程序的执行状态、输入和输出数据、栈的使用情况等信息。
通过这些信息,我们可以判断程序中的错误和问题,并进行调试操作。
6.JTAG接口的注意事项在使用JTAG接口之前-确保JTAG接口的引脚连接正确无误,避免引脚连接错误导致的通信问题。
AVR单片机介绍
![AVR单片机介绍](https://img.taocdn.com/s3/m/d52d82ceda38376baf1fae55.png)
一、AVR单片机特点:
1 、速度快 3 、驱动能力强 2 、片上资源丰富 4 、 功耗低
5 、可选择型号种类多 7 、 保密性好
6 、 性价比高
二、AVR单片机分类
1、ATtiny 系列:如 tiny13、 tiny15、 tiny26, 属于低档,适合功能相对单一的系统
2、AT90S 系列: AT90S8515、8535,属于中
档,适合一般系统开发
3、ATmega 系列:Mega8、 Mega16,属于高
档,适合各种具有较高要求的系统
注:目前AT90系列产品已很少用,多数使用ATmega系列
三、ATMega16的资源及接口
1、16K的Flash
2、Boot代码区 3、512字节的EEPROM 4、1K的SRAM 5、JTAG接口, 仿真和下载 6、支持ISP下载 7、3个带PWM的定时器
声明部分语句 }
4.1、Main 函数 格式:void main() 特点:无返回值,无参。 任何一个C程序有且仅有一个main函数, 它是整个程序开始执行的入口。 例:void main() { 总程序从这里开始执行; 其他语句; }
九、 I/O端口应用
1、端口寄存器及配置
作为通用数字I/O口使用时,每个引脚都具有3
1 0 1 0 0 0 0 1 >> 1: 0 1 0 1 0 0 0 0
0XA1 0X50
2.2、位左移
1 0 1 0 0 0 0 1 << 1: 0 1 0 0 0 0 1 0
0XA1 0X42
2.3、按位与
1 0 1 0 0 0 0 1 & 0 1 0 1 0 0 0 1 || 0 0 0 0 0 0 0 1 0XA1& 0X51= 0X01
单片机引脚说明-按其引脚功能分为四部分叙述这40条引脚的功能
![单片机引脚说明-按其引脚功能分为四部分叙述这40条引脚的功能](https://img.taocdn.com/s3/m/9f533f5f326c1eb91a37f111f18583d049640f6f.png)
单片机引脚说明-按其引脚功能分为四部分叙述这40条引脚的功能下面按其引脚功能分为四部分叙述这40条引脚的功能。
1、主电源引脚VCC和VSSVCC——(40脚)接+5V电压;VSS——(20脚)接地。
2、外接晶体引脚XTAL1和XTAL2XTAL1(19脚)接外部晶体的一个引脚。
在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。
当采用外部振荡器时,对HMOS单片机,此引脚应接地;对CHMOS单片机,此引脚作为驱动端。
XTAL2(18脚)接外晶体的另一端。
在单片机内部,接至上述振荡器的反相放大器的输出端。
采用外部振荡器时,对HMOS单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。
3、控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP①RS T/VPD(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。
推荐在此引脚与VSS引脚之间连接一个约8.2k的下拉电阻,与VCC引脚之间连接一个约10μF的电容,以保证可靠地复位。
VCC掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。
当VCC主电源下掉到低于规定的电平,而VPD在其规定的电压范围(5±0.5V)内,VPD就向内部RAM 提供备用电源。
②ALE/PROG(30脚):当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。
即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。
因此,它可用作对外输出的时钟,或用于定时目的。
然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。
ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路。
对于EPROM单片机(如8751),在EPROM编程期间,此引脚用于输入编程脉冲(PROG)。
③PSEN(29脚):此脚的输出是外部程序存储器的读选通信号。
avr单片机引脚功能1[1]
![avr单片机引脚功能1[1]](https://img.taocdn.com/s3/m/dc35a9c09ec3d5bbfd0a7433.png)
热门词:嵌入式系统工业控制位置:首页-> 测试测量-> 正文基于A VR微控制器的电力机车智能辅保系统的实现李军董海鹰时间:2008年11月24日字体: 大中小关键词:过流电力机车接触器微控制器A/D摘要: 给出了以AVR微控制器为核心的电力机车智能辅保系统的设计方案,并介绍了系统硬件及软件的具体实现方法。
关键词: 智能辅保系统A VR微控制器硬件软件电气机车辅助系统中有劈相机、空气压缩机、通风机及制动风机等各种类型的电机。
运行中为了防止出现短路、过流等异常情况而烧毁电机,通常配置辅助保护系统,起到及时监测电机故障并加以处理的作用。
目前电力机车上安装的辅保系统都是模拟电路装置,系统硬件复杂,又不方便司机使用和维修。
因此,设计一种实时性高、性能可靠的智能辅保系统替代原有的模拟电路装置势在必行。
本文将介绍笔者开发的用于韶山型电力机车的智能辅助保护系统的设计及实现。
1 系统的主要功能与设计思想1.1 系统的主要功能(1)辅机保护功能,即在机车运行过程中,对辅助系统内的各电机出现的短路故障能及时给出故障状态显示,在规定的持续时间内,故障若不消失,对该电机能够实现二次保护控制。
(2)机车辅助系统内的各电机若出现了过流或单相故障,能及时给出相应故障状态显示。
在规定的过流或单相故障持续时间内,检测其故障是否消失,如果故障一直未消失,对该电机进行一次保护控制。
(3)在对电机一次保护后的规定时间内,若电机故障仍然未消除,则立即控制主接触器断开,实现对该电机的二次保护控制。
(4)辅助系统的劈相电机出现启动电阻甩不开的故障时,能够控制主接触器断开,以实现对该电机的二次保护。
(5)在启动辅助系统各电机之前,能够进行检查系统状态显示、输出控制等功能的实验,确保系统硬件电路的安全性及可靠性。
(6)对辅助系统各电机进行实时故障检测的各故障持续的延时时间可以根据实际情况进行相应调整,但不影响系统功能。
1.2 系统的设计思想以高档微控制器为核心构成智能化辅保系统,符合电力机车发展的方向,既可充分发挥软件的功能,又能简化硬件构成,无论在功能上还是在可靠性及安全性上,都可完全替代目前广泛使用的模拟电路辅保装置。
AVR单片机SPI通信的一种抗干扰方法
![AVR单片机SPI通信的一种抗干扰方法](https://img.taocdn.com/s3/m/3491be1f227916888486d74a.png)
#mkfs.jffs2 /dev/mtd3
就是地址偏移量;Physical length of flash mapping是MTD 现在 m t d 3 被格式化为 J F F S 2 文件系统了。
从机方在开始一个数据组的传输前,需要查询 S S 引 脚的电位。 在该脉冲前沿出现之后,主机开始新的传输 之前,重新设置控制寄存器 S P C R ,并给 S P D R 写好准备 在传输开始时传给主机的数据。
3 实例程序
本例是一个工控设备中的两个模块:主控模块和监 视模块。二者的 C P U 都采用 A V R 的 A T 9 0 S 8 5 1 5 单片机。
SEI
;为更高优先的操作而开中断
IN T E M P 0 , S P D R ;接收数据
ST Y+,TEMP0
CPI YL,REPORT+8 ;一组完了吗?
BRCS TRNSX
……
;处理 REPORT 中收到的数据组
CLI
;(& & &)
TRNS1: SBIC PINB,4
;查询联络信号
RJMP TRNSY
复位。 此复位动作不仅会清除控制寄存器 S P C R ,同时 也会清除位计数。
AVR单片机PPT课件
![AVR单片机PPT课件](https://img.taocdn.com/s3/m/f2db60877e21af45b207a88e.png)
out spl,r16
ldi r16,high(RAMend)
out sph,r16
ldi r16,$ff
;set porta as output
out ddra,r16
AVR单片机
;(Continued)
loop:
ldi r16,$00 ;输出低——led亮
out porta,r16
ldi r24,6
AVR单片机
B口、C口、D口作为通用I/O时,具有与A口同样的 功能
4) B 口数据寄存器-PORTB $18($38) 5) B 口数据方向寄存器— DDRB $17($37) 6) B 口输入脚地址-PINB $16($36) 7) C 口数据寄存器-PORTC $15($35) 8) C 口数据方向寄存器— DDRC $14($34) 9) C 口输入脚地址-PINC $13($33) 10) D 口数据寄存器-PORTD $12($32) 11) D 口数据方向寄存器— DDRD $11($31) 12) D 口输入脚地址-PIND $10($30)
;送个位位线
;将个位的 BCD 码送 R23
;查七段码 送 B 口输出 ;延时 1ms ;送十位位线
;将十位的 BCD 码送 R23
;查七段码 送 B 口输出 ;延时 1ms
AVR单片机
2 动态扫描五位数码管显示
ldi r16,$fb out portd,r16
mov r23,r20 rcall cqb rcall t1ms ldi r16,$f7 out portd,r16
1 I /O 端口使用注意事项
1) 先定义 I/O 口方向,对数据方向寄存器的某位置 1 为输出,清 0 为输入
AVR单片机常用熔丝位说明
![AVR单片机常用熔丝位说明](https://img.taocdn.com/s3/m/29da8fe5bb0d4a7302768e9951e79b8968026819.png)
BOD,掉电检测功能。比如4.3V,当检测到电源低于4.3V时,单 片机复位。 AVR是宽电压工作的芯片,当电压跌至2.5V,系统程序还能工作 。这时有2个可怕的现象可能出现: 1.外围芯片工作已经混乱,AVR读到的东西不正确,造成程序的 执行发生逻辑错误(不是AVR本身的原因)。 2.当电源低到临界点,如2.4V时,并且在此忽上忽下,AVR本身 的程序执行也不正常,取指令、读数据都可能发生错误,或程 序乱飞、不稳定(AVR本身的原因,实际任何的单片机都是这样 的),非常容易造成EEPROM、FALSH的破坏。
0010:校准的内部RC振荡器
精度不高,一般不使用
0000:外部时钟
一般不用
0:PC6为普通引脚
慎点,PC6默认是复位引脚C6为复位引脚
GPIO用,同时,无法再ISP烧写程序,因为无法复位。
0:使能片上调试系统
1:部使能片上调试系统
片上调试,即后面的BOOTLoader功能。
用于设置复位后从哪一段程序存储区内启动,主要用于boot功 能。Boot区存储一块引导程序,开启boot功能,可以通过串口 在线给单片机更新程序,而不用依赖ISP
Boot Loader锁死功能 ,针对Boot Loader区域
Boot Loader锁死功能 ,针对应用区域
锁死以后不能再使用ISP等方式进行程序烧写或读取,但可以通 过专用烧写器接触锁定,主要用于加密防抄
AVR单片机常用熔丝位说明(以Atmega88为例)
配置说明
备注
0:时钟8分频
设置系统时钟的分频书,比如,电路晶振为8M,使能分频后,
1:时钟不分频
系统晶振就是1M
0:系统时钟输出(PB0)
1:不输出,PB0是普通IO
AVR单片机ATXMEGA系列的ADC研究
![AVR单片机ATXMEGA系列的ADC研究](https://img.taocdn.com/s3/m/10c8c74bdcccda38376baf1ffc4ffe473268fd46.png)
AVR单片机之ATXMEGA系列的ADC研究本文中的源代码采用CodeVision3.12编辑编译。
采用的MCU 型号是Atxmega128A3U。
实际使用测试运行正常。
1、关于ADCA和ADCB的输入引脚问题输入引脚用于单端和差动输入,内部输入直接内部连接设备。
如果设备含有两个ADC,端口A引脚用于ADCA的ADC0-ADC7,也可用于ADCB的ADC8-ADC15,端口B的引脚用于ADCB的ADC0-ADC7,也可用于ADCA的ADC8-ADC15。
所有输入引脚可作为同相输入,输入引脚ADC0-ADC3可作为不带增益时的反相输入,输入引脚ADC4-ADC7可作为带增益时的反相输入。
注意:ADCA和ADCB的输入引脚ADC0-ADC15的定义位置是不同的。
当使用差动输入时,ADC必须设置位signed模式(有符号模式)。
难怪ADCB没有结果。
原来不能用。
2、ADC转换的触发方式方法ADC转换如果采用自由运行模式free-running, 通道sweep,并且每个通道转换完成产生中断,在中断处理程序中处理转换结果。
那么中断次数会非常多,严重影响程序正常运行。
经过分析后,决定采用软件启动ADC转换,启动指令的发出由TCF0定时器溢出中断程序发出,TCF0溢出频率400Hz,每中断一次启动一次一个ADC通道的转换,8次中断完成ADCA四个通道和ADCB四个通道的启动。
这个中断程序只负责启动ADC转换。
void tcf0_init(void){unsigned char s;// Note: The correct PORTF direction for the Compare Channels// outputs is configured in the ports_init function.// Save interrupts enabled/disabled states=SREG;// Disable interrupts#asm("cli")// Disable and reset the timer/counter just to be suretc0_disable(&TCF0);// Clock source: ClkPer/2TCF0.CTRLA=TC_CLKSEL_DIV2_gc; //设置定时器时钟16MHz// Mode: Normal Operation, Overflow Int./Event on TOP// Compare/Capture on channel A: Off// Compare/Capture on channel B: Off// Compare/Capture on channel C: Off// Compare/Capture on channel D: OffTCF0.CTRLB=(0<<TC0_CCDEN_bp) | (0<<TC0_CCCEN_bp) | (0<<TC0_CCBEN_bp) | (0<<TC0_CCAEN_bp) | TC_WGMODE_NORMAL_gc;// Capture event source: None// Capture event action: NoneTCF0.CTRLD=TC_EVACT_OFF_gc | TC_EVSEL_OFF_gc;// Set Timer/Counter in Normal modeTCF0.CTRLE=TC_BYTEM_NORMAL_gc;// Overflow interrupt: Low Level// Error interrupt: DisabledTCF0.INTCTRLA=TC_ERRINTLVL_OFF_gc | TC_OVFINTLVL_LO_gc;// Compare/Capture channel A interrupt: Disabled// Compare/Capture channel B interrupt: Disabled// Compare/Capture channel C interrupt: Disabled// Compare/Capture channel D interrupt: DisabledTCF0.INTCTRLB=TC_CCDINTLVL_OFF_gc | TC_CCCINTLVL_OFF_gc | TC_CCBINTLVL_OFF_gc | TC_CCAINTLVL_OFF_gc;// High resolution extension: OffHIRESF.CTRLA&= ~HIRES_HREN0_bm;// Clear the interrupt flagsTCF0.INTFLAGS=TCF0.INTFLAGS;// Set Counter registerT=0x0000;// Set Period registerTCF0.PER=0x9C3F; //设置定时器周期2.5ms// Set channel A Compare/Capture registerA=0x0000;// Set channel B Compare/Capture registerB=0x0000;// Set channel C Compare/Capture registerC=0x0000;// Set channel D Compare/Capture registerD=0x0000;// Restore interrupts enabled/disabled stateSREG=s;}// Timer/Counter TCF0 Overflow/Underflow interrupt service routineinterrupt [TCF0_OVF_vect] void tcf0_overflow_isr(void){// Write your code herestatic int flag;if(flag<7) flag++; else flag=0;switch(flag) {case 0: // Start the AD conversion on channel 0ADCA.CH0.CTRL|= 1<<ADC_CH_START_bp; //启动ADCA的通道0break;case 1:ADCA.CH1.CTRL|= 1<<ADC_CH_START_bp;//启动ADCA的通道1break;case 2:ADCA.CH2.CTRL|= 1<<ADC_CH_START_bp;//启动ADCA的通道2break;case 3:ADCA.CH3.CTRL|= 1<<ADC_CH_START_bp;//启动ADCA的通道3break;case 4:ADCB.CH0.CTRL|= 1<<ADC_CH_START_bp;//启动ADCB的通道0break;case 5:ADCB.CH1.CTRL|= 1<<ADC_CH_START_bp;//启动ADCB的通道1break;case 6:ADCB.CH2.CTRL|= 1<<ADC_CH_START_bp;//启动ADCB的通道2break;case 7:ADCB.CH3.CTRL|= 1<<ADC_CH_START_bp;//启动ADCB的通道3break;default:break;}}3、ADC转换结果通过DMA方式直接写入内存由DMA由四个独立的通道,这里只用两个通道:通道0和通道1。
AVR单片机输入输出IO端口使用
![AVR单片机输入输出IO端口使用](https://img.taocdn.com/s3/m/56977806cc1755270722086e.png)
以ATmega16单片机为例,共有32个通用I/O口,分为4个端口PA,PB,PC,PD,每个端口都包含8个I/O 口,如图所示,每个端口对应一个8位的二进制,对应的i/o管脚顺序由高到低排列。
每个I/O口都可以单独设为输入或输出,如上图中PA口的8个I/O口全部设为输出,控制8个发光二极管的亮灭。
i/o口除作为输入输出口外,还有第二功能,如PA口也作为AD转换的输入口。
每个端口都具有输入,输出,方向控制三个寄存器:
以PA口为例,其他端口相同,方向寄存器DDRA,对应8个的I/O口,1设为输出,0设为输入。
输出寄存器PORTA,对应的I/O口,1输出高电平,0输出低电平
输入寄存器PINA , 若对应的I/O口为高电平,相应的位置1,低电平置0
例如:PA口全部设为输出,DDRA=0xFF,并且全部输出低电平,PORTA=0x00;将点亮上图中的全部发光二极管。
将PB口的第0位(最低位)设为输入,其余位设为输出,DDRB=0xFE;
if ((PINB&0x01)==1) //判断PB口的第0位的输入状态,是0还是1.
PORTA=0x00;//如果PB口的第0位等于1,即PA口的第0位输入高电平,那么PA口全部输出低电平
else
PORTA=0xFF;//如果PB口的第0位等于0,即PA口的第0位输入低电平,那么PA口全部输出高电平
小企鹅diy科学探究学习网
更多相关文章转到: /wqb_lmkj/blog 文章分类下的单片机。
单片机引脚说明按其引脚功能分为四部分叙述这条引脚的功能
![单片机引脚说明按其引脚功能分为四部分叙述这条引脚的功能](https://img.taocdn.com/s3/m/16ab354a102de2bd97058841.png)
单片机引脚说明-按其引脚功能分为四部分叙述这条引脚的功能————————————————————————————————作者: ————————————————————————————————日期:下面按其引脚功能分为四部分叙述这40条引脚的功能。
ﻫ1、主电源引脚VCC和VSSVCC——(40脚)接+5V电压;ﻫVSS——(20脚)接地。
2、外接晶体引脚XTAL1和XTAL2XTAL1(19脚)接外部晶体的一个引脚。
在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。
当采用外部振荡器时,对HMOS单片机,此引脚应接地;对CHMOS单片机,此引脚作为驱动端。
XTAL2(18脚)接外晶体的另一端。
在单片机内部,接至上述振荡器的反相放大器的输出端。
采用外部振荡器时,对HMOS单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。
ﻫ3、控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP①RST/VPD(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。
推荐在此引脚与VSS引脚之间连接一个约8.2k的下拉电阻,与VCC引脚之间连接一个约10μF的电容,以保证可靠地复位。
ﻫVCC掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。
当VCC主电源下掉到低于规定的电平,而VPD在其规定的电压范围(5±0.5V)内,VPD就向内部RAM提供备用电源。
②ALE/PROG(30脚):当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。
即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。
因此,它可用作对外输出的时钟,或用于定时目的。
然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。
ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路。
单片机avr芯片引脚识别ATmega16
![单片机avr芯片引脚识别ATmega16](https://img.taocdn.com/s3/m/7467d59a51e79b8968022611.png)
引脚说明
VCC 数字电路的电源GND地
端口A(PA7..PA0) 端口A 做为A/D 转换器的模拟输入端
端口B(PB7..PB0) 端口B 为8 位双向I/O 口,具有可编程的内部上拉电阻
端口C(PC7..PC0)端口C 为8 位双向I/O 口,具有可编程的内部上拉电阻。
端口D(PD7..PD0)端口D 为8 位双向I/O 口,具有可编程的内部上拉电阻
RESET复位输入引脚。
持续时间超过最小门限时间的低电平将引起系统复位
XTAL1反向振荡放大器与片内时钟操作电路的输入端。
XTAL2反向振荡放大器的输出端。
AVCC AVCC是端口A与A/D转换器的电源。
不使用ADC时,该引脚应直接与VCC连接。
使用ADC
时应通过一个低通滤波器与VCC 连接。
AREF A/D 的模拟基准输入引脚。
小企鹅diy科学探究学习网
更多文章转到:/wqb_lmkj/blog 文章分类下的单片机。
AVR的IO端口特性与应用
![AVR的IO端口特性与应用](https://img.taocdn.com/s3/m/96a53429ed630b1c59eeb557.png)
AVR的IO端口特性与应用
OURAVR网站上关于AVR单片机IO端口的经典解析,有助于理解IO端口的操作方法。
AVR的IO端口特性分析:
分析IO引脚Pxn。
DDRxn 只有为1时,可控单向开关才工作,PORTxn 的数值才能通过可控单向开送到 Pxn.
结论:DDRxn=1 时,为输出状态。
输出值等于PORTxn。
所以,DDRxn 为方向寄存器。
PORTxn 为数据寄存器。
分析上拉电阻。
E的电位为0时,即D为1时,上拉电阻有效。
从与门的输入分析,只有以下的条件同时满足时,上拉电阻才有效
1、PUD 为0
2、DDxn 为0
3、PORTxn 为1
结论是:只有DDRxn = 0 即管脚定义为输入状态,并且 PORTxn="1", 而且UPD设置为0时,上拉电阻才生效。
分析 Pxn 及 SLEEP。
只有当 SLEEP = 0 时,可控开关2才导通,SD1不工作,施密特触发器的输入等于Pxn, 信号送到同步器后读取。
结论:Pxn 无论在输入或输出状态都能被AVR读取。
SLEEP=0时输入才能被读取。
AVR单片机IO端口操作方法及注意事项
![AVR单片机IO端口操作方法及注意事项](https://img.taocdn.com/s3/m/303d39197cd184254b353544.png)
一次即可。因为它是一个控制全部上拉电阻的控制位。
DDRB&=~(BIT(2)|BIT(3)); //定义 PB2、PB3为输入
PORTB|=BIT(2)|BIT(3); // 将 PORT 置1,满足上拉电阻的另一个条件
举例四:将PB0、PB1数据寄存器的数值翻转,即如果是1时变成0,如果是0时变成1
PORTB^=BIT(0)|BIT(1); // 翻转PB0 、PB1口
举例五:将PB2、PB3定义为输入,不带上拉电阻
DDRB&=~(BIT(2)|BIT(3)); //定义 PB2、PB3为输入
PORTB&=~(BIT(2)|BIT(3)); // 将 PORT 置0,没有上拉电阻
举例六:将PB2、PB3定义为输入,带上拉电阻。即没有引用这些引脚时,缺省值为高电平
SFIOR&=~BIT(PUD); // SFIOR寄存器的上拉电阻控制位PUD置0,在整个代码中,这句话可以不出现,或仅出现
4功能模块(中断,定时器)的输入可以是低电平触发,也可以是上升沿触发或下降沿触发。
5用于高阻模拟信号输入,切记不要使能内部上拉电阻,影响精确度。例如ADC数模转换器输入,模拟比较器输入
作输出时:
采用必要的限流措施,例如驱动LED要串入限流电阻
复位时:
复位时内部上拉电阻将被禁用。如果应用中(例如电机控制)需要严格的电平控制,请使用外接电阻固定电平
举例二:将PB0、PB1定义为输出,PB0、PB1均为高电平
DDRB|=BIT(0)|BIT(1); //定义 PB0、PB1为输出
PORTB|=BIT(0)|BIT(1);// PB0、PB1 输出高电平
单片机各引脚的意义
![单片机各引脚的意义](https://img.taocdn.com/s3/m/2fe182afdbef5ef7ba0d4a7302768e9951e76e1e.png)
单片机各引脚的意义单片机作为一种微型计算机芯片,广泛应用于电子设备中。
在单片机的引脚中,每个引脚都承担着不同的功能和作用。
本文将深入探讨单片机各引脚的意义及其作用。
1. 电源引脚单片机通常需要外部供电,其中电源引脚起到输入电源正负极的作用。
一般来说,VCC引脚是单片机的正电源引脚,GND引脚是单片机的地引脚。
这两个引脚是单片机正常工作所必需的,没有电源供给,单片机是无法工作的。
2. 复位引脚单片机的复位引脚用于将单片机恢复至初始状态,使其重新启动。
当复位引脚接收到一个低电平信号时,单片机将停止运行,然后重新从程序的起始处开始执行。
复位引脚在开发和调试过程中非常重要,它可以帮助我们进行单片机的复位和调试操作。
3. 输入引脚单片机的输入引脚用于接收来自外部设备的信号。
这些引脚可以根据需要将外部信号传递给单片机,以便进行处理和判断。
输入引脚的数量和功能取决于不同的单片机型号和应用场景。
4. 输出引脚单片机的输出引脚用于向外部设备发送信号。
通过这些引脚,单片机可以控制外部设备的状态或执行某些特定的操作。
输出引脚的数量和功能取决于所使用的单片机型号和应用场景。
5. 中断引脚中断引脚可以帮助单片机处理紧急情况,提高系统的实时性。
当某个事件发生时,中断引脚会发出一个信号,中断单片机的正常程序执行,转而处理这个事件。
中断引脚可以帮助单片机在多任务环境下更好地处理各种事件。
6. 定时器/计数器引脚单片机通常配备了一个或多个定时器/计数器引脚。
定时器可以帮助单片机在预定的时间间隔内执行某些操作,计数器则用于记录一定范围内的事件次数。
定时器/计数器引脚对于需要精确时间控制的应用非常重要。
7. 串口引脚串口引脚用于单片机与其他设备之间进行数据通信。
单片机可以通过串口引脚与计算机、传感器等设备进行数据交换,实现数据的发送和接收。
串口引脚的功能包括串行数据传输、数据接收和数据发送等。
8. ADC/DAC引脚ADC(模数转换器)引脚用于将模拟信号转换为数字信号,DAC (数字模数转换器)引脚则用于将数字信号转换为模拟信号。
ATmega16单片机中文技术资料
![ATmega16单片机中文技术资料](https://img.taocdn.com/s3/m/827010b64bfe04a1b0717fd5360cba1aa8118cc6.png)
ATmega16单片机中文技术资料一、概述ATmega16是一款高性能、低功耗的8位微控制器,由Atmel公司推出。
它基于AVR增强型RISC结构,拥有丰富的外设资源和灵活的编程特性,广泛应用于工业控制、消费电子、通信设备等领域。
二、主要特性1. 内核:AVR增强型RISC结构,最高工作频率为16MHz。
2. 存储:16KB的程序存储器(Flash)、512B的EEPROM和1KB 的SRAM。
3. 外设接口:32个通用I/O口、8个通道的10位ADC、2个8位定时器/计数器、1个16位定时器/计数器、1个串行通信接口(USART)、1个串行外设接口(SPI)和1个两线接口(TWI)。
4. 工作电压:2.7V至5.5V,支持低功耗模式。
5. 封装:采用TQFP和PDIP封装,便于嵌入式系统设计。
三、引脚功能1. VCC:电源正极,接2.7V至5.5V电压。
2. GND:电源负极,接地。
3. PA0PA7:端口A,具有通用I/O、模拟输入和外围设备功能。
4. PB0PB7:端口B,具有通用I/O、JTAG接口和外围设备功能。
5. PC0PC7:端口C,具有通用I/O、模拟输入和外围设备功能。
6. PD0PD7:端口D,具有通用I/O和外围设备功能。
7. XTAL1/XTAL2:晶振输入/输出,用于外部晶振或陶瓷谐振器。
8. AVCC:模拟电源,为ADC和模拟电路提供电源。
10.RESET:复位输入,低电平有效。
四、编程与开发1. 编程语言:支持C语言和汇编语言编程。
2. 开发工具:可使用Atmel Studio、AVR Studio等集成开发环境进行程序编写、编译和调试。
3. 烧录方式:通过ISP、JTAG、HVPP等接口进行程序烧录。
本文档旨在为您提供ATmega16单片机的中文技术资料,帮助您更好地了解这款微控制器,为您的项目开发提供支持。
后续内容将详细介绍ATmega16的外设功能、编程方法及应用实例。
单片机各引脚的功能是什么?
![单片机各引脚的功能是什么?](https://img.taocdn.com/s3/m/e4371b638f9951e79b89680203d8ce2f00666508.png)
单⽚机各引脚的功能是什么?
今天我们⼀起来了解⼀下MCS-51系列单⽚机各引脚的功能,下图就是MCS-51系列单⽚机各引脚排列图
MCS-51系列单⽚机的40个引脚根据功能可以分作3类:基本⼯作条件引脚、输⼊/输出(I/O)引脚和控制引脚。
基本⼯作条件引脚
单⽚机基本⼯作条件引脚有电源引脚、复位引脚和时钟引脚,只有具备了基本⼯作条件,单⽚机才能开始⼯作。
(1)电源引脚
40脚为电源正极引脚(VCC),20脚为电源负极引脚(VSS)。
电源正极引脚⼀般接5V电源,电源负极引脚接地。
(2)复位引脚
9脚为复位引脚(RST/VPD)。
在单⽚机接通电源后,为了使内部电路正常⼯作,需要复位电路为它提供复位信号,使内部电路进⼊初始状态,然后才开始⼯作。
MCS-51 系列单⽚机采⽤⾼电平复位,即外接复位电路给复位引脚送⼊⾼电平信号后,就可以对单⽚机内部电路进⾏复位。
9脚还具有掉电保持功能,为了防⽌掉电使单⽚机内部RAM中的数据丢失,可在该脚再接⼀个备⽤电源,掉电时,由备⽤电源为该脚提供4.5~5.5V的电压,可保持RAM中的数据不会丢失。
(3)时钟引脚
18、19脚为时钟引脚(XTAL2、XTAL1)。
单⽚机内部有⼤量的数字电路,这些数字电路⼯作时需要时钟信号进⾏控制,才能有次序、有节拍地⼯作。
单⽚机内部的时钟振荡器与时钟引脚外接的定时电路构成时钟振荡电路,产⽣时钟信号供给内部电路使⽤;另外,也可以由外部的振荡器产⽣时钟信号,通过时钟引脚送⼊单⽚机,供给内部电路。
AVR单片机的熔丝位说明.
![AVR单片机的熔丝位说明.](https://img.taocdn.com/s3/m/b2f4155ca6c30c2258019e40.png)
注意:对于所有的熔丝位, “1” 表示未编程, “0” 代表已编程。
一、 CKSEL3..0、CKOPT 、SUT1.0:用于设置系统时钟✓ CKSEL3..0 --- 时钟源模式选择。
✓ SUT1.0 --- 复位启动时间选择。
1、如果没有特殊要求推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升。
2、对应时钟源模式的不同,SUT 的设置也不同,详情看下文说明。
✓ CKOPT --- 选择放大器模式。
0对应高幅度振荡输出;1对应低幅度振荡输出。
当CKOPT 被编程时,振荡器在输出引脚产生满幅度的振荡,这种模式适合于噪声环境,以及需要通过XTAL2 驱动第二个时钟缓冲器的情况,而且这种模式的频率范围比较宽;当保持CKOPT 为未编程状态时,振荡器的输出信号幅度比较小。
其优点是大大降低了功耗,但是频率范围比较窄,而且不能驱动其他时钟缓冲器。
对于谐振器,CKOPT 未编程时的最大频率为8 MHz ,CKOPT 编程时为16 MHz 。
1、当用外部晶体/ 陶瓷振荡器(1CKOPT 和CKSEL3..1设置晶体振荡器工作模式XTAL1 与XTAL2 分别为用作片内振荡器的反向放大器的输入和输出,如左图所示,这个振荡器可以使用石英晶体,也可以使用陶瓷谐振器。
C1和C2 的数值要一样,不管使用的是晶体还是谐振器。
最佳的数值与使用的晶体或谐振器有关,还与杂散电容和环境的电磁噪声有关。
表1-1给出了不同模式对应的频率范围及针对晶体选择电容的一些指南。
对于陶瓷谐振器,应该使用厂商提供的数值。
表1-1:振荡器工作模式(1 SUT1.0和CKSEL0设置选择启动时间表1-2:晶体振荡器时钟选项对应的启动时间表2、当用外部低频振荡器为了使用32.768 kHz 钟表晶体作为器件的时钟源,必须将熔丝位CKSEL 设置“1001”以选择低频晶体振荡器。
晶体的连接方式和用上面外部晶振的一样。
通过对熔丝位CKOPT 的编程,可以使能XTAL1 和XTAL2 的内部电容,从而去除外部电容。
AVR单片机项目4 ATmega16单片机IO接口应用
![AVR单片机项目4 ATmega16单片机IO接口应用](https://img.taocdn.com/s3/m/82b3e67e783e0912a2162ab1.png)
1<<(x)表示逻辑“1”左移x位,_BV(PX1)为逻辑“1”左移 1位,结果为0b00000010,_BV(PX7)为逻辑“1”左移7位 0b10000000。
DDRA|=_BV(PA1)|_BV(PA7);//PA口的第1位和第7位置高电 平输出 PORTA|=_BV(PA1);//PA口第1位输出高电平 PORTA&=~BV(PA7);//PA口第7位输出低电平
二、I/O接口的寄存器
在GCCAVR C环境中,头文件“io.h”中定义了许多用于控 制I/O接口输入/出操作的宏,这些宏与I/O寄存器同名,通 过这些宏可以控制A、B、C、D接口的输入输出操作。 当A、B、C、D接口用于数据I/O口时,通过DDRx、 PORTx和PINx三个宏控制接口的输入与输出(其中x为A、B、 C或D)。例如: ①DDRA为A口数据方向寄存器,用来定义A口的通讯方 向(输入/输出); ②PORTA为A口数据寄存器,用来输出数据(输入时, PORTX为高,打开上拉电阻);当PORTx=1时,I/O引脚高 电平,可提供输出20mA电流;当PORTx=0时,I/O引脚低电 平,可吸纳20mA电流。因此,AVR的I/O在输出方式下提供 了比较大驱动能力,可以直接驱动LED等小功率外围器件。 ③PINA用来读取A口数据(只读)。
avrio口引脚配置表ddrxnportxnpudio方向上拉电阻引脚状态说明00x输入无效高阻态010输入有效外部引脚拉低时将输出电流011输入无效高阻态10x输出无效输出低电平吸收电流11x输出无效输出高电平输出电流ddrxnportxnpudio方向上拉电阻引脚状态说明00x输入无效高阻态010输入有效外部引脚拉低时将输出电流011输入无效高阻态10x输出无效输出低电平吸收电流11x输出无效输出高电平输出电流atmega16单片机io端口的主要特点?双向可独立位控的io口
AVR单片机功能模块使用
![AVR单片机功能模块使用](https://img.taocdn.com/s3/m/f405703b87c24028915fc387.png)
一、熔丝位配置:AVR单片机由于接口丰富,功能齐全,性价比好,运用越来越广。
一些朋友利用网上下载的程序烧录芯片时,由于对熔丝位的意义没搞清楚,而任意改动其设臵,结果造成芯片被锁定,即不能用下载线对其读写了。
(甚至会误认为芯片已坏)下面将以ATmega8(M8)为例,简单的介绍AVR单片机烧录相关知识和熔丝位的操作方法。
一。
内部RC振荡器玩51单片机的朋友知道,晶振为CPU提供时钟源,单片机没有时钟源是不可能运行的。
但AVR则不同,没有晶振单片机照样运行。
原因是其内部有1M,2M,4Mt和8M四种频率的RC振荡器。
新购入的芯片内部RC振荡器出厂默认值为1MHz。
也就是只要将程序烧录到M8中,程序即可运行。
当然此时单片机时钟源由内部1MHzRC振荡器提供。
由于芯片工艺制作上的离散性,每个芯片内部RC振荡器频率有不同的误差。
因此M8在只读存储器中存储了对内部RC振荡器进行校正的字节,每个芯片校正字节的参数是不同的。
(当然在精度不高的场合,可以不作校正)校正方法是:接好下载线,插入芯片后从烧录软件PonyPr0g2000菜单“命令”下的“读振荡器校正字节”即可中读取。
如读取的字节为0xaa;我们只要在程序的初始化中加入OSCCAL=0xaa; //校正内部RC振荡器频率,不同的芯片参数有差异特别说明的是,使用内部RC振荡器出厂默认值为1MHz,硬件会自动将校正参数装入。
只有系统在选用其它三个内部RC振荡器时,才需要将校正参数在程序中加入。
因此AVR单片机和51单片机不同的是:根据需要除可选用外部晶振作为时钟源。
当然也可选用内部RC 振荡器作为时钟源。
而如何设臵是用内部时钟源还是用外部时钟源,AVR系列单片机是通过对熔丝位的操作来实现的。
二。
熔丝位的操作AVR的芯片的烧录和熔丝位的操作,是由ISP下载线配合软件进行的,ISP下载线,十分简单,可以自制,我目前使用的冯老师制作的BBMV并口下载线,软件虽大多用PonyPr0g,但我和老冯一样还是偏爱晓奇老师的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
热门词:嵌入式系统工业控制位置:首页-> 测试测量-> 正文基于A VR微控制器的电力机车智能辅保系统的实现李军董海鹰时间:2008年11月24日字体: 大中小关键词:过流电力机车接触器微控制器A/D摘要: 给出了以AVR微控制器为核心的电力机车智能辅保系统的设计方案,并介绍了系统硬件及软件的具体实现方法。
关键词: 智能辅保系统A VR微控制器硬件软件电气机车辅助系统中有劈相机、空气压缩机、通风机及制动风机等各种类型的电机。
运行中为了防止出现短路、过流等异常情况而烧毁电机,通常配置辅助保护系统,起到及时监测电机故障并加以处理的作用。
目前电力机车上安装的辅保系统都是模拟电路装置,系统硬件复杂,又不方便司机使用和维修。
因此,设计一种实时性高、性能可靠的智能辅保系统替代原有的模拟电路装置势在必行。
本文将介绍笔者开发的用于韶山型电力机车的智能辅助保护系统的设计及实现。
1 系统的主要功能与设计思想1.1 系统的主要功能(1)辅机保护功能,即在机车运行过程中,对辅助系统内的各电机出现的短路故障能及时给出故障状态显示,在规定的持续时间内,故障若不消失,对该电机能够实现二次保护控制。
(2)机车辅助系统内的各电机若出现了过流或单相故障,能及时给出相应故障状态显示。
在规定的过流或单相故障持续时间内,检测其故障是否消失,如果故障一直未消失,对该电机进行一次保护控制。
(3)在对电机一次保护后的规定时间内,若电机故障仍然未消除,则立即控制主接触器断开,实现对该电机的二次保护控制。
(4)辅助系统的劈相电机出现启动电阻甩不开的故障时,能够控制主接触器断开,以实现对该电机的二次保护。
(5)在启动辅助系统各电机之前,能够进行检查系统状态显示、输出控制等功能的实验,确保系统硬件电路的安全性及可靠性。
(6)对辅助系统各电机进行实时故障检测的各故障持续的延时时间可以根据实际情况进行相应调整,但不影响系统功能。
1.2 系统的设计思想以高档微控制器为核心构成智能化辅保系统,符合电力机车发展的方向,既可充分发挥软件的功能,又能简化硬件构成,无论在功能上还是在可靠性及安全性上,都可完全替代目前广泛使用的模拟电路辅保装置。
1.2.1 系统的微控制器芯片A T90S8535美国ATMEL公司推出的90系列单片机是增强RISC内载Flash的高性能八位单片机,通称为A VR 单片机[1~2],设计上采用低功耗CMOS技术,而且在软件上有效支持C高级语言(用IAR系统的ICC90C编译器编译)及汇编语言(用A VR汇编器编译)。
其中,AT90S8535是功能较强的一种型号,它有40引脚PDIP和44引脚PLCC、TQFP等多种封装形式,具有以下主要特征:(1)其片内带有一个8通道的A/D转换器及一个模拟比较器。
(2)两个带预分频及比较模式的8位定时器/计数器T/C0、T/C1;一个16位的带预分频及比较模式、捕获模式及双工8位、9位或10位的PWM输出的定时器/计数器T/C1;而且定时器/计数器T/C2可作为带单独晶振的RTC使用。
(3)32条通用I/O线及32个通用8位寄存器R0~R31,64个I/O专用寄存器。
(4)片内有8K字节可下载的Flash存储器,程序下载采用其SPI串行接口,使用寿命为1000次。
(5)有512字节的EEPROM(使用寿命为10万次)及512字节的内部SRAM。
(6)带片内晶振器的可编程看门狗定时器;并有三种可通过软件选择的电源节电模式:闲置模式、掉电模式及省电模式。
(7)供电电压VCC为4.0~6.0V,可以全静态工作,范围为0~8MHz;具有118条功能强大的指令,大多数执行时间为单时钟周期,指令周期最短仅为125ns。
(8)提供16种不同的内、外中断源(其中有两个外部中断源)。
(9)可编程的全双工串行通信接口UART及同步串行接口SPI。
以AT90S8535嵌入式高效微控制器构成智能化辅保系统的主控制电路,无需外扩多通道A/D转换器及程序存储器、数据存储器,大大简化了系统的硬件。
尤其是其内部又有硬件看门狗电路及相应的看门狗指令控制,提高了系统的可靠性及安全性,选型相对以往的AT89系列单片机,在性能上要强得多,而且开发手段更方便。
1.2.2 A T90S8535的ADC的主要特性和工作原理A T90S8535的优越性在于其片内有一个8通道的10位ADC,ADC与一个模拟多路转换器相连,还包含一个采样保持器。
该器件的A口的每一引脚(PA0~PA7)均可作为ADC的模拟输入端,A口不用作模拟输入的个别引脚又可作为数字输入使用。
ADC有两个单独的模拟供电引脚A VCC和AGND。
使用时,AGND和GND必须相连,A VCC与VCC的电压必须保持±0.3V的不同,并通过RC网络相连。
外部参考基准电压通过AREF引脚加入。
ADC通过内部预分频器ADCPS保证将系统时钟频率转化为50~200kHz之间的ADC可接受的时钟频率。
ADC一般至少需要13个时钟周期完成一次转换,因此转换时间范围为65~260μs。
ADC为用户提供了内部中断方式的处理,可以满足实时性的要求。
每次转换完成时,ADC转换器完成中断就可以被激活。
ADC还有一个噪音清除器,通过正确使用,确保在闲置模式转换过程中减少包括从CPU 核中出来的噪音。
ADC被使能后,可以选择单一转换和自由运行两种模式之一工作。
在单一转换模式下,每次转换由用户触发;在自由运行模式下,ADC连续取样,并更新ADC的数据寄存器。
建议用户使用单一转换模式。
ADC产生的10位结果保存在数据寄存器ADCL和ADCH中,其内部特殊数据保护逻辑要求读取数据时,先读ADCL,后读ADCH。
1.3 系统监测对象本系统完成的监测对象主要有:(1)劈相机三相信号;(2)通风机电机三相信号;(3)制动风机电机三相信号;(4)各种电机接触器信号。
系统通过输入电路完成对这些信号的调理,向系统主控制电路提供6路模拟量输入及5路数字开关量输入,还提供5路条件标志。
经实验可知,当检测到各路电机对应的模拟量输入电压在0.69V~4.5V之间时,可认为电机发生了过流故障,而且规定的过流故障持续的时间随输入电压范围不同又分为多个不同区段,软件应保证按不同的时间区段对电机进行一次保护;输入电压若在4.5V以上,可认为电机发生了短路故障,在0.5秒的持续时间内,故障一直未消除,则对电机立即实施二次保护控制,防止电机被烧毁;5路数字开关量通道的某路输入出现高电平时,则认为该路电机发生了单相故障,在3秒故障持续时间内故障一直不消失,对电机实施一次保护控制。
无论单相还是过流故障,在对电机一次保护后的0.5秒持续时间内故障仍未消除,则实施二次保护控制。
通过上述手段,能起到监测电力机车辅助系统中的各电机是否正常工作、当出现故障时及时发现并对电机加以保护的作用。
2 系统的硬件和软件设计2.1 系统的硬件设计系统主要由输入调理电路、控制输出部分及显示电路、系统主控制电路组成。
输入信号的调理电路为系统主电路提供多路模拟量及数字开关量输入通道,设计中主要考虑了信号与现场的隔离和抗干扰。
输出电路完成对各电机接触器及主接触器的控制,即能对出现故障的电机实现一次保护或二次保护,并提供各通道电机故障的显示,确保电机的安全。
图1给出了系统的主电路组成图。
图中所示的各路信号分别表示输出通道、故障显示通道、开关数字量输入通道及条件标志输入通道。
2.2 系统的软件设计系统软件采取模块化结构,系统各任务模块在功能上应尽量保持独立。
将各任务模块放在时钟中断服务程序中执行,就可将系统各监测任务所需的各不相同的众多故障持续延时时间转化为执行频率。
2.2.1 数据采集程序的设计以通道0为例,系统利用其片内10位ADC进行模拟量采集的软件初始化程序段如下: .include “8535def.inc”.def count=r14.def flag=r15.def result=r16.def temp=r17.def ac_temp=r18INIT:ldi AL,low(RAMEND)out SPL,ALldi AL,high(RAMEND)out SPH,AL ;初始化堆栈指针ldi count,3 ;设置采集点数clr flag ;清采集标志ldi ZL,$65clr ZH ;设置外部SRAM数据缓冲区首址为$0065Hldi result,$8dout ADCSR,result ;设置ADEN=1,ADSC=0,ADFR=0,ADIF=0,ADIE=0 ;设置ADPS2=1,ADPS1=0,ADPS0=0;使ADC预分频器选择分频系数为16,设置ADC时钟频率为115kHzsbi ADCSR,ADIE ;ADC 中断使能ldi temp,$00 ;选择PA0(模拟通道1)out ADMUX,tempsbi ADCSR,ADSC ;启动ADC转换中断采集程序段如下:ACONVERT:inac_temp,SREG ;临时保存状态寄存器in BL,ADCLin BH,ADCHandi BH,$03st Z+,BL ;保存到数据缓冲区st Z+,BHdec count ;采集点数到否?breq ADC_asbi ADCSR,ADSC ;启动下一次A/D转换rjmp XXADC_a:ldi flag,$aa ;置采集结束标志XX:out SREG,ac_temp ;恢复状态寄存器reti对A/D通道采集的模拟量数据采用防脉冲干扰的中值滤波法。
2.2.2 系统软件的总体设计及实现为了确保系统的实时性,系统的监测扫描时间片设为100ms。
在SRAM区设置标志及内部软件计时器单元,通过设定各路计时单元及计时启动/结束标志,来解决出现短路、过流及单相故障的电机所需的各不同故障持续延时时间,对电机在不同过流范围区段的不同故障持续延时时间也可正确区分并记录。
这样系统就不会因某一任务的延时而影响对系统其它任务的检测,实现了对各路电机监测的实时多任务处理。
另外注意,对于与执行频率无关的模块则可放在主程序中执行。
图2、图3给出了T/C1定时中断服务程序模块及主程序模块的流程框图。
该智能辅保系统样机经过现场调试,目前已投入运营。
实践证明,系统稳定可靠,效果良好。
参考文献1 A VR 8-Bit RISC—Data Sheets.ATMEL Corporation[M].19972 A VR Enhanced Risc Microcontroller Data Book[M],1997。