> 전자회로 >Atmega128

    Atmega 128

AVR 128 보드 사용법, 18페이지로 구성 ( PDF 파일로 열기 괄호안 클릭=>   ( )

  Atmega128 보드 실물 사진  

1.전원은 J9 커넥터에 보드에 VCC 에 DC 9V 또는 12V에,GND는 -를 연결한다.

2.J11 통신포트로 PC 시리얼 9핀에 연결한다. J11-1 는 1번 TX0, 2번 RX0,3번 GND,  J11-2 는 1번 TX1, 2번 RX1,3번 GND 

보내는 제품에는 J11-1 는 통신포트로 J11-2 는 AVR 128 I/O포트로 셋팅되어 사용자에게 보냅니다.

J11-1 는 통신포트로 R3, R4 저항이 오른쪽, 일반 I/O 포트로 사용시 왼쪽으로 위치하면됩니다.

J11-2 는 통신포트로 R5, R6 저항이 오른쪽, 일반 I/O 포트로 사용시 왼쪽으로 위치하면됩니다.

3.USB 로 통신할려면 USB 통신 =>1.PL2303x 를 이용하면 된다. 전원 500mA 까지 사용도 가능하다.

4.USB 통신 포트는 COM3부터 사용가능하다(모든 PC 공통사항). COM1, COM2 는 컴퓨터자체에서 시리얼로 설정되어 있다.

5.포트는 각 포트마다 1번 10번까지 있고, 1번은 5V, 10번은 GND이다. 2번에서 9번까지는 포트 0에서 8번까지이다.

6.ISP 다운로드 (J11 통신포트와 다르게 설정한다. 예를 들면 J11 은 Com3, ISP는 COM4 )

번호

1

2

3

4

5

6

포트

VCC

MOSI

GND

MISO

SCK

RST

 

 

2. AVR 128 보드로 TFT LCD 제작

1)AVR 128 보드와 COM26T2844VTX 보드를 이용한 8비트 TFT LCD, 터치 패널 Test  ( 설명서, 동작보기)

2) 참고 => I2812-7IPT2432A 보드를 이용한 TFT LCD =>16 비트, 8비트 프로그램   ( 회로도, 프로그램)

  참고 소스 프로그램 I2812-7IPT2432A 8비트

  1. 한글, 영문 글씨,색깔 디스플레이

  2. 터치 스크린을 누르면 통신포트에 위치를 전송

  3. 고용량 SD 카드 (64MB 이상 표준 SD카드 또는 4GB 카드 ) pc와 통신

  4. 한 소녀가 인사하는 움직이는 그림

  5. 그림을 헥사코드로 변환 해 image disply

  6. SD 카드 저장된 BMP(320x240 픽셀) (4장까지) image disply

  그림판에서 320x240 픽셀 BMP 파일로 SD 카드에 저장 해야 함

  한 소녀가 인사하는 움직이는 그림

  아래 그림은 sd 카드 내용을 메모리, 파일을 하이퍼 터미널에 디스플레이

  *** 위 프로그램 tftlcd.h 교체 하면 되고 8/16 비트는 저항으로 설정 ****

 

3) TFT LCD I-2810-7IMT2432A(ILI9328) 보드를 이용한 TFT LCD =>16 비트   ( )

4) TFT LCD COM26T2844 보드를 사용=>16 비트,저항 R13,R14,R18   ( )

5) TFT LCD COM26T2844 보드를 사용 =>8 비트,R12,R14,R17 *** 사용자에게 제공되는 하드웨어 이므로 이 프로그램 사용 ***   ( )

위의 프로그램 부분을 헤더 파일의 8비트 설정 부분을 수정한다.

SerialCom.zip   통신프로그램 VC++ 실행파일 다운받기  

SerialCom1.zip   통신프로그램 VC++ 소스 다운받기(1234)  

VBSerial.zip   통신프로그램 VB 실행파일 다운받기  

VB_Serial.zip   통신프로그램 VB 소스 다운받기(1234)  

******************************************************************************************************************

  도트 매트릭스 SCM1608D   테스트

( 윤덕용, 프로세서 응용 시리즈 ③ - ATmega128을 활용한 졸업작품 만들기(I), Ohm사 자세한 내용 수록)

도트 매트릭스  종류가 비슷하기 때문에   다른 도트 매트릭스도 조금만 수정하면 된다.

도트 SCM1608D 연결하는데 방법은 12핀 IN 에 AVR 선을 연결 OUT 에 다른 도트매트릭스에 IN 에 연결 이런식으로 여러개를 연결한다. 여기서는 2개를 연결했다.  

도트 - AVR
S_l - PB6      RED - PB4
OE -            GREEN - PB5
GND - GND   CLK - PB7
GND - GND   GND - GND
A0 - PB0      A3 - PB3
A1 - PB1      A2 - PB2

 

 



#include <avr/io.h>
#include <stdio.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>

// "도 트" 폰트
unsigned long __attribute__ ((progmem)) FONT[] = {
0x00000000,0x7ffc3ffc,0x00040004,0x00040004,
0x00040004,0x00040004,0x3ffc0004,0x00047ffc,
0x00040000,0x00040100,0x00040100,0x7ffc0100,
0x00000100,0x00000100,0x7ffe7ffe,0x00000000};

unsigned char font_c; // 폰트 카운터
unsigned long font1; // 폰트 저장

// 메인
int main(void)
{
unsigned char i,j,addr,state,temp;
unsigned int Ptr;

DDRB = 0xff; // B 포트 출력
PORTB = 0x00; // 폰트 출력 OFF
state = 0;

do{
for (j = 0; j < 200; j++){
font_c = 0; // 폰트 카운터 초기 설정
for (addr=0; addr < 16; addr++){ // 어드레스 0-15까지 루프
// 폰트 저장
Ptr = &FONT[addr];
font1 = (unsigned long)(pgm_read_byte( Ptr++ ));
font1 |= (unsigned long)(pgm_read_byte( Ptr++ )) << 8;
font1 |= (unsigned long)(pgm_read_byte( Ptr++)) << 16;
font1 |= (unsigned long)(pgm_read_byte( Ptr )) << 24;

for (i=0; i < 32; i++){ // 행을 0-31까지 루프
if (font1 & 0x01){ // 폰트 on
if (state == 0) {
// 적색
PORTB =PORTB |_BV(4); PORTB =PORTB &~ _BV(5);
} // if
else if (state == 1){ // 녹색

PORTB =PORTB &~ _BV(4); PORTB =PORTB |_BV(5);
} // else if
else { // 앰버색

PORTB =PORTB |_BV(4); PORTB =PORTB |_BV(5);
} // else
} // if
else {

PORTB =PORTB &~ _BV(4); PORTB =PORTB &~ _BV(5);
} // else
// 클럭 출력

PORTB =PORTB |_BV(7); PORTB =PORTB &~ _BV(7);
font1 >>= 1;
} // i 변수에 대한 for 문
// 어드레스 출력
DDRB = 0x00; temp = PINB;
DDRB = 0xff;
PORTB = ((temp & 0xf0) | addr);
// 래치 출력

PORTB =PORTB |_BV(6); PORTB =PORTB &~ _BV(6);
// 행 점등 시간
for (i=0; i < 100; i++){

PORTB =PORTB |_BV(7); // 클럭 출력
PORTB =PORTB &~ _BV(7);
} // 행 점등 시간 for 문
} // addr for 문
} // j-for 문
// 색 업데이트
state++;
if (state == 3) state =0;
}while(1); // 무한 루프
}