找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2299|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

為什么這個(gè)單片機(jī)4*4矩陣鍵盤不可以?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:949074 發(fā)表于 2021-7-6 23:03 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include "reg52.h"
sfr p0=0x80;
sfr p6=0xe8;
void delay(unsigned int k)
unsigned char kx(void);
{
        unsigned char a,b,c=16;
        for(a=0;a<4;a++)
                {
                        p0=_crol_(0xfe,a);
                        b=p0;
                        b=b & 0xf0;
                        if(b!=0xf0)
                        {
                                delay(50);
                                b=p0;
                                b=b & 0xf0;
                                if(b!=0xf0)
                                {
                                        b=p0;
                                        switch(b)
                                        {
                                                case 0xee:c=0;break;
                                                case 0xde:c=4;break;
                                                case 0xbe:c=8;break;
                                                case 0x7e:c=12;break;
                                                case 0xed:c=1;break;
                                                case 0xdd:c=5;break;
                                                case 0xbd:c=9;break;
                                                case 0x7d:c=13;break;
                                                case 0xeb:c=2;break;
                                                case 0xdb:c=6;break;
                                                case 0xbb:c=10;break;
                                                case 0x7b:c=14;break;
                                                case 0xe7:c=3;break;
                                                case 0xd7:c=7;break;
                                                case 0xb7:c=11;break;
                                                case 0x77:c=15;break;
                                                default:break;
                                        }
                                }
                                while((b & 0xf0)!=0xf0)
                                {
                                        b=p0;
                                        b=b & 0xf0;
                                }
                        }
                }
}
return c;
delay(unsigned int k)
{
                unsigned int i,j;
                for(i=0;i<200;i++)
                        {
                        for(j=0;j<k;j++);
                        }
}
void main()
{
        int c;
        while(1)
        {
                c=kx();
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:161164 發(fā)表于 2021-7-6 23:18 | 只看該作者
有啥問題?
不可以什么?
回復(fù)

使用道具 舉報(bào)

板凳
ID:480510 發(fā)表于 2021-7-7 07:24 | 只看該作者

#include "reg52.h"
sfr p0=0x80;
sfr p6=0xe8;
上面這兩個(gè)頭文件已經(jīng)定義,還需要再定義一次嗎?就算要,p要大寫P。
回復(fù)

使用道具 舉報(bào)

地板
ID:844772 發(fā)表于 2021-7-7 08:40 | 只看該作者
不大懂,為啥return c; 寫到} 外面了。估計(jì)是筆誤吧?
別的沒看到啥問題啊。
回復(fù)

使用道具 舉報(bào)

5#
ID:483991 發(fā)表于 2021-7-7 10:47 | 只看該作者
多看幾遍教程就能解決的事,關(guān)鍵這還是很基礎(chǔ)的東東
回復(fù)

使用道具 舉報(bào)

6#
ID:949074 發(fā)表于 2021-7-12 16:46 來自手機(jī) | 只看該作者
正規(guī)007 發(fā)表于 2021-7-7 10:47
多看幾遍教程就能解決的事,關(guān)鍵這還是很基礎(chǔ)的東東

OK了,知道了謝謝。
回復(fù)

使用道具 舉報(bào)

7#
ID:949074 發(fā)表于 2021-7-12 16:47 來自手機(jī) | 只看該作者
ByanouQ 發(fā)表于 2021-7-7 07:24
#include "reg52.h"
sfr p0=0x80;
sfr p6=0xe8;

嗯,是重復(fù)定義了,但p小寫的話是沒事的吧,我后面都是小寫。
回復(fù)

使用道具 舉報(bào)

8#
ID:949074 發(fā)表于 2021-7-12 16:48 來自手機(jī) | 只看該作者
lkc8210 發(fā)表于 2021-7-6 23:18
有啥問題?
不可以什么?

應(yīng)該是char的問題
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表