![]() |
萬家燈火51 發表于 2024-11-5 13:21 我仿真測試的就是自畫鍵盤啊,當然keypad這個鍵盤模板也會出現同樣問題 |
萬家燈火51 發表于 2024-11-5 13:13 前幾天有人問過類似的問題,不是你問的,我是說那個,你搜索一下就看到了。 |
既然都說真實鍵盤正常了,何必還糾結這個仿真?畢竟還得以實物為主。 |
這個還沒有解決,頂一下。 |
cyi8 發表于 2024-11-4 08:22 KEY_ScanPort=0xFF;//真實鍵盤和其它仿真模型鍵盤,可以去掉這一句的。但keypad模型,刪除這一句,下面temp就采集不到正確數據了,為什么? KEY_ScanPort=0x0F; // 高四位置0,低四位設置為數據采集狀態 temp=KEY_ScanPort; //上面那句去掉,這里采集到的數據就是錯的 |
lkc8210 發表于 2024-11-4 09:20 你這測試有意思。我還沒有去這么仿真測過。不過這自畫鍵盤,我畫過,沒有任何問題,所以沒有去進一步研究。下次試試。這個帖子問的問題,只有才keypad這個鍵盤模板里才遇到。其它自畫鍵盤或真實鍵盤中,不存在這個問題的。所以,不知道是proteus 的keypad這個模型本身有問題還是,自己哪點沒有理解透。 |
xiaobendan001 發表于 2024-11-4 09:42 謝謝還記得前面的問題。這個問題是新問題。跟前面那個不一樣。這次這個代碼是個很神奇的問題。 |
cyi8 發表于 2024-11-4 08:22 KEY_ScanPort=0x0F; // 高四位置0,低四位設置為數據采集狀態 這一句,低4位就是置1,斷cmos門地,準備好采集數據。 所以,不是你說的原因。 |
這個不是前幾天剛問過? |
仿真不真,詳情看此貼: 解決某些版本Proteus陣列鍵盤失效的奇葩方法 |
回去好好看一下51單片機各口的定義,51單片機的各輸入輸出口只是準雙向口,不是真正的雙向口,所以當要接收外部數據輸入是,要先將輸入輸出口置1,然后讀取的數據才會正確,不置1的話,讀取到的數據就是內部緩沖器的數據,會不準確,因為內部緩沖器的數據不一定是輸入的數據,還有可能是內部代碼產生的數據。 |
說明一下,不是延時等待電平穩定問題。測試過了。 |