標(biāo)題: 數(shù)碼管顯示4*4矩陣按鍵求大神解釋一下代碼意思,謝謝啦 [打印本頁]

作者: 尐東邪    時(shí)間: 2017-12-19 16:56
標(biāo)題: 數(shù)碼管顯示4*4矩陣按鍵求大神解釋一下代碼意思,謝謝啦
#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


作者: le51    時(shí)間: 2017-12-19 20:29
矩陣鍵盤控制共陽數(shù)碼管從0顯示到F帶關(guān)閉,帶蜂鳴器提示
作者: zl2168    時(shí)間: 2017-12-19 21:41
為什么不去找有解釋的程序?
作者: 愛吃餃子    時(shí)間: 2017-12-19 21:45
如二樓所說的一樣。要看懂這個(gè)  你先要懂    矩陣鍵盤的掃描原理啊   
作者: 尐東邪    時(shí)間: 2017-12-20 09:25
le51 發(fā)表于 2017-12-19 20:29
矩陣鍵盤控制共陽數(shù)碼管從0顯示到F帶關(guān)閉,帶蜂鳴器提示

好的,謝謝^ω^
作者: 尐東邪    時(shí)間: 2017-12-20 09:26
zl2168 發(fā)表于 2017-12-19 21:41
為什么不去找有解釋的程序?

完全小白,不懂-_-||
作者: 尐東邪    時(shí)間: 2017-12-20 09:27
愛吃餃子 發(fā)表于 2017-12-19 21:45
如二樓所說的一樣。要看懂這個(gè)  你先要懂    矩陣鍵盤的掃描原理啊

嗯嗯,知道了
作者: 沐林楓    時(shí)間: 2017-12-20 10:26
延時(shí)程序,鍵盤掃描程序,蜂鳴器程序
作者: jyzsdgfud    時(shí)間: 2017-12-20 11:30
這不是很簡單嘛,按鍵控制輸出,單片機(jī)書上就有。。。。。。。很初級的東西,自己看看就行了
作者: lll88990    時(shí)間: 2017-12-20 12:13
要看懂這個(gè)  你先要懂    矩陣鍵盤的掃描原理
作者: zl2168    時(shí)間: 2017-12-23 11:32
尐東邪 發(fā)表于 2017-12-20 09:26
完全小白,不懂-_-||

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

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

作者: mou~    時(shí)間: 2017-12-23 11:58
為判斷,四線高,四線低,如果接通兩線,就會(huì)有一線電平被拉低,判斷哪兩線的電平被拉低,就可以判斷出哪個(gè)按鍵
作者: www.abc    時(shí)間: 2017-12-23 12:51
看懂原理圖再說





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1