Дипломы / Diplom / ШИМ (окончен) / ПО / устаревшие / v7 рабочас блок.по отказу / lst_v7
.doc
; 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 по |
|
|
|
||||
|
|
|
|
|
||||||||
Инв. № подл. |
Подп. и дата |
Взам. инв. № |
Инв. № дубл |
Подп. и дата |
Формат А4