회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
256 Analog & Mixed-Signal 설계 HOTz 노이즈에 대한 개요1 베시시 2023 2010.04.06
255 전기전자 아무거나 HOTpic에서 pwm신호1 존트럭볼타 1109 2010.04.05
254 전기전자 아무거나 HOT시계 관련 소스 입니다 많은 추천 바랄게요4 일자무식 1525 2010.04.05
253 드론/로봇/라인트레이서 HOT도와주세요5 키키오오 2351 2010.04.04
252 드론/로봇/라인트레이서 HOT라인트레이서 부품선정시1 vsvm 1847 2010.04.03
251 전기전자 아무거나 HOTReed Switch2 hicharlie 1243 2010.04.02
250 전기전자 아무거나 HOT자격증 질문해도 되여?11 라인만들어보자 1091 2010.04.02
249 전기전자 아무거나 HOT어떤 트랜지스터를 사용해야하나요?5 hicharlie 1150 2010.03.30
248 전기전자 아무거나 HOT아트메가128를이용한 도트 매트릭스1 걍봐줭 1269 2010.03.27
247 전기전자 아무거나 HOT또 한가지 더...avr 습도센서말입니다...3 fm매니아 1416 2010.03.27
246 전기전자 아무거나 HOTavr 영상처리장치에 대해서...2 fm매니아 1449 2010.03.27
245 전기전자 아무거나 HOTDC모터에대해..4 vsvm 1157 2010.03.26
244 전기전자 아무거나 HOT판매용 센서 출력을 ATMEGA 입력신호값으로 사용하는 방법 알려주세요1 강산적 1193 2010.03.25
243 전기전자 아무거나 HOT양산전에 고려해야할 사항..ㅡㅡ;2 루키키 1070 2010.03.25
242 전기전자 아무거나 HOT전기과 프로그램5 흐그극 1004 2010.03.24
241 전기전자 아무거나 HOT청소년 과학경진대회 전자과학 지도4 함태경 1172 2010.03.23
240 전기전자 아무거나 HOTDC모터에대해3 vsvm 1331 2010.03.23
239 드론/로봇/라인트레이서 HOTavr atmega128 공부중인데요1 짱백 1626 2010.03.20
238 드론/로봇/라인트레이서 HOT라인트레이서..2 vsvm 1342 2010.03.19
237 전기전자 아무거나 HOT라인트레이서에대해서..2 vsvm 720 2010.03.19
Prev 1 ... 22 23 24 25 26 27 28 29 30 31 ... 39 Next
  • 성공적인 결혼이란 매일같이 개축해야 하는 건물과 같은 것이다.
    - 모로아
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.