Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
26.01.2023
Размер:
1.66 Кб
Скачать
Согласно указанному преподавателем варианту напишите программу,
которая реализует следующую зависимость между входными и выходными
сигналами:

Вариант	Выход               Состояние входов PD2:PD1
                        00	        01	        10	        11
8	    порт D	    00011000	00110000	01100000	11000000
*/

#include <iom8535v.h>	//	включение файлов для контроллера ATmega8535
#include <stdint.h>
#include <macros.h>


void port_init(void) // определение функции инициализации портов вв/выв
{
PORTD =	0x07;	//	включение подтягивающих резисторов	порта А биты 0-3
DDRD =	0xF8;	//	порт D	работает	на выход биты 4-7 (DDRD=1111 1000)
}
void init_devices(void)// инициализация всех периферийных устройств
{
CLI();	//	запрет действия прерываний
port_init();	//	вызов функции инициализации	портов
MCUCR =	0x00;
GICR =	0x00;
TIMSK =	0x00;	//	нет прерываний от таймера
SEI();	//	разрешение действия прерываний
}

void main(void)	// определение главной функции
{
uint8_t DIN;

init_devices();	//	вызов функции инициализации	периферийных устройств
while (1)	//	создание бесконечного цикла	работы контроллера
    {
    DIN = (PIND>>1)&3;
    switch (DIN)
    {
    case 0x00:
        PORTD=PORTD&0x1f; // Очищаем все что не долно быть установлено не трогая первые три
        PORTD=PORTD|0x18; //Устанавливаем не трогая первые три
        break;
    case 0x01:
        PORTD=PORTD&0x37;
        PORTD=PORTD|0x30;
        break;
    case 0x02:
        PORTD=PORTD&0x67;
        PORTD=PORTD|0x60;
        break;
    case 0x03:
        PORTD=PORTD&0xC7;
        PORTD=PORTD|0xC0;
        break;
    }

    }
}
Соседние файлы в папке LABA1