基于FPGA的8段數碼管動(dòng)態(tài)顯示IP核設計
數碼管可顯示簡(jiǎn)單的字符和數字,由于其價(jià)格低廉、性能穩定、顯示清晰、亮度高、使用電壓低、壽命長(cháng),在工業(yè)生產(chǎn)、交通運輸、儀器儀表及家用電器等場(chǎng)合得到廣泛應用。然而,開(kāi)發(fā)基于NiosⅡ的嵌入式系統時(shí),Builder開(kāi)發(fā)工具中沒(méi)有提供現成的數碼管顯示IP核,這使設計者工作量增加。這里把數碼管控制器設計為一個(gè)共陰極(或共陽(yáng)極)7段數碼管動(dòng)態(tài)顯示IP核,并給出此核的一個(gè)參考驅動(dòng)程序。在系統設計中,可根據實(shí)際需求,把此核直接例化成1~8個(gè)共陰極(或共陽(yáng)極)數碼管顯示控制器,控制1~8個(gè)共陰極(或共陽(yáng)極)數碼管工作,實(shí)現IP核重用,減少電子設計者的工作量,從而提高設計效率。
2 LED數碼管結構及驅動(dòng)顯示方式
根據發(fā)光二極管的個(gè)數可將數碼管分成7段數碼管和8段數碼管,8段數碼管比7段數碼管多一個(gè)用于顯示小數點(diǎn)的發(fā)光二極管;根據內部連接形式可將數碼管分成共陽(yáng)數碼管與共陰數碼管,圖1為數碼管的外形及其內部結構圖。
常用的數碼管顯示驅動(dòng)方式有靜態(tài)驅動(dòng)與動(dòng)態(tài)驅動(dòng)兩種,靜態(tài)驅動(dòng)方式的主要特點(diǎn)是,每個(gè)數碼管都有相互獨立的數據線(xiàn),并且所有的數碼管被同時(shí)點(diǎn)亮;而動(dòng)態(tài)驅動(dòng)方式則是所有數碼管共用一組數據線(xiàn),數碼管依次被點(diǎn)亮,因此,動(dòng)態(tài)驅動(dòng)顯示方式每個(gè)數碼管都要有一個(gè)點(diǎn)亮控制輸入端口。為節省I/O端口,此設計采用動(dòng)態(tài)顯示方式,所有數碼管動(dòng)態(tài)顯示控制時(shí)序,全部由FPGA器件產(chǎn)生。
3 數碼管動(dòng)態(tài)顯示IP核設計
根據數碼管動(dòng)態(tài)顯示方式的工作原理,可把數碼管動(dòng)態(tài)顯示控制器設計成IP核,包括任務(wù)邏輯設計、寄存器文件設計和Avalon接口設計3部分。
3.1 任務(wù)邏輯設計
任務(wù)邏輯實(shí)現IP核的基本功能,是IP核設計的關(guān)鍵。任務(wù)邏輯產(chǎn)生數碼管動(dòng)態(tài)顯示時(shí)的各種控制時(shí)序,并根據控制時(shí)序的先后順序,讀取寄存器文件中的數據,并送至數碼管譯碼器進(jìn)行譯碼,圖2是任務(wù)邏輯框圖。
由圖2知,所設計的IP核主要由模N計數器、數據選擇和生成器、8段數碼譯碼器、數碼管位譯碼器和寄存器文件組成。模N計數器可根據參數N,產(chǎn)生N個(gè)狀態(tài),其狀態(tài)數與數碼管個(gè)數相等,每個(gè)狀態(tài)依次分給第一個(gè)數碼管;數碼管位譯碼器的作用是根據模N計數器的值(狀態(tài))產(chǎn)生數碼管位選信號。按順序依次點(diǎn)亮數碼管,而參數P的值表示數碼管的類(lèi)型(共陽(yáng)或共陰),當P為高電平時(shí),控制共陰極數碼管工作;P為低電平時(shí),控制共陽(yáng)極數碼管工作。
數據選擇和生成器用于根據計數器的狀態(tài)選擇數據寄存器組的數據,還可生成要顯示的數據信號,包括數字與小數點(diǎn)兩種,當小數點(diǎn)位置寄存器的值與計數器的值相等時(shí),點(diǎn)亮小數點(diǎn)位;7段數碼管譯碼器對輸入的信號譯碼產(chǎn)生譯碼數據,該數據的最高位是小數點(diǎn)數據,低7位是字符顯示數據。
3.2 寄存器文件設計
為實(shí)現任務(wù)邏輯單元與外界數據交換,要定義一組寄存器,稱(chēng)為寄存器文件,并為這些寄存器分配地址。根據圖2,在此IP核中共定義10個(gè)寄存器,表1為其功能和地址偏移量。
評論