85
UNSIGNED LONG COUNT=0; INT A;
VOID SETUP () {
SETUP_SWITCH(); SETUP_7S();
// ATTACHINTERRUPT(0,ISR,RISING); SERIAL.BEGIN(9600);
FREQCOUNT.BEGIN(1000); // FREQMEASURE.BEGIN(); }
FLOAT FREQ1;
VOID LOOP() {
SCANKEY();
IF (FREQCOUNT.AVAILABLE()) {
COUNT = FREQCOUNT.READ(); //SERIAL.PRINTLN(COUNT);
}
SHOWNUM(COUNT);
}
INT LATCHPIN = 10;//ST_CP INT CLOCKPIN = 9;//SH_CP INT DATAPIN = 11; //DS
VOID SETUP_7S () {
86 PINMODE(DATAPIN,OUTPUT);
}
VOID DISNUM(INT NUM_QUA, INT NUM_POS, INT NUM_DEC)
{
//THIS VALUE CONVERT TO BINARY, WHICH IS ADCDEFG NEED TO LIGHT UP DIGITALWRITE(LATCHPIN,LOW);
// SET LATCH TO LOW TOLET THE DISPLAY READY TO RECEIVE DATA INT L = NUM_QUA_B; INT R = NUM_POS_B;
SHIFTOUT(DATAPIN,CLOCKPIN,MSBFIRST,R); SHIFTOUT(DATAPIN,CLOCKPIN,MSBFIRST,L);
87 DELAYMICROSECONDS(100);
}
//THIS IS THE DISPLAY NUMBER FUNCTION VOID SHOWNUM(DOUBLE NUMBER)
{
//SIMPLE DECIMAL POINT FOR TWO NUMBER DISPLAY
INT SHOWNUMBER [8];
88
DISNUM(SHOWNUMBER[1],1,SHOWDEC[1]); DISNUM(SHOWNUMBER[2],2,SHOWDEC[2]); DISNUM(SHOWNUMBER[3],3,SHOWDEC[3]); DISNUM(SHOWNUMBER[4],4,SHOWDEC[4]); DISNUM(SHOWNUMBER[5],5,SHOWDEC[5]); DISNUM(SHOWNUMBER[6],6,SHOWDEC[6]); DISNUM(SHOWNUMBER[7],7,SHOWDEC[7]); DISNUM(SHOWNUMBER[8],8,SHOWDEC[8]);
//DISPLAY NUMBER IN SEQUENCY, FLASHING FAST }
CONST INT A1PIN=13; // PIN UNTUK A1 CONST INT A0PIN =12; // PIN UNTUK A0
CONST INT MODESINUS = 8; // PIN THAT THE BUTTON IS ATTACHED TO
CONST INT MODEKOTAK = 3; CONST INT MODESEGITIGA = 6; INT SUDAHPENCET = 0;
INT MODE = 0;
VOID SETUP_SWITCH() {
// SET THE LED PINS AS OUTPUTS AND THE SWITCH PIN AS INPUT: SERIAL.BEGIN(9600);
PINMODE(A1PIN, OUTPUT); PINMODE (A0PIN, OUTPUT); PINMODE (MODESINUS, INPUT); PINMODE (MODEKOTAK, INPUT); PINMODE (MODESEGITIGA, INPUT); //PINMODE (MODEOFF, INPUT); }
VOID SCANKEY() {
IF(DIGITALREAD(MODESINUS)==HIGH) {
MODE1(); }
89 MODE2();
}
ELSE IF(DIGITALREAD(MODESEGITIGA)==HIGH) {MODE3();
}
//ELSE IF(DIGITALREAD(MODEOFF)==HIGH)MODE=4; RETURN;
}
VOID MODE1() {
DIGITALWRITE(A0PIN, HIGH); DIGITALWRITE(A1PIN, HIGH); }
VOID MODE2() {
DIGITALWRITE(A0PIN, LOW); DIGITALWRITE(A1PIN, LOW); }
VOID MODE3() {
90