Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / Lab_moto / 4.doc
Скачиваний:
15
Добавлен:
16.04.2013
Размер:
191.49 Кб
Скачать

Контрольные вопросы.

1. Какие источники прерываний имеются в HC705C8?

2. Какие действия выполняет процессор при возникновении прерывания?

3. Опишите порядок загрузки регистров в стек при обслуживании прерывания.

4. Каковы условия возникновения программного прерывания?

5. Каковы условия возникновения внешнего аппаратного прерывания?

6. Каковы условия возникновения прерываний от внутренних устройств ОЭВМ?

7. Чем определяется реакция HC705C8 на входной сигнал по линии IRQ?

8. В каких случаях происходит начальная установка микроконтроллера?

9. Кратко опишите процесс начальной установки микроконтроллера.

10. Опишите режим пониженного энергопотребления STOP.

11. Опишите режим пониженного энергопотребления WAIT.

12. Опишите режим сохранения данных.

13. По каким адресам расположена таблица векторов прерываний и каково ее назначение?

14. Перечислите адреса векторов прерываний SWI, IRQ, RESET.

15. Объясните механизм вызова подпрограммы обработки прерывания.

16. Каким образом после возврата из подпрограммы обработки прерывания управление передается на точку, в которой возникло прерывание?

17. Какие подготовительные действия необходимо произвести, чтобы программа, использующая прерывание IRQ, работала правильно?

18. В чем отличие между командами SWI и JSR, и что между ними общего?

19. Для чего предназначен стек и как он организован?

20. В какой области памяти расположен стек, какова его максимальная длина?

21. Какие различия существуют в реакции ОЭВМ на прерывание RESET и на остальные прерывания?

Задания.

1. Написать программу, которая при первом нажатии на кнопку IRQ увеличивает содержимое порта B на единицу, при втором - на двойку и так далее.

2. Написать программу, которая по каждому второму нажатию кнопки IRQ сдвигает содержимое порта B на один разряд вправо.

3. Написать программу, которая по нажатию кнопки IRQ циклически сдвигает содержимое порта B на один разряд влево.

4. Написать программу, которая по трехкратному нажатию на кнопку IRQ инвертирует состояние светодиодов.

5. Написать программу, которая подсчитывает число нажатий (от 0 до 65535) на кнопку IRQ в двух ячейках памяти.

6. Переделать программу вычисления факториала так, чтобы результат вычислений был двухбайтным.

7. Вместо подпрограммы умножения чисел в программе вычисления факториала (см. пример к команде SWI) написать подпрограмму задержки. Причем время задержки должно изменяться пропорционально величине аргумента примерно от 0,25 до 2,50 сек.

8. Пользуясь командой SWI, написать программу, которая записывает в регистры A и X начальный адрес своего местоположения в памяти.

9. Написать программу, которая по первому нажатию на кнопку IRQ считывает первое значение с переключателей, по второму - второе, и затем выводит сумму на светодиоды.

10. Используя механизм подмены векторов прерываний, написать программу, которая при нажатии на кнопку IRQ первый раз сдвигает информацию на светодиодах на один бит влево, второй раз - вправо, а при нажатии на IRQ в третий раз инкрементирует порт B.

11. Напишите программу, которая мигает левым светодиодом порта B с частотой 1-2 Гц, а по нажатию кнопки IRQ считывает с переключателей адрес и заполняет 10 ячеек ОЗУ, начиная с этого адреса, последовательно числами от 0 до 9. Предусмотрите проверку вводимого адреса на то, что он лежит в пределах $50..$B0, в противном случае запись не производите.

12. Написать программу, которая при включении левого переключателя порта A начинает подсчет количества нажатий на кнопку IRQ, а при выключении-выводит количество нажатий на светодиоды.

13. Написать программу для кодового замка, где шифр (произвольное число от 0 до 255), набирается на переключателях порта A, а для ввода шифра используется кнопка IRQ. Сначала программа должна погасить светодиоды порта B, после чего, в случае правильного набора, должны зажечься все светодиоды, в противном случае светодиоды должны мигать с частотой 1-2 Гц.

14. Написать программу, которая по первому нажатию на кнопку IRQ считывает первое значение с переключателей, по второму - второе, а по третьему нажатию выводит разность на светодиоды.

15. Написать программу, которая в цикле вызывает программное прерывание SWI и инкрементирует счетчик после каждого вызова. Запустив эту программу на 10 сек., оценить время выполнения команд SWI, RTI.

ОЭВМ МС68НС705С8. Лабораторный практикум

Соседние файлы в папке Lab_moto