Лр4-1
.docx
Лабораторна робота №4
Тема: Розробка моделі електронного пристрою в середовищі 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;
PORTC.0=255;
DDRC.0=0;
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) DDRD=0b00000111;
if (k==2) DDRD=0b01111111;
if (k==3) DDRD=0b01101111;
if (k==5) DDRD=0b01100110;
if (k==6) DDRD=0b01101101;
if (k==7) DDRD=0b01111101;
if (k==9) DDRD=0b00000110;
if (k==10) DDRD=0b01011011;
if (k==11) DDRD=0b01001111;
if (k==13) DDRD=0b00000000;
if (k==14) DDRD=0b00111111;
} }; }
Рисунок 1 – Схема моделювання