Étape 5: Le Code dans CCS C.
#fuses INTRC_IO, WDT, NOPROTECT, NOBROWNOUT, NOLVP, NOMCLR, NOPUT
#use delay(clock=4000000)
#use rs232 (baud = 9600, xmit = PIN_A3, rcv = PIN_A4)
#define use_portb_lcd TRUE
#include < lcd.c > / / routine LCD
définir
//==========================================================================
#define m1 pin_a1 //playback/record (low = enregistrement ; élevé = lecture)
#define m2 pin_a0 //end du message (pouls faible à la fin de chaque message)
#define m3 pin_a7 //power vers le bas (haut placer diviser en mode veille)
#define m4 pin_a6 //chip activer (bas pour activer le dispositif)
#define m5 pin_b7 //bit-8 de pin de l’adresse
#define m6 pin_b6 //bit-9 de pin de l’adresse
#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 occupé! 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
prototype de fonction (chaque fonction doit posséder un prototype de fonction)
//==========================================================================
void 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) ;
while (occupé) ; attendre
anfi_off ;
chip_off ;
delay_ms(100) ;
}
void 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) ;
while (occupé) ; attendre
anfi_off ;
chip_off ;
delay_ms(100) ;
}
void 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) ;
while (occupé) ; attendre
anfi_off ;
chip_off ;
delay_ms(100) ;
}
void 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) ;
while (occupé) ; attendre
anfi_off ;
chip_off ;
delay_ms(100) ;
}
/ * annuler enregistrement (int16 adresse) //this fonction est de lancer une opération record à l’adresse donnée
{//the adresse plage va de 0 à 600, ce qui représente de 0 à 60 secondes
temp d’unsigned char ;
output_low(PD) ; activer la DSI
delay_ms(150) ; court délai
output_low(PR) ; Sélectionnez le mode d’enregistrement (0 = rec, 1 = Lire)
output_d(Address) ; Affectez la valeur adresse bit0 bit 7
Temp = adresse >> 8 ;
Si ((temp&0x01) == 0) output_low(a8) ;
d’autre output_high(a8) ; définir le bit d’adresse 8
Si ((temp&0x02) == 0) output_low(a9) ;
d’autre output_high(a9) ; définir le bit d’adresse 9
delay_ms(10) ; court délai
output_low(CE) ; commencer l’enregistrement
while(!Input(tusrec)) ;
}
void play (int16 adresse) //this fonction est pour commencer l’opération de lecture à l’adresse donnée
{//the adresse plage va de 0 à 600, ce qui représente de 0 à 60 secondes
temp d’unsigned char ;
output_low(PD) ; activer la DSI
anfiac ;
delay_ms(100) ; court délai
output_high(PR) ; Sélectionnez le mode de lecture (0 = rec, 1 = Lire)
output_d(Address) ; Affectez la valeur adresse bit0 bit 7
Temp = (adresse >> 8) ;
Si ((temp&0x01) == 0) output_low(a8) ;
d’autre output_high(a8) ; définir le bit d’adresse 8
Si ((temp&0x02) == 0) output_low(a9) ;
d’autre output_high(a9) ; définir le bit d’adresse 9
delay_ms(10) ; court délai
output_low(CE) ; lancer la lecture
while(Input(EOM)) ;
anfikapa ;
}
void stop (void) //this fonction est d’arrêter l’opération ISD2560
{
output_high(CE) ; Arrêtez
delay_ms(10) ; court délai
output_high(PD) ; désactiver la DSI 2560
delay_ms(100) ; court délai
}
*/
fonction principale (fonction principale du programme)
//==========================================================================
void main (void)
{
setup_comparator (NC_NC_NC_NC) ;
setup_wdt(WDT_2304MS) ;
anfi_off ;
chip_off ;
while (true) {}
restart_wdt() ;
Si {(gazpedal)
turbin1() ;
turbin2() ;
turbin3() ;
turbin4() ;
}
}
}