Скачиваний:
20
Добавлен:
10.12.2013
Размер:
72.19 Кб
Скачать

; MCS-52 ШИМ Program -- 28.12.2000

;Прием кода скважности через параллельный порт P2

;(по прерыванию от сигнала записи скважности WRS)

;Блокировка ШИМ от вычислителя при BLS=0

;Понижение частоты ШИМ в два раза при Fs=0

;Тестовый контроль силовой части по включению питания

;Снятие бл.ШИМ по отказам переключением сигнала блокировки BLS

;Общие определения не печатались

;Определения для контроллера ШИМ

;P2 .equ 0A0H ;Port 2 -код скважности SK0...SK7

TCL .equ P1.0 ;Port 1 bit 0 -выход на индикацию РАБОТА

BLS .equ P1.1 ;Port 1 bit 1-блокировка ШИМ от вычислителя

Fs .equ P1.2 ;Port 1 bit 2-переключение частоты ШИМ;0 - пониженная частота(25 Гц)

;АR .equ P1.3 ;Port 1 bit 3 -резерв

Otk .equ 080H ;Port 0 bit 0-выход сигнала Отказ

SW1 .equ 085H ;Port 0 bit 5 /Слово состояния контроллера ШИМ

SW2 .equ 086H ;Port 0 bit 6 / SW1...SW3

SW3 .equ 087H ;Port 0 bit 7 /

;RXD .equ 0B0H ;P3.0

;TXD .equ 0B1H ;P3.1

WRS .equ 0B2H ;P3.2-INT0-вход прерывания по импульсу WRS записи скважности

R1S .equ 0B3H ;P3.3-INT1-вход RS1 с триггера контроля

R2S .equ 0B4H ;P3.4-вход RS2 с триггера контроля

WORK .equ 0B5H ;P3.5 Сигнал Работа для вычислителя

shim1 .equ 0B6H ;P3.6 выход сигнала ШИМ1

shim2 .equ 0B7H ;P3.7 выход сигнала ШИМ2

NZ .equ 00H ;метка начального запуска

mCON .equ 01H ;метка режима "контроль ШИМ по включению питания"

CPU_NS .equ 02H ;метка незапуска вычислителя

OtkS .equ 03H ;метка отказа силовой части

mBLS .equ 04H ;метка блокировки ШИМ (копия BLS)

mFs .equ 05H ;метка понижения частоты (копия Fs)

SVK1 .equ 06H ;метка отказа силовой части

mBL .equ 07H ;метка блокировки ШИМ при отказе

CTF .equ 031H ;счетчик-фильтр меток 20мс таймера T0

CLOK .equ 033H ;счетчик времени рабочего периода

TIME .equ 034H ;время рабочего периода

SK .equ 035H ;код скважности от вычислителя

CTo .equ 036H ;счетчик-фильтр отказов силовой части

CLind .equ 037H ;счетчик времени индикации

Tind .equ 038H ;время периода индикации (сигнала TCL)

CTNZ .equ 039H ;счетчик-фильтр начального запуска

CTkon .equ 03AH ;счетчик числа периодов контроля обмоток

CTBL .equ 03BH ;счетчик-фильтр меток блокировки при отказе

;Interrupt Programs------------------------------------------

.ORG 0000H

ljmp nach ;Programma начального запуска

.ORG 0003H

ljmp INTWRS ;прерываниеINT0 по импульсу записи кода скважности

.ORG 000BH

ljmp INTM20 ;прерывание по флагу TF0 Timer0 - 20ms

.ORG 0013H

RETI ;(прерываниеINT1 по импульсу RS квит. контроля ИМ)

.ORG 001BH

ljmp PRshim1 ;прерывание по флагу TF1 Timer1 - по концу шим1

.ORG 0023H

RETI ;UART_SPI, reserved

.ORG 002BH

RETI ;INT2,-external, reserved

;Programma начального запуска-------------------------

;начальные установки

nach mov SP, #70H ;STACK

mov P0 ,#00FFH ;слово состояния SW=1-нет отказов

mov P1 ,#00FFH ;

mov P2 ,#00FFH ;

mov P3 ,#00FFH ;

clr TCL ;индикация режима Работа

clr WORK ;

setb NZ ;NZ=1-начальный запуск

clr CPU_NS ;нет запуска вычислителя

setb mFs ;нет переключения частоты

clr mBL ;нет блокировки ШИМ по отказу

setb mBLS ;нет блокировки ШИМ

clr OtkS ;нет отказа силовой части

clr SW3 ;нет отказа канала

clr SVK1 ;нет отказов силовой части

;установка Timer0 на цикл 20мс при частоте кварца 11.059МГц

;установка Timer1 для преобразования кода скважности в ШИМ

mov TMOD ,#0011H ;установка TIMER0,Timer1

clr TCON.5

clr TCON.7

mov TH0 ,#00B8H ;(период таймера - 20 мс)

mov TL0 ,#0000H

setb TCON.4 ;запуск TIMER0

mov TH1 ,#00DBH ;SK=50%

mov TL1 ,#00FFH

clr TCON.6 ;незапуск TIMER1

mov CTNZ ,#0004H

mov CTF ,#0004H

mov CTBL ,#0004H

mov CTkon ,#0006H

mov CTo ,#0005H

mov TIME ,#0001H ;рабочий период - 20ms

mov TIME ,CLOK

mov Tind ,#000DH ;период индикации - 0,5 сек

mov Tind ,CLind

setb TCON.0

setb shim1 ;выключение ШИМ

setb shim2

setb mCON ;режим "контроль ШИМ"

;P-ожидание прерываний----------------------------------------

ppppp setb IE.7 ;разрешение прерываний

setb IE.0 ;разрешение прерывания по WRS

setb IE.1 ;разрешение прерывания по TIMER0

ljmp ppppp

;Прерывание по WRS--------------------------------------------

INTWRS jnb NZ ,mnz ;NZ=0? переход на прием скважности

djnz CTNZ ,rt ;

clr NZ ;NZ=0

rt RETI

mnz setb CPU_NS ;CPU_NS установка метки запуска вычислителя

mov CTF ,#0004H ;CTF=4

setb SW3 ;сброс отказа канала

mov P2 ,SK ;прием от вычислителя кода скважности

jb BLS ,v1 ;прием от вычислителя метки блокировки

clr mBLS ;есть блокировка

ajmp v2

v1 setb mBLS ;нет блокировки

v2 jb Fs ,v3 ;прием от вычислителя метки частоты ШИМ

clr mFs ;есть снижение частоты

ajmp v4

v3 setb mFs ;нет снижения частоты

v4 RETI

;Прерывание от таймера TIMER T0 по М20--------------------------------------

INTM20 clr TCON.4 ;reset Start TIMER0

clr TCON.5 ;reset FLAG TIMER0

mov TMOD ,#0011H ;подтверждение режима TIMER0,TIMER1

mov TH0 ,#00B8H

mov TL0 ,#0000H

setb TCON.4 ;запуск TIMER0

CPL WORK ;инверсия сигнала WORK для вычислителя

jb OtkS ,pot ;переход по отказу силовой части

djnz CLOK ,mreti ;

jb mCON , CONTR ;переход на режим "контроль ШИМ"

jb CPU_NS ,RABOTA ;при запуске вычислителя-переход на раб. прогр.

RETIm20 djnz CLind ,tim ;

CPL TCL ;инверсия сигнала индикации Работа

mov Tind ,CLind

tim mov TIME ,CLOK

mreti RETI

;зацикливание по отказу ШИМ------

pot jnb mBLS ,p1

jnb mBL ,p2

djnz CTBL ,p2

clr mBL

clr OtkS

mov CTBL ,#0004H

ajmp CONTR ;переход на CONTR при переключенииBLS

p1 setb mBL

p2 clr TCL ;индикация блокировки по отказу ШИМ

reti

;Контроль ШИМ

;запись 50% длительности ШИМ1 в TIMER1

CONTR clr TCL ;

mov TIME ,#0001H ;период работы при проверке обмоток-20мс

mov Tind ,#000DH ;период индикации - 0,5s

jb CPU_NS ,kanal ;проверка состояния вычислителя

k1 djnz CTkon ,k4 ;отсчет 6 циклов проверки обмоток

ajmp k3

k4 mov TH1, #0DBH ;запись ст байта ШИМ в таймер1

mov TL1, #0FFH ;запись мл байта

ajmp Ushim ;переход на управление ШИМ

kanal djnz CTF ,k2

mov CTF ,#0004H

clr SW3 ;установка бита в слове отказа канала

k2 jb mBLS ,k1 ;анализ бл.ШИМ от вычислителя(нет-на контроль)

k3 mov TIME ,#0064H ;периодичность контроля - 2с

mov Tind ,#000DH ;период индикации - otkl

clr TCON.6

clr TCON.7

clr IE.3 ;запрет прерывания по TIMER1

setb shim1 ;выключение сигнала ШИМ1

setb shim2 ;выключение сигнала ШИМ2

mov CTkon ,#0006H

mov Tind ,CLind

mov TIME ,CLOK

setb TCL ;сигнал индикации Работа

RETI

;----------------------------------------------

RABOTA mov TIME ,#0001H ;основной период работы 20мс

mov Tind ,#0001H ;период индикации - 20ms

;Проверка канала связи с вычислителем (наличие сигнала WRS)

djnz CTF ,BLOK ;переход на проверку бл. ШИМ от вычислителя,

; Отказ канала связи, запись 50% длительности ШИМ1 в TIMER1

mov CTF ,#0001H

clr SW3 ;установка бита в слове отказа

mov Tind ,#000DH ;период индикации - 0,5 сек

mov TH1, #0DBH ;запись ст байта ШИМ

mov TL1, #0FFH ;запись мл байта в таймер1

ajmp Ushim ;переход на управление ШИМ

;Проверка блокировок------------------------------------------

BLOK jb mBLS ,rsk ;переход на расчет скважности

setb shim1 ;выключение сигнала ШИМ1

setb shim2 ;выключение сигнала ШИМ2

mov Tind ,#01AH ;период индикации 1сек

ajmp RETIm20

;Расчет скважности--------------------------------------------

rsk mov A, SK ;код скважности

jnb mFs, F2 ;переход на понижение частоты

mov TIME ,#0001H ;установка времени для CLOK 20ms

MOV B, #039H ;код единицы скважности

mul AB ;РЕЗУЛЬТАТ - А-мл байт,В-ст байт

add A, #033H ;смещение мл байта кода для таймера на 10%(2мс)

cpl A

mov TL1, A ;запись мл байта кода длительности ШИМ1 в TIMER1

mov A, B

addc A, #07H ;смещение ст байта кода для таймера на 10%(2мс)

cpl A

mov TH1, A ;запись ст байта кода длительности ШИМ1 в TIMER1

ajmp Ushim ;переход на управление ШИМ

;понижение частоты ШИМ

F2 mov TIME ,#0002H ;установка времени для CLOK 40ms

MOV B, #081H ;код единицы скважности при понижении частоты ШИМ

mul AB ;РЕЗУЛЬТАТ - А-мл байт,В-ст байт

add A, #033H ;смещение мл байта кода для таймера на 2мс

cpl A

mov TL1, A ;запись мл байта кода длительности ШИМ1 в TIMER1

mov A, B

addc A, #07H ;смещение ст байта кода для таймера на 2мс

cpl A

mov TH1, A ;запись ст байта кода длительности ШИМ1 в TIMER1

ajmp Ushim ;переход на управление ШИМ

;Управление ШИМ

;Анализ отказов силовой части по состоянию триггера контроля

; и переключение обмоток ИМ---------------------------------

Ushim jb R1S ,n1 ;анализ отказа

setb SVK1 ;отказ

clr SW1 ;установка бита ШИМ1 в слове отказа

n1 jnb R2S ,n2 ;анализ отказа

setb SVK1 ;отказ

clr SW1 ;установка бита ШИМ1 в слове отказа

;-------------------------------------------------------------

n2 setb shim2 ;выключение сигнала ШИМ2

MOV R2, #040H ;задержка включения ШИМ1

DELAY1 DJNZ R2, DELAY1

setb TCON.6 ;запуск таймера Т1 для формирования ШИМ1

clr shim1 ;включение сигнала ШИМ1

setb IE.3 ;разрешение прерывания по TIMER1

;-------------------------------------------------------------

jnb R1S ,n3 ;анализ отказа

setb SVK1 ;отказ

clr SW2 ;установка бита ШИМ2 в слове отказа

n3 jb R2S ,n4 ;анализ отказа

setb SVK1 ;отказ

clr SW2 ;установка бита ШИМ2 в слове отказа

;заключительный этап анализа отказов

n4 jnb SVK1, not ;нет отказа - переход

clr SVK1

djnz CTo ,n5 ;анализ фильтра

;подготовка к блокировке по отказу-------

mov CTo ,#04H ;

setb OtkS ;

setb mCON ;METKA разрешения режима "контроль ШИМ"

clr TCON.6

clr TCON.7

clr IE.3 ;запрет прерывания по TIMER1

setb shim1 ;выключение сигнала ШИМ1

setb shim2 ;выключение сигнала ШИМ2

mov CTkon ,#0006H

mov CTo ,#04H ;

setb mCON ;METKA разрешения режима "контроль ШИМ"

n5 ajmp RETIm20

not mov CTo ,#05H ;нет отказа

setb SW1

setb SW2

jb mCON, kont

ajmp RETIm20

;восстановление режима после контроля

kont clr mCON

mov TIME ,#0001H ;периодичность 20мс

mov Tind ,#000DH ;период индикации - 0,5с

clr TCON.6

clr TCON.7

clr IE.3 ;запрет прерывания по TIMER1

setb shim1 ;выключение сигнала ШИМ1

setb shim2 ;выключение сигнала ШИМ2

mov CTkon ,#0006H

mov CTo ,#05H ;нет отказа

setb TCL ;

ajmp RETIm20

;----------------------------------------------------------

;P/P Прерывание от таймера TIMER1 по концу ШИМ1

PRshim1 clr TCON.6

clr TCON.7

setb shim1 ;выключение ШИМ1

MOV R2, #040H ;задержка включения ШИМ2

DELAY2 DJNZ R2, DELAY2

clr shim2 ;включение ШИМ2

RETI

;----------------------------------------------------------

.END

Лист

Изм

Лит

№ Докум.

Подп

Дата

8Т5.104.213 по

6

Инв. № подл.

Подп. и дата

Взам. инв. №

Инв. № дубл

Подп. и дата

Формат А4

Соседние файлы в папке v7 рабочас блок.по отказу
  • #
    10.12.201372.19 Кб20lst_v7.doc
  • #
    10.12.201322.97 Кб17shim.asm
  • #
    10.12.201336.19 Кб17shim_v7.lst
  • #
    10.12.2013518 б17shim_v7.obj