找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

數(shù)碼管顯示4*4矩陣按鍵求大神解釋一下代碼意思,謝謝啦

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:263782 發(fā)表于 2017-12-19 16:56 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg51.h>
#define INT8U unsigned char
#define INT16U unsigned int
const INT8U SEG_CODE[]=
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};
sbit BEEP=P3^0;
INT8U pre_keyNo=0xFF,keyNo=0xFF;
void delay_ms(INT16U x)
{
INT8U t;
while (x--)
for (t=0;t<120;t++);
}
void Keys_Scan()
{
P1=0x0F;
delay_ms(1);
if(P1==0x0F)
{
keyNo=0xFF;
return;
}
switch (P1)
{
case 0x0E:keyNo=0;break;
case 0x0D:keyNo=1;break;
case 0x0B:keyNo=2;break;
case 0x07:keyNo=3;break;
  default:keyNo=0xFF;return;
}
P1=0xF0;
delay_ms(1);
switch (P1)
{
case 0xE0:keyNo+=0;break;
case 0xD0:keyNo+=4;break;
case 0xB0:keyNo+=8;break;
case 0x70:keyNo+=12;break;
  default:  keyNo=0xFF;
}
}
void Beep()
{
INT8U i;
for(i=0;i<100;i++)
{
delay_ms(1);
BEEP=~BEEP;
}
BEEP=i;
}
void main()
{
   P0=0xFF;
   while(1)
   {
Keys_Scan();
if(keyNo==0xFF)
{
delay_ms(10);
continue;
}
P0=SEG_CODE[keyNo];
Beep();
while (Keys_Scan(),keyNo!=0xFF);
}
}

dpj.docx

11.53 KB, 下載次數(shù): 9

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

使用道具 舉報

沙發(fā)
ID:157238 發(fā)表于 2017-12-19 20:29 | 只看該作者
矩陣鍵盤控制共陽數(shù)碼管從0顯示到F帶關(guān)閉,帶蜂鳴器提示
回復(fù)

使用道具 舉報

板凳
ID:111634 發(fā)表于 2017-12-19 21:41 | 只看該作者
為什么不去找有解釋的程序?
回復(fù)

使用道具 舉報

地板
ID:236686 發(fā)表于 2017-12-19 21:45 | 只看該作者
如二樓所說的一樣。要看懂這個  你先要懂    矩陣鍵盤的掃描原理啊   
回復(fù)

使用道具 舉報

5#
ID:263782 發(fā)表于 2017-12-20 09:25 來自觸屏版 | 只看該作者
le51 發(fā)表于 2017-12-19 20:29
矩陣鍵盤控制共陽數(shù)碼管從0顯示到F帶關(guān)閉,帶蜂鳴器提示

好的,謝謝^ω^
回復(fù)

使用道具 舉報

6#
ID:263782 發(fā)表于 2017-12-20 09:26 來自觸屏版 | 只看該作者
zl2168 發(fā)表于 2017-12-19 21:41
為什么不去找有解釋的程序?

完全小白,不懂-_-||
回復(fù)

使用道具 舉報

7#
ID:263782 發(fā)表于 2017-12-20 09:27 來自觸屏版 | 只看該作者
愛吃餃子 發(fā)表于 2017-12-19 21:45
如二樓所說的一樣。要看懂這個  你先要懂    矩陣鍵盤的掃描原理啊

嗯嗯,知道了
回復(fù)

使用道具 舉報

8#
ID:264113 發(fā)表于 2017-12-20 10:26 來自觸屏版 | 只看該作者
延時程序,鍵盤掃描程序,蜂鳴器程序
回復(fù)

使用道具 舉報

9#
ID:264151 發(fā)表于 2017-12-20 11:30 | 只看該作者
這不是很簡單嘛,按鍵控制輸出,單片機書上就有。。。。。。。很初級的東西,自己看看就行了
回復(fù)

使用道具 舉報

10#
ID:239977 發(fā)表于 2017-12-20 12:13 | 只看該作者
要看懂這個  你先要懂    矩陣鍵盤的掃描原理
回復(fù)

使用道具 舉報

11#
ID:111634 發(fā)表于 2017-12-23 11:32 | 只看該作者
尐東邪 發(fā)表于 2017-12-20 09:26
完全小白,不懂-_-||

實例62  4×4矩陣式鍵盤
Proteus仿真一下,確認(rèn)有效。
實例62 4×4矩陣式鍵盤.rar (44.79 KB, 下載次數(shù): 11)

以上摘自張志良編著《80C51單片機仿真設(shè)計實例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1,內(nèi)有常用的單片機應(yīng)用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。書中電路和程序設(shè)計有詳細(xì)說明,程序語句條條有注解。
回復(fù)

使用道具 舉報

12#
ID:265607 發(fā)表于 2017-12-23 11:58 | 只看該作者
為判斷,四線高,四線低,如果接通兩線,就會有一線電平被拉低,判斷哪兩線的電平被拉低,就可以判斷出哪個按鍵
回復(fù)

使用道具 舉報

13#
ID:265624 發(fā)表于 2017-12-23 12:51 | 只看該作者
看懂原理圖再說
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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