Смекни!
smekni.com

Блок управления 4-х канальным ТВ передатчиком МВ. Устройство индикации (стр. 2 из 2)


Макросы:

RestoreIndPSW Тц=4 цикла

SaveIndPSW Тц=4 цикла

ReadSym Тц=1 цикл

Coder7Seg Тц=4 цикла

OutputDat Тц=5 циклов

Итого, при обработке каждого прерывания, программа индикации использует Тц=18 циклов процессора.

Время выполнения макроса InitRegInd (Тц=4 цикла + Tц(RestoreIndPSW)+Тц(SaveIndPSW)=12 циклов) не оказывает влияния на общее время работы программы индикации, поскольку выполняется однократно при инициализации.

6. Отладка разработанной программы. Результаты отладки

Для автономной отладки программы необходимо обеспечить функционирование таймера, т.е. начальную установку значения делителя таймера и режим работы, а так же разрешить прерывания от таймера. Ниже приведен текст программы, со вставками необходимыми для автономной работы.

************************MCS51******************************

* К У Р С О В А Я Р А Б О Т А *

* на тему: Устройство индикации * * *

* выполнил : ст гр.816 *

* Гладилина Яна Вадимовна *

*************************************************************

* Программа вывода информации на 7-сегментный индикатор *

* на МК КР1816ВЕ51 *

* Исходные данные:Номера каналов N=2,3,5,6 *

* Число разрядов линейного дисплея N=1 *

FILLCHAR00h;Заполнить промежутки между секциями нулями.

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

;*************КОНСТАНТЫ и ПЕРЕМЕННЫЕ *****************

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

;обозначение переменных

Bank1: .EQU008H;Банк 1

;Следующие регистры описаны в программе обработки клавиатуры.

;Их описание необходимо при автономном использовании программы

TimeDatL: .EQU078H;задержка на 5000 мкс. 5000 -> 1388h

TimeDatH: .EQU 0ECH ; его доп. код = 0EC78Ch

ModeT0: .EQU0F1H;режим T0 - таймер в режиме 1

;Определение неперемещаемых регистров ----+ +-+-----+

P2: .REG0A0H; P2 0+--|a| | ; 1+--|b|+a-+ | ;Следующие регистры описаны в программе 2+--|c|fb | ;обработки клавиатуры. Их описание 3+--|d|+-g| | ; необходимо при автономном использовании 4+--|e|ec | ;программы 5+--|f|+d-+ |

PSW: .REG0D0H; 6+--|g| |

TMOD: .REG089H; 7| | | |

TCON: .REG 088H ; ----+ +-+-----+

IE: .REG 0A8H ;

IP: .REG 0B8H ;

TL0: .REG 08AH ;

TH0: .REG 08CH ;

SP: .REG 081h ;

ACC: .REG0E0H; ; .RSECT;

;Определение перемещаемых регистров

IndPSW: .DS1 ;хранение PSW для индикации ;Следующие регистры описаны в программе обработки клавиатуры. ;Их описание необходимо при автономном использовании программы

BufKey: .DS1 ;буфер клавиатуры

VarPSW: .DS1 ;хранение текущего PSW

AddrSP: .DS8 ;область под стек

Bit7ACC: .REGACC.7

Bit7P2: .REGP2.7 .DATA

;Преобразование двоичного кода в семисегмент-ный

Tabl7Seg: .BYTE 24h, 30h, 12h, 02h

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

************************МАКРОСЫ ***************************

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

;Сохранение текущего PSW в регистре VarPSW и восстановление IndPSW

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

RestoreIndPSW: .MACRO MOV VarPSW,PSW MOV PSW,IndPSW .ENDM

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

;Сохранение IndPSW и установка прежнего PSW

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

SaveIndPSW: .MACRO MOV IndPSW,PSW MOV PSW,VarPSW .ENDM

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

; Устанавливает T0 в режим 1 таймера с запретом внешнего управления,

; загружает в таймер двухбайтовое число <TimeDatH><TimeDatL>, запускает T0

; необходимо для автономной работы

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

InitTimerT0: .MACROTH,TLCLRTR0 ORLTMOD,#0FHANLTMOD,#ModeT0 MOVTL0,#TLMOVTH0,#THSETBTR0 .ENDM

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

; Установка разрешения всех прерываний и прерываний от таймера T0

; необходимо для автономной работы

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

InitIntT0: .MACROSETBEASETBET0 CLRPT0 .ENDM

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

; Установка банка регистров RB1 и начальная установка регистров

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

InitRegInd: .MACRO MOV SP,#AddrSP DEC SP MOV IndPSW,#Bank1 RestoreIndPSW SaveIndPSW .ENDM

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

; Чтение символа для i-того разряда индикатора из буфера клавиатуры

; в A

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

ReadSym: .MACRO MOV A,BufKey .ENDM

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

; Преобразование цифры в 7-сегментный код

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

Coder7Seg: .MACRO MOV DPTR,#Tabl7Seg MOVC A,@A+DPTR .ENDM

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

; Вывод 7-сегментного кода

; с сохранением неиспользуемого разряда 7 порта Р2

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

OutputDat: .MACRO MOV C, Bit7P2 MOV Bit7ACC, C MOV P2,A .ENDM

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


************************ПРОГРАММА ************************

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

VectIntSeg: .SECTION .ORG 0000H JMP Init .ORG 000BH JMP IntHandle .CODE

Init: InitTimerT0 TimeDatH,TimeDatL InitIntT0 InitRegInd

U_LOOP: SJMPU_LOOP; бесконечный цикл - имитация ; основной программы

IntHandle: RestoreIndPSW ReadSym Coder7Seg OutputDat SaveIndPSW RETI .END


Заключение

В настоящей курсовой работе была разработана программная и аппаратная часть устройства индикации блока управления 4-х канальным ТВ передатчиком МВ. Быстродействие программы индикации не требовательно к времени выполнения, однако при разработке были учтён тот факт, что целесообразней оставить больше процессорного времени на выполнение других программ (обработки клавиатуры, синтезатора, звуковой индикации), которые более требовательны к времени. При написании программы индикации была предпринята попытка максимально оптимизировать выполняемый код, уменьшая его размер. Дальнейшая оптимизация вряд ли возможна и необходима, поскольку логика работы достаточна проста.


Список использованных источников

1. Сальников Н.И. Микроконтроллеры 8051 в устройствах управления радиоэлектронных приборов. :Учебное пособие, :РГРТА – Рязань 1999.

2. Бородин В.Б., Шагруин М.И. Микроконтроллеры. Архитектура, программирование, интерфейс. :Справочник – М., :ЭКОМ, 1999.

3. Гребнев В.В. Однокристальные микроЭВМ семейства MCS-51 фирмы Intel. -С-Пб., :ЭФО, 1997.

4. Аванесян Г.Р., Лёвшин В.П. Интегральные микросхемы ТТЛ, ТТЛШ. :Справочник, - М., :Машиностроение, 1993.

5. Лисицын Б.Л. Отечественные приборы индикации и их зарубежные аналоги. :Справочник – М., :Радио и связь, 1993. (МРБ вып. 1165)

6. Романычева Э.Т., Иванова А.К., Куликов А.С. и др. Разработка и оформление конструкторской документации радиоэлектронной аппаратуры: Справочник. :Под редакцией Э.Т. Романычевой. 2-е издание переработанное и дополненное. – М. :Радио и связь, 1989.