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

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





я регістра r18 в комірці пам'яті

; з адресою 0x0162 старшій0x0163, r17; збереження регістра r17 в комірці пам'яті з адресою 0x01630x0164, r16; збереження регістра r16 в комірці пам'яті з адресою

; 0x0164 младшійPORTB, r19; завантажуємо константу з r19 в PORTBoprosDDN; виклик підпрограми опитування нелінійного

; датчика давленія0x0165, r19; записуємо старший байт в комірці пам'яті

; з адресою 0x01650x0166, r18; збереження регістра r18 в комірці пам'яті

; з адресою 0x01660x0167, r17; збереження регістра r17 в комірці пам'яті

; з адресою 0x01670x0168, r16; записуємо молодший байт в комірці пам'яті

; з адресою 0x0168oprosDKD; виклик п/п опитування ДКД0x0169, r4; записуємо дані з ДКД1 в комірці пам'яті

; з адресою 0x01690x016A, r5; записуємо дані з ДКД2 в комірці пам'яті

; з адресою 0x016A

sbic UCSRA, 7; пропуск команди, якщо 7 біт=0peredacha; виклик п/п передачі даних в ПКmain; перехід на мітку main

; ***************** П/П для обчислення тиску поданого на вхід лінійного датчика тиску ******* x1: r25, 0x00 ; записуємо в регістр r25 нуліr26, 0x0A; записуємо число 10 в 26 регістрr3; очищаємо 4 регістра під відповідь

clr r4r5r6

ldi r16, 0x10; записуємо 16 в лічильник, так як 4 байта і в кожному по 8 біт: r2; рухаємо все множиться число вправоr1; починаючи зі старшого байтаsdvig; якщо число у прапорі с=0, то переходимо на мітку sdvigr5, r19; складовими результат з константою без переносаr6, r25; враховуємо перенесення: r6; рухаємо весь результат вправо 1 раз

ror r5r4r3

dec r16; зменшуємо счетчікmainMul; якщо лічильник не дорівнює 0, то перейти на мітку mainMulr3, r26; складовими результат множення з іншого константою,

; без урахування переносаr4, r25; складаємо з урахуванням переносаr5, r25r16, r3; копіюємо регістр r3, в регістр r16r17, r4; копіюємо регістр r4, в регістр r17r18, r5; копіюємо регістр r5, в регістр r18: ret; виходимо з підпрограми множення

; *************** П/п опитування датчиків контролю тиску ******************* ***: r4; обнуляем r4 під результатPINC, 0; пропускаємо строчку якщо в бите 0 PINC записаний 0DKD2; перехід на мітку DKD2r4; записуємо одиницю в r4: r5; обнуляем r5 під результатPINC, 1; пропускаємо строчку якщо в бите 1 PINC записаний 0vixod; перехід на мітку vixodr5; записуємо одиницю в r4: ret; вихід з підпрограми

; ******************* П/П для передачі даних в ПК ************** *********

peredacha:

ldi r25, 0x0B; лічильник

ldi r31, 0x01; поміщаємо в РП Z адресу комірки ОЗУ

ldi r30, 0x60

cikl :: sbis UCSRA, 5; пропуск команди якщо біт5=1m2; перехід на мітку m2r4, Z +; відправляємо 1 байт даних з лінійного датчікаUDR, r4; завантажуємо в UDR передавача вміст r4

dec r25; зменшуємо лічильник

brne cikl; якщо лічильник не дорівнює 0, то перейти на мітку cikl; вихід з підпрограми:

rcall initADC2; перемикаємо лінію АЦП для прийому даних

rcall oprosADC2; отримуємо код з АЦПr16; логічний зрушення вмісту регістра 16 влевоr16; три рази, щоб потім дізнатися адресу, r16; з якого почнемо діставати коеффіціентиr31, high (tabKuB * 2); завантажуємо з таблиці старший байт коеффіціентаr30, low (tabKuB * 2); завантажуємо з таблиці молодший байт коеффіціентаr15r30, r16; складаємо числа, щоб отримати адресу

; з якого почнемо діставати коеффіціентиr31, r15r18, 0x08; створюємо лічильник рівний 8r27, 0x01; Cоздан реєстрову пару х для того, r28, 0x70; щоб вказати там осередок пам'яті в озу:; береться байт з таблиці і поміщається в регістр r0X +, r0; взяти з r0 і покласти в комірку пам'яті озу,

; яка вказана в реєстрової парі Х,

; після чого збільшити значення РП Х на 1.r30, 0x01; додати 1 до реєстрової парі z, щоб дістати

; наступний байт з табліциr18; зменшити счетчікlpmCheck; якщо лічильник не дорівнює 0 - перейти на мітку lpmCheckr7, 0x0172; завантажуємо з ОЗУ старший байт коефіцієнта k

; в регістр 5r8, 0x0173; завантажуємо з ОЗУ молодший байт коефіцієнта k

; в регістр 6r25, 0x00; обнуляем регістр 25r3; очищаємо 4 регістра під відповідь

clr r4r5r6

ldi r16, 0x10; лічильник, рівний 16

mov r21, r2; завантажуємо в r2 код з АЦП (старший байт)

mov r21, r1; молодший байт: r2; рухаємо все...


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





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

  • Реферат на тему: Організаційно-економічна характеристика ТОВ &Байт-сервіс&
  • Реферат на тему: Регістр арифметичного пристрою ЕОМ
  • Реферат на тему: Кредитний регістр Національного банку Республіки Білорусь, його діяльність ...
  • Реферат на тему: Технологія складання і зварювання регістра опалення
  • Реферат на тему: Розрахунок і конструювання схеми паралельного регістра на тригері CLD - тип ...