Помощь в написании студенческих работ
Антистрессовый сервис

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

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

New; Демонстрационная программа для работы с АЦП DS2450; (только для версий Fractal-BASIC не младше 1.8); Аппаратура:; -модуль вычислителя MCU42−3; ;=======================================================; Линия данных АЦП подключена к входу/выходу P3.2 (0B2h) ;=======================================================;; Вид со стороны вилки:;; D B +5v +5v; — | — |; 19 17 15 13 11 09 07 05 03 01; 20… Читать ещё >

Проектирование вычислительных модулей (реферат, курсовая, диплом, контрольная)

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

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

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

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

Сдала:.

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

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

Проверил:.

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

Сухарев Д.А..

2010 год.

Задание.

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

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

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

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

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

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

К линии P1.0(90h) контроллера MCU4-X подключены два термодатчика new 0 dim $(5), 7: SA=0AE06h ;ЖКИ подключен к MCU4-X 1 ADDR=90h :AT0=loc ($(0)):AT1=loc ($(1)) :AT2=loc ($(2)) 2 xreg (36h)=81h ;конфигурация PIC-контроллера ;Используем операцию поиска для определения идентификационных кодов ;1-й датчик 20 lan Z (90h, 120), T#0F0h, S (AT0,22) ;2-й датчик 21 lan Z, T#0F0h, S 22 clear S ;обнулить стек; запуск обоих датчиков на преобразование 50 lan Z (ADDR, 120), T#0CCh, T#44h; задержка 1 сек 51 time=0 :do :while time<1; запрос 1, чтение блокнота, проверка CRC8 52 lan Z, 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:if SN=0 then goto 56 ;значение измеренной температуры представлено в дополнительном коде ;т.е. знак температуры — минус ;преобразуем в прямой код со знаком 55 T1=T1.and.0FFFEh :T1=T1−65 536 ;расчет значения температуры по установленному по умолчанию ;разрешению в 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−65 536 ;расчет значения температуры по установленному по умолчанию ;разрешению в 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) ;=======================================================;; Вид со стороны вилки:;; D B +5v +5v; | | | |; 19 17 15 13 11 09 07 05 03 01; 20 18 16 14 12 10 08 06 04 02; | | | | |; | | C A |; | Data Общий; Общий; ;;; на управление выходами ;0 goto 100; ;———————————————————————————-; определение номера ROM; Номер будет занесен в $(0) и выведен на терминал;; адрес входа, адрес размещения 10 AD=0B2h :ADR=loc ($(0)); команда «Read ROM», 7 байт помещаются в $(0);; |команда" чтение ROM"; | |CRC8:=0; |сброс | | |чтение 7 байтов; | | | | 11 lan Z (AD, 18), T#33h, C#0,R (ADR, 7); печать 7 байтов 12 print «ROM= „, :for I=0 to 6: phb mem (ADR+I),“ „, :next I; печать байта CRC (вычисленное значение) 13 phb „CRC8=“, mem (213h) :print; проверка CRC 14 lan C (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 lan Z (AD, 69), T#0CCh, X#0,T#55h, T##8; ;;; |мл. байт режима; | |проверка CRC16; | | |контр. чтение; | | | |нач.знач.CRC16:=<�текущий адрес>; | | | | |ст. байт режима; | | | | | |проверка CRC16; | | | | | | |контр. чтение; | | | | | | | |нач.знач.CRC16 23 lan T#00h, X (70), R (CB, 1), X#09h, T#0,X (70), R (CB, 1), X#0Ah ;канал A 24 lan T#00h, X (70), R (CB, 1), X#0Bh, T#0,X (70), R (CB, 1), X#0Ch ;канал B 25 lan T#00h, X (70), R (CB, 1), X#0Dh, T#0,X (70), R (CB, 1), X#0Eh ;канал C 26 lan T#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 lan Z (AD, 69), T#0CCh, X#0,T#3Ch, T#0Fh, T#55h, X (70);; нужно ждать не менее 80*16*4=5120 мкС 33 time=0 :do :while time<0.01;; ;команда „чтение RAM“ |Адрес=0000h; CRC16:=0| | | |чтение в память ;пропуск ROM | | | |данных с АЦП (8 байт); сброс| | | | | |; | | | | | | |проверка CRC16 35 lan Z, 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 phw A,“ „, B,“ „, C,“ „, D,“ „,;; Пересчитаем в вольты (Uоп=2.55В) 50 A=2.55*A/65 536 51 B=2.55*B/65 536 52 C=2.55*C/65 536 53 D=2.55*D/65 536;; Сгладим апериодически значение (канал А) 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.

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

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

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

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

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

4. http://www.kit-e.ru/articles/sensor/20067_102.php.

Показать весь текст
Заполнить форму текущей работой