关闭
关闭
首页 > 嵌入式硬件 > 总线与接口
AVR的IO端口特性分析:本文引用地址: http://embed.21ic.com/hardware/can/201712/49880.html  
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;
换一批

延伸乐虎国际娱乐手机版

[新鲜事] 50万网友“被关注”新总统推特账号,推特CEO致歉

50万网友“被关注”新总统推特账号,推特CEO致歉近日外媒报道,很多推特用户自动“被关注”了美国总统特朗普的账号@POTUS,而他们之前根本没有关注过这一账号。......关键字:推特 特朗普 @POTUS

[新鲜事] 福特新专利:在电动汽车B柱上嵌入一排按键 可显示剩余电量

福特新专利:在电动汽车B柱上嵌入一排按键 可显示剩余电量福特有一项在汽车 B 柱上嵌入按键的特殊设计,部分车主也对此表示了欢迎。但在获得了一项新专利之后,其有望迎来某些附加技能。这项专利描述了一种在电动汽车 B 柱上嵌入一排按键的设计,而它的另一功能是显示车子的剩余电量(或者充电百分比)。当然,......关键字:福特 电动汽车

[猎聘集] 凭什么新来的拿的工资比我多?我为公司付出了这么多!

凭什么新来的拿的工资比我多?我为公司付出了这么多!人才市场的雇佣关系,就跟消费市场的买卖关系一模一样啊。你说凭什么我隔壁的店店租便宜,我现在交房租贵呢?因为你确实来得晚啊。如果真的追求公平,每年公司跟随市场价不断涨薪,那成本会是难以想象得高。而对大多数老员工来说,适当的薪资普调和奖金,完全......关键字:公司 HR 工资 薪资结构

[新鲜事] 索尼曝光五款新机,MWC大会上见!

索尼曝光五款新机,MWC大会上见!据报道,索尼在接下来会带来更激进的新品。......关键字:MWC 索尼 手机
条评论

我 要 评 论

网友评论

大家都爱看

  • 华为的优势,就是自家的各种自研芯片

    CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
    2017-08-16
  • 你不知道Ryzen芯片有多火?来看看AMD的股票吧

    据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。

    2017-08-16
  • 国产芯片:厚积薄发,强势崛起

    关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边… 2017-08-16
  • 为了数据安全 大疆无人机增加隐私飞行功能

    大疆周一表示,在美国陆军因为“网络缺陷”而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot… 2017-08-15
  • Intel代工 展讯发布14nm SC9853I手机SoC

    SC9853I采用的Intel的14nm FinFET制程,架构为8核64位Airmont架构,主频1.8GHz,GPU为Mali-T820 MP2,号称面向799~1299元档次的手机。… 2017-08-15