Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed mbed-rtos X_NUCLEO_IHM02A1
Display.cpp
00001 #include "SETUP.h" 00002 00003 00004 DigitalOut RS(DISP_RS); 00005 DigitalOut RW(DISP_RW); 00006 DigitalOut E(DISP_E); 00007 DigitalOut bit0(DISP_B0); 00008 DigitalOut bit1(DISP_B1); 00009 DigitalOut bit2(DISP_B2); 00010 DigitalOut bit3(DISP_B3); 00011 DigitalOut bit4(DISP_B4); 00012 DigitalOut bit5(DISP_B5); 00013 DigitalOut bit6(DISP_B6); 00014 DigitalOut bit7(DISP_B7); 00015 00016 /************************************************************** 00017 Sendebefehls-Funktion für das Display MIDAS 00018 E=Enable, RS= Register Select Signal, RW= Data Read/Wirte 00019 Siehe MIDAS Datasheet 6.3.1 Write Mode Timing Diagramm 00020 **************************************************************/ 00021 void DisplaySendeBefehl(unsigned char befehl) 00022 { 00023 RW=0; 00024 E=0; 00025 RS=0; 00026 wait_us(1); //delay>0 00027 E=1; 00028 wait_ms(1); 00029 bit0= (befehl>>0)&0x01; 00030 bit1= (befehl>>1)&0x01; 00031 bit2= (befehl>>2)&0x01; 00032 bit3= (befehl>>3)&0x01; 00033 bit4= (befehl>>4)&0x01; 00034 bit5= (befehl>>5)&0x01; 00035 bit6= (befehl>>6)&0x01; 00036 bit7= (befehl>>7)&0x01; 00037 wait_ms(1); 00038 E=0; 00039 wait_ms(1); 00040 RS=0; 00041 RW=0; 00042 bit0=0; 00043 bit1=0; 00044 bit2=0; 00045 bit3=0; 00046 bit4=0; 00047 bit5=0; 00048 bit6=0; 00049 bit7=0; 00050 wait_ms(1); 00051 00052 } 00053 /************************************************************** 00054 Sende-Zeichen-Funktion für das Display Midas 00055 Es können ASCI basierende Zeichen gesendet werden wie 'A' etc. 00056 **************************************************************/ 00057 void DisplaySendeZeichen(unsigned char Zeichen) 00058 { 00059 RW=0; 00060 E=0; 00061 RS=0; 00062 RS=1; 00063 wait_ms(1); 00064 E=1; 00065 wait_ms(1); 00066 bit0= (Zeichen>>0)&0x01; 00067 bit1= (Zeichen>>1)&0x01; 00068 bit2= (Zeichen>>2)&0x01; 00069 bit3= (Zeichen>>3)&0x01; 00070 bit4= (Zeichen>>4)&0x01; 00071 bit5= (Zeichen>>5)&0x01; 00072 bit6= (Zeichen>>6)&0x01; 00073 bit7= (Zeichen>>7)&0x01; 00074 wait_ms(1); 00075 E=0; 00076 wait_ms(1); 00077 RS=0; 00078 RW=0; 00079 bit0=0; 00080 bit1=0; 00081 bit2=0; 00082 bit3=0; 00083 bit4=0; 00084 bit5=0; 00085 bit6=0; 00086 bit7=0; 00087 wait_ms(1); 00088 00089 } 00090 00091 /************************************************************** 00092 Sende-String-Funktion für das Display Midas 00093 Es können ASCI basierende Strings gesendet werden wie "ABC" etc. 00094 Der Sendestring ist auf 20 Zeichen beschränkt, da eine Display- 00095 Lein ebenfalls nur 20 Felder besitzt. 00096 **************************************************************/ 00097 void DisplaySendeString(char *String) 00098 { 00099 int x; 00100 for(x = 0; (x < 20) && (*String != 0); x++) // solange ein Zeichen=0 ist 00101 { 00102 DisplaySendeZeichen(*String); // Zeichen durch Pointer 00103 String++; // Pointer auf nächstes Zeichen 00104 } 00105 } 00106 00107 /************************************************************** 00108 Midas Display Initalisierungs-Fuktion 00109 **************************************************************/ 00110 void DisplayInit() 00111 { 00112 wait_ms(40); 00113 DisplaySendeBefehl(0b00111100); // 00114 wait_ms(1); 00115 DisplaySendeBefehl(0b00111100); 00116 wait_ms(1); 00117 DisplaySendeBefehl(0b00001000); 00118 wait_ms(1); 00119 DisplaySendeBefehl(0b00000001); 00120 wait_ms(3); 00121 DisplaySendeBefehl(0b00000110); 00122 } 00123 00124 /************************************************************** 00125 Gehe zu X, Y -Funktion für das Display. 00126 X ist die Horizontale, Y die Vertikale 00127 X muss 20<=x>0 sein / Y muss 4<=y>0 sein 00128 00129 Zeilen des Displays wie folgt: 00130 y 00131 1. 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 x 00132 3. 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 x 00133 2. 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 x 00134 4. 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 x 00135 **************************************************************/ 00136 void gotoxy(unsigned char x, unsigned char y) 00137 { 00138 unsigned char data = 0; 00139 00140 switch (y) 00141 { 00142 case 1: 00143 data = 0b10000000 | (0x00+x-1); // +0 (0x00) 00144 break; 00145 00146 case 2: // 00147 data = 0b10000000 | (0x14+x-1); // +20 (0x14) 00148 break; 00149 00150 case 3: 00151 data = 0b10000000 | (0x40+x-1); // +64 (0x40) 00152 break; 00153 00154 case 4: 00155 data = 0b10000000 | (0x54+x-1); // +84 (0x54) 00156 break; 00157 00158 } 00159 DisplaySendeBefehl(data); // Berechneter Übergabeparameter data 00160 } 00161 00162 00163
Generated on Mon Jul 25 2022 02:36:14 by
 1.7.2
 1.7.2