BASIC4MCU | 질문게시판 | 그래픽 LCD에서 캐릭터 LCD로 변환하는 코드 추가 질문 드립니다.
페이지 정보
작성자 jenny25 작성일2021-05-27 09:07 조회52,082회 댓글9건본문
사진 첨부가 안되어서 다시 질문 드립니다.
보드 도면인데요,
첨부 사진처럼, MCU와 LCD가 개별 핀으로 다이렉트 연결 된 것이 아니라 데이터 버스로 전송하는 방식일때,
RS/RW/EN 각각 어떻게 제어를 해야 할지 모르겠습니다.
댓글 9
조회수 52,082master님의 댓글
master 작성일
8051이군요
LCD 예제는 없다고 하더라도 LED 구동하는 예제는 있지 않을까요?
138의 입력이 A5,6,7이 연결되어 있으므로
CS0 : 0x00~0x1F
CS1 : 0x20~0x3F
CS2 : 0x40~0x5F
CS3 : 0x60~0x7F
CS4 : 0x80~0x9F
CS5 : 0xA0~0xBF
CS2는 데이터버스, CS3는 콘트롤버스
E:D5, DI:D4, RW:D3
LCD로부터 읽을 일은 없으니 RW는 계속 0으로 나두면 될테고요 DI와 E만 제어해주면 됩니다.
변수에 값을 넣어서 출력한다고 가정하면
char c;
c=0x00; // 콘트롤 경우, 데이터라면 c=0x10;
LCD 콘트롤 버스 출력(c);
c|=0x20; // E=1
delay_us(1); // 1us delay
c&=~0x20; // E=0
delay_ms(3); // 콘트롤 경우 3ms delay, 데이터경우 delay_us(40); 40us delay
jenny25님의 댓글
jenny25
마스터님께서 말씀해주신 내용 확실히 이해하여, 하드웨어적인 부분은 이해 했는데요, GPIO 매핑하여 Byte volatile pdata GlcdData _at_ 0x40; Byte volatile pdata GlcdInst _at_ 0x60; 주소를 이용해야 한다는 부분을 알고 있는데, 코드로 어떻게 짜야 할지 감이 안잡혀서요,
master님의 댓글
master
회로도에는 많은 기능이 있으며 여러가지 기능을 구동하는 예제소스를 공부하셨으리라고 예상되는데요
예제소스를 전혀 배운적이 없다는 것처럼 질문하시면 안됩니다.
그동안 공부했던 모든 예제소스를 압축해서 첨부파일에 올려보세요
jenny25님의 댓글
jenny25
질문이 잘못 되었군요,, 다시 질문드리겠습니다.
다른 LCD 예제 소스를 보면, MCU와 LCD가 다이랙트로 연결 되어, RS, RW, EN 각 핀을 지정해주어서 사용합니다.
#define LCD P2
sbit rs =P3^0;
sbit rw=P3^1;
sbit e =P3^2;
이런식으로여,
근데, 저 회로도에는 P0~P7까지 LCD 데이터 및 다른 데이터도 데이터 버스로 데이터가 전송이 되는데여,
이럴때에 RS, RW, EN을 어떻게 코드로 짜서 제어를 해야하는지,
똑같이 sbit e =P3^2; 핀 설정을 해도 되는지에 대한 질문이었습니다.
master님의 댓글
master 작성일
sbit rs =P3^0;
sbit rw=P3^1;
sbit e =P3^2;
버스로 제어하지 않고 포트로 제어 할 때는 위와 같은 선언을 사용할 수도 있습니다만
이 경우에는 WR,RD,ALE 등의 포트를 제어해야하고 포트0, 포트2도 제어해야 합니다만 ALE가 포트에 묶여있지 않으므로 질문 회로에서는 포트로 제어하지 못하고 버스로만 제어 해야합니다.
//
sbit rs =P3^0;
sbit rw=P3^1;
sbit e =P3^2;
위 선언은 질문 회로대로 구성되어 있지 않고 다른 핀에 연결했다는 뜻일까요?
LCD의 D0~D7는 포트2에 연결되어 있나보군요
https://cafe.naver.com/circuitsmanual/25026
이 예제에서는 포트가 다르지만 참고해서 만들어보세요
jenny25님의 댓글
jenny25
아닙니다. LCD의 D0 ~ D7도 포트 0에 연결되어 있습니다.
또한 포트2에는 LED관련 데이터만 연결되어 있구요,
포트0에 D0 ~ D7 과, 다른 데이터들이 데이터 버스로 연결되어 있을떄,
sbit rs =P3^0;
sbit rw=P3^1;
sbit e =P3^2;
이렇게 선언을 못하게 되어서,
어떻게 선언을 하여 제어를 해야할지 모르겠습니다.
master님의 댓글
master
학교에서 공부하던 예제를 참고하시든지
학생이 아니라면 키트를 판매한 제조사 사이트의 예제를 참고해서 공부하세요
기존 예제를 첨부하셔야지 도움을 드릴 수 있습니다.
jenny25님의 댓글
jenny25
예제는 있는데요, LCD 관련 되어 있는 부분만 있으면 될까요??
master님의 댓글
master
모든 예제코드를 압축해서 첨부하세요
답변에 필요한 부분은 제가 알아서 고릅니다.