#include #include #define lcd PORTD #define rf PINC void lcd_cmd(int x) { lcd=x&0b11110000; lcd=lcd+0b00000100; _delay_ms(2); lcd=lcd-0b00000100; lcd=(x<<4)&0b11110000; lcd=lcd+0b00000100; _delay_ms(2); lcd=lcd-0b00000100; } void lcd_data(int x) { lcd=x&0b11110000; lcd=lcd+0b00000101; _delay_ms(2); lcd=lcd-0b00000100; lcd=(x<<4)&0b11110000; lcd=lcd+0b00000101; _delay_ms(2); lcd=lcd-0b00000100; } void lcd_inst() { lcd_cmd(0x02); lcd_cmd(0x28); lcd_cmd(0x0c); } void lcd_string(char *str) { int d=0; while(str[d]!='\0') { lcd_data(str[d]); lcd_cmd(0x06); d++; } } void main() { lcd_cmd(0x01); DDRD=0xff; lcd_inst(); DDRC=0b11111000; char ar[26][4]={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."}; char code[5]; int a=0,flag=0,i=0x80,z=0xc0,n=0,count=0; while(1) { if(rf==0b00000110) { while(rf==0b00000110){} _delay_ms(10); code[a]='.'; a++; lcd_cmd(i); lcd_data('.'); i++; _delay_ms(100); } if(rf==0b00000101) { while(rf==0b00000101){} _delay_ms(10); code[a]='-'; a++; lcd_cmd(i); lcd_data('-'); i++; _delay_ms(100); } if(rf==0b00000011) { while(rf==0b00000011){} _delay_ms(10); n=a; a=0; flag=0; for(int j=0;j<26;j++) { count=0; for(int k=0;k