рефераты рефераты
Главная страница > Курсовая работа: Программирование микроконтроллеров  
Курсовая работа: Программирование микроконтроллеров
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

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

Оператор условного перехода 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-Assembler 8051, Version 1.2h).

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

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

Рассмотрим принцип работы построенной схемы.

Рис.4.5 Схема светодиодной индикации с переключателями

В исходном состоянии на выводы Р3.0…Р3.5 подается сигнал логической единицы. На все выводы порта Р1 (Р1.0…Р1.3) также поданы единицы. Но во втором случае единицы поданы для того, чтобы обеспечить возможность работы линий в режиме ввода. Контроллер периодически опрашивает состояние клавиш путем изменения сигнала на выходах Р3.0…Р3.5 и считывания сигнала из порта Р1. В случае обнаружения замыкания контакта одной из клавиш, программа выполняет закрепленные за этой клавишей действия.

Каким же образом осуществляется опрос клавиш? Процедура опроса клавиш поочередно переводит одну из линий Р3.0…Р3.5 в нулевое состояние. Сначала в нулевое состояние переводится линия Р3.5 Сразу после этого контроллер производит чтение числа из порта Р1. Если ни одна из клавиш не нажата, то все разряды считанного числа будут равны единице (считанное число будет равно 0FFH). Если хотя бы одна из клавиш К1…К4 окажется нажатой, то число, прочитанное из порта Р1, будет отличаться от значения 0FFH. Предположим, что нажали клавишу К1. Тогда сигнал логического нуля с выхода Р3.0 поступит на вход Р1.0 и младший разряд считанного числа окажется равным нулю. В этом случае процессор из порта прочитает 0FЕH. Нажатие любых других клавиш К2. К4 приведет к обнулению других разрядов считываемого числа. В результате для разных комбинаций получим разные коды.

   4 выключателя                                    6 светодиодов

K1 K2 K3 K4                             HL1 HL2 HL3 HL4 HL5 HL6

 0    0    0   0                     0       0      0      0      0      0

 1    0    0   0                                 1       0      0      0      0      0

 0    1    0   0                                 0       1      0      0      0      0

 0    0    1   0                                 0       0      1      0      0      0

 0    0    0   1                                 0       0      0      1      0      0

 1    1    1   1                                 1       1      1      1     1      1

 1     0   0   1                                 1       0      0      0      1      1

 1     0   1   0                                 1       0      1      0      1      1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

$mod 2051

;----------------------Определение  констант

bank0       EQU      000000000B      ; Коды банков памяти

bank1        EQU     00001000B

bank2        EQU      00010000B

bank3   EQU        00011000B

;-----------------Резервирование ячеек памяти

                DSEG

                ORG      20H        ;Начинаем резервирование с адреса 20Н

p3buf:       DS         1            ;Буфер порта  р3

;-----------Начало программного кода

                 CSEG

                ORG     00H         ;Начинаем программный код с адреса 00Н

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

;    В этом месте вы должны поместить основной текст вашей программы

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

;###########################################

;## Подпрограмма опроса клавиш

;###########################################

klav:   push     psw              ;Сохранение регистра флагов в стеке

mov      psw,#bank3  ;Переключение на Банк 3 регистров Р0Н

          mov      p1,#0FFH       ;Перевод Р1.0-Р1.3 в единичное состояние

           call      clrU                ;Перевод Р3.0-Р3.5 в единичное состояние

kl1:    call      setU              ;Вывод кода в порт Р3

          mov   a,p1                 ;Считывание состояния клавиш

         cjne     a,#0FFH,kl3    ;Если клавиша нажата, переходим к kl3

;----------------------Окончание процедуры опроса клавиатуры

klfin     call      clrU            ;Переход в исходное состояние порта

             mov      a,r0           ;Запись в аккумулятор кода клавиши

            pop        psw           ;Восстановление регистра флагов

             ret                          ;Выход из подпрограммы

;--------------------Вывод столбцов

setU    mov     a,p3buf        ;Считывание содержимого буфера порта Р3

           orl         a,#0FH      ;Перевод разрядов Р3.0-Р3.5 в единицу

           anl           a,r2         ;Вывод  Р3.0-Р3.5 кода сканирования

            mov     p3buf,a      ;Запись результата назад в буфер

            mov      p3,p3buf   ;Вывод содержимого буфера в порт Р3

              ret 

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

;Сюда вы можете поместить другие подпрограммы

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

end

   


Вывод

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

В процессе выполнения курсовой работы были рассмотрены практические примеры подключения микроконтроллеров и их программирование.

Применение микроконтроллеров в технике очень актуально. Так как они существенно ускоряют работу поставленной им задачи. Отсюда и важность их изучения и применения в устройствах.


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

1.  Белов А.Б. Конструирование устройств на микроконтроллерах / Наука и Техника, 2005. - 255 с.

2.  Предко М. Руководство по микроконтроллерам. Том 1. / Пер. с англ. под ред.И. И. Шагурина и С.Б. Лужанского - М.: Постмаркет, 2001. - 416 с.

3.  Предко М. Руководство по микроконтроллерам. Том 2. / Пер. с англ. под ред.И. И. Шагурина и С.Б. Лужанского - М.: Постмаркет, 2001. - 488 с.

4.  Вуд А. Микропроцессоры в вопросах и ответах. / Пер. с англ. под ред. Д.А. Поспелова. - М.: Энергоатомиздат. 1985. - 184 с.

5.  Уильямс Г.Б. Отладка микропроцессорных систем: / Пер. с. англ. - М.: Энергоатомиздат, 1988. - 253с.

6.  Угрюмов Е.П. Цифровая схемотехника. - Спб.: БВХ - Санкт-Петербург, 2000. - 528 с.

7.  Алексенко А.Г., Шагурин И.И. Микросхемотехника. - М.: Радио и связь, 1990. - 496 с.

8.  Бродин Б.В., Шагурин И.И. Микроконтроллеры: Справочник. - М.: ЭКОМ, 1999. - 395 с.

9.  Программируемые логические ИМС на КМОП-структурах и их применение. / П.П. Мальцев, Н.И. Гарбузов, А.П. Шарапов, А.А. Кнышев. - М.: Энергоатомиздат, 1998. - 158 с.

10.  Соловьев В.В., Васильев А.Г. Программируемые логические интегральные схемы и их применение. - Мн.: Беларуская наука, 1998. - 270 с.

11.  Лаптев В. Цифровой измеритель температуры на базе AVR микроконтроллера и RC-цепочки. - Электронные компоненты, 2001. №2, с.46 - 49.

Страницы: 1, 2, 3, 4, 5

рефераты
Новости