Курсовая работа: Программирование микроконтроллеров

Рис.2.2 Простая схема подключения датчика на основе геркона

На вход микроконтроллера через резистор R1 подается напряжение от источника питания +5 В. Микросхема воспринимает это напряжение как сигнал логической единицы. При срабатывании датчика контакты замыкаются и соединяют вывод микроконтроллера с общим проводом. В результате напряжение на входе Р1.0 падает до нуля. В следствии микросхема воспринимает входной уровень сигнала как логический ноль. Резистор R1 при этом служит токоограничивающим элементом, предотвращая короткое замыкание между шиной питания и общим проводом.

Рассмотрим программу для обслуживания вышеупомянутого датчика (Листинг 2.3.), которая, постоянно опрашивает датчик и в зависимости от состояния запускает одну из двух специальных процедур.

1

2

3

4

5

6

7

; Программа обработки сигнала с датчика

m1: movp1.0,#1 ; Записываем 1 в соответствующий разряд порта

movc,p1.0 ; Читаем состояние датчика в битовый аккумулятор

jcm2 ; Если контакты датчика разомкнуты, перейти к m2

callproc1 ;Вызов процедуры обработки нажатия контакта

jmpm1 ; Возврат к началу (следующий цикл считывания)

m2: callproc1; Вызов процедуры обработки размыкания контакта

jmpm1 ; Возврат к началу (следующий цикл считывания)

Листинг 2.3.

Здесь явно видно, что программа записывает в линию Р1.0 сигнал логической единицы (строка 1). Это необходимо для того, чтобы данная линия могла работать на ввод информации.

Следующая команда считывает бит информации, поступающей от датчика, и помещает ее в регистр признака переноса (строка 2). В микропроцессорной технике принято ячейку признака переноса обозначать как CY . Ячейка CY используется как аккумулятор для битовых операций. Если в момент считывания сигнала контакты датчика были разомкнуты, то в ячейке CY окажется логическая единица. Если контакты замкнуты, то там будет логический ноль.

Оператор условного переходаjc осуществляет оценку содержимого CY (строка 3). Если в CY логический ноль, то управление передается на меткуm2, и выполняется команда callргос2 (строка 6). В противном случае передача управления не происходит и выполняется командаcall proc1 (строка 4). Оператор call - это вызов подпрограммы. Поэтому, в зависимости от состояния датчика вызывается одна из двух подпрограмм: proc1 или ргос2.

Раздел 3. Практическая реализация программы на микроконтроллере

Задача. Построить схему на микроконтроллере, в моем случае это микроконтроллер АТ89С2051 фирмы Atmel,который в зависимости от положения 4 переключателей зажигал бы 6 светодиодов (лампочек).

Решение: для реализации построил простейшую схему светодиодного индикатора (Рис.3.1.), которое используется не только в моем примере, а и в любом устройстве в качестве светового индикатора.

Рис.3.1 Простейшая схема светодиодного индикатора

Использовав схемы вышеупомянутых схем (Рис.2.1.,2.2.,3.1.), построил схему согласно поставленной задачи. Код программы написан на языке ассемблера для микроконтроллера АТ89С2051 (Cross-Assembler8051, Version1.2h).

Как видно из схемы порт Р1 работает как порт ввода. Шесть младших P3 работают на вывод. Возможен и обратный вариант (Р1 на вывод, Р3 на ввод).

К-во Просмотров: 1974
Бесплатно скачать Курсовая работа: Программирование микроконтроллеров