
ASVT_7term_LR2
.docxЦель работы: сформировать практические навыки программирования и отладки работы микроконтроллеров.
Задание:
Используя АЦП микроконтроллера ATMEGA8535 реализовать схему используя новые элементы для ввода и вывода информации.
Написать программу реализующую работу собранной схемы.
Запрограммировать микроконтроллер.
Составить отчет.
Теоретическая часть
ATmega8535/L является КМОП 8- битным микроконтроллером, построенным на расширенной AVR RISC архитектуре. AVR ядро сочетает расширенный набор команд с 32 рабочими регистрами общего назначения.
Рисунок 1 - Схема взаимодействия блоков микроконтроллера ATMEGA8535
Практическая часть
Синтезирована следующая схема:
Рисунок
2 – Заданная схема
Рисунок 3 – Работа схемы
Код программы, реализующий работу заданной схемы:
#include <avr/io.h>
int main(void)
{
DDRC = 0xff;
PORTC=0XFF; DDRA = 0x00;
ADCSRA = 0;
ADMUX = 0;
ADCSRA =
( 1 << ADEN )
| ( 0 << ADATE )
| ( 1 << ADIF )
| ( 0 << ADIE )
| ( 1 << ADPS2 ) | ( 1 << ADPS1 ) | ( 1 << ADPS0 )
;
while (1)
{
for (int i=0;i<4;i++)
{
ADMUX =
( 1 << REFS0 )
| ( 1 << ADLAR )
| ( i );
;
ADCSRA |= (1 << ADSC);
while ( ! ( ADCSRA & (1 << ADIF) ) ) { ; }
ADCSRA |= ( 1 << ADIF );
char result = ADCH;
if(i==0)
{
if ( (result > 255*7/8) ) { PORTC = 0X06; } //1 //0b110 0000
else if ( (result > 255*5/8) ) { PORTC = 0x5B; } //2 //0b101 1011
else if ( (result > 255*3/8) ) { PORTC = 0x4F; } //3 //0b100 1111
}
if(i==1)
{
if ( (result > 255*7/8) ) { PORTC = 0X66; } //4 //0b110 0110
else if ( (result > 255*5/8) ) { PORTC = 0x6D; } //5 //0b110 1101
else if ( (result > 255*3/8) ) { PORTC = 0x7D; } //6 //0b111 1101
}
if(i==2)
{
if ( (result > 255*7/8) ) { PORTC = 0X07; } //7 //0b111 0000
else if ( (result > 255*5/8) ) { PORTC = 0x7F; } //8 //0b111 1111
else if ( (result > 255*3/8) ) { PORTC = 0x6F; } //9 //0b110 1111
}
if(i==3)
{
if ( (result > 255*7/8) ) { PORTC = 0X76; } //* //0b111 0110
else if ( (result > 255*5/8) ) { PORTC = 0x3F; } //0 //0b011 1111
else if ( (result > 255*3/8) ) { PORTC = 0x49; } //# //0b100 1001
}
} }}
Вывод: в ходе выполнения данной лабораторной работы были сформированы практические навыки программирования и отладки работы микроконтроллеров. Изучены принципы применения ПО, эмулирующего работу микроконтроллера.