Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные работы готовые / Лабораторная работа 3 Статическая индикация. SPI

.docx
Скачиваний:
1
Добавлен:
21.06.2024
Размер:
45.19 Кб
Скачать

Программа:

#define F_CPU 8000000UL

#include <avr/io.h>

#include <avr/interrupt.h>

#include <util/delay.h>

void main()

{

DDRD=0x00;

PORTD=0xFF;

DDRB=0xFF;

DDRC=0xFF;

unsigned char keystr = 0b11111011;

DDRB |= ((1<<PORTB3)|(1<<PORTB4)|(1<<PORTB5)|(1<<PORTB7));

PORTB &= ~((0<<PORTB3)|(1<<PORTB4)|(1<<PORTB5)|(1<<PORTB7));

SPCR = ((1<<SPE)|(1<<MSTR)); //Включение шины SPI ,назначение устройства ведущим

while (1)

{

PORTC = keystr;

if( !(PIND & (1<<PIND2)) )// Буква при нажатии на 3

{

SPDR = 0b00010001;

while (!(SPSR&(1<<SPIF)));

PORTB |= (1<<PORTB4);

PORTB &= ~(1<<PORTB4);

_delay_ms(5);

PORTB |= (1<<PORTB4);

PORTB &= ~(1<<PORTB3);

SPDR = 0b11110011;

while (!(SPSR&(1<<SPIF)));

PORTB |= (1<<PORTB3);

PORTB &= ~(1<<PORTB3);

_delay_ms(5);

}

}

}

Вывод первых букв имени: