基于單片機的LED數(shù)字大屏幕顯示系統(tǒng)
2.2 矩陣轉換移位算法
矩陣轉換移位算法目的就是如何把這些原始的數(shù)據(jù)轉換成串行的數(shù)據(jù),以便把數(shù)據(jù)正確的輸入到74HC595。原始的數(shù)據(jù)必須要對其轉換。下面為它的算法實現(xiàn)。
2.3 上位機和下位機的通信
上位機和下位機的通信主要是通過RS232接口進行的,對于上位機的數(shù)據(jù)傳輸?shù)乃俾蕿?600bps。為了便于數(shù)據(jù)的傳輸和接收,可以給要傳輸數(shù)據(jù)的前后加上標志位。如果數(shù)據(jù)發(fā)送量大,在發(fā)送數(shù)據(jù)時還可采用線程的方式來發(fā)送。而下位機接收數(shù)據(jù)則可采用單片機內全雙工的通用異步收發(fā)器(UART)來進行。
UART有中斷和查詢兩種工作方式,UART初始化需要設置相關幾個控制寄存器,我們可以把UART幾個控制寄存器的初始化情況表示出來:
UCR=0x00設置波特率時要先關閉UARTUBRR=0x33設置波特率為9600bpsUCR=0xD8打開串口:
8位數(shù)據(jù)UART如何接收和發(fā)送數(shù)據(jù)通過數(shù)據(jù)寄存器UDR完成。UDR雖然只有一個地址,但是在物理上分離了二個寄存器,一個用于發(fā)送,一個用于接收。對于數(shù)據(jù)的接收和發(fā)送采用中斷的方式,其中斷向量為12,即是interrupthandleruart0_rx_isr:12。接收和發(fā)送方式如下:
評論