各位大俠,幫忙看看:用Keil編寫的程序,編譯沒有錯誤,下載到51單片機開發板上沒有結果
妳好 看了壹下,利用外部中斷來處理鍵盤,在沒有重要資源的時候,還是不錯的選擇,但在1ms及以下級的脈沖輸出的時候,就要把中斷留給定時器。以防止int0阻止t0的中斷。好言歸正傳,首先靠int0,來控制鍵盤,在硬件上要有觸發條件,因為int0是硬件觸發的,再說軟件,其實鍵盤的掃描,除了妳程序中編程的鍵值確定外,更重要的是妳沒有在鍵盤壹旦中斷,就要關閉int0的中斷,然後程序進入鍵盤的確認功能,在執行相應程序,完成後從新打開int0,妳的程序,isr_int0只有壹條語句,這樣妳的程序就會在陷阱裏出不來,按鍵首先進入int0服務,從中斷服務跳出,有鍵按下,再進入中斷服務,如此周而復始,根本進入不了鍵盤確認程序,程序其他地方沒仔細看,個人感覺,妳用int0來做鍵盤處理,就不要在程序的其他部分有處理了,因為int0是硬件觸發,觸發後進入中斷服務,第壹步關閉中斷,延時,再判,處理鍵盤所要求的功能(程序),開中斷,返回主循環。再說,現在的單片機壹般工作在12M,壹個鍵的處理也就是幾十條語句,1個毫秒都不到。直接在int0裏處理就行了,在程序中,多段操作只會加大難度,及調試困難。