![]() |
發(fā)布時間: 2022-11-19 09:00
正文摘要:請大家?guī)兔纯? 單片機源程序如下: #include"reg51.h" int num=9; unsigned char seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay() { &nb ... |
感謝你,好像你這個更簡潔。 |
luogu34 發(fā)表于 2022-11-20 11:11 怎么接?請截圖來看看 |
wulin 發(fā)表于 2022-11-20 07:59 感謝您的解答 |
rayin 發(fā)表于 2022-11-20 11:15 好的,感謝你的回答 |
51單片機的IO口作為讀入時,最好加上10K的上拉電阻。 |
lkc8210 發(fā)表于 2022-11-20 10:26 我好像接上rst線就正常了。搞不懂什么情況 |
某些板本的Proteus的陣列鍵盤有Bug 正確來說是輸出低電平的引腳不能拉低輸出高電平的引腳 當按鍵按下時,引腳電平會變成2.5V,不足以判斷為低 可以在兩邊引腳接上示波器或電壓表觀察一下 |
![]()
|
cuihaodianzi 發(fā)表于 2022-11-19 15:02 大佬你好,我是新手比較菜見諒,感謝你的回答,我這個是用proteus寫的,電路圖在下面,我首先是通過吧io口賦值為1111 0000嗯下按鍵變?yōu)?110 0000來確定h列既豎行的位置,再通過of來確定l行既橫行的位置。講他們的值存起來后用if判斷 ,成功就將num賦值為0。但是我仿真的真實情況是嗯下之后沒反應 |
1:unsigned char seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 此時 seg[] 有效值在 seg[0]到seg[9]之間; 2:if(temp==0xee){num=0;} 按鍵只有一個判斷狀態(tài)嗎?只有按下第一個按鍵的時候做了判斷; P2=seg[num];此時 num=0; 數(shù)碼管顯示 0,其他狀態(tài)都是初始值 int num=9;數(shù)碼管顯示 9 3:數(shù)碼管用對了沒有,開機有顯示嗎? |
Powered by 單片機教程網(wǎng)