회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
1587 자유주제 HOT자료 올리기. 독초 4174 2010.03.24
1586 자유주제 HOT새로운 일을 시작할때,,2 에셈피에스 4733 2010.03.21
1585 자유주제 HOT전자과 3학년이라면 무엇을 만들어 봐야 할까요?9 이슬안개 5548 2010.03.21
1584 자유주제 HOT궁금한점있어서 질문드립니다 짱백 5329 2010.03.20
1583 자유주제 HOT배워야할건 많고 잘하는건 없고...13 니나노 6553 2010.03.18
1582 자유주제 HOT열심히 해서 활동하고 싶어요1 한석 5133 2010.03.18
1581 자유주제 HOT납모으는방법(하루만에 100납)16 UNICORN 6861 2010.03.17
1580 자유주제 HOT전자공학도 파이팅입니다 ㅜㅜ8 subsubi15 6498 2010.03.16
1579 자유주제 HOT전자공학의 길은 멀고도 험난하네요...ㅜㅜ6 Syn 6788 2010.03.16
1578 자유주제 HOT납이라는게...14 치우천 7011 2010.03.16
1577 자유주제 HOT납 선물기능 추가119 아크마 42961 2010.03.15
1576 자유주제 HOT100납을 통한 정회원 인증제도에 대해서...82 아크마 42781 2010.03.05
1575 자유주제 HOT납(포인트)관련 공지-다운로드 권한변경189 아크마 49528 2009.09.11
1574 자유주제 HOT개선사항에 대한 의견이나 아이디어를 얻고자 합니다.15 아크마 9259 2007.08.12
1573 자유주제 HOT처음오신분 필독!!244 아크마 64217 2007.04.15
1572 자유주제 HOT웃긴사진몇개올려봐요5 쇼미 1697 2010.03.13
1571 자유주제 HOTBMW전기 컨셉카9 바우 1711 2010.03.13
1570 자유주제 HOT납 모으기 화이팅!19 MC雲 6201 2010.03.12
1569 자유주제 HOT납은 어떻게 효율적으로 빨ㄹ ㅣ모을수 있을까요 ?17 전자과생 6125 2010.03.12
1568 자유주제 HOT납 열심히 모아야죠 ! 전자과생 4648 2010.03.12
Prev 1 ... 51 52 53 54 55 56 57 58 59 60 ... 135 Next
  • 숫자야말로 모든것의 원리이다.
    - 피타고라스
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.