SE-CLOCK-UNI

SC-CLOCK-UNI 조립 키트는 4 가지의 기능을 가지고 있습니다.. 

1: 12시간 초 단위 표시 시계
2: 99분까지 측정되는 1/100 초 단위 스톱워치 타이머
3: 펄스 업/다운 카운터
4: 엔코더 AB 상 신호 카운터

전원 공급 후 J1, J2 의 점퍼 핀 상태에 따라 4 가지 중
1 가지의 모드로 동작합니다.

소스와 회로도를 자세하게 공개하여 8051프로세서와 C 프로그램을
쉽게 배울 수 있는 KIT 입니다.

9V 건전지를 사용할 수 있도록 전지스냅이 포함되어 있습니다.

Crossware 8051 C 컴파일러 데모버젼

Crossware 8051 C 컴파일러 한글매뉴얼


*** CPU 에 HEX 파일이 라이팅되어 있습니다. ***


*** CPU 에 HEX 파일이 라이팅되어 있습니다. ***


KIT 에 엔코더는 포함되지 않습니다.


*** CPU 에 HEX 파일이 라이팅되어 있습니다. ***


*** CPU 에 HEX 파일이 라이팅되어 있습니다. ***


*** CPU 에 HEX 파일이 라이팅되어 있습니다. ***


*** CPU 에 HEX 파일이 라이팅되어 있습니다. ***

노란색: 9V, 빨간색: 5V, 하늘색: 0V


*** CPU 에 HEX 파일이 라이팅되어 있습니다. ***

/////////////////////////////////////////////////////////////
//
// SE-CLOCK-UNI
//
// Clock / Timer / Pulse Counter / Quadrature Counter
//
// SAMPLE Electronics co. 
// TEL: +82-2-701-8051 FAX: +82-2-701-8058
// C-18 P1-Fl, Main-Bd. ET-Land 
// 16-9 Hangangno-3ga Yongsan-gu
// Seoul 140-879 South KOREA
// Email: sample@korea.com
// Web: HTTP://WWW.SAMPLE.CO.KR
//
// Programmed by Junghoon Kim
// Programmed on 7. DEC. 2005
//
// Crossware Embedded Development Studio V 3.3.1.2
//
/////////////////////////////////////////////////////////////
#include <sfr.h> // 8051 의 SFR 이 정의된 파일
#include <os.h> // 8051 의 인터럽트 번호 정의된 파일 
/////////////////////////////////////////////////////////////
_sfrbit Set_alarm = _p3^2; // Clock 
_sfrbit Set_save = _p3^3; // Clock
_sfrbit Set_hour = _p3^4; // Clock
_sfrbit Set_minute = _p3^5; // Clock
//
_sfrbit Timer_start = _p3^4; // Timer / Stop Watch 
_sfrbit Timer_stop = _p3^5; // Timer / Stop Watch
//
_sfrbit Sig_z = _p3^3; // Quadrature Counter Clear
_sfrbit Sig_a = _p3^4; // Quadrature Counter A Input
_sfrbit Sig_b = _p3^5; // Quadrature Counter B Input
//
_sfrbit pulse_in = _p3^2; // Pulse Counter Input INT0 Pin
_sfrbit direction = _p3^4; // Pulse Counter Direction
_sfrbit clear = _p3^5; // Pulse Counter Clear
//
_sfrbit Buzer = _p3^6; // Clock / Timer
_sfrbit Minus = _p3^7; // Quadrature Counter / Pulse Counter
/////////////////////////////////////////////////////////////
unsigned char iclock; // Clock / Timer
unsigned char cent; // Clock / Timer
//
unsigned char previous_state; // Quadrature Counter 
int counter, qabcounter; // Quadrature Counter / Pulse Counter
//
_bit timer_run; // Timer
_bit move_enable; // Quadrature Counter / Pulse Counter
/////////////////////////////////////////////////////////////
void _interrupt IVN_INTERRUPT0 external_int0() { // Pulse Counter

if (direction == 1) {
counter++;
} else {
counter--;
}
if (move_enable) {
qabcounter = counter;
}
}
/////////////////////////////////////////////////////////////
void _interrupt IVN_TIMER0 time_base() { // Clock, Timer

iclock++;
if (iclock > 39) { // 250 nS x 40 = 10 mS
iclock = 0;
cent++; // 1/100 S (10 mS)
}
}
/////////////////////////////////////////////////////////////
void _interrupt IVN_TIMER1 quad_input() { // Quadrature Counter
//
#define QS0 0x00 // 00 00 S0 S0+ . 무변화
#define QS1 0x01 // 00 01 S0 S1+ + 증가
#define QS3 0x03 // 00 11 S0 S2+ ?
#define QS2 0x02 // 00 10 S0 S3+ - 감소

#define QS4 0x04 // 01 00 S1 S0+ - 감소
#define QS5 0x05 // 01 01 S1 S1+ . 무변화
#define QS7 0x07 // 01 11 S1 S2+ + 증가
#define QS6 0x06 // 01 10 S1 S3+ ?

#define QSC 0x0C // 11 00 S2 S0+ ?
#define QSD 0x0D // 11 01 S2 S1+ - 감소
#define QSF 0x0F // 11 11 S2 S2+ . 무변화
#define QSE 0x0E // 11 10 S2 S3+ + 증가

#define QS8 0x08 // 10 00 S3 S0+ + 증가
#define QS9 0x09 // 10 01 S3 S1+ ?
#define QSB 0x0B // 10 11 S3 S2+ - 감소
#define QSA 0x0A // 10 10 S3 S3+ . 무변화
//
unsigned char current_state, t;
_tl1 = 0xB5; _th1 = 0xFF; // Timer Set 
// FFCE:50uS FFB5:75uS FF9C:100uS (12MHz CLK)
t = _p3;
current_state = (t >> 4) & 0x03;
t = (previous_state << 2) | current_state;
previous_state = current_state;

switch(t) {
case QS1: counter++; break; // 증가
case QS2: counter--; break; // 감소
case QS4: counter--; break; // 감소
case QS7: counter++; break; // 증가
case QSD: counter--; break; // 감소
case QSE: counter++; break; // 증가
case QS8: counter++; break; // 증가
case QSB: counter--; break; // 감소
}

if (Sig_z == 0) { 
counter = 0;

if (move_enable) {
qabcounter = counter;
}
}
/////////////////////////////////////////////////////////////
void fnd_display(unsigned char a, unsigned char b, unsigned char c) {
/***********************************************************
* FND 1 2 3 4 5 6 *
* +---+ +---+ +---+ +---+ +---+ +---+ *
* | | | | | | | | | | | | *
* +---+ +---+ +---+ +---+ +---+ +---+ *
* | | | | | | | | | | | | *
* +---+ +---+ +---+ +---+ +---+ +---+ *
* a b c *
* *
* 8 비트 무부호 정수 a,b,c 를 입력으로 하여 a 는 FND1, *
* FND2 b 는 FND3, FND4 그리고 c 는 FND5, FND6 에 *
* 숫자를 표시합니다. a,b,c 는 0 ~ 99 까지의 범위 입니다. *
* *
***********************************************************/
unsigned char u,v,m,t,x,y,z;

u = a / 10; // FND 6 Port2
v = a % 10; // FND 5
u = u << 4 ;

x = u | v;

u = b / 10; // FND 4 Port0
v = b % 10; // FND 3
u = u << 4;

y = u | v;

u = c / 10; // FND 2 Port1
v = c % 10; // FND 1
u = u << 4;

z = u | v;

t = z & 0xF0; // 상위 FND의 0 을 블랭크 처리 
if (t == 0) { 
z = z | 0xF0;
t = z & 0x0F;
if (t == 0) {
z = 0xFF;
t = y & 0xF0;
if (t == 0) {
y = y | 0xF0;
t = y & 0x0F;
if (t == 0) {
y = 0xFF;
t = x & 0xF0;
if (t == 0) {
x = x | 0xF0;
}
}
}
}
}

_p2 = x;
_p0 = y;
_p1 = z;

}
/////////////////////////////////////////////////////////////
void delay() {
/***********************************************************
* Delay *
* *
* for 문을 이용한 간단한 딜레이 루틴입니다. *
* *
***********************************************************/
unsigned int i;
for (i = 0; i < 10000; i++) ;
}
/////////////////////////////////////////////////////////////
void quadrature_counter() { // AB(quadrature) 신호 카운터 
/***********************************************************
* Quadrature Counter *
* *
* 이 프로그램은 로터리/리니어 엔코더에서 출력되는 *
* A/B 상 신호를 카운트하여 디스프레이 하는 *
* 예를 보인 것입니다. *
* A/B 상 신호는 소프트웨어에 의하여 4 체배 방식으로 *
* 분해하여 진행 방향과 카운트 양을 계산합니다. *
* A/B 상 신호는 Timer1 을 Mode 1 으로 설정하여 *
* 75uS 주기로 샘플링합니다. *
* 타이머 인터럽트가 발생할 때마다 주기 값을 다시 *
* 설정 합니다. *
* 카운터 표시 범위는 -32768 ~ 32767 까지 입니다. *
* *
* P3.3 = Quadrature Z Input (Clear) *
* P3.4 = Quadrature A Input *
* P3.5 = Quadrature B Input *
* TIMER1 : Mode 1 *
* *
* <<< State Diagram >>> *
* *
* /--S0---\ /--S1---\ *
* | A = 0 | ---(+)---->| A = 1 | *
* | B = 0 |<---(-)---- | B = 0 | *
* \-------/ \-------/ *
* /|\ | /|\ | *
* | | | | + : 카운트 값 증가 *
* (+)(-) (-)(+) *
* | | | | - : 카운트 값 감소 *
* | \|/ | \|/ *
* /--S3---\ /--S2---\ *
* | A = 0 | ---(-)---->| A = 1 | *
* | B = 1 |<---(+)---- | B = 1 | *
* \-------/ \-------/ *
* *
* + : 카운트 값 증가 *
* *
* <<< Linear/Rotary Encoder Pattern >>> *
* *
* 0011223344556677889999887766554433222233445566778899 *
* +---+ +---+ +---+ +---+ +---+ +---+ +--- *
* A | | | | | | | | | | | | | *
* --+ +---+ +---+ +---+ +---+ +---+ +---+ *
* +---+ +---+ +---+ +-------+ +---+ *
* B | | | | | | | | | | *
* ----+ +---+ +-------+ +---+ +---+ +----- *
* *
* 0011223344556677888877665544332211112233445566778899 *
* +---+ +---+ +---+ +-------+ +---+ +--- *
* A | | | | | | | | | | | *
* --+ +---+ +-------+ +---+ +---+ +---+ *
* +---+ +---+ +---+ +---+ +---+ +---+ *
* B | | | | | | | | | | | | *
* ----+ +---+ +---+ +---+ +---+ +---+ +----- *
* *
***********************************************************/
//
unsigned char t, u, v, current_state;
/////////////////////////////////////////////////////////////
#define RESOLUTION 1 // 정밀도 곱 상수
/////////////////////////////////////////////////////////////
int task, desk;

_tmod = 0x10; // Timer 1 Mode 1 16 Bit Timer
_tr1 = 1; // Timer 1 동작 시작 
_et1 = 1; // 타이머 인터럽트 가능상태 설정 
_ea = 1; // 글로벌 인터럽트 가능상태 설정

while(1) {

move_enable = 0;
desk = qabcounter;
move_enable = 1;

if (desk < 0) {
task = -desk * RESOLUTION;
Minus = 1; // Minus LED On
} else {
task = desk * RESOLUTION;
Minus = 0; // Minus LED Off
}

t = task % 100;
task = task /100;
v = task % 100;
task = task /100;
u = task % 100;

fnd_display(t, v, u);
}
}
/////////////////////////////////////////////////////////////
void pulse_counter() { // 펄스 업/다운 카운터 
/***********************************************************
* PULSE Counter *
* *
* 펄스 카운터는 P3.2 핀에 공급되는 펄스의 개수를 세어 *
* 디스프레이 합니다. P3.2 는 INT0 입니다. 입력펄스가 *
* High 에서 Low 로 변할 때 인터럽트가 걸리며 *
* 카운트 합니다. *
* P3.4에 카운트 Up/Down 방향을 지정합니다. *
* P3.5 는 카운터를 리셋합니다. *
* 카운트 가능 범위는 -32768 ~ 32767 까지 입니다. *
* *
* P3.2 = Pulse Counter Input INT0 Pin *
* P3.4 = Pulse Counter Direction 1:Up Count 0:Down Count *
* P3.5 = Pulse Counter Clear *
* INT0 : Edge Sense Mode *
* *
* *
* 000011111111122222200011111111122222222211111111122222 *
* ----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-- *
* P3.2| | | | | | | | | | | | *
* +--+ +--+ +--+ +--+ +--+ +--+ *
* -------------------------------------+ +------ *
* P3.4 | | *
* +----------+ *
* -------------------+ +--------------------------------- *
* P3.5 | | *
* +-+ *
* *
***********************************************************/
//
unsigned char t, u, v;
int task, desk;

counter = 0;
_it0 = 1;
_ex0 = 1; // INT0 인터럽트 
_ea = 1;

while(1) {

move_enable = 0;
desk = qabcounter;
move_enable = 1;

if (clear == 0) { // Pulse Counter Reset
counter = 0;
qabcounter = 0;
desk = 0;


if (desk < 0) {
task = -desk;
Minus = 1; // Minus LED On
} else {
task = desk;
Minus = 0; // Minus LED Off
}

t = task % 100;
task = task /100;
v = task % 100;
task = task /100;
u = task % 100;

fnd_display(t, v, u);
}

}
/////////////////////////////////////////////////////////////
void timer_mode() { // 타이머 
/***********************************************************
* Timer *
* *
* 타이머는 Start 버튼을 누른 시각부터 Stop 버튼을 *
* 누를 때 까지의 시간을 측정하여 표시 합니다. *
* 최대 측정 시간은 99 분 99 초이며 1/100 초 단위의 *
* 시간 표시가 됩니다. 1 초 마다 부져 소리가 납니다. *
* Timer0 를 오토 리로드 모드(Mode 2)로 설정하고 *
* 250uS 마다 타이머 인터럽트가 걸리도록 합니다. *
* 40 개의 인터럽트가 걸리면 1/100 초(Cent)가 됩니다. *
* (250uS x 40 = 10mS) 100 개의 Cent 는 1 초 (Second) 가 *
* 됩니다. 60 초는 1 분 (Minute)이 됩니다. *
* *
* *
* P3.4 = Start *
* P3.5 = Stop *
* TIMER0 : Mode 2 *
* *
* *
* Start -----+ +---------------------------------- *
* P3.4 | | *
* +-----+ *
* Stop ----------------------------------+ +---- *
* P3.5 | | *
* +------+ *
* *
* | | *
* |<-- 시간 측정 구간 -->| *
* | | *
* *
***********************************************************/
//
unsigned char second;
unsigned char minute;

iclock = 0x00;
cent = 0x00;
second = 0x00; // 00 초로 초기 설정 
minute = 0x00; // 00 분으로 초기 설정
_tmod |= 0x02;
_th0 = 0x06; // 250 uSec
_tr0 = 1; // Timer 0 동작시작 
_et0 = 1; // 타이머 인터럽트 가능상태 설정 
_ea = 1; // 글로벌 인터럽트 가능상태 설정

timer_run = 0;
fnd_display(0,0,0);
while(1) {
if (Timer_start == 0) {
timer_run = 1;
cent = 00;
second = 00; // 00 초로 초기 설정 
minute = 00; // 00 분으로 초기 설정
}
if (Timer_stop == 0) {
timer_run = 0;
Buzer = 1; // Buzer OFF
}
if (timer_run) {
if (cent > 99) {
cent = 0;
second++;
}
if (second > 59) {
second = 0;
minute++;
}
if (minute > 59) {
minute = 0;
}
fnd_display(cent, second, minute) ;
if ((cent > 1) && (cent < 10)) { 
Buzer = 0; // Buzer ON
} else {
Buzer = 1; // Buzer OFF
}

}
}
/////////////////////////////////////////////////////////////
void clock_mode() { // 디지털 전자시계 
/***********************************************************
* CLOCK *
* *
* 초 단위로 동작하는 12 시간제 표시 전자 시계입니다. *
* 알람 기능이 지원됩니다. *
* 알람을 설정하면 설정한 시각 1 분 동안만 부져 소리가 *
* 납니다. *
* *
* Timer0 를 오토 리로드 모드(Mode 2)로 설정하고 250uS 마다*
* 타이머 인터럽트가 걸리도록 합니다. 40 개의 인터럽트가 *
* 걸리면 1/100 초(Cent)가 됩니다. (250uS x 40 = 10mS) *
* 100 개의 Cent 는 1 초 (Second) 가 됩니다. 60 초는 *
* 1 분 (Minute)이됩니다. 60 분은 1시간(Hour) 이 됩니다. *
* *
* P3.2 = ALARM 설정 LED GREEN *
* P3.3 = 저장 LED YELLOW *
* P3.4 = 시(Hour) 설정 LED RED *
* P3.5 = 분(분) 설정 LED RED *
* TIMER0 = Mode 2 *
* *
* <<< 시간 설정 >>> *
* Hour 버튼: 시를 조정할 때 누릅니다. *
* Min 버튼: 분을 조정할 때 누릅니다. *
* *
* <<< 알람시각 설정 >>> *
* ALARM 버튼을 누릅니다. *
* Hour 버튼과 Min 버튼을 사용하여 알람 시각을 설정합니다. *
* Save 버튼을 눌러 ALARM 시각을 저장 합니다. *
* ALARM 이 설정되면 P3.3 이 LOW 가 되어 ALARM 표시 *
* LED 가 ON 됩니다. *
* ALARM 시각에 부져가 울리지 않게 하려면 ALARM 버튼을 *
* 눌러 저장하지 않고 ALARM 설정 모드를 빠져 나갑니다. *
* *
***********************************************************/
//
unsigned char second;
unsigned char minute;
unsigned char hour;
unsigned char alarm_minute;
unsigned char alarm_hour;

alarm_hour = 12;
alarm_minute = 0;
hour = 12; // 12 시로 초기 설정 
minute = 0; // 00 분으로 초기 설정
second = 0; // 00 초로 초기 설정 
cent = 0;

_tmod = 0x02; // Auto Reload Mode
_th0 = 0x06; // 250 uSec 인터럽트 주기 
_tr0 = 1; // Timer 0 동작시작 
_et0 = 1; // 타이머 인터럽트 가능상태 설정 
_ea = 1; // 글로벌 인터럽트 가능상태 설정

while(1) {
////////////////////////////////////////////////////////////
if (cent > 99) {
cent = 0;
second++;
}
if (second > 59) {
second = 0;
minute++;
}
if (minute > 59) {
minute = 0;
hour++;
}
if (hour > 12) {
hour = 1;
}
fnd_display(second, minute, hour); // 시, 분, 초를 표시 
////////////////////////////////////////////////////////////
if ((Set_save == 0) && (alarm_hour == hour) && (alarm_minute == minute)) {
Buzer = 0; // 알람 부져 음 
} else { // 1 분 동안만 부져 동작
Buzer = 1;
}
////////////////////////////////////////////////////////////
if (Set_hour == 0) { // 시 단위 조정
hour = hour + 1;
delay();
}
if (Set_minute == 0) { // 분 단위 조정 
minute++;
second = 0;
cent = 0;
delay();
}
////////////////////////////////////////////////////////////
if (Set_alarm == 0) {
Set_save = 1; // ALARM LED Off
while(1) {
fnd_display(0, alarm_minute, alarm_hour);
delay(); 
if (Set_hour == 0) { 
alarm_hour++;
if (alarm_hour > 12) {
alarm_hour = 1;

delay();
}
if (Set_minute == 0) { 
alarm_minute++;
if (alarm_minute > 59) {
alarm_minute = 0;
}
delay();
}
if (Set_save == 0) {
Set_save = 0; // ALARM LED On
break;
}
if (Set_alarm == 0) { // ALARM Off
delay();
break;
}
}
}
////////////////////////////////////////////////////////////

}
/////////////////////////////////////////////////////////////
main() {
/***********************************************************
* SE-CLOCK-UNI *
* *
* SE-CLOCK-UNI 조립 KIT 은 동일한 회로로 4 가지의 다른 *
* 시스템을 만드는 예를 보인 것입니다. 조립 완성후 파워를 *
* 연결하면 P3.0, P3.1 을 확인하여 4 가지 중 1 가지 모드로 * *
* 동작합니다. *
* *
* P3.1 P3.0 *
* Open Open ---> CLOCK *
* Open Short ---> TIMER *
* Short Open ---> PULSE COUNTER *
* Short Short ---> QUADRATURE COUNTER *
* *
* CLOCK : 초단위 표시의 전자 시계 *
* TIMER : 1/100 초단위로 99분까지 측정되는 타이머 *
* PULSE COUNTER : 펄스 업/다운 계수기 *
* QUADRATURE COUNTER : 로터리/리니어 엔코더 A/B 상 카운터 *
* *
* *
* Crossware 8051 ANSI C 데모버젼 컴파일러를 이용하여 *
* HEX 파일 만드는 순서: *
* *
* << 첫번째 방법 >> *
* Step 1: Crossware 8051 ANSI C 컴파일러 다운로드 하고 *
* PC 에 설치합니다. *
* http://www.crossware.co.kr/setup-demo.exe *
* *
* Step 2: Crossware C 컴파일러를 실행합니다. *
* *
* Step 3: 새로운 프로젝트를 만듭니다. *
* 1. FILE 메뉴에서 New 를 선택합니다. *
* New 창이 나옵니다. Project 탭에서 Executable *
* Program 을 선택하고 [확인]을 클릭합니다. *
* 2. Target Select 창이 나오며 *
* Target Family: 8051 *
* Group : Show All *
* Family Member: Generic 8051 을 선택합니다.*
* [다음]을 클릭합니다. *
* 3. Project Name and Directory 창이 나옵니다. *
* Project name 칸에 프로젝트 이름을 *
* se-clock-uni로 입력합니다. *
* Project Directory를 변경하려면 [Browse]버튼을*
* 이용하여 새로운 디렉토리를 선택합니다. *
* [다음] 버튼을 클릭합니다. *
* 4. Target Memory Configuration 창이 나옵니다. *
* Memory Model 을 Small 로 선택 합니다. *
* [다음]을 클릭합니다. *
* 5. Program File Format 창이 나오며 여기서 *
* INTEL HEX 를 선택합니다. *
* [다음]을 클릭합니다. *
* 6. Start up File 창이 나옵니다. *
* [마침]을 클릭하면 Project 초기화가 완료되며 *
* main.c 기본 프로그램이 만들어 집니다. *
* 전부 지우고 SE-CLOCK-UNI 프로그램을 복사하여 *
* 넣습니다. *
* Step 4: Build 메뉴에서 Rebuild All 을 클릭하면 *
* se-clock-uni.HEX 파일이 만들어집니다. *
* *
* *
* << 두번째 방법 >> *
* Step 1: Crossware 8051 ANSI C 컴파일러 다운로드 하고 *
* PC 에 설치합니다. *
* http://www.crossware.co.kr/setup-demo.exe *
* Step 2: c:\estudio_demo\projects 폴더에서 새 폴더 *
* 만들기를 하고 폴더 이름을 se-clock-uni 로 *
* 입력합니다. *
* se-clock-uni.zip 를 압축을 풀어 *
* c:\estudio_demo\projects\se-clock-uni 폴더에 *
* 복사하여 넣습니다. *
* Step 3: 1. Crossware 를 실행합니다. *
* 2. FILE 메뉴에서 Open Project를 클릭합니다. *
* 3. se-clock-uni폴더에서 se-clock-uni.XMK를 *
* 선택합니다. *
* Step 4: Build 메뉴에서 Rebuild All 을 클릭하면 *
* se-clock-uni.HEX 파일이 만들어집니다. *
* *
* *
* os.h 와 sfr.h 헤더 파일은 Crossware 8051 C 컴파일러가 *
* 설치되면 include 폴더안에 들어 있습니다. *
* *
* (c)SAMPLE Electronics co. HTTP://WWW.SAMPLE.CO.KR *
* *
***********************************************************/
//
unsigned char c;

Minus = 0; // FND1의 Minus 부호를 OFF 

c = _p3 & 0x03; // P3.0과 P3.1 을 읽어 동작 모드 결정 

if (c == 3) { // P3.1 = 1 P3.0 = 1
clock_mode(); // 시계 모드
}

if (c == 2) { // P3.1 = 1 P3.0 = 0
timer_mode(); // 타이머 모드 
}

if (c == 1) { // P3.1 = 0 P3.0 = 1
pulse_counter(); // 펄스 업/다운 카운터 모드 
}

if (c == 0) { // P3.1 = 0 P3.0 = 0
quadrature_counter(); // AB 상 카운터 모드 
}
}
/////////////////////////////////////////////////////////////
/******************** End of FILE ************************/

 

 

샘플전자 시계 조립 KIT 비교표
(그림을 클릭하시면 관련 페이지로 이동합니다.)

SE-CLOCK-UNI


Lan: C 언어
CPU: AT89C51
기판: 만능기판

SE-CLOCK-FND


Lan: BASIC
CPU: AT89C51
기판: 양면 PCB

SE-CLOCK-LED


Lan: C, BASIC
CPU: AT89C2051
기판: 단면 PCB

SE-CLOCK-LED-U


Lang: C, BASIC
CPU: AT89C2051
기판: 만능기판

SE-CLOCK-DM


Lan: C, BASIC
CPU: AT89C2051
기판: 양면 PCB

SE-CLOCK-DM-U


Lan: C, BASIC
CPU: AT89C2051
기판: 만능기판

SE-CLOCK-ES


Lan: C, BASIC
CPU: AT89C51
기판: 단면 PCB

SE-CLOCK-MINI


Lan: BASIC
CPU: AT89C2051
기판: 양면 PCB

 

가 격 정 보

*** CPU 에 HEX 파일이 라이팅되어 있습니다. ***
*** KIT 에 아답터, 건전지, 엔코더는 포함되지 않습니다. ***

os.h sfr.h Crossware 8051 C 컴파일러를 PC 에 설치하시면
C:\embedded_demo\8051\include 폴더 안에 들어있습니다.
택배로 주문하시려면 택배료를 포함한 24,500원(22,000 + 2,500)을
국민은행 계좌로 송금해 주시고 전화/메일로 받는
주소지와 전화번호를 알려 주시면 됩니다. 메일을
보내주시면 택배 운송장 번호를 메일로 알려 드립니다.