AVR 学习笔记------AVR的I/O端口及其使用

来源:互联网 发布:倩碧眼部精华滚珠知乎 编辑:程序博客网 时间:2024/04/29 16:14

        AVR的I/O端口是作为同用的数字输入输出端口使用,所有端口均具有读,修改和写的功能,端口引脚有与电压无关的上拉电阻,可

以通过I/O端口寄存器进行配置。

       每个端口有三个寄存器,分别为PORTx,PINx和DDRx,即数据寄存器,端口输入引脚和数据方向寄存器。PORTx和DDRx为读写寄存器,PINx为只读寄存器。

        各个寄存器的配置例子如下:

        DDRA = 0xF0;    //此语句将PORTA的PA0~PB3设置为输入,PA4~PA7设置为输出

 

        DDRA = 0xFF;    //设置PA口为输出

        PORTA = 0xF2;    //初始输出为11110010

 

        DDRB = 0x00;    //将PB0~PB7设置为输入

        PORTB = 0xF0;    //PB0~PB3位不设上拉电阻,无信号输入时候为高阻态,PB4~PB7位设上拉电阻,无信号输入时候为高电平

 

        DDRB = 0x00;

        PORTB = 0xFF;

        temp = PINB;    //将PB引脚信号读入到变量temp中

 

毫秒延时函数的编写:

                         

 

    其中参数570要根据芯片的时钟源计算得到。计算方式为:实际延时时间=570*(1/f)*k     参数570 根据上公式计算

    LED灯闪烁控制部分程序

                         

   

    数码管显示实例:

    按键S1连接到PD4,S2连接到PD5,PA0~PA7连接段码LED的a~g,PC0~PC7连接各个LED的位选,S1按下数码管个位,十位输出以加法模式输出00~99,按S2以减法模式输出。

 

                          

 

    LED动态显示时钟例子:

     

                 

                                                                                                                                     2011-03-2217:14:26