목차
1. 장비 분석
2. 코드 분석
3. 결과 예측 & compile 결과
2. 코드 분석
3. 결과 예측 & compile 결과
본문내용
CLCD제어_예비 레포트.hwp
1. 장비 분석 CLCD는 Character Liquid Crystal Display의 약자로 Text LCD라고도 한다.
≪ 그 림 ≫
≪ 그 림 ≫
텍스트 LCD의 하드웨어 규격
▸ 4bit, 8bit, 32bit 마이크로프로세서와 인터페이스 가능
▸ 5 X 8dot, 5 X 10 dot 디스플레이
▸ 80 X 8 비트의 디스플레이 데이터 램(DD RAM은 최대 80문자 가능)
▸ 240 문자 폰트를 위한 문자 발생기 ROM(CG ROM)
▸ 64 X 4 비트 문자 발생기(CG RAM)
▸ 5Volt 단일 전원 사용
≪ 그 림 ≫
- RS가 교차되는 지점은 0이든 1이든 상관없지만 데이터가 바뀌어야 한다면 저 타이밍에 바뀌어야 한다는 것을 의미한다. RS 값이 High, Low에 상관없이 R/W가 Low인 상태에서 Enable 값이 High가 되면 데이터를 넣어주고 있음을 의미하며, Low로 바뀔 때까지의 데이터가 DB0 ~ DB7까지 전달되고 있음을 알 수 있다.
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
clcd_mm.c
#include
#include
#include
#include
#include
#include
#define FPGA_CLCD_WR 0x12300000
#define FPGA_CLCD_RS 0x12380000
static void setcommand(unsigned short command);
static void initialize_clcd(void);
static void function_set(int DL, int N, int F);
static void display_control(int D, int C, int B);
static void cursor_shit(int set_screen, int set_rightshit);
static void entry_mode_set(int ID, int S);
static void return_home(void);
static void clcd_clear(void);
static void set_RAM_address(int pos, int CG_or_DD);
static void clcd_exit(void);
void write_byte(char ch);
unsigned short *CLCD_CMD, *CLCD_DATA;
int fd;
int main(int argc, char **argv)
{int fd, i, len1=11, len2=19, CG_or_DD=1;
char buf1[100] = "Welcome to", buf2[100] = "Embedded World!";
if (argc>1) {len1=strlen(argv[1]); strcpy(buf1, argv[1]); len2=0;}
if (argc>2) {len2=strlen(argv[2]); strcpy(buf2, argv[2]); }
if ((fd=open("/dev/mem",O_RDWR|O_SYNC)) <0)
{perror("failed Opening CLCD(using mmap)\n"); exit(1);}
if (clcd_init()<0)
{close(fd); printf("mmap error in clcd_init()\n"); return -1; }
initialize_clcd();
for (i= 0; i
set_RAM_address(0x40, CG_or_DD);
for (i=0; i
clcd_exit();
}
1. 장비 분석 CLCD는 Character Liquid Crystal Display의 약자로 Text LCD라고도 한다.
≪ 그 림 ≫
≪ 그 림 ≫
텍스트 LCD의 하드웨어 규격
▸ 4bit, 8bit, 32bit 마이크로프로세서와 인터페이스 가능
▸ 5 X 8dot, 5 X 10 dot 디스플레이
▸ 80 X 8 비트의 디스플레이 데이터 램(DD RAM은 최대 80문자 가능)
▸ 240 문자 폰트를 위한 문자 발생기 ROM(CG ROM)
▸ 64 X 4 비트 문자 발생기(CG RAM)
▸ 5Volt 단일 전원 사용
≪ 그 림 ≫
- RS가 교차되는 지점은 0이든 1이든 상관없지만 데이터가 바뀌어야 한다면 저 타이밍에 바뀌어야 한다는 것을 의미한다. RS 값이 High, Low에 상관없이 R/W가 Low인 상태에서 Enable 값이 High가 되면 데이터를 넣어주고 있음을 의미하며, Low로 바뀔 때까지의 데이터가 DB0 ~ DB7까지 전달되고 있음을 알 수 있다.
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
clcd_mm.c
#include
#include
#include
#include
#include
#include
#define FPGA_CLCD_WR 0x12300000
#define FPGA_CLCD_RS 0x12380000
static void setcommand(unsigned short command);
static void initialize_clcd(void);
static void function_set(int DL, int N, int F);
static void display_control(int D, int C, int B);
static void cursor_shit(int set_screen, int set_rightshit);
static void entry_mode_set(int ID, int S);
static void return_home(void);
static void clcd_clear(void);
static void set_RAM_address(int pos, int CG_or_DD);
static void clcd_exit(void);
void write_byte(char ch);
unsigned short *CLCD_CMD, *CLCD_DATA;
int fd;
int main(int argc, char **argv)
{int fd, i, len1=11, len2=19, CG_or_DD=1;
char buf1[100] = "Welcome to", buf2[100] = "Embedded World!";
if (argc>1) {len1=strlen(argv[1]); strcpy(buf1, argv[1]); len2=0;}
if (argc>2) {len2=strlen(argv[2]); strcpy(buf2, argv[2]); }
if ((fd=open("/dev/mem",O_RDWR|O_SYNC)) <0)
{perror("failed Opening CLCD(using mmap)\n"); exit(1);}
if (clcd_init()<0)
{close(fd); printf("mmap error in clcd_init()\n"); return -1; }
initialize_clcd();
for (i= 0; i
for (i=0; i
}
키워드
추천자료
국내 반도체산업 구조조정 현황 및 개선방안 (기업구조조정)
기억장치의 개념, 기능, 종류, 특징 및 반도체 Memory의 종류
정보통신 네트웍 용어
컴퓨터의 발달 과정
RFID , 전자태그 , 무선인식
운영체제 레포트 (부산디지털대학)-김성민교수
하이트 기업의 역량 개발 전략
Mobile RFID와 그를 통해 할 수 있는 Service
[국제표준]선진국의 최근 표준화 현황과 우리나라의 대응방향
NC, CNC, DNC, FMS, FA, CIMS, CAD/CAM의 개념
학사관리 시스템 데이터베이스 쿼리
Embedded System을 이용한 HomeAutomation/HomeNetworking 구현
Embedded System을 이용한 HomeAutomation/HomeNetworking 구현
조직변화와 개발,마케팅,브랜드,브랜드마케팅,기업,서비스마케팅,글로벌,경영,시장,사례,swot...
소개글