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

отчеты по лабораторным работам / общий отчет / Формирование серии прямоугольных сигналов - метод ШИМ

.doc
Скачиваний:
20
Добавлен:
09.05.2014
Размер:
40.96 Кб
Скачать

Лабораторная работа по Организации ЭВМ

Формирование серии прямоугольных сигналов - метод ШИМ

Выполнили: студенты группы 2100

Митрофанов Александр

Пермяков Валерий

Николаев Владимир

Голубцов Евгений

Таймер Тм0 переключает в режиме 2 по прерыванию бит INT1 – ШИМ на выходе Р3.3. В режиме GATE1 Tm1 измеряет полупериод прямоугольного сигнала INT1

F0/12 TF0

TL0 P3.3^1 пп прерывания таймера

TH0 3 0 P3

Int1

TH1 TL1 TL1P2 пп прерывания

F0/12 TL1=0

Временная диаграмма

TF0

Int1 TL1++ TL1++

Реализация задачи на С

#include <reg51.h>

#define con (0x10000-10000)/256;

#define con2 (0x10000-10000)%256;

unsigned int x, abs;

void signal_handler() interrupt 0

{

x = (TL1 + (TH1<<8))*2;

TL1 = 0;

TH1 = 0;

}

void time_handler() interrupt 1

{

TL0 = con2;

TH0 = con;

P3 ^= 0x7F;

}

void main()

{

TR0 = 1;

IT0 = 1;

TMOD = 0x91;

TR1 = 1;

ET0 = 1;

EX0 = 1;

EA = 1;

for(;;);

}

Реализация задачи на ассемблере

iseg at 30h

Stack: ds 10

cseg at 0

ljmp start

cseg at 0Bh

ljmp ex00

cseg at 13h

ljmp ex01

cseg at 40h

start:

mov P3, #0

mov SP, #Stack-1

mov TMOD, #11h

setb EA

setb EX1

setb IT1

setb TR1

setb TR0

setb ET0

setb IE0

cikl: jmp cikl

ex00:

push ACC

mov TL0, #0xEF

mov TH0, #0xD8

mov a, P3

subb a, #0x7E

jz zero

mov P3, #0x7F

jmp nzero

zero: mov P3, #0

nzero:

pop ACC

Reti

ex01:

push ACC

mov P2, TH1

mov P1, TL1

mov TH1, #0

mov TL1, #0

pop ACC

Reti

end