Вот сам код программ
Текст программы МК
/*******************************************************
Chip type : ATmega8
Program type : Application
AVR Core Clock frequency: 8,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*******************************************************/
#include <mega8.h>
#include <delay.h>
// Alphanumeric LCD functions
#include <alcd.h>
// Standard Input/Output functions
#include <stdio.h>
#include <stdlib.h>
// Declareyourglobalvariableshere
float s;
unsigned long int k0=0,k1=0,k2=0,k3=0,k0123=0;
unsigned long int k4=0,k5=0,k6=0,k7=0;//k4567=0;
unsigned long int k8=0,k9=0,k10=0,k11=0;//k891011=0;
unsigned long int k12=0,k13=0,k14=0,k15=0;//k12131415=0;
unsigned long int k16=0,k17=0;
char k=0;
void main(void)
{
// Declare your local variables here
char buffer[20];
char a,b,c,d,e,f;
// Присваивание переменным a,b,c численные значения 63 05 00 01 CF A1
a=0b01100011;
//63
b=0b00000101;
//05
c=0b00000000;
//00
d=0b00000001;
//01
e=0b11001111;
//CF
f=0b10100001;
//A1
DDRD.2=1;
PORTD.2=0;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=(0«RXC) | (0«TXC) | (0«UDRE) | (0«FE) | (0«DOR) | (0«UPE) | (0«U2X) | (0«MPCM);
UCSRB=(0«RXCIE) | (0«TXCIE) | (0«UDRIE) | (1«RXEN) | (1«TXEN) | (0«UCSZ2) | (0«RXB8) | (0«TXB8);
UCSRC=(1«URSEL) | (0«UMSEL) | (0«UPM1) | (0«UPM0) | (0«USBS) | (1«UCSZ1) | (1«UCSZ0) | (0«UCPOL);
UBRRH=0x00;
UBRRL=0x33;
// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTС Bit 0
// RD - PORTС Bit 1
// EN - PORTС Bit 2
// D4 - PORTС Bit 3
// D5 - PORTС Bit 4
// D6 - PORTС Bit 5
// D7 - PORTD Bit 7
// Characters/line: 20
lcd_init(20);
lcd_clear();
delay_ms(1000);
while (1)
{
printf("%c%c%c%c%c%c",a,b,c,d,e,f); // отправка в порт
//принимаем байты
k=getchar(); // 0 байт
if (k==99) {PORTD.2=1;}
k0=getchar(); // 1 байт Активная энергия+
k1=getchar(); // 2 байт
k2=getchar(); // 3 байт
k3=getchar(); // 4 байт
k4=getchar(); // 1 байт Активная энергия-
k5=getchar();
k6=getchar();
k7=getchar();
k8=getchar(); // 1 байт Реактивная энергия+
k9=getchar();
k10=getchar();
k11=getchar();
k12=getchar(); // 1 байт Реактивная энергия-
k13=getchar();
k14=getchar();
k15=getchar();
k16=getchar();
k17=getchar(); // 19 байт
k0=k0«24;
k1=k1«16;
k2=k2«8;
k0123=k0|k1|k2|k3;
s=k0123;
sprintf(buffer,"A+=%.4fkWh",s/2500);
lcd_gotoxy(0,0);
lcd_puts(buffer);
// k4=k4«24;
// k5=k5«16;
// k6=k6«8;
// k4567=k4|k5|k6|k7;
// s=k4567;
// sprintf(buffer,"A-=%.4fkWh",s/2500);
// lcd_gotoxy(0,1);
// lcd_puts(buffer);
//
// k8=k8«24;
// k9=k9«16;
// k10=k10«8;
// k891011=k8|k9|k10|k11;
//
//
// s=k891011;
// sprintf(buffer,"R+=%.4fkVarh",s/2500);
// lcd_gotoxy(0,2);
// lcd_puts(buffer);
//
//
// k12=k12«24;
// k13=k13«16;
// k14=k14«8;
// k12131415=k12|k13|k14|k15;
// s=k12131415;
// sprintf(buffer,"R-=%.4fkVarh",s/2500);
// lcd_gotoxy(0,3);
// lcd_puts(buffer);
delay_ms(1000);
lcd_clear();
}
}