打印
[Atmel]

用AtmelStudio6.2跑mega16例程(14):查询按键

[复制链接]
900|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
这个程序一看就明白,8个按键每按下一个显示想应的数字。

以下是protel仿真的结果。


以下是Studio 6.2跑通的程序:

/*
* GccApplication21.c
*
* Created: 2014-9-15 18:52:56
*  Author: Administrator
*/


#include <avr/io.h>
#define uchar unsigned char
#define uint unsigned int
uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,  //共阳极LED  0~F的段码
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
void delay(uint n)
{   uint i;
        for(i=0;i<n;i++);
}
int main(void)
{
        uchar key;
        DDRC=0xFF;
        PORTC=0xFF;
        DDRD=0x00;
        PORTD=0xFF;
        while(1)
        {
                while(PIND==0xFF);                //等待键按下
                {
                        delay(2500);                    // 延时出去抖动
                        while(PIND==0xFF);
                        {
                                key=PIND;                         //读取键值
                                switch(key)
                                {
                                        case 0xfe :   PORTC=tab[1]; break;
                                        case 0xfd :   PORTC=tab[2]; break;
                                        case 0xfb :          PORTC=tab[3]; break;
                                        case 0xf7 :   PORTC=tab[4]; break;
                                        case 0xef :   PORTC=tab[5]; break;
                                        case 0xdf :   PORTC=tab[6]; break;
                                        case 0xbf :   PORTC=tab[7]; break;
                                        case 0x7f :   PORTC=tab[8]; break;
                                }
                        }
                }
        }
}


相关帖子

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

本版积分规则

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

2398

主题

6953

帖子

67

粉丝