基于CPLD和Embedded System的LED點陣顯示系統(tǒng)的實
譯碼輸出邏輯電路主要是提取地址計數(shù)器的計數(shù)輸出。在某個狀態(tài)下,行地址計數(shù)器輸出低5位數(shù)據(jù),位譯碼輸出高4位數(shù)據(jù)并譯碼輸出16個位選信號。
時序電路中一般留有復(fù)位信號,當(dāng)復(fù)位端為1時,地址計數(shù)器復(fù)零,地址輸出復(fù)零,片選、讀控制信號置1,使?fàn)顟B(tài)機(jī)回到狀態(tài)S0。
2.2 行譯碼CPLD芯片設(shè)計
行譯碼器的功能較主控電路來講相對簡單,它是將主控電路的行計數(shù)器輸出的5位二進(jìn)制數(shù)據(jù)譯成32行的行選通信號,去控制行驅(qū)動管驅(qū)動行輸出。這是一個純組合邏輯電路,使用Verilog HDL語言描述的always語句和case多分支語句即可實現(xiàn)此功能。
2.3 單片機(jī)的C程序設(shè)計
在本系統(tǒng)中,單片機(jī)的功能主要是負(fù)責(zé)通信與數(shù)據(jù)處理。通信即通過串口接收來自PC機(jī)的數(shù)據(jù)并存儲在EEPROM中;數(shù)據(jù)處理即從EEPROM中取出數(shù)據(jù)并根據(jù)要顯示的效果進(jìn)行軟件處理,再存放在雙口RAM中。在本系統(tǒng)中,因單片機(jī)及外圍電路只負(fù)責(zé)通信和數(shù)據(jù)處理,對實時性要求不高,因此用前后臺系統(tǒng)進(jìn)行軟件設(shè)計就能達(dá)到要求。本系統(tǒng)采用嵌入式操作系統(tǒng)RTX51TNY(KEIL C平臺自帶的免費(fèi)的微實時內(nèi)核)。軟件主要由PROCESS.C和SERIAL.C兩個文件組成。PROCESS.C包含三個任務(wù):任務(wù)0,初始化;任務(wù)1,靜態(tài)顯示;任務(wù)2,左移顯示。SERIAL.C是串口中斷程序。靜態(tài)顯示的算法較簡單,只要將EEPROM中的字模數(shù)據(jù)存放到雙口RAM中的特定位置即可。左移顯示則需要將字模數(shù)據(jù)每個字節(jié)左移,然后存放在雙口RAM的特定位置。
評論