Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
26.01.2023
Размер:
1.16 Кб
Скачать
#include <iom8535v.h>
#include <macros.h>
#include <math.h>
#define NUM 1000
void port_init(void)
{
PORTA = 0xff;
DDRA = 0x00;	
DDRC =0xFF;
PORTC=0x00;
DDRD =0x07;	
PORTD=0xff;	
}
void init_devices(void)
{
CLI();
port_init();
SEI();
}
int TtransH(int hight)
{
hight=PINA;
hight&=~0x0f;
hight=hight>>4;
return hight;
}
int TtransL(int low)
{
low=PINA;
low&=~0xf0;
return low;
}
void Perevod (int values[],int *sum)
{
int i=0;
while (*sum>0)
  {
  values[i]=*sum%10;
  *sum/=10;
  i++;
  }
}
void main(void)
{	
int number[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
int tempA,i,sum,hight,low;
char ch[2];
int values[3]={0,0,0};
init_devices();
tempA=PINA;
hight=TtransH(hight);
low=TtransL(low);
sum=hight*16+low;
i=0;
Perevod(values,&sum);
for (;;)	
{
if (tempA!=PINA)
  {
  tempA=PINA;
  hight=TtransH(hight);
  low=TtransL(low);
  sum=hight*16+low;
  i=0;
  Perevod(values,&sum);
  }
for (i=0; i<NUM;	i++)	
PORTC=number[values[0]];
PORTD=0x02;
for (i=0; i<NUM;	i++)	
PORTC=number[values[1]];
PORTD=0x01;
for (i=0; i<NUM;	i++)	
PORTC=number[values[2]];
PORTD=0x04;
}
}
Соседние файлы в папке Примеры решения лабораторных работ