51单片机求大神指导

2019-07-15 13:36发布

//
k1 k2 k3三个按键分别控制3个不同的led点亮方式,求大神指导,到底哪里错了,在松开按键的时候led7 led6 led5 led4这4个灯会闪亮一下
//
#include<reg51.h>
#include <intrins.h>
sbit k1=P0^0;
sbit k2=P0^1;
sbit k3=P0^2;
unsigned char key_s;
unsigned char key_v;
void proe_key(unsigned char key_v);
unsigned char scan_key();
void delayms(unsigned char ms);

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

unsigned char scan_key()
{
unsigned char key_s;
key_s=0x00;
key_s|=k3;
key_s<<=2;
key_s|=k2;
key_s<<=1;
key_s|=k1;
return key_s;
}
void proe_key(unsigned char key_v)
{
        if((key_v&0x01)==0)
                {       
                         P2=0Xff;
                         delayms(100);
                         P2=0x00;
                         delayms(100);
                       
                }
        if((key_v&0x02)==0)
                {                         
                         P2=0X0f;
                         delayms(100);
                         P2=0xff;
                         delayms(100);       
                }
        if((key_v&0x04)==0)
                {
                         P2=0Xf0;
                         delayms(100);
                         P2=0x00;
                         delayms(100);
                }

}

void main()
{                 
        key_v=0x07;
        P2=0xff;
        //P0=0x00;
        while(1)
        {
                key_s=scan_key();
                if(key_s!=key_v)
                {
                delayms(10);
                key_s=scan_key();
                        if(key_s!=key_v)
                        {
                        key_v=key_s;
                        delayms(300);
                        proe_key(key_v);
                        }
                }
        }
}       

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
54113589
1楼-- · 2019-07-15 17:15
求解答 可给报酬
himol
2楼-- · 2019-07-15 21:38
没搞明白你想表达什么。。。。。你说的按键控制方式,你想怎么控制。
54113589
3楼-- · 2019-07-16 01:40
himol 发表于 2016-6-20 11:55
没搞明白你想表达什么。。。。。你说的按键控制方式,你想怎么控制。

我想用单片机编一个程序,只用到输入输出口,不需要外部数据采集,不需要显示,就是一个简易的PLC,我是初学者不懂,我有逻辑图
54113589
4楼-- · 2019-07-16 03:22
 精彩回答 2  元偷偷看……
langzitianya
5楼-- · 2019-07-16 06:58
附件是需要积分的,我的积分啊!

一周热门 更多>