/*===========================================================================================
Project : ¸±·¹ÀÌ, ºÎÀú Å×½ºÆ®
Version : LK-PB-F V01
Date    : 2011-07-28
Author  : Kyung Nam Lee
Company : LKEMBEDDED
Compiler: MPLAB+Hitech-C
Comment : ¸±·¹ÀÌ, ºÎÀú¸¦ 2ÃÊ¸¶´Ù ON/OFFÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù.
===========================================================================================*/
#include <pic18f452.h>
#include <stdio.h>
#define _XTAL_FREQ 16000000
#include <htc.h>	// Required to interface with delay routines
#define LED_CLK 0X00
#define FNDDB_CLK 0X01
#define FND_BUZZER_CLK 0X02
#define LCDCON_CLK 0X03
#define LCDDB_CLK 0X04
#define DC_SERVO_MOTOR_Relay_CLK 0X05
#define DOT_LED_A_CLK 0X06
#define DOT_LED_K_CLK 0X07
#define CP_Sig 0X10  //Active Low Cp
/* ÄÚµå Å×½ºÆ® 74hc574 QÇÉÀ¸·Î Ãâ·Â °ªÀÌ ÀúÀåµÇ°í ÀÖÀ½À» ÇÁ·Î±×·¥¸Ó´Â ÀÎÁöÇÏ¿©¾ß ÇÑ´Ù.*/

void DelayMs(unsigned int ms)
{
	unsigned char i;
	do {
		i = 4;
		do {
			__delay_us(250);
		} while(--i);
	} while(--ms);
}
void flilflop_Enable(unsigned char Add, unsigned char OuputData)
{
	PORTD = OuputData;
	PORTB |= CP_Sig; //74hc574 cp sig HIGH
	PORTC = Add; //74hc574 cp sig HIGH and 74HC138 E3 HIGH
	PORTB &= ~CP_Sig; //74hc574 cp sig LOW
	PORTB |= CP_Sig; //74hc574 cp sig HIGH
}
void RelayBuzzTest()
{

	flilflop_Enable(FND_BUZZER_CLK, 0X00);
	flilflop_Enable(DC_SERVO_MOTOR_Relay_CLK, 0X00);
	DelayMs(500); //0.5 sec Áö¿¬
	flilflop_Enable(FND_BUZZER_CLK, 0x01);
	flilflop_Enable(DC_SERVO_MOTOR_Relay_CLK, 0X80);
	DelayMs(500);
}
void SysInit()
{
	//-- ÀÔÃâ·Â ·¹Áö½ºÅÍ ¼³Á¤ ÃÊ±âÈ­------------------
	TRISA = 0X0f;
	TRISB = 0X01;
	PORTB = 0X00;
	TRISC = 0x80;
	PORTC = 0X00;
	TRISD = 0X00;
	PORTD = 0X00;
	TRISE = 0X00;
	PORTE = 0X00;
}
void main()
{
	SysInit(); //--- ½Ã½ºÅÛ ¼³Á¤ ÃÊ±âÈ­ ÇÔ¼ö
	while (1)   //---Endless Loop
	{
		RelayBuzzTest();
	}
}