
- •Арифметика с фиксированной точкой
- •Реализация задачи на ассемблере
- •Программа беззнакового деления
- •Реализация задачи на ассемблере
- •Вычисление функции
- •Иерархия памяти эвм
- •Программа на c:
- •Битовые операции.
- •Реализация задачи на ассемблере
- •Таймеры
- •Программа часы.
- •Реализация задачи на с
- •Реализация задачи на ассемблере
- •Формирование серии прямоугольных сигналов - метод шим
- •Реализация задачи на с
- •Реализация на ассемблере
- •Adc преобразователь sab515/535
- •Реализация задачи на с
- •Сигнальная функция
- •Реализация задачи на с
- •Сигнальная функция
- •Реализация задачи на ассемблере
Сигнальная функция
SIGNAL void sin_sig (unsigned int time) {
float x;
while (1) {
for (x = 0.0; x <= 6.28; x += 0.0628) {
AIN0 = __sin(x)/1.333333 + 1;
twatch (time);
}
}
}
define button "SIN 1000", "sin_sig(1000)"
define button "KILL SIN", "signal kill sin_sig"
Измерение полупериода прямоугольного сигнала INT1
Измерить частоту прямоугольного сигнала методом Захвата (Capture) и Gate. Метод Захвата – таймер выполняет непрерывный отсчет времени с учетом переполнения, при прерываниях по фронту внешнего сигнала фиксируется значение таймера и вычисляется модуль разности двух последующих значений, или длительность периода.
В режиме GATE1 Tm1 измеряет полупериод прямоугольного сигнала INT1, значение выводим в порт Р2
Реализация задачи на с
#include <reg51.h>
unsigned char t=0;
int_0() interrupt 0
{
TR0 = 0;
P2 = TL0;
TH0 = 0;
TL0 = 0;
TR0 = 1;
}
main()
{
TMOD = 0x09;
TH0 = 0;
TL0 = 0;
TR0 = 1;
EX0 = 1;
IT0 = 1;
EA = 1;
while(1);
}
Сигнальная функция
SIGNAL void Signa (unsigned int Time)
{
twatch (Time);
while(1)
{
PORT3 = 0xF4;
twatch (Time);
PORT3 = 0;
twatch (Time);
}
}
Signa(150)
la PORT3
Реализация задачи на ассемблере
iseg at 30h
Stack: ds 10
cseg at 0
ljmp start
cseg at 03h
ljmp ex00
cseg at 40h
start:
mov P2, #0
mov SP, #Stack-1
mov TMOD, #09h
mov TH0, #0
mov TL0, #0
setb EA
setb EX0
setb IT0
setb TR0
cikl:
jmp cikl
ex00:
cpl TR0
push ACC
mov A, TL0
mov P2, A
mov TH0, #0
mov TL0, #0
pop ACC
setb TR0
Reti
end