首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
按键扫描程序
来源:本站整理  作者:佚名  2011-02-05 21:46:07



********************************************************************************
*  描述:                                                                       *
*         按键扫描程序                                                         *
*         上电时, 点亮P00口LED                                                 *
*         按下K1时, LED向右移一位                                              *
*         按下K2时, LED向左移一位                                              *
*******************************************************************************/

#include <reg51.h>
#include <intrins.h>


sbit    K1 = P3^2;
sbit    K2 = P3^3;

unsigned char sCAN_key()
{
    unsigned char key_s;
    key_s = 0x00;
    key_s |= K2;
    key_s <<= 1;
    key_s |= K1;
    return key_s;        
}

void proc_key(unsigned char key_v)
{
    if((key_v & 0x01) == 0)
    {
        P0 = _cror_(P0,1);
    }
    else if((key_v & 0x02) == 0)
    {
        P0 = _crol_(P0, 1);
    }
}

void delayms(unsigned char ms)    // 延时子程序

{                        
    unsigned char i;
    while(ms--)
    {
        for(i = 0; i < 120; i++);
    }
}



main()
{
    
    unsigned char key_s,key_v;
    key_v = 0x03;
    P0 = 0xfe;
    while(1)
    {
        key_s = scan_key();
        if(key_s != key_v)
        {
            delayms(20);
            key_s = scan_key();
            if(key_s != key_v)
            {    
                key_v = key_s;
                proc_key(key_v);
                delayms(150);    
            }
        }
    }    
}


关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:22,750.00000 毫秒