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

Вариант Выход Состояние входов 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