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时间),灯闪了一下,眼睛无法察觉



     

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

  • 相关阅读:
    ZOJ 1002 Fire Net (火力网)
    UVa OJ 117 The Postal Worker Rings Once (让邮差只走一圈)
    UVa OJ 118 Mutant Flatworld Explorers (变体扁平世界探索器)
    UVa OJ 103 Stacking Boxes (嵌套盒子)
    UVa OJ 110 MetaLoopless Sorts (无循环元排序)
    第一次遇到使用NSNull的场景
    NSURL使用浅析
    从CNTV下载《小小智慧树》
    NSDictionary and NSMutableDictionary
    Category in static library
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4681019.html
Copyright © 2011-2022 走看看