#include #include "TS_LC7981.h" // Flüssigkristallanzeige (FKA) #include // für Zeichen (Infotext) notwendig #include // für sprint #include unsigned int t,k; void UART1_empfang_einstellen(void); void wert_senden(void); void D1_ausgeben(void); void D2_ausgeben(void); void D3_ausgeben(void); void D4_ausgeben(void); void D5_ausgeben(void); void D6_ausgeben(void); void D7_ausgeben(void); void D8_ausgeben(void); void D9_ausgeben(void); char i,D1,D2,D3,D4,D5,D6,D7,D8,D9; unsigned int daten1,daten2,daten3,daten4,OB,UB,temp27; int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P5DIR |= BIT6+ BIT7; // für LED P5.6 + P5.7 P4DIR |= BIT0 + BIT1; // M0 und M1 E32-868T P4OUT &= ~BIT0; // M0 und M1 auf +0V = 0 senden und empfangen P4OUT &= ~BIT1; P1DIR =0xFF; // FKA text_init(); // in TS_7981.h FKA UART1_empfang_einstellen(); while(1) { D1 = RXBUF1; while (!(IFG2 & URXIFG1)); D2 = RXBUF1; while (!(IFG2 & URXIFG1)); D3 = RXBUF1; while (!(IFG2 & URXIFG1)); D4 = RXBUF1; while (!(IFG2 & URXIFG1)); D5 = RXBUF1; while (!(IFG2 & URXIFG1)); D6 = RXBUF1; while (!(IFG2 & URXIFG1)); D7 = RXBUF1; while (!(IFG2 & URXIFG1)); D8 = RXBUF1; P5OUT &= ~BIT7; //LED rot EIN D1_ausgeben(); D2_ausgeben(); D3_ausgeben(); D4_ausgeben(); D5_ausgeben(); D6_ausgeben(); D7_ausgeben(); D8_ausgeben(); P5OUT |= BIT7; //LED rot AUS } } void UART1_empfang_einstellen(void) { P3SEL |= 0xC0; // P3.6 = USART1 TXD ; P3.7 = RXD1 ME2 |= URXE1; // Enable USART1 TXD/RXD UCTL1 |= CHAR; // 8-bit character UTCTL1 |= SSEL0; // UCLK = ACLK UBR01 = 0x03; // 32k/9600 - 3.41 UBR11 = 0x00; // UMCTL1 = 0x4A; // Modulation UCTL1 &= ~SWRST; // Initialize USART state machine IE2 |= URXIE1; // Enable USART1 RX interrupt // _BIS_SR(LPM3_bits + GIE); // Enter LPM3 w/ interrupt } void D1_ausgeben(void) { char vers[5],z,c; lcd_write_command(LCD_CMD_CURSOR_LA,106); //26 Zeilenanfang 2.Zeile --> 26 Zeichen pro Zeile lcd_write_command(LCD_CMD_CURSOR_HA,0); sprintf(vers,"%02X",D1); for (z=0; z<2;z++) { c=vers[z]; lcd_write_command(LCD_CMD_WRITE_DATA, c); } } void D2_ausgeben(void) { char vers[5],z,c; lcd_write_command(LCD_CMD_CURSOR_LA,109); //26 Zeilenanfang 2.Zeile --> 26 Zeichen pro Zeile lcd_write_command(LCD_CMD_CURSOR_HA,0); sprintf(vers,"%02X",D2); for (z=0; z<2;z++) { c=vers[z]; lcd_write_command(LCD_CMD_WRITE_DATA, c); } } void D3_ausgeben(void) { char vers[5],z,c; lcd_write_command(LCD_CMD_CURSOR_LA,112); //26 Zeilenanfang 2.Zeile --> 26 Zeichen pro Zeile lcd_write_command(LCD_CMD_CURSOR_HA,0); sprintf(vers,"%02X",D3); for (z=0; z<2;z++) { c=vers[z]; lcd_write_command(LCD_CMD_WRITE_DATA, c); } } void D4_ausgeben(void) { char vers[5],z,c; lcd_write_command(LCD_CMD_CURSOR_LA,115); //26 Zeilenanfang 2.Zeile --> 26 Zeichen pro Zeile lcd_write_command(LCD_CMD_CURSOR_HA,0); sprintf(vers,"%02X",D4); for (z=0; z<2;z++) { c=vers[z]; lcd_write_command(LCD_CMD_WRITE_DATA, c); } } void D5_ausgeben(void) { char vers[5],z,c; lcd_write_command(LCD_CMD_CURSOR_LA,118); //26 Zeilenanfang 2.Zeile --> 26 Zeichen pro Zeile lcd_write_command(LCD_CMD_CURSOR_HA,0); sprintf(vers,"%02X",D5); for (z=0; z<2;z++) { c=vers[z]; lcd_write_command(LCD_CMD_WRITE_DATA, c); } } void D6_ausgeben(void) { char vers[5],z,c; lcd_write_command(LCD_CMD_CURSOR_LA,121); //26 Zeilenanfang 2.Zeile --> 26 Zeichen pro Zeile lcd_write_command(LCD_CMD_CURSOR_HA,0); sprintf(vers,"%02X",D6); for (z=0; z<2;z++) { c=vers[z]; lcd_write_command(LCD_CMD_WRITE_DATA, c); } } void D7_ausgeben(void) { char vers[5],z,c; lcd_write_command(LCD_CMD_CURSOR_LA,124); //26 Zeilenanfang 2.Zeile --> 26 Zeichen pro Zeile lcd_write_command(LCD_CMD_CURSOR_HA,0); sprintf(vers,"%02X",D7); for (z=0; z<2;z++) { c=vers[z]; lcd_write_command(LCD_CMD_WRITE_DATA, c); } } void D8_ausgeben(void) { char vers[5],z,c; lcd_write_command(LCD_CMD_CURSOR_LA,127); //26 Zeilenanfang 2.Zeile --> 26 Zeichen pro Zeile lcd_write_command(LCD_CMD_CURSOR_HA,0); sprintf(vers,"%02X",D8); for (z=0; z<2;z++) { c=vers[z]; lcd_write_command(LCD_CMD_WRITE_DATA, c); } }