МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Разработка медицинского цифрового термометра

    которая после окончания своей работы возвращается в то место, откуда была

    вызвана и сбрасывает соответствующий флаг.

    Программа опроса клавиатуры: постоянно опрашивает клавиатуру, и

    записывает ее состояние в заданный регистр1, как только в этом регистре1

    появляется указанное число, она устанавливает Flagklav=1.

    Подпрограмма обработки сканкода активизируется, когда Flagklav=1. Сначала

    проверяем, если действительно в регистре1 число (т.е. устраняем дребезг

    контактов), анализируем содержание регистра1 и в зависимости от того какое

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

    подпрограммы сбрасываем Flagklav.

    Подпрограмма выдачи на дисплей результата измерения активизируется когда

    установлен флаг Flagvyvod=1. В зависимости от содержания регистра1, выводим

    данные из той или иной ячейки памяти.

    Подпрограмма записи данных активизируется когда установлен флаг

    Flagszap=1, и в зависимости от содержания регистра1, записываем данные в

    ту или иную ячейку памяти.

    Подпрограмма приема данных активизируется когда установлен флаг USR,RxC,

    его устанавливает компьютор приславший данные, выполняем прием даных и

    конце подпрограммы сбрасываем флаг USR,RxC.

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

    Flagdan=1 и flagpr=1, далее выполняется выдача данных на компьютер и сброс

    флагов происходит в том случае, если буфер с данными пуст.

    2.2 РАЗРАБОТКА АЛГОРИТМА ОДНОГО ИЗ СОСТАВНЫХ ЧАСТЕЙ ПРОГРАММНОГО

    ОБЕСПЕЧЕНИЯ

    Алгоритм инициализации ЖКИ представлен на рис.7.

    Рис.7.

    Программа инициализации ЖКИ составленная по данному алгоритму и написанная

    на языке Ассемблер будет выглядеть так:

    initlcd:

    rcall del

    ldi r25,30h

    rcall icom

    rcall del

    ldi r25,30h

    rcall icom

    rcall del

    ldi r25,30h

    rcall icom

    ldi r25,38h ; устанавливаем разрядность шины данных=8,

    количество строк =2, шрифт 5х7 точек

    rcall icom

    ldi r25,08h ; включить дисплей, зажечь курсор

    rcall icom

    ldi r25,01h ; очистить дисплей и установить курсор в нулевую позицию

    rcall icom

    ldi r25,06h; устанавливаем направление сдвига курсор в право, запретить

    сдвиг дисплея вместе со сдвигом курсора

    rcall icom

    ret

    del:

    ldi r17,150 ;задержка ~15 ms при кварце 4 МГц

    l: ldi r18,200 ;

    l1: dec r18 ;

    brne l1 ;

    dec r17 ;

    brne l ;

    ret

    icom:

    in r0,portA

    sbi r0,2 ; установит RS в 1

    out portA,r0

    in r0,portA

    сbi r0,1 ; установит W/R в 0

    out portA,r0

    in r0,portA

    sbi r0,0 ; установит Е в 1

    out portC,r0

    out portB,r25 ;записать в ЖКИ команду из регистра r25

    in r0,portA

    cbi r0,0 ;сбросить Е в 0

    out portA,r0

    in r0,portA

    sbi r0,1 ; установит W/R в 1

    out portA,r0

    ret

    2.3 НАПИСАНИЕ ПРОГРАММЫ

    Текст программы составленный по структурной схеме на рис.6 приведен ниже

    .include "Atmega103.inc"

    .def flag=r1

    .def flagszap =0

    .def flagklav =1

    .def flagsbr =2

    .def flagvyvod =3

    .def flagdan =4

    .def flagpr =5

    .def tmp=r20

    .cseg

    .org 0H

    rjmp main

    main:

    rcall init ; инициализация контроллера

    rcall initlcd ; инициализация ЖКИ

    rcall priglashenie ;программа выдачи начального приглашения

    m1:

    in r30,PinC ; программа опроса клавиатуры и флагов

    ldi r31,FEh

    cp r30,r31 ;если равно, то переходим на подпрограмму ввода

    rcall vvod

    ldi r31,FDh

    cp r30,r31 ;если равно, то переходим на подпрограмму вывода

    rcall vyvod

    ldi r31,7Fh

    cp r30,r31 ;если равно, то переходим на подпрограмму сброса

    rcall sbros

    sbrc USR,RxC ; проверяем если бит USR,RxC=1, то переходим на

    подпрограмму приема данных от компьютера, если не

    равен то пропускаем следующую команду

    rcall priem ; подпрограмма приема данных, после своего окончания

    работы она скидывает флаг USR,RxC

    sbrs flagdan ; проверяем если 0, то переход на m2, если нет, то

    пропускаем следующую команду

    rjmp m2

    sbrs flagpr

    rjmp m2

    rcall outdan ; подпрограмма выдачи данных на компьютер, после

    выполнения выдачи данных сбрасывает флаг данных и

    приемника

    m2:

    rjmp m1

    init:

    ldi r31,ramend ; указываем стек

    out SPL,r31

    ldi r31,ffh ; порт B настроить на вывод

    out ddrb,r31

    ldi r31, 00h ; Port С to ввод

    out DDRС, r31

    ldi r31,FFh ; подключаем резисторы

    out PortС, r31

    ldi tmp,00011101 ; инициализация UART

    out UCR,tmp ;

    ldi tmp,25 ;9600 бит/сек при fclk=4МГц

    out UBBR,tmp ;

    ;инициализация встроенного АЦП

    set ADCSR.ADEN ;разрешаем работу АЦП

    set ADCSR.ADFR ;устанавливаем режим циклического преобразования

    ldi ADPS,05H ;устанавливаем тактовую частоту 125 KHz при

    ;внешнем кварце 4MHz

    ret

    icom:

    in r0,portA

    sbi r0,2 ; установит RS в 1

    out portA,r0

    in r0,portA

    сbi r0,1 ; установит W/R в 0

    out portA,r0

    in r0,portA

    sbi r0,0 ; установит Е в 1

    out portC,r0

    out portB,r25 ;записать в ЖКИ команду из регистра r25

    in r0,portA

    cbi r0,0 ;сбросить Е в 0

    out portA,r0

    in r0,portA

    sbi r0,1 ; установит W/R в 1

    out portA,r0

    ret

    initlcd:

    rcall del

    ldi r25,30h

    rcall icom ; осуществляем запись команды в регистр ЖКИ

    rcall del

    ldi r25,30h

    rcall icom ; осуществляем запись команды в регистр ЖКИ

    rcall del

    ldi r25,30h

    rcall icom

    ldi r25,38h ; устанавливаем разрядность шины данных=8,

    количество строк =2, шрифт 5х7 точек

    rcall icom ; осуществляем запись команды в регистр ЖКИ

    ldi r25,08h ; включить дисплей, зажечь курсор

    rcall icom

    ldi r25,01h ; очистить дисплей и установить курсор в нулевую

    позицию

    rcall icom

    ldi r25,06h ;устанавливаем направление сдвига курсор в право,

    запретить сдвиг дисплея вместе со сдвигом курсора

    rcall icom

    ret

    del:

    ldi r17,150 ;задержка ~15 ms при кварце 4 МГц

    l: ldi r18,200 ;

    l1: dec r18 ;

    brne l1 ;

    dec r17 ;

    brne l ;

    ret

    vvod:

    rcall del ;делаем задержку

    ldi r31,FEh ;проверяем есть ли действительно в регистре r30

    указанные числа(таким образом устраняем дребезг

    контактов)

    cp r30,r31 ;если равно, то выполняем следующую программу

    in r29,PinC ; программа опроса клавиатуры и флагов

    ldi r31,FBh

    cp r29,r31 ;если равно, то в r28 записываем адрес ячейки памяти

    ldi r28,0060h

    ldi r31,F7h

    cp r29,r31

    ldi r28,0070h

    ldi r31,EFh

    cp r29,r31

    ldi r28,0080h

    ldi r31,DFh

    cp r29,r31

    ldi r28,0090h

    ldi r31,BFh

    cp r29,r31

    ldi r28,00A0h

    rcall zapis

    ret

    vyvod:

    rcall del ;делаем задержку

    ldi r31,FDh ;проверяем есть ли действительно в регистре r30

    указанные числа(таким образом устраняем дребезг

    контактов)

    cp r30,r31 ;если равно, то выполняем следующую программу

    in r29,PinC ;программа опроса клавиатуры и флагов

    ldi r31,FBh

    cp r29,r31 ; если равно, то в r28 записываем адрес ячейки

    ldi r28,0060h

    ldi r31,F7h

    cp r29,r31

    ldi r28,0060h

    ldi r31,ЕFh

    cp r29,r31

    ldi r28,0060h

    ldi r31,DFh

    cp r29,r31

    ldi r28,0060h

    ldi r31,BFh

    cp r29,r31

    ldi r28,0060h

    RCALL VYVOD1

    ret

    zapis:

    nop ;задержка

    nop

    nop

    nop

    MOV EEARH,00H ;старший байт адреса ячейки

    MOV EEARL,R28 ;младший байт адреса ячейки

    nop ;задержка

    nop

    nop

    nop

    MOV EEDR, ADCL ;ввод данных с регистра данных АЦП

    SET EERC,2 ;разрешение записи

    SET EERC,1 ;запись

    RET

    VYVOD1:

    MOV R27,#00H

    MOV EEARH,00H

    MOV EEARL,R28

    SET EERC,0 ;разрешение чтения

    MOV R27,EEDR

    Rcall VYVODZKI ;переход к процедуре вывода данных на ЖКИ

    RET

    ЗАКЛЮЧЕНИЕ

    В данной курсовой работе был разработан цифровой медицинский

    термометр с памятью на 5 измерений. Здесь использовался датчик температуры

    10П. Данная схема имеет возможность подключения и других датчиков

    температуры. Устройство построено на контроллере AVR (Atmega103).

    В работе были учтены все требования. В частности нам нужно было измерять

    температуру с точностью 0,1, в связи с этим использовался внутренний

    аналого-цифровой преобразователь (10-ти разрядный).

    СПИСОК ЛИТЕРАТУРЫ

    1. Геращенко О.А., Гордов А.Н., Лах В.И. и др. Температурные измерения:

    Справочник. Киев: Изд. "Наукова думка", 1984. 496 С.

    2. Бокуняев А.А., Борисов Н.М., Варламов Р.Г. и др. Справочная книга

    радиолюбителя-конструктора. Под ред. Чистякова Н.И. М.: Радио и связь,

    1990. 624 С: ил.

    3. Современные микроконтроллеры: Архитектура, средства проектирования,

    примеры применения, ресурсы сети Интернет. "Телесистемы". Под. ред.

    Коршуна И.В.; Составление пер. с англ. и литературная обработка

    Горбунова Б.Б. М: Изд. "Аким", 1998. 272 С: ил.

    4. Лаптев В.В. Цифровой измеритель. Свидетельство на полезную модель

    №13698 от 09.11.1999 г.

    5. I-7013, I-7033. User manual. Copyright 1999. ICP DAS.

    6. ADAM-4013. User manual. Copyright 1994. Advantech.

    7. Все необходимое для автоматизации на базе PC: Каталог. Прософт. 1998

    г.

    ПРИЛОЖЕНИЕ 1

    В данном приложении приведено описание микроконтроллера ATmega103

    8-ми разрядный КМОП микроконтроллер с загружаемой Flash ПЗУ

    . AVR RISC архитектура – архитектура высокой производительности и

    малого потребления

    . 120 команд, большинство которых выполняются за один машинный цикл

    . 4 Кбайта Flash ПЗУ программ, с возможностью внутрисистемного

    программирования и загрузки через SPI последовательный канал, 1000

    циклов стирания/запись

    . 256 байт ЭСППЗУ данных, с возможностью внутри системной загрузки

    через SPI последовательный канал, 100000 циклов стирания/запись

    . 4 Кбайта встроенного RAM

    . 32*8 регистра общего назначения

    . 32 программируемых линий ввода/вывода

    . 16 – разрядный и 32 – разрядный формат команд

    . Диапазон напряжений питания от 4 до 6 В

    . Полностью статический прибор работает при тактовой частоте от 0 до 6

    МГц

    . Производительность до 6 MIPS при частоте 8МГц

    . 8 – разрядный и 16 – разрядный таймеры/счетчики с общим прескалером

    . Сдвоенный ШИМ с 8,9 или 10 разрядным разрешением

    . Программируцемые последовательные UART и SPI интерфейсы

    . Два внешних и десять внутренних источников сигнала прерывания

    . Программируемый сторожевой таймер с собственным встроенным генератором

    . Встроенный аналоговый компаратор

    . Режимы энергоснабжения: Idle, Power Save и Power Down

    . Блокировка режима программирования

    . Программная установка тактовой частоты

    . Встроенная система реального времени с отдельным генератором

    КМОП микроконтроллер ATmega103 реализован по AVR RISC архитектуре

    (Гарвардская архитектура с разделенной памятью и разделенными шинами для

    памяти программ и данных) и совместим по исходным кодам и тактированию с 8-

    разрядными микроконтроллерами семейства AVR (AT90SXXX). Выполняя команды за

    один тактовый цикл, прибор обеспечивает производительность, приближающуюся

    к 1 МГц. AVR ядро объединяет мощную систему команд с 32 8 разрядными

    регистрами общего назначения и конвейерного обращения к памяти программ.

    Шесть из 32 регистров могут использоваться как три 16 – разрядных регистра

    указателя при косвенной адресации пространства памяти. Выполнение

    относительных переходов и команд вызова реализуются с прямой адресацией

    всех 2К адресного пространства. Адреса периферийных функций содержатся в

    пространстве памяти ввода/вывода. Архитектура эффективно поддерживает как

    языки высокого уровня, так и программы на языках ассемблера.

    Микроконтроллер ATmega103 содержит: 4Кбайта загружаемого ПЗУ(2К*16),

    256 байтов СОЗУ и 256 байтов ЭСППЗУ, с возможностью наращивания памяти

    данных до 64К за счет внешних ИС СОЗУ, 32 линии ввода/вывода общего

    назначения, 8-ми разрядный таймер/счетчик и 16 разрядный таймер/счетчик с

    режимом захвата и сравнения, систему внутренних и внешних прерываний,

    программируемый последовательный UART, программируемый сторожевой таймер с

    внутренним генератором, последовательный порт с интерфейсом SPI для внутри

    системной загрузки и для связи с внешними устройствами. Программно

    управляются два режима энергоснабжения. В пассивном режиме ЦПУ

    останавливается, но СОЗУ, таймеры/счетчики, порт SPI, сторожевой таймер и

    система прерываний остаются активными. В стоповом режиме останавливается

    тактовый генератор и, следовательно останавливаются все функции, пока не

    поступит сигнал внешнего прерывания или аппаратного сброса, но сохраняется

    содержимое регистров.

    Встроенная загружаемая Flash память обеспечивает внутрисистемное

    программирование с использование интерфейса SPI или с использование

    стандартных программаторов энергонезависимой памяти.

    Потребление прибора в активном режиме составляет 3,5 мА и в пассивном

    режиме 1мА. В стоповом режиме, при работающем сторожевом таймере,

    микроконтроллер потребляет 50 мкА.

    Объединение на одном кристалле усовершенствованного 8-ми разрядного

    RISC ЦПУ с загружаемой Flash ПЗУ позволило фирме создать мощный

    микроконтроллер, обеспечивающий высокую гибкость и экономичность в

    использовании прибора в качестве встраиваемого контроллера.

    -----------------------

    Блок

    питания

    Супервизор

    напряжения

    МК

    Датчик

    температуры

    Последовательный интерфейс для связи с ПК

    Дисплей

    Клавиатура

    Ист. опор. напряжения

    Источник

    тока

    10–30В

    10–30В

    Источник

    тока

    Ист. опор. напряжения

    Клавиатура

    Дисплей

    Последовательный интерфейс для связи с ПК

    Датчик

    температуры

    МК

    Супервизор

    напряжения

    Блок

    питания

    GND

    GND

    Flagszap=1

    GND

    GND

    GND

    GND

    R2

    GND

    GND

    RESET

    B

    A

    Сброс флага

    AIN1

    AIN1

    C2

    AVCC

    AGND

    АREF

    Vcc

    RS

    Сброс флага

    Vcc

    Vcc

    Vcc

    D0-D7

    E

    R/W

    8

    RS

    7

    R0

    RE

    DE

    Инициализация

    (Контроллера, АЦП, ЖКИ)

    Выдача на дисплей начального приглашения

    Просмотр флагов

    Подпрограмма выдачи на дисплей результата измерения

    Подпрограмма

    обработки сканкода

    Программа

    опроса клавиатуры

    Устанавливаем

    Flagklav=1

    Подпрограмма стирания данных

    Включить питание

    Сделать задержку 15 мСек

    Сделать задержку 4мСек и более

    Сделать задержку 100 мкСек

    Записать в регистр ЖКИ команду 0000110000

    Записать в регистр ЖКИ команду 0000110000

    Записать в регистр ЖКИ команду 0000110000

    Записать в регистр ЖКИ последовательно следующие команды

    0000111000 ;устанавливаем разрядность шины данных=8,

    количество строк =2, шрифт 5х7 точек

    0000001000 ; включить дисплей, зажечь курсор

    0000000001 ; очистить дисплей и установить курсор в

    нулевую позицию

    0000000110 ; устанавливаем направление сдвига курсора

    в право, запретить сдвиг дисплея вместе со

    сдвигом курсора

    Подпрограмма

    записи данных

    Подпрограмма приема данных с комп.

    Подпрограмма

    выдачи данных на комп.

    Flagklav=1

    Сброс флага

    Flagvyvod=1

    Flagsbr=1

    Сброс флага

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


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.