矩陣鍵盤模塊要實現設置CH451的系統參數,接收按鍵中斷信號,發送讀取按鍵鍵值命令及讀取鍵值,向主處理器發送按鍵中斷和發送按鍵鍵值。上電復位之后并延時幾個時鐘周期后,輔助處理器就發送設定系統參數的命令(010000000010 B)來啟動CH451芯片的鍵盤控制功能,然后等待DOUT信號變為低電平,即產生按鍵中斷請求,FPGA檢測到低電平的中斷請求后,便立即發送讀取按鍵鍵值的命令0111B 并從 DOUT引腳讀取﹖位按鍵鍵值。之后中斷輸出端口Keyboard_int變為低電平,向主處理器ARM 發送按鍵中斷請求,在時間軸9.035us位置附近,ARM 響應了中斷請求,讀取按鍵鍵值使能信號Keyboard_en變為高電平有效,FPGA就將轉換后的16位按鍵鍵值送到數據總線上;在+245.0ns位置附近,主處理器讀取鍵值完畢后,釋放數據總線和地址總線。
測速模塊的程序設計,Encoder_A和Encoder_B是光電編碼器輸出的A、B兩相脈沖信號,計數器子模塊ENCODER_TIMER16會在給定時間對Encoder_A和Encoder_B脈沖進行相位鑒別并根據相位鑒別結果進行加或者減計數,Encoder_A的相位超前Encoder_B的相位90°時,即編碼器正向旋轉,就進行加1計數,Encoder_A的相位落后Encoder_B的相位90°時,即編碼器反向旋轉,就進行減1計數;然后在給定時間定時到了之后將計數值保存到計數值鎖存子模塊ENCODER_REG中,并將前一次的計數值覆蓋掉,子模塊ENCODER_REG接收到ARM發送的讀取計數值命令后,便將計數值放到數據總線上。