Описание алгоритма прерываний по переполнению Т0 — КиберПедия 

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Описание алгоритма прерываний по переполнению Т0

2017-06-29 630
Описание алгоритма прерываний по переполнению Т0 0.00 из 5.00 0 оценок
Заказать работу

Описание алгоритма:

- останавливаем счет таймера Т0

- загружаем 16-ти разрядные регистры данных таймера Т0 побайтно

- запускаем счет таймера Т0

- увеличение счетчика времени на 1

Схема алгоритма рассмотрена на рисунке 10:

Рисунок 10. Схема алгоритма прерывания по переполнению таймера 0

 

Описание алгоритма работы динамической индикации

Описание алгоритма:

- выключаем все порты индикации

- производим индикацию знакоместа

- инкремент знакоместа

- если все знакоместа обновлены, то переходим к начальному, иначе заканчиваем.

Схема алгоритма рассмотрена на рисунке 11:

 

Рисунок 11. Схема алгоритма работы подпрограммы динамической индикации

 

Заключение

После проделанной работы, была разработанная принципиальная схема устройства генерирующего прямоугольные сигналы на основе ЦАП К572ПА1. Разработанное устройство может применяться, для синхронизации различных процессов в цифровых устройствах — ЭВМ, электронных часах, таймерах и других. А также его можно использовать в измерительной технике для наладки и ремонта различных цифровых устройств.

Питание осуществляется от источника 5 В. Потребляемая мощность – 1.277 Вт. Потребляемый ток – 0.255А

Устройство может работать при температуре от -10 до +70 ºC.


Литература

1) Аверченков О.Е. Схемотехника: аппаратура и программы. – М.:ДМК Пресс 2012. – 588 с.

2) Аверченков О.Е. Схемотехника: Особенности программирования однокристалльной ВМ x51 на языке Си. – М.:ДМК Пресс 2012.

3) Аверченков О.Е. Основы схемотехники однокристальной ВМ х51: учебно-методическое пособие по курсу «Схемотехника ЭВМ» / О.Е. Аверченков. – Смоленск: РИО филиала ГОУВПО «МЭИ(ТУ)» в г. Смоленске, 2010. – 88с.

4) AT89C51 Complete datasheet [Электронный ресурс]http://www.atmel.com/images/doc0368.pdf

5) AT89C2051 [Электронный ресурс] http://www.atmel.com/ru/ru/devices/at89c51.aspx

6) КАЕВЧЕНКО М.А. Графические и текстовые конструкторские документы. Методические указания к оформлению по ЕСКД конструкторских документов, курсовых и дипломных проектов по курсу “Конструкторско-техническое обеспечение производства ЭВМ” Смоленск: ГОУВПО СФМЭИ (ТУ), 2005.

7) НЕФЕДОВ А.В. Интегральные микросхемы и их зарубежные аналоги: Справочник в 12 томах. -М.: ИП РадиоСофт, 2000.

8) [Электронный ресурс] https://ru.wikipedia.org/wiki/Генератор_сигналов

9) [Электронный ресурс] http://www.texnic.ru/konstr/izm/izm7.html

 


Приложение А. Принципиальная схема устройства

Приложение В. Перечень элементов

Приложение С. Текст программы

//Программа для КП на тему "Генератор прямоугольных импульсов на основе ЦАП(изменение амплитуды)"

//выполнена Василенко П.В., студентом группы АС-14.

//Версия программы: 1.1 beta, //05.06.2017//

 

#include <at89x51.h> //подключение файла используемого процессора, где определены стандартные имена регистров и битов

#define mPort P1

#define Tik (10000) //задание "тика" системного таймера Tic, Tic = 10000мкс = 10мс

#define mKvoZn 3

unsigned char //задание переменных

mPtrZn=0, mCount10ms=0, mBufInd[]={0,0,0}, mCount1s=0;

int T,T_PULSE,T_PAUSE,T2, FLAG;

char amp; //значение амплитуды

char n; //переменая фиксации переключения 0 и 1 (давать паузу или нет)

 

void mInitT0 (void){

TR0=0; //установка времени, которое будет //это бит управления запуском таймера 0 останавливает счет таймера 0

TMOD=(TMOD&0xf0)|0x1; //задание режима таймера

TL0=(~Tik); //установка времени, которое будет

TH0=(~Tik)>>8; //отсчитываться таймером, сдвиг вправо на 8 битов

TR0=1; //разрешает счет таймера 0

ET0=1; //разрешить прерывание по таймеру Т0

EA=1; //разрешить все разрешенные прерывания

}

 

void mInd (void){

mPort=0xf0; // выключаем все индикаторы

mPort=mPort|mBufInd[mPtrZn]; // выводим информацию

mPort=mPort&(~(1<<mPtrZn+4)); // включаем текущий индикатор

mPtrZn++;

if (mPtrZn==mKvoZn) mPtrZn=0;

}

 

 

void mInterrutT0 (void) __interrupt (TF0_VECTOR){ //процедура прерывания по переполнению для таймера 0

TR0=0; //установка времени, которое будет //это бит управления запуском таймера 0 останавливает счет таймера 0

TL0=(~Tik); //установка времени, которое будет

TH0=(~Tik)>>8; //отсчитываться таймером, сдвиг вправо на 8 битов

TR0=1; //разрешает счет таймера 0

mCount10ms++;

mInd();

FLAG=~FLAG;

}

 

void mByteToBCDtoBufInd (unsigned char mB){

mBufInd[2]=mB/100; // сотни

mBufInd[1]=(mB%100)/10; // десятки

mBufInd[0]=(mB%100)%10; // единицы

}

 

void main(void)

{

amp = 0; //Изначальная амплитуда

n = 0; //Фиксирует переключение из 0 в 1

mInitT0();

P2_3=0; //Порт для кнопки уменьшения

P2_2=0; //Порт для кнопки увеличения

 

//Предподготовительный этап для настройки амплитуды

 

while(1) //Работает постоянно

{

mByteToBCDtoBufInd(amp);

if (P2_2 == 1 && amp < 9) //увеличиваем амплитуду

{

amp = amp + 1;

 

}

 

if (amp > 0 && P2_3 == 1)//уменьшаем амплитуду

{

 

amp = amp - 1;

 

}

 

//Основной этап

 

mByteToBCDtoBufInd(amp); // Индикатор показывает значение амплитуды

if(FLAG) P3 = amp; // Посылаем амплитуду на ЦАП

else P3 = 0; // Посылаем 0 на ЦАП

}

 

}

 


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

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.014 с.