лр5 мкм
.docx
Лабораторна робота №5
Тема: Розробка моделі електронного пристрою в середовищі Proteus.
Лістинг програми:
#include <mega8.h>
#include <delay.h>
unsigned int col, row, tmp, k;
void read_row(void)
{
tmp=PINB & 0b00001111;
if (tmp==14) row=1;
if (tmp==13) row=2;
if (tmp==11) row=3;
if (tmp==7) row=4;
}
void main(void)
{
PORTB=0xFF;
DDRB=0xF0;
DDRD=255;
PORTD = 0b01001001;
while (1)
{ col=0;
PORTB.4=0;
read_row();
PORTB.4=1;
++col;
if (row!=0) goto end;
PORTB.5=0;
read_row();
PORTB.5=1;
++col;
if (row!=0) goto end;
PORTB.6=0;
read_row();
PORTB.6=1;
++col;
if (row!=0) goto end;
PORTB.7=0;
read_row();
PORTB.7=1;
++col;
end:
if ((row!=0) & (col!=0))
{k=row+((col-1)*4);
if (k==1) {
delay_ms(50);
PORTD = (PORTD >> 1) | (PORTD << 7);
};
if (k==2)
{delay_ms(50);
PORTD = (PORTD >> 7) | (PORTD << 1);
};
if (k==3) {
delay_ms(50);
PORTD = ~PORTD;
};
} }}
Рисунок 1 – Схема моделювання