key4x4.h

来自「此为4*4扩展键盘程序」· C头文件 代码 · 共 61 行

H
61
字号
//延时
void s_ms(unsigned int t)
{
    for(;t>1;t--)
    {
    }
}

//读取键盘
//PC口作为键盘输入
unsigned char key_value()
{
    unsigned char tem1,tem2,rem,i ;
    rem=0 ;
    //不清零会返回一个不可预知的数
    DDRC=0xf0 ;
    //c口高四位输出 低四位输入
    PORTC=0x0f ;
    //输入有上拉电阻
    s_ms(30);
    tem1=PINC ;
    //读取端口c
    tem1=tem1&0x0f ;
    //判断是否有键被按下
    if(tem1!=0x0f)
    {
        s_ms(800);
        //延时
        tem2=PINC ;
        //读取端口c
        tem2=tem2&0x0f ;
        //判断是否为干扰
        if(tem1==tem2)
        {
            DDRC=0x0f ;
            //c口高四位输入 低四位输出
            PORTC=0xf0 ;
            //反相输出
            s_ms(1);
            //换向后要延时
            rem=PINC ;
            //读取端口c
            rem=rem&0xf0 ;
            //取高四位 
            rem=rem+tem1 ;
            //合并
            rem=~rem ;
            //反向输出
            //判断按键是否被释放
            do 
            {
                PORTC=0xf0 ;
                s_ms(3000);
            }
            while(PINC!=0xf0);
        }
    }
    s_ms(6000);
    s_ms(6000);
    return(rem);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?