Stap 5: De Code in CCS C.
#fuses INTRC_IO, WDT, NOPROTECT, NOBROWNOUT, NOLVP, NOMCLR, NOPUT
#use delay(clock=4000000)
#use rs232 (baud = 9600, xmit = PIN_A3, HS = PIN_A4)
#define use_portb_lcd TRUE
#include < lcd.c > / / LCD routine
definiëren
//==========================================================================
#define m1 pin_a1 //playback/record (= laag record; hoog = afspelen)
#define m2 pin_a0 //end van bericht (puls laag aan het eind van elk bericht)
#define m3 pin_a7 //power naar beneden (hoge plaatsen verdelen in standby-modus)
#define m4 pin_a6 //chip inschakelen (lage apparaat inschakelen)
#define m5 pin_b7 //bit-8 van adres pin
#define m6 pin_b6 //bit-9 van adres pin
#define m7 pin_b5
#define m8 pin_b4
#define chip_on output_low (pin_a2)
#define chip_off output_high (pin_a2)
#define rec_on output_low (pin_a3)
#define rec_off output_high (pin_a3)
#define drukke! input(pin_a5)
#define gazpedal! input(pin_b0)
#define anfi_on output_high(pin_a4)
#define anfi_off output_low(pin_a4)
#define delsur 500
functie-prototype (elke functie moet een functie-prototype)
//==========================================================================
ongeldig turbin1() {}
rec_off;
delay_ms(50);
anfi_on;
delay_ms(150);
chip_on;
delay_ms(50);
output_low(M1);
delay_ms(100);
output_high(M1);
terwijl (drukke); wachten
anfi_off;
chip_off;
delay_ms(100);
}
ongeldig turbin2() {}
rec_off;
delay_ms(50);
anfi_on;
delay_ms(150);
chip_on;
delay_ms(50);
output_low(m2);
delay_ms(100);
output_high(m2);
terwijl (drukke); wachten
anfi_off;
chip_off;
delay_ms(100);
}
ongeldig turbin3() {}
rec_off;
delay_ms(50);
anfi_on;
delay_ms(150);
chip_on;
delay_ms(50);
output_low(M3);
delay_ms(100);
output_high(M3);
terwijl (drukke); wachten
anfi_off;
chip_off;
delay_ms(100);
}
ongeldig turbin4() {}
rec_off;
delay_ms(50);
anfi_on;
delay_ms(150);
chip_on;
delay_ms(50);
output_low(M4);
delay_ms(100);
output_high(M4);
terwijl (drukke); wachten
anfi_off;
chip_off;
delay_ms(100);
}
/ * void record (int16 adres) //this functie is om te beginnen opnemen bewerking op het opgegeven adres
{//the-adresbereik is van 0 tot 600 dat 0 tot 60 seconden aangeeft
unsigned char temp;
output_low(PD); activeren van de RBD
delay_ms(150); korte vertraging
output_low(PR); Selecteer opname mode (0 = rec, 1 = spelen)
output_d(Address); Stel de waarde van de adres voor bit0 op bits 7
Temp = adres >> 8;
Als ((temp&0x01) == 0) output_low(a8);
anders output_high(a8); Stel de adres-bit 8
Als ((temp&0x02) == 0) output_low(a9);
anders output_high(a9); Stel de adres bit 9
delay_ms(10); korte vertraging
output_low(CE); Start record
while(!input(tusrec));
}
nietig (int16 adres) //this playfunctie is om te beginnen met afspelen bewerking op het opgegeven adres
{//the-adresbereik is van 0 tot 600 dat 0 tot 60 seconden aangeeft
unsigned char temp;
output_low(PD); activeren van de RBD
anfiac;
delay_ms(100); korte vertraging
output_high(PR); Selecteer Weergave mode (0 = rec, 1 = spelen)
output_d(Address); Stel de waarde van de adres voor bit0 op bits 7
Temp = (adres >> 8);
Als ((temp&0x01) == 0) output_low(a8);
anders output_high(a8); Stel de adres-bit 8
Als ((temp&0x02) == 0) output_low(a9);
anders output_high(a9); Stel de adres bit 9
delay_ms(10); korte vertraging
output_low(CE); beginnen met spelen
while(input(EOM));
anfikapa;
}
vervallen halte (void) //this functie is om te stoppen met de ISD2560 werking
{
output_high(CE); Stop bediening
delay_ms(10); korte vertraging
output_high(PD); deactiveren van RBD 2560
delay_ms(100); korte vertraging
}
*/
belangrijkste functie (hoofdfunctie van het programma)
//==========================================================================
void main(void)
{
setup_comparator (NC_NC_NC_NC);
setup_wdt(WDT_2304MS);
anfi_off;
chip_off;
while (true) {}
restart_wdt();
Als (gazpedal) {}
turbin1();
turbin2();
turbin3();
turbin4();
}
}
}