打印
[Atmel]

用AtmelStudio6.2跑mega16例程(31)键控LED

[复制链接]
711|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 ddllxxrr 于 2014-10-9 20:53 编辑

本程序通过四个按键来控制两排LED的显示,每次只有一个灯亮。

分别控制着第一排的上下和第二排水的上下。

程序如下:

/*
* GccApplication14.c
*
* Created: 2014-10-9 20:27:09
*  Author: Administrator
*/

#define  F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <stdint.h>

int8_t i=0,j=0;

void Move_LED()
{
   if((PINB &0x01)==0x00) i= (i-1) & 0x07;
   else if ((PINB & 0x02)==0x00) i=(i+1) &0x07;
   else if ((PINB & 0x04)==0x00) j = (j-1)&0x07;
   else if ((PINB & 0x08)==0x00) j = (j+1)&0x07;
   
   PORTC = ~(1<<i);
   PORTD = ~(1<<j);
}

int main(void)
{
    int8_t Recent_Key = 0x00;
        DDRB = 0x00;PORTB=0xFF;
        DDRC = 0xFF;PORTC=0xFE;
        DDRD = 0xFF;PORTD=0xFE;
        while(1)
    {
        if(PINB!= Recent_Key)
                {
                   Recent_Key = PINB;
                   Move_LED();
                   _delay_ms(10);
                }
    }
}
仿真截图:



编译通过截图:



相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6956

帖子

67

粉丝