Fill This Form To Receive Instant Help
Homework answers / question archive / Write a program for the microcontroller that flashes the Morse code pattern of a string
Write a program for the microcontroller that flashes the Morse code pattern of a string. The Morse code is a system used to transmit characters and numbers through light or sound signals. Each character is mapped to a series of dots' and 'dashes' as shown below. For example, the letter A is (dot-dash), the letter B is (dash-dot-dot-dot) etc. To show a Morse letter on the microcontroller, the LED blinks for a short duration to represent a 'dot' or for a long duration to represent a 'dash
C Program:
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main()
{
char str[25],str1[100];
printf("Enter the String: ");
scanf("%s", str);
int j=0;
int i=0;
for(i=0;i<=strlen(str);i++)
{
switch(toupper(str[i]))
{
case 'A':
str1[j++]='.';
str1[j]='-';
break;
case 'B':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'C':
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case 'D':
str1[j++]='-';
str1[j++]='.';
str1[j]='.';
break;
case 'E':
str1[j]='.';
break;
case 'F':
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case 'G':
str1[j++]='-';
str1[j++]='-';
str1[j]='.';
break;
case 'H':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'I':
str1[j++]='.';
str1[j]='.';
break;
case 'J':
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j]='-';
break;
case 'K':
str1[j++]='-';
str1[j++]='.';
str1[j]='-';
break;
case 'L':
str1[j++]='.';
str1[j++]='-';
str1[j++]='.';
str1[j]='.';
break;
case 'M':
str1[j++]='-';
str1[j]='-';
break;
case 'N':
str1[j++]='-';
str1[j]='.';
break;
case 'O':
str1[j++]='-';
str1[j++]='-';
str1[j]='-';
break;
case 'P':
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j]='.';
break;
case 'Q':
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='-';
break;
case 'R':
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case 'S':
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'T':
str1[j]='-';
break;
case 'U':
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case 'V':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case 'W':
str1[j++]='.';
str1[j++]='-';
str1[j]='-';
break;
case 'X':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case 'y':
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j]='-';
break;
case 'Z':
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='.';
break;
case '0':
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j]='-';
break;
case '1':
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j]='-';
break;
case '2':
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j]='-';
break;
case '3':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j]='-';
break;
case '4':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '5':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case '6':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case '7':
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case '8':
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='.';
break;
case '9':
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j]='.';
break;
case '.':
str1[j++]='.';
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j++]='.';
str1[j]='-';
break;
case ',':
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j]='-';
break;
case ':':
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case '?':
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='.';
break;
case '-':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case ';':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case '(':
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='-';
break;
case ')':
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='-';
break;
case ']':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j]='-';
break;
case '[':
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case '}':
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='-';
break;
case '{':
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='-';
break;
case '"':
str1[j++]='.';
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case '+':
str1[j++]='.';
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case '/':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case '%':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '&':
str1[j++]='.';
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case '$':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '*':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j]='-';
break;
case '^':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '#':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '@':
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case '=':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
}
j++;
}
str1[j-1]='\0';
printf("%s", str1);
return 0;
}