3146|4

69

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

一个矩阵键盘程序,老是编译不出来,谁能给我看看错在哪?源程序如下: [复制链接]

#include
#define uint unsigned int
#define uchar unsigned char
__CONFIG(0x3B31);
const uchar table[]={0x3f,0x30,0x5b,0x4f,0x66,0x6d,0x7d,0x7h,0x7f,
                   0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uint num;
void beep(uchar y);
void init();
void display();
void scan();
void delay(uchar x);
void main()
{
        init();
        scan();
        display();       
}
void init()
{
        TRISD=0xf0;
        TRISA=0;
        TRISB=0;
        PORTB=0;
        RA1=0;       
}
void scan()
{
        uint temp;
        PORTD=0xfe;
        num=PORTD;
        num=num&0xf0;
        if(num!=0xf0)
        {
                delay(15);
                num=PORTD;
                num=num&0xf0;
                if(num!=0xf0)
                {
                        temp=num;
                        while(temp!=0xf0)
                        {
                                temp=PORTD;
                                temp=temp&0xf0;       
                        }
                        num=num|0x0e;       
                }       
        }
        else
        {
                PORTD=0xfd;
                num=PORTD;
                num=num&0xf0;
                if(num!=0xf0)
                {
                        delay(15);
                        num=PORTD;
                        num=num&0xf0;
                        if(num!=0xf0)
                        {
                                temp=num;
                                while(temp!=0xf0)
                                {
                                        temp=PORTD;
                                        temp=temp&0xf0;       
                                }
                                num=num|0x0d;       
                        }       
                }
                else
                {
                        PORTD=0xfb;
                        num=PORTD;
                        num=num&0xf0;
                        if(num!=0xf0)
                        {
                                delay(15);
                                num=PORTD;
                                num=num&0xf0;
                                if(num!=0xf0)
                                {
                                        temp=num;
                                        while(temp!=0xf0)
                                        {
                                                temp=PORTD;
                                                temp=temp&0xf0;       
                                        }
                                        num=num|0x0b;       
                                }
                        }
                        else
                        {
                                PORTD=0xf7;
                                num=PORTD;
                                num=num&0xf0;
                                if(num!=0xf0)
                                {
                                        delay(15);
                                        num=PORTD;
                                        num=num&0xf0;
                                        if(num!=0xf0)
                                        {
                                                temp=num;
                                                while(temp!=0xf0)
                                                {
                                                        temp=PORTD;
                                                        temp=temp&0xf0;       
                                                }
                                                num=num|0x07;       
                                        }
                                }
                        }       
                }       
        }       
}
void display()
{
        uint n;
        switch(num)
        {
                case 0xee:n=0;break;
                case 0xde:n=1;break;
                case 0xbe:n=2;break;
                case 0x7e:n=3;break;
                case 0xed:n=4;break;
                case 0xdd:n=5;break;
                case 0xbd:n=6;break;
                case 0x7d:n=7;break;
                case 0xeb:n=8;break;
                case 0xdb:n=9;break;
                case 0xbb:n=10;break;
                case 0x7b:n=11;break;
                case 0xe7:n=12;break;
                case 0xd7:n=13;break;
                case 0xb7:n=14;break;
                case 0x77:n=15;break;       
        }
        PORTB=table[n];               
}
void delay(uchar x)
{
        uchar i,j;
        for(i=x;i>0;i--)
                for(j=110;j>0;j--)
                ;       
}
void beep(uchar y)
{
        uchar di_num;
        for(di_num=y;di_num>0;di_num--)
        {
                RA1=1;
                delay(50);
                RA1=0;
                delay(20);
        }               
}

[ 本帖最后由 飓风狂飙 于 2013-9-14 08:12 编辑 ]

最新回复

void main里面没死循环吧  详情 回复 发表于 2013-11-16 15:59
点赞 关注
 

回复
举报

4

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

以后编写还是注意加注释啊,

记得加注释,要不没人愿意给你看的,
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
这种程序叫人怎么看啊

点评

已经好了,不过还是要感谢……  详情 回复 发表于 2013-9-29 20:53
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 板凳cdf777 的帖子

已经好了,不过还是要感谢……
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

5
 
void main里面没死循环吧
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表