BASIC4MCU | 8051/PIC | DT-516 강좌 | DT516-021.c 딜레이함수를 사용한 9999 카운터
페이지 정보
작성자 키트 작성일2017-08-21 17:10 조회1,311회 댓글0건첨부파일
본문
콤몬 애노드 타입의 FND를 사용 하고
콤몬은 포트4
세그는 포트0으로 제어 합니다.
//----------------------------------------------------------------------------
//-------------------------------------------------------------
// 82G516 E/V BOARD ( DT-516 )
//-------------------------------------------------------------
// XTAL : 22.1184Hz
//-------------------------------------------------------------
// filename: DT516-021.c
// 딜레이함수를 사용한 9999 카운터
//-------------------------------------------------------------
#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 FND_COM1 P40
#define FND_COM2 P41
#define FND_COM3 P42
#define FND_COM4 P43
#define FND_SEG P0
//
CU_C Seg_Data[]={
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E //0123456789AbcdEF
};
//
void delay_ms(U_I d){
U_I i,j;
for(i=0;i
}
//
void main(){
U_I i,k;
while(1){
for(i=0;i<10000;i++){
for(k=0;k<50;k++){ // 5ms * 4 = 20ms, 20ms * 50 = 1000ms
P4=0xFF; P0=Seg_Data[i/1000]; FND_COM1=0; delay_ms(5);
P4=0xFF; P0=Seg_Data[(i/100)%10]; FND_COM2=0; delay_ms(5);
P4=0xFF; P0=Seg_Data[(i/ 10)%10]; FND_COM3=0; delay_ms(5);
P4=0xFF; P0=Seg_Data[i%10]; FND_COM4=0; delay_ms(5);
}
}
}
}
//-------------------------------------------------------------;i++){>//-------------------------------------------------------------
//-------------------------------------------------------------
저같은 독타는 아래처럼 단축된 데이터형을 사용 합니다.#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몇가지 메모리 타입에 대한 데이터형입니다.
//-------------------------------------------------------------
P4=0xFF; // 콤몬 OFF
P0=Seg_Data[i/1000]; // 각 자리에 해당 하는 값을 계산 해서 Seg 데이터 출력
FND_COM1=0; // 콤몬 출력
delay_ms(5); // 눈으로 보기 위한 딜레이 시간
댓글 0
조회수 1,311등록된 댓글이 없습니다.