회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
2464 마이크로프로세서 HOTDAC0800을 사용해 0~5V의 아날로그값을 얻고싶습니다. 조언구합니다. 어쩌라고 3630 2010.03.20
마이크로프로세서 HOTlcd 출력 소스 만들었는데 출력이 않됩니다. 가르쳐 주세요 Adelposs 1329 2010.03.20
2462 드론/로봇/라인트레이서 HOT라인트레이서..2 vsvm 1339 2010.03.19
2461 전기전자 아무거나 HOT라인트레이서에대해서..2 vsvm 714 2010.03.19
2460 Software & IDEs HOT반도체 설계/개발 관련 프로그래밍 언어는 어떤 것이 있는지5 트리스탄 1476 2010.03.19
2459 전기전자 아무거나 HOT약어 용어 설명된 자료 구할 수 있는지.2 트리스탄 1196 2010.03.19
2458 전기전자 아무거나 HOTT-con 관련 공부를 하려면 무엇을 봐야할까요? 트리스탄 1038 2010.03.19
2457 전기전자 아무거나 HOTT-CON 관련된 책 추천부탁드립니다.1 트리스탄 1030 2010.03.19
2456 전기전자 아무거나 HOT작품제작에 유용한 책이 있다면 추천좀 부탁드립니다.1 hkMarine 726 2010.03.19
2455 전기전자 아무거나 HOT555time 질문이요3 니나노 898 2010.03.18
2454 자유주제 HOT배워야할건 많고 잘하는건 없고...13 니나노 6549 2010.03.18
2453 전기전자 아무거나 HOTIsspice란 프로그램을 쓰는데요...6 이현주zz 1090 2010.03.18
2452 자유주제 HOT열심히 해서 활동하고 싶어요1 한석 5133 2010.03.18
2451 마이크로프로세서 HOTAVR ADC에서 AREF에 1K옴이 걸려 있는 데, 시스템이 죽는 현상 밥풀꽃 1830 2010.03.17
2450 전기전자 아무거나 HOT마이크로 프로세서 주변회로 왕초보입니다.5 밥풀꽃 1176 2010.03.17
2449 마이크로프로세서 HOTWIN AVR GCC 사용자입니다. 밥풀꽃 875 2010.03.17
2448 전기전자 아무거나 HOT전기전자실험에 대해서 물어볼게요 ^^;1 subsubi15 846 2010.03.17
2447 자유주제 HOT납모으는방법(하루만에 100납)16 UNICORN 6860 2010.03.17
2446 PADS HOTpowerpcb gerber file cam350에서 convert powerpcb에서 읽어들이기6 UNICORN 3458 2010.03.17
2445 마이크로프로세서 HOT비트제어 방법3 소스리 1689 2010.03.17
  • 우리의 인생은 우리가 노력한 만큼 가치가 있다.
    - 모리악
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.