Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Задание на лабораторную работу






Основное задание. Написать программу, реализующую циклическое преобразование аналоговой величины в цифровой код методом последовательных приближений. За основу взять блок-схему алгоритма метода последовательных приближений, приведенную на рисунке 2. Схема блока АЦП лабораторного макета приведена на рисунке 3. Период измерений и способ индикации результата приведены в таблице вариантов (табл.1). На индикацию вывести код АЦП.

Дополнительное задание. Вывести на статическую (динамическую) индикацию входное напряжение АЦП в формате 1, 23 В с гашением незначащих разрядов.

 

Таблица1 – Таблица вариантов заданий

Вариант Способ индикации Период измерений, с
  Статическая индикация 0, 2
  Динамическая индикация 0, 4
  Линейка светодиодов 0, 6
  Матричный индикатор 0, 8
  UART (9600 Бод) 1, 0
  ЖКИ 0, 2
  Статическая индикация 0, 4
  Динамическая индикация 0, 6
  Линейка светодиодов 0, 8
  Матричный индикатор 1, 0
  UART (19200 Бод) 0, 2
  ЖКИ 0, 4
  Статическая индикация 0, 6
  Динамическая индикация 0, 8
  Линейка светодиодов 1, 0
  Матричный индикатор 0, 2

 

Таблица 2 – Данные для реализации индикации

на линейку светодиодов и матричный индикатор

Код АЦП Кол-во засвеченных светодиодов в линейке светодиодов Кол-во засвеченных строк матричного индикатора
0..32    
32..64    
64..96    
96..128    
128..160    
160..192    
192..224    
224..255    

 

При моделировании в Proteuse на вход АЦП подать постоянное напряжение с уровнем

 

, (1)

 

где N – номер по журналу.

 

Рис.2 Блок-схема алгоритма метода половинных приближений

 

Пример программы аналого-цифрового преобразования по методу последовательного счета с выводом результата преобразования на динамический индикатор.

#include " mega8515.h"

unsigned char *LED_REG = (unsigned char *)0xA006;

unsigned char *IND_REGL = (unsigned char *)0xA000;

unsigned char *IND_REGH = (unsigned char *)0xB000;

unsigned char *DC_REG = (unsigned char *)0xA004;

unsigned char *leds=(unsigned char *)0xA006;

//unsigned char *rus = (unsigned char *) 0x8003;

unsigned char *DAC = (unsigned char *) 0xF000;

unsigned char KodADC;

//unsigned char n;

//unsigned short temp;

//unsigned char buf[4];

//Функция перекодировки символа в код семисегментного индикатора *************************

/*

unsigned char Decoder(char Sim)

{

unsigned char kod;

if (Sim==0) kod=0x3F;

if (Sim==1) kod=0x06;

if (Sim==2) kod=0x5B;

if (Sim==3) kod=0x4F;

if (Sim==4) kod=0x66;

if (Sim==5) kod=0x6D;

if (Sim==6) kod=0x7C;

if (Sim==7) kod=0x07;

if (Sim==8) kod=0x7F;

if (Sim==9) kod=0x6F;

return (kod);

}

//Функция вывода переменной на динамический индикатор ************************************

void OutDinIndic(unsigned short x)

{

if (x> 9999) x=9999;

temp=x/1000;

buf[0]=Decoder(temp);

x=x-temp*1000;

temp=x/100;

buf[1]=Decoder(temp);

x=x-temp*100;

temp=x/10;

buf[2]=Decoder(temp);

buf[3]=Decoder(x-temp*10);

}

//Обработчик прерываний от Т0 ************************************************************


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал