找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5971|回复: 6
打印 上一主题 下一主题
收起左侧

[求助]一个按键程序

[复制链接]
跳转到指定楼层
楼主
ID:12195 发表于 2009-5-7 21:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

各位朋友能不能帮我用C语言编译这样的一个程序;
     

按K1,延时一段时间,数码管显示01。

按K2,延时一段时间,数码管显示02

按K3,延时一段时间,数码管显示03

按K4,延时一段时间,数码管显示04

按K5,延时一段时间,数码管显示05

按K6,延时一段时间,数码管显示06

按K7,延时一段时间,数码管显示07

按K8,延时一段时间,数码管显示08

按K9,延时一段时间,数码管显示09

按K10,延时一段时间,数码管显示10

按K11,延时一段时间,数码管显示11

按K12,延时一段时间,数码管显示12 
谢谢

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:13782 发表于 2009-6-4 16:52 | 只看该作者
 那得先看一下硬件图纸才能再写一下的。另外,这些功能一个键就行了,为什么还要用12个键,在单片机系统中资源很宝贵的噢。

回复

使用道具 举报

板凳
ID:61326 发表于 2014-5-4 11:30 | 只看该作者
我也来做做
回复

使用道具 举报

地板
ID:59151 发表于 2014-5-13 00:48 | 只看该作者
要对应硬件线路才能写呀,要不就是硬件受制于软件了,不划算吧?嘿嘿………………程序是不难的
回复

使用道具 举报

5#
ID:48413 发表于 2014-7-15 21:09 | 只看该作者
回复

使用道具 举报

6#
ID:63778 发表于 2014-7-16 18:15 | 只看该作者
用矩阵键盘扫描来做 我的板子是郭天祥的
回复

使用道具 举报

7#
ID:63778 发表于 2014-7-16 18:15 | 只看该作者
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
void delay(uint);
void display(uchar);
void keyscan();
uchar code table[]=
{
        0x3f,0x06,0x5b,0x4f,
        0x66,0x6d,0x7d,0x07,
        0x7f,0x6f,0x77,0x7c,
        0x39,0x5e,0x79,0x71

};
void main()
{       
        dula=1;
        P0=0;
        dula=0;
        wela=1;
        P0=0xc0;
        wela=0;

        while(1)
        {
                keyscan();
               
        }

}
void display(uchar num)       
{
        dula=1;
        P0=table[num];
        dula=0;
        P0=0xff;
}
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void keyscan()
{       
        uchar temp ,key;
        P3=0xfe;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delay(10);
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xee:
                                                        key=0;
                                                        break;
                                case 0xde:
                                                        key=1;
                                                        break;
                                case 0xbe:
                                                        key=2;
                                                        break;
                                case 0x7e:
                                                        key=3;
                                                        break;
                               
                        }
               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                        display(key);
                }
        }




        P3=0xfd;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delay(10);
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xed:
                                                        key=4;
                                                        break;
                                case 0xdd:
                                                        key=5;
                                                        break;
                                case 0xbd:
                                                        key=6;
                                                        break;
                                case 0x7d:
                                                        key=7;
                                                        break;
                               
                        }
               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                        display(key);
                }
        }


        P3=0xfb;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delay(10);
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xeb:
                                                        key=8;
                                                        break;
                                case 0xdb:
                                                        key=9;
                                                        break;
                                case 0xbb:
                                                        key=10;
                                                        break;
                                case 0x7b:
                                                        key=11;
                                                        break;
                               
                        }
               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                        display(key);
                }       
        }
               


        P3=0xf7;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delay(10);
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xe7:
                                                        key=12;
                                                        break;
                                case 0xd7:
                                                        key=13;
                                                        break;
                                case 0xb7:
                                                        key=14;
                                                        break;
                                case 0x77:
                                                        key=15;
                                                        break;
                               
                        }
               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                        display(key);
                }
        }


}
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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