BASIC4MCU | 8051/PIC | DT-516 강좌 | DT516-086.c 시리얼 수신 값 전송(에코)
페이지 정보
작성자 키트 작성일2017-08-23 13:54 조회1,263회 댓글0건첨부파일
본문
//-------------------------------------------------------------
// 82G516 E/V BOARD ( DT-516 )
//-------------------------------------------------------------
// XTAL : 22.1184Hz
//-------------------------------------------------------------
// filename: DT516-086.c
// 시리얼 수신 값 전송(에코)
//-------------------------------------------------------------
#include
//
#include "DT516-main.h"
//
//
U_C key_buf=0;
bit PushFlg=0, Key_Flg=0;
//
void Timer_0_Interrupt(void) interrupt 1{ // 7200Hz=138.89us 주기
P4=0xFF; // FND OFF
if(Tcnt0<3600)H_SecFlg=1;
else H_SecFlg=0;
//
if(++Tcnt0>=7200){ Tcnt0=0; Sec++;
if(Sec >= 60){ Sec=0; Min++; }
if(Min >= 60){ Min=0; Hour++; }
if(Hour>= 24){ Hour=0; }
}
//
switch(FND_CNT){
case 0: P0=Seg_Data[Hour/10]; if((Sec<15)&&(H_SecFlg))P07=0; FND_COM1=0; break;
case 1: P0=Seg_Data[Hour%10]; if((Sec>=15)&&(Sec<30)&&(H_SecFlg))P07=0; FND_COM2=0; break;
case 2: P0=Seg_Data[Min /10]; if((Sec>=30)&&(Sec<45)&&(H_SecFlg))P07=0; FND_COM3=0; break;
case 3: P0=Seg_Data[Min %10]; if((Sec>=45)&&(H_SecFlg))P07=0; FND_COM4=0; break;
}
if(++FND_CNT>3)FND_CNT=0;
//
if(delay_buf){ if(--delay_buf==0)delay_flg=1; }
}
//
CU_C test[]="\r\n 82G516 강좌입니다.\r\n";
//
void TX0_CH(U_C ch){ SBUF=ch; while(!TI); TI=0; }
U_C RX0_CH(void){ while(!RI); RI=0; return SBUF; }
void TX0_STR(char *pt){ while(*pt)TX0_CH(*pt++); }
//
void main(){
U_C ch;
TMOD=0x22; SCON=0x50; TCON=0x55; TH1=0xFA; TL1=0xFA; ET0=1; TR0=1; TR1=1; EA=1; // 9600bps
delay_ms(1000);
TX0_STR((U_C*)test);
while(1){
ch=RX0_CH();
TX0_CH(ch);
}
}
//-------------------------------------------------------------
PC 키보드에서 입력한 문자를 82G516이 받아서 PC로 에코시켜 줍니다.
댓글 0
조회수 1,263등록된 댓글이 없습니다.