熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2018-3-19 13:11
正文摘要:這是仿真原理圖 #include<reg51.h> void delay_5ms() { unsigned char i,j; for(i=0;i<=25;i++)   ... |
本帖最后由 zl2168 于 2018-3-19 21:11 編輯 實(shí)例75 4×4矩陣式鍵盤 先Proteus仿真一下,確認(rèn)有效。 ![]() ![]() 以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil C和Proteus》清華大學(xué)出版社ISBN 978-7-302-41682-1.。書中電路和程序設(shè)計(jì)有詳細(xì)說明,程序語(yǔ)句條條有注解。 |
剛剛沒注意看圖,74LS47下面的幾個(gè)pin都要拉高,然后key_num/10和%10得到的是十進(jìn)制數(shù),要轉(zhuǎn)換成BCD碼(8421最常用)發(fā)給74LS47,可以先用撥碼開關(guān)把顯示調(diào)試好 |
key_temp1=P1; if(key_temp0==0x0e) { key_temp1=P1;//新加的 switch(key_temp1) { case 0xe0: key_num=4;break; case 0xd0: key_num=3;break; case 0xb0: key_num=2;break; case 0x70: key_num=1;break; default:key_num=0;break; } } 四段都是同樣的問題以這段為例,我講一下我看出的問題,首先你在switch之前應(yīng)當(dāng)對(duì) key_temp1賦值,如果不賦值的話你可以debuy一下應(yīng)該key_temp1都是0xf0,你可以試一下看 |
wildxie 發(fā)表于 2018-3-19 14:58 調(diào)試的時(shí)候沒有顯示 ![]() |
你要把你的問題說清楚,是按鍵沒反應(yīng),還是不顯示,還是什么? 一步一步的排除問題,先是把主程序里面的keynum設(shè)置成全局變量隨便賦一個(gè)值,屏蔽按鍵掃描,先看看能不能顯示你設(shè)置的值,能顯示再處理按鍵 |
要實(shí)現(xiàn)按下按鍵1時(shí)顯示1, 按下2時(shí)顯示2......按下16時(shí)顯示16![]() |
Powered by 單片機(jī)教程網(wǎng)