h

Dependencies:   mbed

Committer:
davidotitoju
Date:
Tue Jan 09 19:48:25 2018 +0000
Revision:
0:67db5ce17397
expo;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davidotitoju 0:67db5ce17397 1 * Function Name : main
davidotitoju 0:67db5ce17397 2 * Description : Main program.
davidotitoju 0:67db5ce17397 3 *******************************************************************************/
davidotitoju 0:67db5ce17397 4 int main(void) //Main function
davidotitoju 0:67db5ce17397 5 {
davidotitoju 0:67db5ce17397 6
davidotitoju 0:67db5ce17397 7 initgpio();
davidotitoju 0:67db5ce17397 8
davidotitoju 0:67db5ce17397 9 int k=0;
davidotitoju 0:67db5ce17397 10 char a[]="WWW.EEHERALD.COM";
davidotitoju 0:67db5ce17397 11 char b[]="EMBEDDED SYSTEMS";
davidotitoju 0:67db5ce17397 12
davidotitoju 0:67db5ce17397 13 GPIOC->BRR=RS; //Initialize RS=0 for selecting instruction Send
davidotitoju 0:67db5ce17397 14 GPIOC->BRR=RW; // Select RW=0 to write Instruction/data on LCD
davidotitoju 0:67db5ce17397 15 GPIOC->BSRR=EN; // EN=1 for unlatch. (used at initial condition)
davidotitoju 0:67db5ce17397 16
davidotitoju 0:67db5ce17397 17 delay_ms(10);
davidotitoju 0:67db5ce17397 18
davidotitoju 0:67db5ce17397 19 s_init(); //Call Instruction Select routine
davidotitoju 0:67db5ce17397 20 GPIOA->ODR=0x0001; // Clear Display, Cursor to Home
davidotitoju 0:67db5ce17397 21 s_latch(); //Latch the above instruction
davidotitoju 0:67db5ce17397 22 GPIOA->ODR=0x0038; // Display Function (2 rows for 8-bit data; small)
davidotitoju 0:67db5ce17397 23 s_latch(); //Latch this above instruction 4 times
davidotitoju 0:67db5ce17397 24 s_latch();
davidotitoju 0:67db5ce17397 25 s_latch();
davidotitoju 0:67db5ce17397 26 s_latch();
davidotitoju 0:67db5ce17397 27 GPIOA->ODR=0x000E; // Display and Cursor on, Cursor Blink off
davidotitoju 0:67db5ce17397 28 s_latch(); //Latch the above instruction
davidotitoju 0:67db5ce17397 29 GPIOA->ODR=0x0010; // Cursor shift left
davidotitoju 0:67db5ce17397 30 s_latch(); //Latch the above instruction
davidotitoju 0:67db5ce17397 31 GPIOA->ODR=0x0006; // Cursor Increment, Shift off
davidotitoju 0:67db5ce17397 32 s_data(); //Change the input type to Data.(before it was instruction input)
davidotitoju 0:67db5ce17397 33 s_latch(); //Latch the above instruction
davidotitoju 0:67db5ce17397 34
davidotitoju 0:67db5ce17397 35 for(k=0;a[k];k++)
davidotitoju 0:67db5ce17397 36 {
davidotitoju 0:67db5ce17397 37 GPIOA->ODR=a[k]; //It will send a[0]='P' as = '0x0050' on Port A.
davidotitoju 0:67db5ce17397 38 s_latch(); //Latch the above instruction only once. Or it will clone each character twice if you latch twice.
davidotitoju 0:67db5ce17397 39 }
davidotitoju 0:67db5ce17397 40 GPIOC->BRR=RS; //Initialize RS=0 for selecting instruction Send
davidotitoju 0:67db5ce17397 41 GPIOC->BRR=RW; // Select RW=0 to write Instruction/data on LCD
davidotitoju 0:67db5ce17397 42 GPIOC->BSRR=EN; // EN=1 for unlatch. (used at initial condition)
davidotitoju 0:67db5ce17397 43
davidotitoju 0:67db5ce17397 44 delay_ms(10);
davidotitoju 0:67db5ce17397 45 GPIOA->ODR=0x00C0; // Move cursor to beginning of second row
davidotitoju 0:67db5ce17397 46 s_latch(); //Latch the above instruction
davidotitoju 0:67db5ce17397 47 s_data(); //Change the input type to Data.(before it was instruction input)
davidotitoju 0:67db5ce17397 48 for(k=0;b[k];k++)
davidotitoju 0:67db5ce17397 49 {
davidotitoju 0:67db5ce17397 50 GPIOA->ODR=b[k]; //It will send b[0]='E' as = '0x0044' on Port A.
davidotitoju 0:67db5ce17397 51 s_latch();//Latch the above instruction only once. Or it will clone each character twice if you latch twice.
davidotitoju 0:67db5ce17397 52 }
davidotitoju 0:67db5ce17397 53 s_init();
davidotitoju 0:67db5ce17397 54 }