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