
- •Лабораторный практикум «проектирование микропроцессорных систем»
- •Оглавление
- •Введение
- •Лабораторная работа 1 принципы работы битового процессора
- •Введение
- •1.1. Постановка задачи и варианты ее решения
- •1.2. Пример подготовки к выполнению лабораторной работы
- •Программа
- •1.3. Рекомендации по разработке и отладке программы на программно-логической модели
- •Назначение разрядов порта р1
- •1.4. Порядок отладки микропроцессорной системы на стенде
- •Соотношение контактов порта р4 и контактов плис
- •Варианты заданий
- •Варианты заданий
- •Лабораторная работа 2 микропроцессорная система для тестирования алу
- •Введение
- •2.1. Пример подготовки к выполнению лабораторной работы
- •2.2. Рекомендации по подключению внешних устройств к системной шине и порту р4 микроконтроллера Варианты подключения внешних устройств через системную шину
- •Варианты решения для двух источников данных
- •Варианты решения для четырёх источников данных
- •Варианты решения для четырёх приёмников данных
- •Подключение внешних устройств к порту р4
- •2.3. Последовательность и способы отладки микропроцессорной системы для тестирования алу
- •Текст программы обработки прерывания от клавиатуры
- •Оформление отчета о проделанной работе
- •Список литературы
- •115409, Москва, Каширское ш., 31
Текст программы обработки прерывания от клавиатуры
ORG 8013h ;обработчик прерывания INT1
MOV DPTR,#7FFFh
MOV A,#40h
MOVX @DPTR,A ;разрешение чтения FIFO клавиатуры
JB F0, LAB1 ;проверка режима работы клавиатуры
MOV DPTR, #7FFEh ;клавиатура - для ввода Т
MOVX A,@DPTR ;чтение скан-кода
CJNE A, #00h, KK1 ;проверка на «0»
LJMP EXIT
KK1: CJNE A, #01h, KK2 ;проверка на «1»
MOV R7,#01h ;вывод в R7 кода «1»
LJMP EXIT
KK2: CJNE A, #02h, KK3 ;проверка на «2»
MOV R7,#02h ;вывод в R7 кода «2»
LJMP EXIT
KK3: CJNE A, #03h, KK4 ;проверка на «3»
MOV R7,#03h ;вывод в R7 кода «3»
LJMP EXIT
KK4: CJNE A, #04h, KK5 ;проверка на «4»
MOV R7,#04h ;вывод в R7 кода «4»
LJMP EXIT
KK5: CJNE A, #05h, KK6 ;проверка на «5»
MOV R7,#05h ;вывод в R7 кода «5»
LJMP EXIT
KK6: CJNE A, #06h, KK7 ;проверка на «6»
MOV R7,#06h ;вывод в R7 кода «6»
LJMP EXIT
KK7: CJNE A, #07h, KK8 ;проверка на «7»
MOV R7,#07h ;вывод в R7 кода «7»
LJMP EXIT
KK8: CJNE A, #08h, KK9 ;проверка на «8»
MOV R7,#08h ;вывод в R7 кода «8»
LJMP EXIT
KK9: CJNE A, #09h, KKA ;проверка на «9»
MOV R7,#09h ;вывод в R7 кода «9»
LJMP EXIT
KKA: CJNE A, #0Ah, KKB ;проверка на «A»
MOV R7,#0Ah ;вывод в R7 кода «A»
LJMP EXIT
KKB: CJNE A, #0Bh, KKC ;проверка на «B»
MOV R7,#0Dh ;вывод в R7 кода «B»
KKC: CJNE A, #0Ch, KKD ;проверка на «C»
MOV R7,#0Ch ;вывод в R7 кода «C»
LJMP EXIT
KKD: CJNE A, #0Dh, KKE ;проверка на «D»
MOV R7,#0Dh ;вывод в R7 кода «D»
LJMP EXIT
KKE: CJNE A, #0Eh, KKF ;проверка на «E»
MOV R7,#0Eh ;вывод в R7 кода «E»
LJMP EXIT
KKF: CJNE A, #0Fh, EXIT ;проверка на «F»
SETB F0 ;установка признака задания теста F0=1
LJMP EXIT
; Установлен режим задания теста
LAB1: CJNE A, #00h, KKK1 ;проверка на «0»
CLR F0 ;установка режима ввода теста
LJMP EXIT
KKK1: CJNE A, #01h, KKK2 ;проверка на «1»
LJMP PART1
KKK2: CJNE A, #02h, KKK3 ;проверка на «2»
LJMP PART2
KKK3: CJNE A, #03h, KKK4 ;проверка на «3»
LJMP PART3
KKK4: CJNE A, #04, EXIT ;проверка на «4»
;Реализация программы 4
MOV A, R3
SWAP A
ORL A, R4 ; АСС = А В
MOV DPTR, #7FFAh ; адрес записи в Р1 и Р2
MOVX @DPTR, A ; выдача операндов
SETB 0c0h.7 ; выдача SNOIN
CLR 0c0h.7
NOP ; задержка
NOP
SETB 0c0h.4 ; сброс схемы SNO
CLR 0c0h.4
LJMP EXIT
; Реализация программы 1
PART1: MOV DPTR, #7FFBh ; адрес записи в регистр адреса
MOV A, #03h ; адрес регистра УЛС
MOVX @DPTR, A ; запись адреса в регистр адреса
MOVX А, @DPTR ; чтение операнда А
MOV R3, A
LJMP EXIT
; Реализация программы 2
PART2: MOV DPTR, #7FFBh ; адрес записи в регистр адреса
MOV A, #03h ; адрес регистра УЛС
MOVX @DPTR, A ; запись адреса в регистр адреса
MOVX А, @DPTR ; чтение операнда B
MOV R4, A
LJMP EXIT
; Реализация программы 3
PART3:MOV R7, A ;сохранение значения А
MOV DPTR,#7FFFh
MOV A,#01h
MOVX @DPTR,A ; ввод символов слева
MOV DPTR,#7FFFh
MOV A,#90h ; автоинкрементирование адреса
MOVX @DPTR,A
MOV 70h, #0F3h
MOV 71h, #60h
MOV 72h, #0B5h
MOV 73h, #0F4h
MOV 74h, #66h
MOV 75h, #0D6h
MOV 76h, #0D7h
MOV 77h, #70h
MOV 78h, #0F7h ; запись в память кодов символов
MOV 79h, #0F6h
MOV 7Ah, #77h
MOV 7Bh, #0C7h
MOV 7Ch, #93h
MOV 7Dh, #0E5h
MOV 7Eh, #097h
MOV 7Fh, #17h
MOV DPTR,#7FFEh
MOV A,#00h
MOVX @DPTR,A
MOVX @DPTR,A ; гашение индикаторов
MOVX @DPTR,A
MOVX @DPTR,A
MOV A, R7 ; возврат А
; Вывод А в крайнюю левую ячейку дисплея
Call Vivod
; Вывод А во вторую слева ячейку
Call Vivod
Call Vivod
; Вывод А в две правые ячейки
Call Vivod
Vivod:
MOV DPTR,#7FFEh
ADD A, #70h
MOV R0, A
MOV A, @R0
MOVX @DPTR, A ; вывод цифры на индикацию
RET
EXIT: RETI
END