8051/PIC > DT516-103.c 8비트 CLCD 큰숫자

TODAY246 TOTAL2,579,415
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 8051/PIC | DT-516 강좌 | DT516-103.c 8비트 CLCD 큰숫자

페이지 정보

작성자 키트 작성일2017-08-24 10:55 조회1,198회 댓글0건

첨부파일

본문

3660040644_xULfMtTS_dsc01595-1_ekit.jpg3Ftype3Dw7403660040644_by9jliUe_dsc01598-1_ekit.jpg3Ftype3Dw740

//-------------------------------------------------------------
// 82G516 E/V BOARD ( DT-516 )
//-------------------------------------------------------------
// XTAL : 22.1184Hz
//-------------------------------------------------------------
// filename: DT516-103.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[]= "CLOCK 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 sec, min, s1, s10, m1, m10, i;
    P3=0; lcd_init();
    lcdCmd(0x80); lcd_puts(str1);
    lcdCmd(0xC0); lcd_puts(str2);
    delay_ms(1000);
    while(1){
        for(min=0;min<60;min++){
            m10=min/10; m1=min%10;
            lcdCmd(0x40); 
            for(i=0;i<16;i++)lcdData(test[m10][0][i]); //m10, 0 1 //분 십의자리 폰트 저장 // 0x40~4F
            for(i=0;i<16;i++)lcdData(test[m1 ][0][i]); //m1 , 2 3 //분 일의자리 폰트 저장 // 0x50~5F
   //
            for(sec=0;sec<60;sec++){
                 s10=sec/10; s1=sec%10;
                 lcdCmd(0x60); 
                 for(i=0;i<16;i++)lcdData(test[s10][0][i]); //s10, 4 5 //초 십의자리 폰트 저장 // 0x60~6F
                 for(i=0;i<16;i++)lcdData(test[s1 ][0][i]); //s1 , 6 7 //초 일의자리 폰트 저장 // 0x70~7F
    //
                 lcdCmd(0x8B);  // 첫번째 라인 12번째 위치;i++){>
;i++);      >

                 lcdData(0); lcdData(2); // 위에서 저장한 분 십의자리, 분 일의자리,  데이터 출력

                 lcdData(0xA5); // 분과 초 사이의 점

                 lcdData(4); lcdData(6); // 위에서 저장한 초 십의자리, 초 일의자리,  데이터 출력
                 lcdCmd(0xCB); // 두번째 라인 12번째 위치

                 lcdData(1); lcdData(3); // 위에서 저장한 분 십의자리, 분 일의자리, 아래 데이터 출력

                 lcdData(0xA5); // 분과 초 사이의 점

                 lcdData(5); lcdData(7); // 위에서 저장한 초 십의자리, 초 일의자리, 아래 데이터 출력
                 delay_ms(500);
                 lcdCmd(0x8D); lcdData(' ');
                 lcdCmd(0xCD); lcdData(' ');
                 delay_ms(500);
            }
        }
    }
}
//-------------------------------------------------------------

CGRAM 크기에 넣을 문자는 8문자 밖에 넣지 못하므로 제약이 있습니다.

 

3660040644_9RVxrjg1_clcd_25B525A525C025CC25C525CD25BD25C325C625AE_ekit.gif3Ftype3Dw740

 

LCD 스크롤 시키는 것은 직접 만들어 보세요

댓글 0

조회수 1,198

등록된 댓글이 없습니다.

8051/PICHOME > 8051/PIC > 전체 목록

게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기