zoukankan      html  css  js  c++  java
  • ATMEGA16 IOport相关汇总

    ATMEGA16 IOport总的共同所有权有关的寄存器有三个DDRX、PORTX和PINX。

    假设你想IO动作基本上与这三个寄存器操纵。DDRX也被称为数据方向寄存器、PORTX所谓数据寄存器、PINX叫port输入引脚。

    DDRX的作用:

    当DDRX = 0时。表示的是某port的引脚为输入;当DDRX = 0xff时表示某port的引脚为输出。

    引脚的状态:输入或者输出是依据什么定义的呢?

    是依据高低电平是输入单片机还是从单片机输出。输入是指:不属于单片机的外部的电平输入到单片机;输出是指:单片机的电平输出到单片机的外部。

    PORTX的作用:

    当DDRX = 0时,若把PORTX置位则表示启动了上拉电阻;若PORTX为0,则不启动上拉电阻。当DDRX = 0xff时,若把PORTX置位则表示输出高电平;若PORTX为0,则输出低电平。

    PINX的作用:

    PINX寄存器的值与DDRX寄存器的值(输入还是输出)没有不论什么关系;仅仅与port引脚上面的值有关系(PORTX)。假设PORTXn = 0xdd,则不管DDTX取什么样的值。其PINX都为0Xdd。

    #include <avr/io.h>
    #include <util/delay.h>
    
    int main(void)
    {
       uint8_t temp;
       DDRC = 0xff;
       PORTC = 0xff;
    
       DDRA = 0;
       PORTA = 0xdd;
    
       asm("nop");//汇编指令nop,即空操作。其运行时间为一个时钟周期
       PORTC = PINA;
    
        return 0;
    }
    

    当中不管DDRA的值是0还是0xff。结果都是一样的。

    因此也能够得出一个结论:PINX寄存器里的值是能够依照自己的意愿设定的。原因是单片机能捕捉port的电平,并置位PINX寄存器。

    初始值问题:

    单片机刚上电后。port上的寄存器的初始值是什么?

    上电后,默认的初始值为0。即DDRX= 0;PORTX = 0。PINX =  0;

    #include <avr/io.h>
    #include <util/delay.h>
    //#include<intrins.h>
    
    int main(void)
    {
       uint8_t temp;
       DDRC = 0xff;
       PORTC = 0xff;
    
       //DDRA = 0;
       //PORTA = 0xdd;
    
       asm("nop");//汇编指令nop,即空操作。其运行时间为一个时钟周期
       //_nop();
       PORTC = PINA;
    
        return 0;
    }
    

    初始化方法1:
          PORTA=0xFF;    //内部上拉,高电平

         DDRA=0xFF;     //输出高电平---------灯一直是灭的

      初始化方法2:

          DDRA=0xFF;     //输出低电平--------灯被错误点亮了

         PORTA=0xFF;    //输出高电平--------立即被熄灭了,时间非常短(1个指令不到uS时间),灯闪了一下,眼睛无法察觉



     

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    Oracle 分区表管理之组合分区(分区索引失效与性能比较以及12.2c分区表新特性)
    博客搬家了
    Java中文件操作
    Java中的LinkedList介绍
    Android数据缓存
    Android QQ空间浏览图片动画特效的实现(※)
    关于android中线性布局的layout_gravity属性
    Android中AutoCompleteTextView的使用
    Android中GridView使用总结
    Android实现自适应正方形GridView(陌陌引导页面效果)
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4681019.html
Copyright © 2011-2022 走看看