找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求大神 自学难啊

[复制链接]
跳转到指定楼层
楼主
ID:57338 发表于 2014-1-12 18:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar Key_num;
uint a[17]={0x00,0x0f,0xf0,0xdb,0xbd,0x7f,0x3f,0x1f,0x07,0xcd,0x8d,0xd5,0x7c,0x6e,0x7e,0xbf,0xff};
void delay(uint x)
{
        uint i,j;
        for(i=x;i>0;i--)
                for(j=110;j>0;j--);       
}
void display()
{
        P0=a[Key_num-1];
}
void Keyboard(void)
{
        uchar temp;
        P2=0x7f;
        temp=P2;
        temp=temp&0xf0;
        if(temp!=0x0f)
        {
                delay(10);
                temp=P2;
                temp=temp&0xf0;
                while(temp!=0xf0)
                {
                        switch(temp)
                        {
                                case 0xe0:Key_num=1;break;
                                case 0xd0:Key_num=2;break;
                                case 0xb0:Key_num=3;break;
                                case 0x70:Key_num=4;break;
                        }
                }
                if(temp==0xf0)
                {
                        Key_num=17;
                }
       
        }
        P2=0xbf;
        temp=P2;
        temp=temp&0xf0;
        while(temp!=0xf0)
        {
                delay(10);
                temp=P2;
                temp=temp&0x0f;
                while(temp!=0x0f)
                {
                        switch(temp)
                        {
                                case 0xde:Key_num=5;break;
                                case 0xdd:Key_num=6;break;
                                case 0xdb:Key_num=7;break;
                                case 0xd7:Key_num=8;break;
                        }
                }
                if(temp==0x0f)
                {
                        Key_num=17;
                }
       
        }
        P2=0xfb;
        temp=P2;
        temp=temp&0x0f;
        if(temp!=0x0f)
        {
                delay(10);
                temp=P2;
                temp=temp&0x0f;                 
                while(temp!=0x0f)
                {
                        switch(temp)
                        {
                                case 0xbe:Key_num=9;break;
                                case 0xbd:Key_num=10;break;
                                case 0xbb:Key_num=11;break;
                                case 0xb7:Key_num=12;break;
                        }
                }
                if(temp==0x0f)
                {
                        Key_num=17;
                }
               
        }
        P1=0xf7;
        temp=P2;
        temp=temp&0x0f;
        if(temp!=0x0f)
        {
                delay(10);
                temp=P2;
                temp=temp&0x0f;                 
                while(temp!=0x0f)
                {
                        switch(temp)
                        {
                                case 0x7e:Key_num=12;break;
                                case 0x7d:Key_num=14;break;
                                case 0x7b:Key_num=15;break;
                                case 0x77:Key_num=16;break;
                        }
                }
            if(temp==0x0f)
                {
                        Key_num=17;
                }       
        }
       
}
void main(void)
{
        while(1)
        {
                Keyboard();
                display();
        }
}帮帮忙看看程序效果出不来
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:56665 发表于 2014-1-12 19:13 | 只看该作者
同样能实现同一个功能,找一个直观有条理好理解的程序来读。
回复

使用道具 举报

板凳
ID:57338 发表于 2014-1-12 19:58 | 只看该作者
什么意思
回复

使用道具 举报

地板
ID:56665 发表于 2014-1-13 11:03 | 只看该作者

你是意思是自学难,是不是,我要你少看那些故意显示自己水平高超的代码,多看那些通俗易懂的,明白了吗。
回复

使用道具 举报

5#
ID:57338 发表于 2014-1-13 11:20 | 只看该作者
哦哦 谢谢哈
回复

使用道具 举报

6#
ID:18297 发表于 2014-1-13 15:23 | 只看该作者
1、任何复杂的东西都是有简单的原理堆积起来的。所以先搞清楚最简单的原理,程序,功能。
2、下程序要先能看懂别人的程序,再能修改别人的程序,再能自己编写程序。达到是自我的发挥。
3、学习软件的同时需要学习单片机的硬件,和各种数字电路,模拟电路,电子技术原理。
最后,祝你进步!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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