BASIC4MCU | 8051/PIC | DT-516 강좌 | DT516-102.c 8비트 CLCD 한글
페이지 정보
작성자 키트 작성일2017-08-23 16:05 조회1,252회 댓글0건첨부파일
본문
//-------------------------------------------------------------// 82G516 E/V BOARD ( DT-516 )//-------------------------------------------------------------// XTAL : 22.1184Hz//-------------------------------------------------------------// filename: DT516-102.c//-------------------------------------------------------------#include <REG_MPC82G516.H>#include <stdio.H>//#define U_C unsigned char#define U_I unsigned int#define U_L unsigned long//#define I_C idata char#define I_I idata int#define I_L idata long#define I_F idata float#define IU_C idata unsigned char#define IU_I idata unsigned int#define IU_L idata unsigned long//#define X_C xdata char#define X_I xdata int#define X_L xdata long#define X_F xdata float#define XU_C xdata unsigned char#define XU_I xdata unsigned int#define XU_L xdata unsigned long//#define C_C code char#define C_I code int#define C_L code long#define C_F code float#define CU_C code unsigned char#define CU_I code unsigned int#define CU_L code unsigned long//#define lcd_RS P30#define lcd_E P31#define lcd_Out P1//U_C str1[]= "DT-516 CLCD Test";U_C str2[]= " basic4mcu.com ";//CU_C test[8][26]={0x00,0x14,0x00,0x10,0x02,0x00,0x10,0x02,0x10,0x00,0x00,0x10,0x02,0x0F,0x1B,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x1F,0x00,0x08,0x14,0x18,0x14,0x12,0x1C,0x17,0x1A,0x10,0x03,0x1C,0x17,0x1A,0x00,0x08,0x11,0x01,0x19,0x1E,0x00,0x1E,0x08,0x06,0x02,0x00,0x08,0x08,0x15,0x04,0x14,0x12,0x02,0x12,0x12,0x10,0x00,0x10,0x11,0x02,0x02,0x08,0x11,0x11,0x04,0x08,0x00,0x10,0x18,0x08,0x04,0x1F,0x04,0x0B,0x15,0x04,0x17,0x16,0x1E,0x1B,0x16,0x10,0x00,0x13,0x11,0x03,0x0F,0x19,0x09,0x01,0x04,0x08,0x1C,0x1C,0x08,0x0E,0x04,0x04,0x04,0x08,0x15,0x04,0x14,0x12,0x02,0x12,0x12,0x10,0x01,0x08,0x11,0x02,0x00,0x02,0x05,0x01,0x04,0x08,0x00,0x02,0x08,0x09,0x05,0x00,0x14,0x08,0x15,0x04,0x14,0x12,0x04,0x12,0x12,0x10,0x02,0x04,0x12,0x12,0x07,0x13,0x1E,0x01,0x04,0x08,0x00,0x12,0x08,0x09,0x04,0x1F,0x04,0x06,0x14,0x18,0x13,0x02,0x18,0x17,0x1A,0x10,0x02,0x00,0x04,0x0A,0x08,0x08,0x01,0x01,0x18,0x08,0x00,0x0C,0x1E,0x06,0x02,0x00,0x08,0x00,0x14,0x00,0x10,0x02,0x00,0x10,0x02,0x10,0x03,0x1F,0x10,0x02,0x07,0x10,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x10};//void delay_us(unsigned int d){ // 안 맞음unsigned int i;for(i=0;i<d;i++); // @22.118400Hz}//void delay_ms(unsigned int d){unsigned int i,j;for(i=0;i<d;i++){ for(j=0;j<920;j++); } // @22.118400Hz}//void lcdData(U_C d){ lcd_RS=1; lcd_Out=d; lcd_E=1; delay_us(1); lcd_E=0; delay_us(50); }//void lcdCmd(U_C c){ lcd_RS=0; lcd_Out=c; lcd_E=1; delay_us(1); lcd_E=0; delay_ms(5); }//void lcd_init(void){delay_ms(50); lcdCmd(0x38); lcdCmd(0x38); lcdCmd(0x38); lcdCmd(0x0C); lcdCmd(0x06); lcdCmd(0x01);}//void lcd_puts(U_C *str){ while(*str)lcdData(*str++); }//void main(void){//U_C buf[30];U_I i,j,k;P3=0; lcd_init();lcdCmd(0x80); lcd_puts(str1);lcdCmd(0xC0); lcd_puts(str2);while(1){for(k=0;k<18;k++){lcdCmd(0x40); for(j=0;j<8;j++){ for(i=0;i<8;i++)lcdData(test[i][j+k]); }lcdCmd(0xC0); for(i=0;i<8;i++)lcdData(i);delay_ms(1000);}}}//-------------------------------------------------------------
폰트는 압축 파일 안의 CLCD한글 CGRAM.txt 파일 참고 하시고
그래픽LCD처럼 붙은 것이 아나리서 글씨를 알아보기 어렵습니다.
CLCD 한개의 캐릭터는 5*8입니다.
8 바이트로 구성 되며
MSB LSB
XXX00000 <-- 0은 표시 안됩니다.
XXX11111 <-- 1은 까맣게 표시됩니다.
XXX는 화면에 나타나지 않는 부분입니다.
XXX00110
XXX01001
XXX01001
XXX01001
XXX01001
XXX01001
XXX00110
XXX00000
이 데이터는 숫자 0을 표시하게 됩니다.
최대 8문자까지만 등록 됩니다.
CLCD는 원래 문자를 전송 해야지 표시가 되지만
사용자가 원하는 패턴을 넣어 두고서 그 문자를 표시 하고 싶으면
lcdData(0);
lcdData(1);
lcdData(2);
lcdData(3);
lcdData(4);
lcdData(5);
lcdData(6);
lcdData(7);
을 불러서 표시 하면 됩니다.
댓글 0
조회수 1,252등록된 댓글이 없습니다.