AVR技术william hill官网
直播中

zhangtaotao71

12年用户 393经验值
擅长:嵌入式技术
私信 关注
[AVR问答]

Atmage16 proteus 3 按键

相关寄存器:DDRD,DDRB方向寄存器。PORTB,PORTD。
PINB(PINA,PINC,PIND)数据输入寄存器。当方向寄存器设置为输入时,此时PINB起作用,用来保存当前引脚的状态
说明:利用按键来改变B0口的状态。然后通过数据输入寄存器,来读取当前引脚的状态。
51单片机中的IO口是不分为输入和输出的。所以直接读取引脚的状态即可。而在AVR中,首先需要设置为输入状态。然后设置数据寄存器为高--就是为了使能内部的上拉电阻。
#include
void gpio_init(void)//端口初始化
{
   DDRD=0xff;//将D0口设置为输出
   DDRB=0xfe;//11111110将B0口设置为输入
   PORTB=0xff;//B0口的上拉使能,端口状态在外部不改变时始终处于高
   DDRD=0xff;//初始化D端口都为高
}
void main(void)
{
   gpio_init();//端口的初始化
   while(1)
    {
    if(!(PINB&0x01))//判断D0口的状态,如果按键按下,输入为低
      {
       PORTD=0xfe;//点亮LED
      }
    while(!(PINB&0x01));//判断按键是否松开。没松开则停留在此循环中。
    PORTD=0xff;//当松开时灭LED
    }
}
  • 捕获f.PNG
  • 捕获s.PNG

回帖(4)

hua2002

2013-10-31 09:36:44
{:20:}{:20:}
举报

hua2002

2013-11-15 16:24:23
{:20:}{:20:}
举报

583854536

2013-12-7 11:35:45
学习了学习了学习了学习了
举报

daxiong506

2013-12-7 13:32:06
习了学习了习了学习了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分