找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1424|回复: 1
收起左侧

16个按钮扫描亮灯单片机程序问题

[复制链接]
ID:820198 发表于 2021-3-11 11:18 | 显示全部楼层 |阅读模式
小白写子函数写不下去了,网上找的仿真图,每个按键亮对应位置的段码灯,有大哥指导一下思路吗?
#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
#define key P1
#define dmg1 P2
#define dmg2 P3
void delay(uint xms)
{
        uint i,j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
}
uchar Keys()
{
        uchar Keym;
        key=0xf0;
        if(key!=0xf0)
        {
                delay(10);
                        if(key!=0xf0)
                        {
                                key=0xfe;
                                        if(key!=0xfe)
                                        {
                                                Keym=key;
                                                delay(10);
                                                while(key!=0xfe);
                                                return Keym;                        
                                        }
                        }
                                key=0xfd;
                                        if(key!=0xf0)
                                        {
                                                delay(10);
                                                        if(key!=0xfd)
                                                        {
                                                                Keym=key;
                                                                delay(10);
                                                                while(key!=0xfd);
                                                                return Keym;
                                                        }
                                        }
                                 key=0xfb;
                                         if(key!=0xfb)
                                        {
                                                delay(10);
                                                if(key!=0xfb)
                                                {
                                                        Keym=key;
                                                        delay(10);
                                                        while(key!=0xfb);
                                                        return Keym;
                                                }
                                        }
                                 key=0xf7;
                                         if(key!=0xf7)
                                        {
                                                delay(10);
                                                if(key!=0xf7)
                                                {
                                                        Keym=key;
                                                        delay(10);
                                                        while(key!=0xf7);
                                                        return Keym;
                                                }
                                        }
        }
        return 0xff;
}
uchar Keyz()
{
        uchar i;
        switch(Keys())
        {
                case 0x7e:return dmg1;break;
                case 0x7d:return dmg1;break;
                case 0x7b:return dmg1;break;
                case 0x77:return dmg1;break;
                case 0xbe:return dmg1;break;
                case 0xbd:return dmg1;break;
                case 0xbb:return dmg1;break;
                case 0xb7:return dmg1;break;
                case 0xde:return dmg2;break;
                case 0xdd:return dmg2;break;
                case 0xdb:return dmg2;break;
                case 0xd7:return dmg2;break;
                case 0xee:return dmg2;break;
                case 0xed:return dmg2;break;
                case 0xeb:return dmg2;break;
                case 0xe7:return dmg2;break;
        }
}

0cd071db22d968bd7e10cc5cdc054d8.png
回复

使用道具 举报

ID:739545 发表于 2021-3-11 15:12 | 显示全部楼层
矩阵键盘巡检,不知道要问什么问题,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表