
- •6.050901 «Радіотехніка»
- •6.170102 «Системи технічного захисту інформації»
- •Изучение основных характеристик логических элементов основных типов
- •1. Методические указания к лабораторной работе
- •1.1. Исследование статических характеристик логических элементов
- •1.2. Исследование динамических характеристик логических элементов
- •2. Содержание отчета
- •3. Приложение
- •3.1. Описание учебно-лабораторного стенда “logic”
- •3.2. Описание микросхем, входящих в состав стенда и используемых для снятия переходной характеристики
- •3.3. Описание микросхем, используемых для снятия динамических характеристик
- •Двухвходового элемента и-не
- •Исследование базовых логических элементов и их комбинаций
- •1. Методические указания к лабораторной работе
- •1.1. Исследование базовых логических элементов
- •2. Содержание отчета
- •Синтез комбинационных схем с одним выходом
- •1. Методические указания к лабораторной работе
- •1.1. Исследование базовых логических элементов
- •2. Содержание отчета
- •3. Приложение.
- •3.1. Варианты заданий для выполнения лабораторной работы
- •Исследование триггеров
- •1. Методические указания к лабораторной работе
- •1.1. Исследование r-s триггеров
- •1.1.1. Исследование асинхронного r-s триггера
- •1.1.2. Исследование синхронного r-s триггера
- •1.1.3. Исследование r-s триггеров r, s и e типов
- •1.2. Исследование d-триггеров
- •1.2.1. Исследование d – триггера со статическим управлением
- •1.2.2. Исследование d – триггера с динамическим управлением
- •1.3. Исследование т-триггера
- •1.4. Исследование универсального j-k триггера
- •2. Содержание отчета
- •3. Приложение
- •Исследование двоичных счетчиков
- •1. Методические указания к лабораторной работе
- •1.1. Счетчики
- •1.2. Синтез синхронных счетчиков
- •1.2.1. Синтез цепей возбуждения
- •Матрица переходов j-k триггера
- •1.2.2. Синтез цепи переноса в следующие разряды
- •1.3. Динамические параметры счетчиков
- •2.Порядок выполнения работы
- •3. Отчет по работе.
- •Исследование регистров
- •1. Методические указания к лабораторной работе
- •1.1. Регистры
- •1.1.1. Регистры сдвига
- •1.1.2. Регистр сдвига на один разряд
- •1.1.3. Регистр сдвига на k разрядов
- •1.1.4. Реверсивные регистры сдвига
- •1.1.5. Параллельный ввод информации в регистрах сдвига
- •1.1.6. Регистры с обратными связями
- •1. 2. Проектирование многофункциональных регистров
- •1.3. Проектирование комбинационной схемы
- •1.4. Динамические параметры регистров
- •2. Порядок выполнения работы
- •3. Отчет по работе.
- •Состязания сигналов в цифровых схемах
- •1. Краткие теоретические сведения
- •2. Состязания в комбинационных схемах
- •2.1. Статические и динамические состязания сигналов
- •2.2. Синтез схем, свободных от статических состязаний
- •Статического состязания сигналов
- •2.3. Функциональные и логические состязания сигналов
- •На выходе схемы может появиться ложный импульс.
- •2.4. Синтез схем, свободных от логических состязании
- •2.5. Анализ комбинационных схем с целью выявления состязаний
- •3. Состязания сигналов в последовательностных схемах
- •4. Условия надежного функционирования асинхронной схемы
- •4.1. Критические состязания
- •4.2. Существенные состязания
- •5. Порядок выполнения работы
- •6. Отчет по работе должен содержать:
- •Изучение стенда, команд микроконтроллеров семейства mcs-51
- •1. Цель работы
- •2. Приборы и оборудование
- •3. Краткие теоретические сведения
- •3.1.Организация памяти и функционирование микроконтроллера
- •3.2. Запись исходного текста программы на языке программирования asm-51
- •3.3. Встроенные имена
- •3.4. Определяемые имена
- •3.5 Числа
- •3.6. Группа команд пересылки данных
- •3.7. Группа логических команд
- •3.8. Группа арифметических команд
- •3.9. Группа команд управления
- •3.10. Директивы ассемблера asm-51
- •4. Пример выполнения работы
- •5. Задание на выполнение работы.
- •6. Отчет по работе.
- •Изучение программирования встроенных таймеров микроконтроллера mcs-51
- •1. Краткие теоретические сведения
- •1.1. Режим 0
- •1.2. Режим 1
- •1.3. Режим 2
- •1.4. Режим 3
- •1.5. Управление таймерами-счётчиками.
- •1.7. Использование таймера в качестве частотомера.
- •2. Пример выполнения работы
- •1. Краткие теоретические сведения
- •1.1. Регистр приоритетов прерываний
- •1.2. Регистр разрешения прерываний
- •1.3. Начальные адреса прерываний
- •2. Задание на выполнение работы.
- •3. Отчет по работе.
- •Изучение способов программирования преобразования в двоично-десяичный код и программирования прерываний таймеров микроконтроллера mcs-51
- •1. Краткие теоретические сведения
- •Структура регистра ie
- •Адреса векторов прерывания
- •Регистр приоритетов прерываний
- •2. Пример выполнения работы
- •3. Задание на выполнение работы.
- •4. Отчет по работе.
- •Изучение способов построения аналого-цифровых преобразователей с использованием микроконтроллера mcs-51
- •1. Краткие теоретические сведения
- •2. Пример выполнения работы
- •3. Задание на выполнение работы.
- •4. Отчет по работе.
2. Пример выполнения работы
В качестве примера ниже приведена программа, реализующая секундомер на таймере TC1, с использованием преобразования данных в BCD формат с помощью команды деления div AB и динамической индикацией полученного результата.
;*******ЛАБОРАТОРНАЯ РАБОТА 11*************
;*****Программа изучения преобразования BCD*********
; Производится динамическая индикация числа
; хранящегося в регистре R1(секунды)
; с предварительным преобразованием
; в двоично-десятичный формат в двух правых разрядах
; индикатора стенда HL2
; циклически с интервалом 1 сек значение регистра R1 увеличивается на 1
; по достижении числа 3Ch(60) регистр сбрасывается и счет начинается заново
; интервал 1 сек реализован с использованием прерывания от таймера Т1
; вектор переполнения 001Bh
; составил А. Н. Алаев
; ********************************************************
.ORG 0 ; установка указателя сч команд для ассемблера на 0
clr IE.7 ;глобальный запрет прерываний
mov TMOD,#00010001b ;запретить упр. Т0,T1 от вн. вывода, уст. Т0,T1
; в 16-ти разр режим с синхр. от внутр. генератора
mov TL1,#175 ;запись в мл. регистр Т1 начального условия
;мл. байт дополняющего кода числа 50000
mov TH1,#60 ;запись в ст. регистр Т1 начального условия
;ст. байт дополняющего кода числа 50000
setb tcon.6 ;запуск таймера Т1
ljmp ind ;безусловный переход на ПП индикации ind
;**********************************************************
.ORG 001Bh ; установка указателя сч. для ассемблера на вектор прерывания
; от переполнения таймера T1
ljmp schet ; безусловный перход на ПП обработки прерывания
;***************************************************************
ind: ; основная подпрограмма счета и динамической индикации
setb IE.3 ; разрешение прерываний по переполнению таймера Т1
ind1:
;**********************************************************
call preobr ; вызов подпрограммы преобразования в BCD формат
;************************************************************
clr IE.7 ; глобальный запрет прерываний
mov A,R3 ; пересылка в акк. индицируемого числа
anl A,#00001111b ;обнуление старшей тетрады (поготовка инд. младшей)
call decod ; вызов подпрограммы преобразования в семисегм. код
; мл тетрады
mov R2,A ; запоминание преобразованного результата в R2
mov DPTR,#8001h ; устанавливаем в DPTR адрес регистра сегм дин. индикатора
mov A,#00h ; обнуление акк.
movx @DPTR,A ; гашение всех сегментов
mov DPTR,#8002h ; устанавливаем в DPTR адреса регистра анодов дин. индикатора
mov A,#00000011b ; запись кода дешифр. включения крайнего правого разр. инд.
movx @DPTR,A ; включение крайнего правого разряда инд.
mov A,R2 ; пересылка семисегм. кода правой цифры
mov DPTR,#8001h ; устанавливаем в DPTR адрес регистра сегм дин. индикатора
movx @DPTR,A ; высвечивание крайней правой цифры
;****************************************************
call delay ; вызов подпрограммы задержки на 10 мс
;**********************************************************
mov A,R3 ; пересылка в акк. индицируемого числа
anl A,#11110000b ;обнуление младшей тетрады (поготовка инд. старшей)
swap A ;обмен тетрад аккумулятора
call decod ; вызов подпрограммы преобразования в семисегм код
; ст тетрады
mov R2,A ; запоминание преобразованного результата в R2
mov DPTR,#8001h ; устанавливаем в DPTR адрес регистра сегм дин. индикатора
mov A,#00h ; обнуление акк.
movx @DPTR,A ; гашение всех сегментов
mov DPTR,#8002h ; устанавливаем в DPTR адреса регистра анодов дин. индикатора
mov A,#00000010b ; запись кода дешифр. включения второго справа разр. инд.
movx @DPTR,A ; включение второго справа разряда инд.
mov A,R2 ; пересылка семисегм. кода левой цифры
mov DPTR,#8001h ; устанавливаем в DPTR адрес регистра сегм дин. индикатора
movx @DPTR,A ; высвечивание второго справа разр.
setb IE.7 ; разрешили прерывания от таймера после вывода на инд.
;************************************************************************
call delay ; вызов ПП задержки на 10 мс
;*************************************************************************
sjmp ind1 ; абсолютный переход на начало программы
;*************************************************************************
;ПОДПРОГРАММА ПРЕОБРАЗОВАНИЯ ЧИСЛА В СЕМИСЕГМЕНТНЫЙ КОД
;*************************************************************************
decod:
mov DPTR,#tablecod ; занесение в DPTR начального адреса массива таблицы ниже
movc A,@A+DPTR ; пересылка в акк. преобр. в семисегм. код числа
; ранее хранившегося в акк.
ret
;-------------------------------------------------------------------------
tablecod: ; формирование массива для преобразования двоичного кода
; в семисегментный
; PGFEDCBA -сегм.
db 00111111b ; 0h числа
db 00000110b ; 1h
db 01011011b ; 2h
db 01001111b ; 3h
db 01100110b ; 4h
db 01101101b ; 5h
db 01111101b ; 6h
db 00000111b ; 7h
db 01111111b ; 8h
db 01101111b ; 9h
db 01110111b ; Ah
db 01111100b ; Bh
db 00111001b ; Ch
db 01011110b ; Dh
db 01111001b ; Eh
db 01110001b ; Fh
;----------------------------------------------------------------
;****************************************************************
;**************************************************************
;ПОДПРОГРАММА ЗАДЕРЖКИ НА 10 мс
;****************************************************************
delay:
clr tcon.4 ; остановка таймера Т0
mov TL0,#239 ;запись в мл. регистр Т0 начального условия
;мл. байт дополняющего кода числа 10000
mov TH0,#216 ;запись в ст. регистр Т0 начального условия
;ст. байт дополняющего кода числа 10000
setb tcon.4 ; запуск счета таймера Т0
jnb TF0,$ ; ожидание переполнения счетчиков таймера Т0
; через 10 мс по флагу
clr TF0 ; сброс флага переполнения
clr tcon.4 ; останов таймера
ret
;********************************************************************
;****************************************************************
ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ
;******************************************************************
schet:
push DPH ; сохранение в стеке DPTR
push DPL
push PSW ; сохранение в стеке PSW
push ACC ; сохранение в стеке аккумулятора
clr tcon.6 ; остановка таймера Т1
clr IE.7 ; глобальный запрет прерываний
mov TL1,#175 ;запись в мл. регистр Т1 начального условия
;мл. байт дополняющего кода числа 50000
mov TH1,#60 ;запись в ст. регистр Т1 начального условия
;ст. байт дополняющего кода числа 50000
djnz R5,d1 ; анализ прохождения интервала 1 сек
; и переход если прошло 20 х50 мс циклов
mov R5,#20 ; запись множителя 20 для формирования интервала
; 20х50 мс после окончания очередного интервала
inc R1 ; увеличение на '1' содержимого рабочего регистра
cjne R1,#3Ch,d1 ; сравнение содержимого рабочего регистра с 60
; и переход на метку d1 если не равно
mov R1,#00h ; сброс рабочего регистра
d1: pop ACC ; пересылка из стека в аккумулятор
pop PSW ; пересылка из стека PSW
pop DPL ; DPTR
pop DPH
clr TF1 ; сброс флага прерываний от таймера Т1
setb tcon.6 ; запуск таймера Т1
setb IE.7 ;глобальное разрешение прерываний
reti
;*********************************************************************
;*********************************************************************
;Подпрограмма преобразования 8-ми разрядного двоичного кода в двоич-
;но десятичный (BCD) упакованный, в R3 записываются младшие разряды числа
; в R4 (младшую тетраду) - старший
preobr:
mov B,#100 ; заносим во вспомогательный регистр делитель
mov A,R1 ; заносим в акк. преобразуемое число
div AB ;делим преобр. число на 100
mov R4,A ;переписываем частное от деления (старший двоично десятин.
;разряд) в регистр R4 (код сотен)
mov A,B ;переписываем в акк. остаток от деления
mov B,#10 ;заносим во вспомогательный регистр делитель
div AB ;делим на 10, в результате в акк. в мл. тетраде хранится код десятков
;в ст. тетраде нули
; а в рег. В в мл. тетраде -код единиц
mov R0,B ; переписываем код единиц в регистр R0
swap A ; меняем местами ст. и мл. тетраду акк.
; в результате в ст. тетраде хранится код десятков
; в мл. записаны нули
xrl A,R0 ; логическое суммирование регистров
; в результате получили упакованный BCD в акк.
; - в ст. тетраде находится код десятков, а в мл.
; - код единиц
mov R3,A ; переписываем результат в регистр для индикации десятков и единиц
ret
end