基于MCU和FPGA的LED圖文顯示屏控制系統(tǒng)
系統(tǒng)開機(jī)進(jìn)入初始狀態(tài)ST0,單片機(jī)的寫入使能端E為低電平,單片機(jī)從EEPROM中讀取數(shù)據(jù)并把數(shù)據(jù)寫入到SRAM1,同時(shí)FPGA讀取SRAM2中的數(shù)據(jù);當(dāng)單片機(jī)數(shù)據(jù)寫完一屏數(shù)據(jù)后E變?yōu)楦唠娖?,?dāng)FPGA從SRAM2中讀完數(shù)據(jù)、結(jié)束信號(hào)READ_END為低電平時(shí),進(jìn)入ST1狀態(tài)。 在ST1狀態(tài)下,若沒有新的數(shù)據(jù)寫入則E保持高電平,FPGA讀取SRAM1的數(shù)據(jù),為靜態(tài)顯示;只有當(dāng)單片機(jī)的讀入控制信號(hào)E為低電平且READ_END為低電平時(shí),進(jìn)入ST2狀態(tài)。在ST2狀態(tài)下,單片機(jī)把數(shù)據(jù)寫入SRAM2,同時(shí)FPGA讀取SRAM1的數(shù)據(jù),單片機(jī)數(shù)據(jù)寫完后E變?yōu)楦唠娖剑?dāng)FPGA一屏數(shù)據(jù)讀完后READ_END為低電平,進(jìn)入ST3狀態(tài)。在ST3狀態(tài)下,如果沒有新數(shù)據(jù)寫入E為高電平,F(xiàn)PGA讀取SRAM2中的數(shù)據(jù)。當(dāng)單片機(jī)有新的數(shù)據(jù)寫入時(shí)E變?yōu)榈碗娖?,?dāng)FPGA一屏數(shù)據(jù)讀完后READ_END為低電平時(shí),重新進(jìn)入ST0狀態(tài)。通過這種周而復(fù)始的交替工作完成數(shù)據(jù)的寫入與讀取,其端口程序如下: 3.3 讀地址發(fā)生器 讀地址發(fā)生器主要產(chǎn)生外部緩存器SRAM1(SRAM2)的讀地址信號(hào),使系統(tǒng)能正確地從存儲(chǔ)器中讀取相應(yīng)的顯示數(shù)據(jù)。其地址最高位為0,其余地址分別為行地址(hang[30])、列地址(lie[60])、分區(qū)地址(qu[30])15位有效地址信號(hào)。在16個(gè)脈沖周期內(nèi)讀出在SRAM1(SRAM2)中的16字節(jié)數(shù)據(jù),其部分VHDL源程序如下:
評(píng)論