도트매트릭 LED 제어루틴

DOT MATRIX LED - CONTROL HOW TO

원리및 코드

DOT MATRIX LED - CONTROL HOW TO

도트 매트릭스 LED 제어 원리 설명


시프트 레지스터를 이용한 LED  도트 매트릭스 제어


폰트 데이터와 디스플레이 버퍼 데이터 처리


제어코드

// ----------------------------------------------------------------------------
void send_data(unsigned int temp){
	unsigned int Mask = 0x0001, t, Flag;
	for (t=0; t<16; t++){
		Flag = temp & Mask;
		// Check if 0/1 to send this time
		if(Flag==0) 	Serial_Data = 0;
		else 			Serial_Data = 1;
		SH_Clk = 1;								// SHIFT clock toggle
		SH_Clk = 0;
		Mask = Mask << 1;
	}
	ST_Clk = 1;									// Apply clock on ST_Clk to LATCH
	ST_Clk = 0;
}
// ----------------------------------------------------------------------------
// Text in 'message[]' with StringLength, shift_step = 1
// DisplayBuffer = 'unsigned int' 2 bytes
for (k = 0; k < StringLength; k++){				// Send All CHAR in 'message'
	// SHIFT Routine with 'shift_step'
	for (scroll = 0; scroll < (8/shift_step); scroll++) {
		// Read FONT data and put it in each 'DisplayBuffer[]'
		for (Row = 0; Row < 8; Row++){
			index = message[k];					// ASCII index
			temp = CharData[index-32][Row];		// Get ASCII FONT
			// The last CHAR is fade in to 'DisplayBuffer' from 7th column
			// 'DisplayBuffer' OR 'FONT >> SHIFT' --> scroll*shift_step = 0...7
			// DisplayBuffer[0..15] FONT    Start to FADEIN | scroll*shift_step
			// ######## ########  XXXXXXXX  ######## #######X XXXXXXX 	SHT 7-0
			// ######## ########  XXXXXXXX  ######## ######XX XXXXXX 	SHT 7-1
			// 				.................
			// ######## ########  XXXXXXXX  ######## XXXXXXXX 			SHT 7-7
			DisplayBuffer[Row] = 
				(DisplayBuffer[Row] << shift_step)	|
				(temp >> ((8-shift_step)-scroll*shift_step));
		}
		speed = 10 + ADC_Read(0)/10;
		for(l = 0; l < speed; l++){
			for (i=0; i < 8; i++) {				// Turn on/off each rows
				send_data(DisplayBuffer[i]);	// Send a 'row' data
				CD4017_Clk = 1;					// turn on/of
				CD4017_Clk = 0;					// auto Increase 'row'
				Delay_ms(1);
			}  // i
			CD4017_Rst = 1;						// reset to '0' - first
			CD4017_Rst = 0;
		} // l
	} // scroll
}
// ----------------------------------------------------------------------------

원저자 : 


PIC로 제어하는 코드가 올라가 있다


http://embedded-lab.com/blog/?p=4717

http://embedded-lab.com/blog/?p=2478

블로그 이미지

DIYworld

,