회원가입 ID/PW 찾기
AA


/// LCD 출력 소스입니다. 일단 만들긴 했는데 LCD에 출력이 않되느 군요 어디서 잘못됫느지 고수님들 가르쳐주세요.


// ATmega123 
//PORTA        LCD 8비트 연결
//PORTG       LCD    E, RS, RW 연결  //
//16MHz
// lcd 데이터 시트도 첨부했습니다.




#include <avr/io.h>

#define N_o   0x80
#define N_t   0xc0
#define CMD_WRITE   0x00 
#define CMD_READ    0x02 
#define DATA_WRITE  0x01 
#define DATA_READ   0x03 
#define LCD_EN      0x04 

 

void delay_us(register unsigned char time){

 register unsigned char i;
 
 for(i=0; i > time; i++){

 asm ("PUSH  R0");
 asm ("POP  R0");
 asm ("PUSH  R0");
 asm ("POP  R0");
 asm ("PUSH  R0");
 asm ("POP  R0");
 }
}

void delay_ms(register unsigned char time){

 register unsigned char i;

 for(i=0; i > time; i++){

 delay_us(250);
 delay_us(250);
 delay_us(250);
 delay_us(250);
 }
}

void init_PORT(){


 DDRA = 0XFF;
 DDRB = 0X00;
 DDRC = 0X00;
 DDRD = 0X00;
 DDRE = 0X00;
 DDRF = 0X00;
 DDRG = 0X0F;
}

 

void LCD_BUSY(){

 register unsigned char BUSY;
 register unsigned char i;

 DDRA = 0X00;
 PORTG = CMD_READ;
 BUSY = 0X80 & PINA;

 if(BUSY == 0X80){ 
 i = 1;

  while(i){

  BUSY = 0X80 & PINA;
   if(BUSY == (0X80 & PINA))
   i=0; // break 를 써도 된다.
   }

  }

 PORTG = PORTG & LCD_EN;
 DDRA = 0XFF;
 
 }
 

 

void LCD_cmd_write(char cmd)

  LCD_BUSY();

  PORTG = CMD_WRITE;
  delay_us(10);
  PORTA = cmd;
  PORTG = PORTG & LCD_EN;

 
  delay_ms(2);               
}

void LCD_data_write(char data)
{
  LCD_BUSY();

  PORTG = DATA_WRITE;
  delay_us(10);
  PORTA = data;
  PORTG = PORTG & LCD_EN;

  delay_ms(2);                   
}

void LCD_TEXT( char LINE, char *data){

 LCD_BUSY();
 LCD_cmd_write(LINE);     
  while(data != '\0'){

  LCD_data_write(*data);
  data++;
 }
}
 


void init_LCD(){

 LCD_BUSY();
 LCD_cmd_write(0x38);
 delay_ms(5);

 LCD_BUSY();
 LCD_cmd_write(0x38);
 delay_ms(5);

 LCD_BUSY();
 LCD_cmd_write(0x38);
 delay_ms(5);

 LCD_BUSY();
 LCD_cmd_write(0x38);
 delay_ms(4);

 LCD_BUSY();
 LCD_cmd_write(0x0C);
 delay_ms(10);

 LCD_BUSY();
 LCD_cmd_write(0x01);
 delay_ms(10);

 LCD_BUSY();
 LCD_cmd_write(0x06);
 delay_ms(10);
}

void main(){

 init_PORT();
 init_LCD();


 LCD_TEXT(N_o, "123");

 }

 

댓글 0

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
35 Software & IDEs HOT빠쑝님께서 올리신 api 통신함수에 대한 질문입니다.1 momozizi 1041 2010.11.17
34 Software & IDEs HOTcrc 계산1 푸른하늘은하수 4066 2010.11.13
33 Software & IDEs HOT어떤언어를 배우는것이 가장 쉬운가요?4 멍치 1082 2010.10.29
32 Software & IDEs HOTVC++로 만들껀데요. ^^4 이란주 979 2010.08.30
31 Software & IDEs HOTbin파일에관한 질문드립니다.1 왕초보틱 962 2010.08.26
30 Software & IDEs HOT[matlab] 사용했던 변수 저장에 관하여 키핀 980 2010.08.05
29 Software & IDEs HOT마이크로 컨트롤러 질문???5 진구짱 976 2010.06.04
28 Software & IDEs HOT게임만들기 전!!2 잉어aa 1118 2010.05.29
27 Software & IDEs HOTData = Data * 0x100 무슨 의미 인가요4 파인 윤 1193 2010.05.22
26 Software & IDEs HOT리모콘 모듈을 제작해주는 곳이 있을까요?2 철방이 951 2010.05.11
25 Software & IDEs HOT13 jeonity 898 2010.04.30
24 Software & IDEs HOT지그비 ZBS-200 프로그램 질문입니다!!2 소울 1728 2010.04.11
23 Software & IDEs HOTVisual C++ 6.0 프로그램이 비스타 작동 안하나요?6 fairlady 1300 2010.03.30
22 Software & IDEs HOT안녕하세요 혹시 소스나 이전에 프로그래밍되있는것을 찾을곳이있을까요?3 꿀이 894 2010.03.30
21 Software & IDEs HOT초보에게 추천해주실 트레이닝 키트와 서적부탁드릴게요4 꿀이 921 2010.03.29
20 Software & IDEs HOT저기 레포트점 도와주세요1 메리짱 784 2010.03.22
19 Software & IDEs HOT반도체 설계/개발 관련 프로그래밍 언어는 어떤 것이 있는지5 트리스탄 1482 2010.03.19
18 Software & IDEs HOT오브젝트씨..쓰시는분들 볼트와너트 1149 2010.03.12
17 Software & IDEs HOT이해하기 쉬운 자료구좀 책좀 소개좀 해주세요..9 남보살 1030 2010.03.02
16 Software & IDEs HOTatmega128에 대해 알기 쉬운 책 좀 알려주세요..5 마이무따이가 1472 2010.02.03
  • 분노는 바보들의 가슴 속에서만 살아간다.
    - 아인슈타인
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.