// Programm arbeitet ohne externen Sender und Empfänger, die aus dem Ausgang MTSR(P3.9) //herausgeschobenen seriellen daten werden über eine Brücke dem eingang MRST (P3.8) zugeführ // P7 liest die daten. Empfangenden daten erscheinen auf port P2 ( P2_0 ist eine LED drann die blinken soll) #include /* Register Set of 80C167 controller */ #include /* Standard I/O functions */ //test SSC: Port P7 -> MTSR0--0 MRST-> Port P2 sbit PC13 = DP3^13; //SCLK p3.13 Richtung sbit P13 = P3^13; //SCLK Daten sbit PC9 = DP3^9; //MTSR p3.9 Richtung AUSGANG sbit P9 = P3^9; //MTSR Daten sbit PC8 = DP3^8; //MRST p3.9 EINGANG /******************************************************************************/ /* main program */ /******************************************************************************/ sbit P2_0 = P2^0; /* declare portpin to use */ sbit DP2_0 = DP2^0; /* declare direction bit to use */ void wait (void) { /* wait function */ ; /* only to delay for LED flashes */ } int main (void) { //unsigned long i; /* delay var */ // test SSC init() DP2= 0xffff; // port P2 ist Ausgang PC13= 1; // SCLK ist Ausgang P13=1; // Leitung High PC9=1; // MTSR ist Ausgang P9=1; // Leitung High PC8=0; // MTSR ist Eingang Leitung x SSCBR=9999999; // bitzeit 500ms bei 40MHz // Freigabe Master - keine Fehlerprüfung - Taktphasen LSB 8Bits SSCCON = 0xc007; // 1 1 0000000 0 0 0 0111 Parameter DP2_0 = 1; /* init direction to output */ while (1) { /* An embedded program without any */ SSCTB = P7; /* Start Sendedaten von P7*/ while(!SSCRIR); // warte solange SSCRB=0 SSCRIR=0; //Flag zurücksetzen P2=SSCRB; //Empfangsdaten nach P2 (P2_0 mit LED) } return 0; }