當前位置:編程學習大全網 - 編程軟體 - 幫檢查下匯編程序的錯誤

幫檢查下匯編程序的錯誤

存在以下幾個問題:

1. 在按鍵的延時去抖動後,沒有重新讀取按鍵鍵值,即:

L8: ACALL DELAY

CJNE A,#0FFH,SAVE

這兩條指令中間應插入:MOV A, P1,否則妳用來比較的A還是第壹次讀到的A

2. 妳在檢測到按鍵按下後,沒有等待鍵釋放再去檢測下壹個按鍵。從妳的程序中看,檢測到按鍵按下後,蜂鳴器會響,除非妳能很好的控制妳按鍵按下的時間,不能超過蜂鳴器鳴叫的時間。所以這裏建議妳增加等待鍵釋放,即:

INC R0

DJNZ R2,SET

這兩條指令中插入:

RELEASE: MOV A, P1

CJNE A, #0FFH, RELEASE ; 檢測到鍵仍按下則繼續檢測直至松開

ACALL DELAY ; 繼續延時去抖動

MOV A, P1

CJNE A, #0FFH, RELEASE ; 去抖動後再確認壹次按鍵已釋放

妳後面的代碼看上去很混亂,我大致的理解是:妳開始讀了8次鍵值,存入31H開始的單元,然後後面的循環中有執行了3次 再讀8次鍵值的事情,並且只要這8次中有壹次按對了(分別與開始的第1、2、3個鍵值相同),就將00H這位置為有效,然後蜂鳴器響壹響,沒有什麽實質性的工作。

另外,妳的原理圖中P3.2是控制線,程序中沒有看到P3.2,卻有P3.5。

希望妳具體說明妳的需求,以及妳自己的編程思路,才能讓別人幫到妳,只會貼貼程序是沒有意義的。

  • 上一篇:電氣自動化書籍入門書籍推薦
  • 下一篇:大學學軟件工程需要高中數學嗎?
  • copyright 2024編程學習大全網