BASIC4MCU | 8051/PIC | DT-516 강좌 | DT516-103-1.c 8비트 CLCD 큰숫자
페이지 정보
작성자 키트 작성일2017-08-24 10:57 조회1,224회 댓글0건첨부파일
본문
//-------------------------------------------------------------
// 82G516 E/V BOARD ( DT-516 )
//-------------------------------------------------------------
// XTAL : 22.1184Hz
//-------------------------------------------------------------
// filename: DT516-103-1.c
// LCD 8비트 CGRAM CLOCK
//-------------------------------------------------------------
#include
#include
//
#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[]= " CGRAM";
U_C str2[]= " Test ";
//CU_C test[10][2][8]={
// 0
0x0E, // 01110
0x1F, // 11111
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x1F, // 11111
0x0E, // 01110// 1
0x06, // 00110
0x06, // 00110
0x0A, // 01010
0x02, // 00010
0x02, // 00010
0x02, // 00010
0x02, // 00010
0x02, // 00010
0x02, // 00010
0x02, // 00010
0x02, // 00010
0x02, // 00010
0x02, // 00010
0x02, // 00010
0x1F, // 11111
0x1F, // 11111// 2
0x0E, // 01110
0x1F, // 11111
0x11, // 10001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x04, // 00010
0x04, // 00100
0x08, // 01000
0x08, // 01000
0x10, // 10000
0x10, // 10000
0x1F, // 11111
0x1F, // 11111// 3
0x0E, // 01110
0x1F, // 11111
0x11, // 10001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x0E, // 01110
0x0E, // 01110
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x11, // 10001
0x1F, // 11111
0x0E, // 01110// 4
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x1F, // 11111
0x1F, // 11111
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x01, // 00001// 5
0x1F, // 11111
0x1F, // 11111
0x10, // 10000
0x10, // 10000
0x10, // 10000
0x10, // 10000
0x10, // 10000
0x1E, // 11110
0x1F, // 11111
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x11, // 10001
0x1F, // 11111
0x0E, // 01110// 6
0x0E, // 01110
0x1F, // 11111
0x11, // 10001
0x10, // 10000
0x10, // 10000
0x10, // 10000
0x10, // 10000
0x1E, // 11110
0x1F, // 11111
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x1F, // 11111
0x0E, // 01110// 7
0x1F, // 11111
0x1F, // 11111
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x02, // 00010
0x04, // 00100
0x08, // 01000
0x08, // 01000
0x10, // 10000
0x10, // 10000
0x10, // 10000
0x10, // 10000// 8
0x0E, // 01110
0x1F, // 11111
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x0E, // 01110
0x0E, // 01110
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x1F, // 11111
0x0E, // 01110// 9
0x0E, // 01110
0x1F, // 11111
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x11, // 10001
0x1F, // 11111
0x0F, // 01111
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x01, // 00001
0x11, // 10001
0x1F, // 11111
0x0E // 01110
};//
void delay_us(unsigned int d){ // 안 맞음
unsigned int i;
for(i=0;i
}
//
void delay_ms(unsigned int d){
unsigned int i,j;
for(i=0;i
}
//
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_C i,k;
P3=0; lcd_init();
lcdCmd(0x80); lcd_puts(str1);
lcdCmd(0xC0); lcd_puts(str2);
delay_ms(1000);
while(1){
for(i=0;i<10;i++){
lcdCmd(0x40); for(k=0;k<16;k++)lcdData(test[i][0][k]); //m10, 0 1
lcdCmd(0x80+i); lcdData(0);
lcdCmd(0xC0+i); lcdData(1);
delay_ms(500);
}
}
}
//-------------------------------------------------------------;i++){>;i++); >
앞의 예제와 거의 유사한 것입니다.
댓글 0
조회수 1,224등록된 댓글이 없습니다.