рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!
рдПрдХ рдмрд╛рд░ рдореЗрд░реЗ рдкрд╛рд╕ "рдиреМрдХрд░реА" рдереА - рдпрд╣ рдирдХрджреА рд░рдЬрд┐рд╕реНрдЯрд░ Shtrikh-FR-K рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЪреВрдВрдХрд┐ рдореЗрд░рд╛ рдХрд░рд┐рдпрд░ рдХреЗрдХреЗрдЯреА рдХреА рдорд░рдореНрдордд рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмреЙрдХреНрд╕ рдСрдлрд┐рд╕ рдкрд░ рд╣реА рдФрд░ рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА рдХреА рдЯреНрд░рд╛рдпрд▓ рдЗрдореЗрдЬ рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИ:

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрдВрдЬрди рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдерд░реНрдорд▓ рд╣реЗрдб рдХреЗ рдкреАрдЫреЗ, рдореБрдЭреЗ рдУрдкрдирд╡реАрд╡реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЫреЛрдЯреА рдЕрдЬрдЧрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреА рдереАред рддреЛ рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВред
рдпрд╣ рд╕рдм рд░реЗрдо рдХреЗ рдЕрдзреНрдпрдпрди рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖред рдЧреЛрджреАред рдЗрд╕ рдХреИрд╢ рдбреЗрд╕реНрдХ рдФрд░ рдерд░реНрдорд▓ рд╣реЗрдб рдкрд┐рди рдХреЗ рд▓рд┐рдП рд▓реЙрдЬрд┐рдХ рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдХрд╛ рдмрд╛рдж рдХрд╛ рдХрдиреЗрдХреНрд╢рдиред рдореИрдВрдиреЗ рдмрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрддреНрд░ "рд╕реА" рднреЗрдЬрд╛ред рдФрд░ рдпрд╣рд╛рдБ рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рд╣реИ:

DATA рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреЙрдЗрдВрдЯреНрд╕ (432 рдкреЙрдЗрдВрдЯреНрд╕ рдкреНрд░рддрд┐ рд▓рд╛рдЗрди), SCK - рдХреНрд▓реЙрдХ рд╕рд┐рдЧреНрдирд▓, STB0, STB1, STB2 - рдерд░реНрдорд▓ рд╣реЗрдб рдХреЛ рдЧрд░реНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдВрдЯреНрд╕, LATCH - рдбреЗрдЯрд╛ рд▓реИрдЪред рдореИрдВрдиреЗ рд╢рд┐рдлреНрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рд▓рд╛рдЗрди рдЪрд▓рд╛рдИ, рдЙрд╕реЗ рдЬрд▓рд╛рдпрд╛, рдЪрд▓рд╛ рдЧрдпрд╛ред
рдЕрдЧрд▓рд╛ рдХрджрдо рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЛрд░реНрдб рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдирд╛ рдерд╛ред

рдЕрдм рдХреЛрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред
void go(int n, int shag) { switch (shag) { case 0: PORTA=0b10001000; PORTD|=(1<<2); dela(n); PORTD&=0b11111011; PORTA=0; PORTD|=(1<<2); PORTD&=0b11111011; break; case 1: PORTA=0b10101010; PORTD|=(1<<2); dela(n); PORTD&=0b11111011; PORTA=0; PORTD|=(1<<2); PORTD&=0b11111011; break; case 2: PORTA=0b00100010; PORTD|=(1<<2); dela(n); PORTD&=0b11111011; PORTA=0; PORTD|=(1<<2); PORTD&=0b11111011; break; case 3: PORTA=0b01100110; PORTD|=(1<<2); dela(n); PORTD&=0b11111011; PORTA=0; PORTD|=(1<<2); PORTD&=0b11111011; break; case 4: PORTA=0b01000100; PORTD|=(1<<2); dela(n); PORTD&=0b11111011; PORTA=0; PORTD|=(1<<2); PORTD&=0b11111011; break; case 5: PORTA=0b01010101; PORTD|=(1<<2); dela(n); PORTD&=0b11111011; PORTA=0; PORTD|=(1<<2); PORTD&=0b11111011; break; case 6: PORTA=0b00010001; PORTD|=(1<<2); dela(n); PORTD&=0b11111011; PORTA=0; PORTD|=(1<<2); PORTD&=0b11111011; break; case 7: PORTA=0b10011001; PORTD|=(1<<2); dela(n); PORTD&=0b11111011; PORTA=0; PORTD|=(1<<2); PORTD&=0b11111011; break; } }
рдЗрд╕ рдмреЙрдХреНрд╕ рдСрдлрд┐рд╕ рдХреЗ рд▓рд┐рдП рджреЛ рд╕реНрдЯреЗрдкрд░ рдореЛрдЯрд░ рдХрдВрдЯреНрд░реЛрд▓ рд╕рд░реНрдХрд┐рдЯ рд╣реИрдВред 4-рдЪрд░рдг рдФрд░ 8-рдЪрд░рдгред рдореИрдВрдиреЗ 8 рдХреЛ рдЪреБрдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдЬрди рдиреЗ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред
#define DATA 2 #define SCK 1 #define LATCH 3 #define STB0 2 #define STB1 3 #define STB2 4 #define DATA_IN PORTB #define STB_IN PORTE int sck() { _delay_us(3); DATA_IN|= (1<<SCK); DATA_IN&= 0b11111101; } int x; int bit; void bait(int bait1) { x=0; while(x<8) { bit|= (1<<x); bit =bait1&bit; if (bit>0) { DATA_IN|=(1<<DATA); } else {DATA_IN&=0b11111011;} sck(); x++; } } void latch() { DATA_IN&=0b11110111; DATA_IN|=(1<<LATCH); }
рдерд░реНрдорд▓ рд╣реЗрдб рдХреЛ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдбред рдерд░реНрдорд▓ рд╣реЗрдб рд╢рд┐рдлреНрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИред
void print_all_pixel() { while(n<55) { print_stroka(str[n]); _delay_us(3); n++; } latch(); n=0; STB_IN&=0b11111011; _delay_us(500); STB_IN|=(1<<STB0); STB_IN&=0b11110111; _delay_us(500); STB_IN|=(1<<STB1); STB_IN&=0b11101111; _delay_us(500); STB_IN|=(1<<STB2);
рдореБрджреНрд░рдг рдФрд░ рдЬрд▓рддреА рд╣реБрдИ рд░реЗрдЦрд╛рдУрдВ рдХрд╛ рдХрд╛рд░реНрдпред
void recieve() {
рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдЬреЛ рд╢рд╛рд╢реНрд╡рдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреВрдорддрд╛ рд╣реИред рдЬрдм рдкрддреНрд░ "рдкреА" рдЖрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдкреНрд░рд┐рдВрдЯ рдореЛрдб рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреНрдп рд╕рднреА рд╡рд░реНрдг рдмрдлрд░ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд┐рдП рдЬрд╛рдиреЗ рд▓рдЧрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдмрдлрд░ рдХреЛ 54 рдмрд╛рдЗрдЯреНрд╕ (рдпрд╛ 432 рдмрд┐рдЯреНрд╕) рдХреЗ рд╕рд╛рде рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рд▓рд╛рдЗрди рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ USART рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореБрджреНрд░рд┐рдд рд╢рдмреНрдж рднреЗрдЬрддреЗ рд╣реИрдВред
рдЦреИрд░, рдпрд╣ рд╕рдм рд▓реЛрд╣реЗ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд╕рд╛рде рд╣реИред рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдореИрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рднрд╛рдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рдЕрд░реНрдерд╛рддреН рдЕрдЬрдЧрд░ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
рд╕ рд╕ рд╕ ред
