首页 > 嵌入式电路图 > 单片机制作

AVR的IO端口特性分析:

 

1.jpg

分析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端口的使用注意事项:

如果有引脚末被使用,建议些引脚赋予一个确定电平。最简单的保证未用引脚具有确定电平的方法是使能内部上拉电阻。

如果刚定义了引脚的输入状态,就要立即回读,可以在回读前,插入一句 _nop()。

系统复位时,DDR全部为0,Port也全部为0,故上拉电阻在复位时会失效。

如何用C语言操纵AVR的IO端口(以ICCAVR为例):

举例一:将PB0定义为输出,且输出为高电平

DDRB=BIT(0); //定义 PB0为输出

PORTB|=BIT(0); // PB0 输出高电平

举例二:将PB0、PB1定义为输出,且PB0输出低电平,PB1均为高电平

DDRB|=BIT(0)|BIT(1); //定义 PB0、PB1为输出

PORTB|=BIT(0)|BIT(1); // PB0、PB1 输出高电平

举例三:将PB0数据寄存器的数值翻转,即如果是1时变成0,如果是0时变成1

PORTB^=BIT(0); // PB0 输出高电平

举例四:将PB0、PB1数据寄存器的数值翻转,即如果是1时变成0,如果是0时变成1

PORTB^=BIT(0)|BIT(1); // PB0 输出高电平

举例五:将PB2、PB3定义为输入,不带上拉电阻

DDRB&=~(BIT(2)|BIT(3)); //定义 PB2、PB3为输入

PORTB&=~(BIT(2)|BIT(3)); // 将 PORT 置0,没有上拉电阻

举例六:将PB2、PB3定义为输入,带上拉电阻。即没有引用这些引脚时,缺省值为高电平

SFIOR&=~BIT(PUD); // SFIOR寄存器的上拉电阻控制位PUD置0,在整个代码中,这句话可以不出现,或仅出现一次即可。因为它是一个控制全部上拉电阻的控制位。

DDRB&=~(BIT(2)|BIT(3)); //定义 PB2、PB3为输入

PORTB|=BIT(2)|BIT(3); // 将 PORT 置1,满足上拉电阻的另一个条件

举例七:DDRB=BIT(0)|BIT(1) 与 DDRB|=BIT(0)|BIT(1) 的区别

假定在执行上面两句指令前,DDRB 的状态为: 1000 0000

如果执行 DDRB=BIT(0)|BIT(1) ,DDRB的状态变为: 0000 0011

如果执行 DDRD|=BIT(0)|BIT(1),,DDRB的状态变为: 1000 0011

那前一句会先清空以前的所有状态,后一句保留前面的状态。

在实际应用中,后一句更常用。

举例八:将第三位置1,除了用BIT(3),还有其它的表达方法吗?

DDRB|=BIT(3);

DDRB|=1<<3;

DDRB|=0x08;

DDRB|=0b00001000;

换一批

延伸阅读

[行业资讯] 恩智浦跨界竞争 填补MCU和应用处理器空白

恩智浦跨界竞争 填补MCU和应用处理器空白

近年来,随着物联网的快速发展以及人工智能在边缘计算领域中的应用,系统设计工程师希望采用的嵌入式处理器能够兼具高性能与低成本,同时具有更高的安全性。恩智浦半导体推出创新性的跨界处理器i.MX RT系列,填补了MCU和应用处理器之间空白。恩智浦......

关键字:MCU 应用处理器 恩智浦

[行业资讯] 工业应用正朝着嵌入式处理迈进

工业应用正朝着嵌入式处理迈进

工业应用领域正在不断增长,工业生态系统也始终需要更高的性能和更多样化的处理能力。而这正是Sitara&trade; AM57x处理器系列成为业内众多应用理想处理器解决方案的原因之......

关键字:工业应用 嵌入式

[行业资讯] Marvell在2014年消费电子展上展出全新Kinoma应用平台

Marvell在2014年消费电子展上展出全新Kinoma应用平台

21ic讯 全球整合式芯片解决方案的领导厂商美满电子科技(Marvell,纳斯达克代码:MRVL)于今日展示了其Kinoma&reg; 开源软件平台。该平台进行了全面优化,专用于支持联网的高......

关键字:Marvell 消费电子展 Kinoma 应用平台

[行业资讯] 2013年Q3平板应用处理器排名

2013年Q3平板应用处理器排名

Strategy Analytics手机元器件技术 (HCT) 服务发布最新研究报告《2013年Q3平板应用处理器市场份额:高通升至非iPad平板市场第一名》指出,2013年Q3全球平板处理器市场与去年......

关键字:平板 应用处理器

[行业资讯] 无处不在,高效应用

无处不在,高效应用

您知道吗?距离和位置不应是应用性能的瓶颈。创新的技术帮助IT部署无处不在的高效应用,正颠覆改变着我们的工作和生活方式。《位置无关计算》这一新概念包括三个方面的含义:......

关键字:数据中心 多层应用 SaaS 云计算

[真心话] 电子工程师安身立命的八大看家本领,你学会了几个?

电子工程师安身立命的八大看家本领,你学会了几个?

作为一个电子工程师(electronic engineer)必备技能:抄板,焊板,画板,仿真,编程,调试,创意,坚持。八大技能,你几级了?......

关键字:电子工程师

[新鲜事] 科学家证实:最早拥有自我意识的物种竟然是海豚!

科学家证实:最早拥有自我意识的物种竟然是海豚!

近期,研究人员发现宽吻海豚(bottlenose dolphin)是自我意识出现最早的物种,甚至比人类和黑猩猩还要早。......

关键字:海豚
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi&#174;和蓝牙&#174;combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14