说明AVR单片机I/O口3个寄存器的名称和作用是什么?当I/O口用于输入和输出时,如何设置和应用这3个寄存器?
楼主你好:
AVR单片机的每组I/O口都配备有三个8位寄存器,分别是:方向控制寄存器DDRx、数据寄存器PORTx、输入引脚寄存器PINx(x=A/B/C/D).I/O口的工作方式和表现特征由这三个I/O寄存器控制。
方向控制寄存器DDRx用于控制I/O口的输入输出方向,及控制I/O口的工作方式为输出方式还是输入方式。
DDRx=1时,I/O口处于输出工作方式;此时数据寄存器PORTx中的数据输出到外部引脚。
DDRx=0时,I/O口处于输入工作方式;此时输入引脚寄存器PINx中的数据就是外部引脚的实际电平,通过读I/O指令可将物理引脚的真实数据读入MCU。
此外,当I/O口定义为输入时(DDRx=0),通过PORTx的控制,可使用或不使用内部的上拉电阻。
楼主你好:
AVR单片机的每组I/O口都配备有三个8位寄存器,分别是:方向控制寄存器DDRx、数据寄存器PORTx、输入引脚寄存器PINx(x=A/B/C/D).I/O口的工作方式和表现特征由这三个I/O寄存器控制。
方向控制寄存器DDRx用于控制I/O口的输入输出方向,及控制I/O口的工作方式为输出方式还是输入方式。
DDRx=1时,I/O口处于输出工作方式;此时数据寄存器PORTx中的数据输出到外部引脚。
DDRx=0时,I/O口处于输入工作方式;此时输入引脚寄存器PINx中的数据就是外部引脚的实际电平,通过读I/O指令可将物理引脚的真实数据读入MCU。
此外,当I/O口定义为输入时(DDRx=0),通过PORTx的控制,可使用或不使用内部的上拉电阻。
DDRA是数据方向寄存器,用来选择引脚的方向,某位为1配置为输出,某位为0配置为输入。
DDRA相应位输出,PORTA用来设置端口电平。
DDRA相应位输入,PORTA配置上拉电阻,为1带上拉电阻,为0不带上拉电阻。
输出:
DDRA=0xFF;//全作输出,设置一次即可
PORTA=0xFF;//全为1,全输出高电平
PORTA=0;//全为0,全输出低电平
输入:
DDRA=0;//全作输入,设置一次即可
PORTA=0xFF;//全带上拉电阻,设置一次即可
PORTA=0;//全不带上拉电阻,设置一次即可
a=PINA;//读A口。不论何时都可以读PINA来获得端口电平,不过因为锁存会有延时
注意,因为一个端口有8个引脚(少数不够8个脚),所以可以精确控制某一位或者某几位而不影响别的位。
DDRA|=1;//A口第0位变成输出,不影响别的位,也不管第0位原来是输出还是输入
DDRA&=~1;//A口第0位变成输入,不影响别的位,也不管0位原来是输出还是输入
PORTA类似
a=PINA;//一次读8个引脚状态,在程序中再处理a的相应位好了。
当I/O口使用,有输入/输出,还有第二功能:带上拉功能,中断,定时,ADC等等。
当用作输入时:以PA口为例
DDRA=0XFF,就为输出作用。就可以输出高、低电平
DDRA=0X00,就为输入作用。例如:开关检测
带上拉功能:DDRA=0x00,PORTA=0xff,带上拉电阻功能
AVR单片机 I\/O口 如何配置?有几种方法?
两种方法。BIT(X)是宏定义的,等效于(1 << x),意思是将引脚x置位,DDRA |= BIT(X),就是将A口的第X引脚置位,即设为输出,相反DDRA &= ~BIT(X),就是将A口第X为清零,即设为输入。上面两种可以写成DDRA |= (1<<X),DDRA &= ~(1<<X),它们都是设置某一位而不影响其他引脚,而...
Avr单片机中,语句,i|=(1<<7)大概是什么意思?
最通俗的理解:将原来i的第7位置1,再加上原来i的值。比如:原来i的值如果是0000 1111,加上第7位置1的值1000 1111,i最后的值等于1000 1111。
高档AVR单片机原理及应用内容简介
本书以ATmega系列嵌入式单片机为核心,深入剖析其高级AVR单片机的构造原理和指令系统,涵盖了汇编语言程序设计的详细讲解。通过对SRAM、FLASH、E2PROM存储器、中断系统、I\/O端口、定时器\/计数器、A\/D和D\/A转换器、AC比较器、USART、SPI和TWI等片内功能模块的深入剖析,展示了它们的结构、工作原理和实际...
有几个关于AVR单片机的I\/O问题想请教一下各位大侠!
我一直用avr 的单片机:PINx直接和外部引脚连接的,外面是什么电平,读到的就是什么!即使你把IO设置成输出1,外部强制接地,读到的也是0!老兄你技术手册不看啊?(例如:atmega8中手册里的 IO端口,有图解的,很好理解)高阻态可以看做悬空状态,是自己内设置成悬空,如果外部没有连接的话,读到...
单片机配置AVR单片机I\/O口 下图求解谢谢
首先方向设置为DDRC 不是DDPC,既然是输入,那电平值取决于外部电路, PORTC不需要设置,既然楼主说了接上拉电阻,那初始的电平值肯定是1了,通过外部电路导致电平拉低,可以用PINC读取到0;配置:DDRC=0X1F;或者 DDRC =(1<<DDC 0| 1<<DDC1 | 1<<DDC2 | 1<<DDC 3| 1<<DDC4 );
零基础学AVR单片机图书目录
第二篇转向AVR单片机的结构与编程。第3章深入解析C语言在AVR编程中的运用,帮助读者掌握基础编程技巧。第4章至第8章逐个剖析ATmega6单片机的内部结构、指令系统、I\/O端口、中断系统、复位和睡眠模式设置,逐步提升理解层次。第三篇着重于模块功能的讲解。第9章和第10章分别介绍了定时器\/计数器0和1的...
AVR 16单片机的I \/O 口默认启动状态是什么?求解答。
AVR单片机上电复位后I\/O口的默认初始状态为:三态高阻输入状态(内部上拉无效),因此,用户自己要根据需要对I\/O口进行初始化配置。
AVR 单片机的I\/O口可以直接驱动LED吗? I\/O口的输出电压是多少?最大电...
可以的 输出是5V 最大电流应该能达到40ma
高档AVR单片机原理及应用习题与实验指导目录
以下是关于高档AVR单片机原理及应用的习题与实验指导目录,详细解析了各个部分的内容:第1章深入理解ATmega8:1.1节:剖析ATmega8的内部结构,通过习题解答帮助您掌握核心知识点。1.2节:探讨ATmega8的MCU内核,通过习题解析其工作原理。1.3节:讲解ATmega8的指令系统,通过习题练习提升编程技能。1.4节:汇编...
AVR单片机I\/O口工作在输入方式时
如果没有上拉电阻那么引脚的电平处于不确定状态,引脚处于高阻状态。上拉有效就把引脚电平拉高,使它有确定的电平状态。比如做输入检测时,检测外部的低电平,就需要用到内部的上拉电阻,这样如果引脚被外部拉低就说明有外部信号,否则没有
夹黄莱亿: 这个问题应该自己去看芯片手册 上面写的很清楚: http://www.atmel.com/dyn/products/product_docs.asp?category_id=163&family_id=607&subfamily_id=760&part_id=2018 大体上:PINA 就是用来读取IO口当前状态的寄存器 DDRA 就是定义输入还是输出的寄存器 PORTA 就是用来改变IO口状态的寄存器 具体的用法可参考芯片手册,上面有详细的列子.
甘洛县13796919211: avr单片机的寄存器有哪些? - ?
夹黄莱亿: AVR单片机每一个I/O口都对应3个寄存器DDRx,PORTx和PINx,其中DDRx为数据方向,即输入或输出;PORTx为将内部上拉电阻的状态,PINx为读取的外部引脚的状态.以下是三者对应关系:(假设DDRx.n,PORTx.n如下,PINx.n悬空)0 0 x : 输入, 高阻态, PINx.n的值不确定.0 1 1 : 输入, 上拉, 值为1.1 0 0 : 输出0, 无拉.1 1 1 : 输出1, 上拉 这是我大学学到的 应该没问题
甘洛县13796919211: avr单片机I/O口用于输入输出3个寄存器怎么设置?
夹黄莱亿: 以AVR atmega16为例 //ICC-AVR application builder : 2010-4-14 17:07:17 // Target : M16 // Crystal: 4.0000Mhz #include <iom16v.h> #include <macros.h> void port_init(void) { PORTA = 0xFF;//状态上拉 DDRA = 0x00;//PORTA输入 ...
甘洛县13796919211: AVR单片机简介?
夹黄莱亿: 单片机又称单片微控制器,它是把一个计算机系统集成到一个芯片上,概括的讲:一块芯片就成了一台计算机.单片机技术是计算机技术的一个分支,是简易机器人的核心元件.1997年,由ATMEL公司挪威设计中心的A先生与V先生利用ATMEL公司的Flash新技术, 共同研发出RISC精简指令集的高速8位单片机,简称AVR. AVR单片机的优势特征: 一、简便易学,费用低廉二、高速、低耗、保密 三、I/O口功能强,具有A/D转换等电路四、有功能强大的定时器/计数器及通讯接口
甘洛县13796919211: AVR单片机I/O口工作在输入方式时 - ?
夹黄莱亿: 如果没有上拉电阻那么引脚的电平处于不确定状态,引脚处于高阻状态.上拉有效就把引脚电平拉高,使它有确定的电平状态.比如做输入检测时,检测外部的低电平,就需要用到内部的上拉电阻,这样如果引脚被外部拉低就说明有外部信号,否则没有
甘洛县13796919211: avr单片机的IO口怎么配置 那位大虾帮帮忙 小弟感激不尽 - ?
夹黄莱亿: 能具体一些吗?配置IO有3个寄存器 PORTx DDRx PINx 例如PA口的话, DDRA 是判断PA口的输入输出状态,哪一位为1,即为输出,0即为输入PORTA 是控制输入输出值的.如果DDRA的某一位或几位是输入状态的话,PORTA相应的位如果为1,则相应位的IO端口是有内置上拉电阻的输入,如果PORTA相应位是0的话,则相应位的IO端口是高阻态.如果DDRA的某一位或几位是输出状态的话,PORTA相应位是1的话,就说明相应位的IO口输出高电平;如果PORTA相应位是0的话,就说么相应位的IO口输出低电平.而PINA的意思就是,采集PA口8位寄存器当前的电平状态
甘洛县13796919211: avr单片机,为什么avr对单个io口的操作不能像51那样,51可以写p1.5,avr却不行, - ?
夹黄莱亿: 不是不可以.应该是你用的是C编译器不支持位定义.一般用标准的c位操作是这样的:1、位置1:P1^=(1<<5);2、位清0:P1&=~(1<<5); 至于你说的mega16不能对portAB操作,那是不可能的,应该是你程序有问题吧!
甘洛县13796919211: AVR 单片机的IO口寄存器?
夹黄莱亿: #define PB7 7 #define PB6 6 PB就是port B啊 B端口 B端口有8个脚 分别对应B端口寄存器的八位 左移7位那就是 B端口寄存器的最高位 就是B端口第7脚的位罗
甘洛县13796919211: avr单片机的原理和特点 - ?
夹黄莱亿: 这个问题太模糊,单片机的原理说起来可长可短,并且你要说它的特点,得找一个对比对象,所以你这个问题很难回答. 找一个AVR芯片的说明文档,把第一页抄下来,这就是这个单片机的特点,然后把内部框图复制下来,就是其原理.
甘洛县13796919211: AVR单片机有哪些特点及优点 - ?
夹黄莱亿: 相对于传统C51来说还是挺不错的,但是就现在来说各大公司层出不穷的各类芯片来说优势并不明显,意法的Stm32性能强大(毕竟32位)、性价比也很不错,Ti的430有名的抗干扰能力强(16位),Silicon的低功耗(目前我知道功耗低做的比较好的),这么看来AVR单片机的优势没那么明显,总和来看也还算可以,avr最近几年没听过有什么重大突破(可能是我见识比较少吧),市场占有率也不是很大.太突出的优点我也不知道.唉~AVR有些没落了.硬要说的话——抗干扰性~...........(编不下去了),并不是黑~,毕竟早些年也用过~