Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦУМ_241112.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
221.18 Кб
Скачать

Блок-схемы к задаче №3

4. Синтезировать заданную импульсную последовательность с параметрами: T1=1 мкс, T2=5 мкс, T3=7 мкс, T4=10 мкс.

И спользуется кварц с частотой 5 МГц, поэтому T1=5T, T2=25T, T3=35T, T4=50T, где T1=1/(5 МГц)=0,2 мкс.

NAME main

PUBLIC main

#include "msp430x16x.h"

ORG 0FFFEh

DC16 main

ORG 0FFEAh

DC16 Timer_A1

RSEG CODE

main:

mov #(WDTPW+WDTHOLD), &WDTCTL

mov #09FEh, SP ; инициализация стека

b

Инициализация системы тактирования

ic #OSCOFF, SR ; по умолчанию

bis.b #XTS, &BCSCTL1

b

Инициализация портов P1.2-P1.3

is.b #SELM_3, &BCSCTL2

bis.b #((1<<2)|(1<<3)), &P1SEL

bis.b #((1<<2)|(1<<3)), &P1DIR

m

Инициализация таймера А: блоки 1-2 в режиме сравнения, задание констант (пределов) счёта; разрешение прерывания от блока 1; OUT1=0, OUT2=1, установка выходов OUT1 и OUT2 в режим «переключение» и «сброс/установка» соответственно; работа таймера от ACLK, /1, запуск в режиме «вверх»

ov #32h, &TACCR0 ; T4=50T=10 мкс

mov #5h, &TACCR1 ; T1=5T=1 мкс

mov #19h, &TACCR2 ; T2=25T=5 мкс

mov #CCIE, &TACCTL1

bic #OUT, &TACCTL1 ; по умолчанию

bis #OUT, &TACCTL2

bis #OUTMOD_2, &TACCTL1

bis #OUTMOD_7, &TACCTL2

mov #(TASSEL_1+ID_0+MC_1), &TACTL

eint ; Разрешение маскируемых прерываний

L

Зацикливание (ожидание прерывания)

1:

jmp L1

T imer_A1:

c

Подпрограмма обработки прерывания от блока 1 таймера А: задание момента времени формирования перепада сигнала на P1.2

mp &23h, &TAR

jl T1

mov #5h, &TACCR1 ; 1 мкс

reti

T1: mov #23h, &TACCR1; 7 мкс

reti

end main

Блок-схемы и иллюстрация операции к задаче №4

5. Программно-аппаратный делитель частоты входного сигнала.

Д еление на 3 с использованием прерывания от порта P1.0

NAME main

PUBLIC main

#include "msp430x16x.h"

ORG 0FFFEh

DC16 main

ORG 0FFE8h

DC16 Input

RSEG CODE

main:

mov #(WDTPW+WDTHOLD), &WDTCTL

m

Инициализация системы тактирования

ov #09FEh, SP ; инициализация стека

b ic #XT2OFF, SR ; по умолчанию

bis.b #SELM_2, &BCSCTL2

mov #0h, R4 ; R4=0

b ic.b #((1<<0)|(1<<1)), &P1SEL ; по умолчанию

b

Инициализация портов P1.0-P1.1

ic.b #(1<<0), &P1DIR ; по умолчанию

bis.b #(1<<1), &P1DIR

bic.b #(1<<1), &P1OUT ; по умолчанию

b

Разрешение прерываний от порта P1.0 по фронту сигнала, разрешение маскируемых прерываний

ic.b #(1<<0), &P1IES ; по умолчанию

bis.b #(1<<0), &P1IE

eint

L

Зацикливание (ожидание прерывания)

1:

jmp L1

Вход в подпрограмму обработки прерывания от P1.0 и запрещение маскируемых прерываний

Input:

d

Очистка флага прерывания от P1.0 и изменение срабатывания прерывания по фронту/спаду

int

bic.b #(1<<0), &P1IFG

xor.b #(1<<0), &P1IES

c

Если R4=0, то смена уровня выходного сигнала (P1.1), R4=коэффициенту деления

mp #0h, R4

jnz L2

xor.b #(1<<1), &P1OUT

mov #3h, R4

L

Декрементация R4, разрешение маскируемых прерываний, выход из подпрограммы

2: dec R4

eint

r eti

end main

Блок-схемы к задаче №5

14