Реферат: Проектирование вычислительных модулей

Московский Авиационный Институт

(Государственный Технический Университет)

Курсовая работа

тема: Проектирование вычислительных модулей

Сдала:

студентка группы 04-425

Кудрявцева О.И.

Проверил:

преподаватель 402 каф.

Сухарев Д.А.

2010 год

Задание

Проектирование вычислительного модуля, состоящего из 2 датчиков давления,4 датчиков температуры: 2 датчика до +125°, 2 датчика до +400°.

1. Схема подключения датчиков;

2. Программы для работы с датчиками.

Схема подключения датчиков

Программы для работы с датчиками

Программа для работы с DS18B20

К линии P1.0(90h) контроллера MCU4-Xподключены два термодатчика new0 dim $(5),7 :SA=0AE06h; ЖКИ подключен к MCU4-X1 ADDR=90h :AT0=loc($(0)):AT1=loc($(1)) :AT2=loc($(2)) 2 xreg(36h)=81h; конфигурация PIC-контроллера; Используем операцию поиска для определения идентификационных кодов ;1-й датчик 20 lanZ(90h,120),T#0F0h,S(AT0,22) ;2-й датчик 21 lanZ,T#0F0h,S22 clearS; обнулить стек; запуск обоих датчиков на преобразование 50 lanZ(ADDR,120),T#0CCh,T#44h; задержка 1 сек 51 time=0 :do :whiletime<1; запрос 1, чтение блокнота, проверка CRC8 52 lanZ,C#0,T#55h,T(AT1,7),C,C#0,T#0BEh,R(AT0,8),C(100) 53 T1=rot8(memw(AT0)); меняем расположение байт 54 SN=T1.and.8000h:ifSN=0 thengoto 56; значение измеренной температуры представлено в дополнительном коде; т.е. знак температуры — минус; преобразуем в прямой код со знаком 55 T1=T1.and.0FFFEh :T1=T1-65536; расчет значения температуры по установленному по умолчанию; разрешению в 0.0625 градуса Цельсия 56 T1=T1*0.0625:? «T1= »,using(###.##),T1; запрос 2, чтение блокнота, проверка CRC8 60 lan Z,T#55h,T(AT2,7),C,C#0,T#0BEh,R(AT0,8),C(110) 61 T2=rot8(memw(AT0)); меняем расположение байт 62 SN=T2.and.8000h:if SN=0 then goto 64; значение измеренной температуры представлено в дополнительном коде; т.е. знак температуры — минус; преобразуем в прямой код со знаком 63 T2=T2.and.0FFFEh :T2=T2-65536; расчет значения температуры по установленному по умолчанию; разрешению в 0.0625 градуса Цельсия 64 T2=T2*0.0625 :? «T2= »,using(###.##),T2; вывод значения на индикатор 65print#SA,chr(18h),using(###.##),«T1=»,T1,chr(1bh),chr(0c0h),«T2=»,T2 67 goto 50; бесконечный цикл измерения температуры 100 T1=0:SB=SB+1:goto 65; Т1-счетчик сбоев обмена 110 T2=0:SB=SB+1:goto 65; Т2-счетчик сбоев обмена; 120 clear S:print#SA,chr(18h),«Нет подключенных»,chr(1bh),chr(0c2h) 121 print#SA,chr(1bh),chr(0c2h),«датчиков» 122? «Нет подкюченных датчиков»

Программа для работы с АЦП DS2450

new; Демонстрационная программа для работы с АЦП DS2450; (только для версий Fractal-BASICне младше 1.8); Аппаратура:; -модуль вычислителя MCU42-3; ;=======================================================; Линия данных АЦП подключена к входу/выходу P3.2 (0B2h) ;=======================================================;; Вид со стороны вилки:;; DB +5v+5v; | | | |; 19 17 15 13 11 09 07 05 03 01; 20 18 16 14 12 10 08 06 04 02; | | | | |; | | CA|; | DataОбщий; Общий;;;; на управление выходами ;0 goto 100; ;-------------------------------------------------------; определение номера ROM; Номер будет занесен в $(0) и выведен на терминал;; адрес входа, адрес размещения 10 AD=0B2h :ADR=loc($(0)); команда «ReadROM», 7 байт помещаются в $(0);; |команда«чтение ROM»; | |CRC8:=0; |сброс | | |чтение 7 байтов; | | | | 11 lanZ(AD,18),T#33h,C#0,R(ADR,7); печать 7 байтов 12 print «ROM= », :forI=0 to 6 :phbmem(ADR+I)," ", :nextI; печать байта CRC (вычисленное значение) 13 phb " CRC8=",mem(213h) :print; проверка CRC14 lanC(19) :goto 20 15 stop :goto 10 18 print «Нет устройств MicroLAN» :goto 15 19 phw «Не совпал CRC8» :goto 15; ;--------------------------------------------------------;; Измерение напряжения; — ; 20 CLC=4000h :CB=CLC+2; начальное значение генератора CRC16 21 memw(23Bh)=0;;; Установка режимов работы каналов:; — все каналы включены;; — диапазон измерения =2.55В;; — 16 разрядов.;; |CRC16:=0; ропуск ROM| | |запись в RAM; сброс| | | | |адрес=0008h; | | | | | 22 lanZ(AD,69),T#0CCh,X#0,T#55h,T##8;;;; |мл. байт режима; | |проверка CRC16; | | |контр. чтение; | | | |нач.знач.CRC16:=<текущий адрес>; | | | | |ст. байт режима; | | | | | |проверка CRC16; | | | | | | |контр. чтение; | | | | | | | |нач.знач.CRC16 23 lanT#00h,X(70),R(CB,1),X#09h,T#0,X(70),R(CB,1),X#0Ah; канал A24 lanT#00h,X(70),R(CB,1),X#0Bh,T#0,X(70),R(CB,1),X#0Ch; канал B25 lanT#00h,X(70),R(CB,1),X#0Dh,T#0,X(70),R(CB,1),X#0Eh; канал C26 lanT#00h,X(70),R(CB,1),X#0Fh,T#0,X(70),R(CB,1); канал D;; Запуск преобразования:;; CRC16:=0| |команда-«пуск АЦП»; пропуск ROM| | | |включить каналы A,B,C,D; сброс| | | | | |предустановказначений в «0»; | | | | | | |проверка CRC16 (Пуск АЦП) 30 lanZ(AD,69),T#0CCh,X#0,T#3Ch,T#0Fh,T#55h,X(70);; нужно ждать не менее 80*16*4=5120 мкС 33 time=0 :do :whiletime<0.01;;; команда «чтение RAM» |Адрес=0000h; CRC16:=0| | | |чтение в память; пропуск ROM| | | |данных с АЦП (8 байт); сброс| | | | | |; | | | | | | |проверка CRC16 35 lanZ,T#0CCh,X#0,T#0AAh,T##0,R(ADR+3,8),X(70);;; разберем по каналам и переставим местами байты 40 A=rot8(memw(ADR+3)) 41 B=rot8(memw(ADR+5)) 42 C=rot8(memw(ADR+7)) 43 D=rot8(memw(ADR+9));; печатаем HEXзначения 44 phwA," ",B," ",C," ",D," ",;; Пересчитаем в вольты (Uоп=2.55В) 50 A=2.55*A/65536 51 B=2.55*B/65536 52 C=2.55*C/65536 53 D=2.55*D/65536;; Сгладим апериодически значение (канал А) 54 E=0.1*A+0.9*E; |Сглаженное; Печатаем значения в(В) |значение (канал A) 55 print using(#.#####),A,B,C,D," |",E; 59 goto 20; 69 print «Нет импульса присутствия» :stop 70 phw «CRC16=»,memw(23Dh): goto 30; ;--------------------------------------------------------;; Управление выходами; — ;;;; 100 AD=90h :CB=4000;; — все каналы выключены (разомкнуты);;; CRC16:=0|; пропуск ROM| | |запись в RAM; сброс| | | | |адрес=0008h; | | | | | 122 lan Z(AD,69),T#0CCh,X#0,T#55h,T##8;; |мл. байт режима; | |проверка CRC16; | | |контр. чтение; | | | |нач.знач.CRC16:=<текущий адрес>; | | | | |ст. байт режима; | | | | | |проверка CRC16; | | | | | | |контр. чтение; | | | | | | | |нач.знач.CRC16 123 lan T#0C0h,X(70),R(CB,1),X#09h,T#0,X(70),R(CB,1),X#0Ah; канал A 124 lan T#0C0h,X(70),R(CB,1),X#0Bh,T#0,X(70),R(CB,1),X#0Ch; канал B 125 lan T#0C0h,X(70),R(CB,1),X#0Dh,T#0,X(70),R(CB,1),X#0Eh; канал C 126 lan T#0C0h,X(70),R(CB,1),X#0Fh,T#0,X(70),R(CB,1); канал D;; — все каналы включены (замкнуты);; 132 lan Z,T#0CCh,X#0,T#55h,T##8; 133 lan T#080h,X(70),R(CB,1),X#09h,T#0,X(70),R(CB,1),X#0Ah; канал A 134 lan T#080h,X(70),R(CB,1),X#0Bh,T#0,X(70),R(CB,1),X#0Ch; канал B 135 lan T#080h,X(70),R(CB,1),X#0Dh,T#0,X(70),R(CB,1),X#0Eh; канал C 136 lan T#080h,X(70),R(CB,1),X#0Fh,T#0,X(70),R(CB,1); канал D; 140 goto 122

Программа для работы с MPX 2010


Список используемой литературы

1. www.fractal.com.ru/index.php?p=index&sp=fb&PHPSESSID=af..

2. www.fractal.com.ru/index.php?p=index&sp=p_bas&ssp=ex24&PHPSESSID=b65a10f3746ef15ebe567243b2d51473

3. www.fractal.com.ru/index.php?p=index&sp=p_bas&ssp=ex6

4. www.kit-e.ru/articles/sensor/2006_7_102.php

еще рефераты
Еще работы по коммуникациям и связям