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