Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Проектування мікропроцесорної системи збору даних на базі мікроконтролера Atmega8515

Реферат Проектування мікропроцесорної системи збору даних на базі мікроконтролера Atmega8515





множиться число вправоr1; починаючи зі старшого байтаsdvig; якщо число у прапорі с=0, то переходимо на мітку sdvigr4, r8; складовими коефіцієнт К з регістрами під ответr5, r7; з урахуванням перенесення: r5; зрушуємо відповідь вправо, починаючи зі старшого байтаr4r3r16; зменшуємо счетчікmainMul; якщо лічильник став рівний 0 то переходимо на мітку mainMulr7,0x0174; завантажуємо з r7 по r10 коефіцієнт В (старший байт)

lds r8,0x0175r9,0x0176

lds r10,0x0177; молодший байтr3, r10; складовими результат умноженіяr4, r9; коду АЦП на коефіцієнт К з коефіцієнтом Вr5, r8; з урахуванням переносаr6, r7r16, r3; копіюємо відповідь в інші регістри, r17 , r4; для роботи з ними

mov r18, r5r19, r6

ret; виходимо з підпрограми опитування нелінійного датчика

; ************** підпрограма ініціалізації АЦП *********: r17, 0x08; створюємо лічильник, рівний 8: rol r16; рухаємо настроювальний байт вліво,

; що б 1 або 0 виявилися у прапорі Сone; якщо прапор С=0, то перейти на мітку onePORTC, 1; виставляємо на першу лінію порту С 1, для ініціалізацііtwo; перейти на мітку two: cbi PORTC, 1; виставляємо на 1 лінію порту С 0, для ініціалізації: cbi PORTC, 0; перша лінія порту С, яка відповідає за тактовий імпульсPORTC, 0; виставляємо на 0 лінію порту С 1 (тактовий імпульс) PORTC, 0; ставимо 0 , для того, щоб показати, що пройшов 1 імпульсr17; зменшуємо счетчікinit2; якщо r17 НЕ дорівнює 0, то перейти на мітку init2; вихід з підпрограми ініціалізації АЦП

; ********* закінчилася підпрограма ініціалізації АЦП ***********

; ************* подрограмма опитування АЦП ******************: PORTC, 0; встановлюємо лінію , відповідальну за тактові

; імпульси рівний 1 (9 імпульсний такт) PORTC, 0; встановлюємо лінію, що відповідає за тактові

; імпульси рівний 0PORTC, 0; 10 тактовий імпульсPORTC, 0: PINC, 3; перевіряємо третій біт з порту С, якщо він дорівнює 1,

; то наступну команду не виполнятьcheckThreeBit; перейти на мітку checkThreeBitPORTC, 0; 11 тактовий імпульсPORTC, 0: PINC, 3; перевіряємо третього біт з порту С, якщо він дорівнює 1,

; то наступну команду не виполнятьcheckThreeBit2; перейти на мітку checkThreeBit: r22, 0x0C; створюємо лічильник циклу для тактових імпульсів - це для

; 12 разрядногоr20; очищаємо регістри під код ацпr21: PORTC, 0; такт ГТІr16, PINC; копіюємо дані в r16 з порту C МК.

; Але нам потрібен тільки третій біт (PC3),

; так як інші дані є керуючими

; від мк до ацпr16; витягаємо останній біт, що надійшов з порту С (sData) r16; витягаємо 1 бітr16; витягаємо 2 бітr16; отримуємо 3 біт даннихr20; записуємо в регістри r20 і r21 дані, r21; ; які приходять з 3 біта в порте СPORTC, 0; тактовий імпульс робимо рівним 0r22; зменшуємо лічильник на 1mADC2; якщо лічильник не дорівнює 0, то перейти на мітку mADC2PORTC, 0; 24 тактовий імпульсPORTC, 0PORTC, 4; встановлюємо лінію cs в 1 , щоб вимкнути АЦП; вихід з підпрограми опитування АЦП

; ********* закінчилася підпрограма опитування АЦП ***********

; ************** підпрограма ініціалізації АЦП *********: r16, 0b01010001; це налаштовуємо ніжки на вхід і

; вихід (PC3 (SData) -вхід, PC2 (BUSY - EOC) - вхід,

; PC0 (SCLK) - вихід, PC4 (CS) - вихід РС1 (DIN) - вихід)

; ДДР потрібен для того, щоб налаштувати висновки МК.

; 7,6,5 біт - це налаштування по документації

; (там 3 поля, щоб працював вхід СН1=101,

; щоб СН2=010) DDRC, r16; в регістрі знаходяться 8 бітів, кожен визначає як

; працюватиме лінія (вхід, вихід). Лінії які не

; використовуються - на вхід робимо (0), на вихід - 1r17, 0x08; створюємо лічильник, рівний 8Two: r16; рухаємо настроювальний байт вліво,

; що б 1 або 0 виявилися у прапорі Сone2; якщо прапор С=0, то перейти на мітку onePORTC, 1; виставляємо на першу лінію порту С 1, для ініціалізацііtwo2; перейти на мітку two: sbi PORTC, 1; виставляємо на 1 лінію порту С 1, для ініціалізації: cbi PORTC, 0; перша лінія порту С, яка відповідає за тактовий імпульсPORTC, 0; виставляємо на 0 лінію порту С 1 (тактовий імпульс) PORTC, 0; ставимо 0 , для того, щоб показати, що пройшов 1 імпульсr17; зменшуємо счетчікinitTwo; якщо r17 НЕ дорівнює 0, то перейти на мітку initTwo; вихід з підпрограми ініціалізації АЦП

; ********* закінчилася підпрограма ініціалізації АЦП ***********

; ************* підпрограма опитування АЦП ******************: PORTC, 0; встановлюємо л...


Назад | сторінка 10 з 11 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Основні показники роботи порту та виробничого перевантажувального комплексу ...
  • Реферат на тему: Планування роботи порту
  • Реферат на тему: Регулювання роботи порту
  • Реферат на тему: Моделювання роботи порту
  • Реферат на тему: Проектування морського порту