Задание Проектирование вычислительного модуля, состоящего из 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-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 ? "Нет подкюченных датчиков"
Программа для работы с АЦП DS2450new ; Демонстрационная программа для работы с АЦП 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/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
Программа для работы с 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/2006_7_102.php
Похожие работы
... лекций. Основное внимание при выполнении курсового проекта обращается на умение принимать технические решения и обосновывать их. Объектом курсового проектирования является специализированное вычислительное устройство, включающее процессор и запоминающее устройство. Процессор проектируется для заданного списка команд и должен удовлетворять заданным требованиям технического задания. 2.Задание ...
... при отсутствии внешнего питания Не менее 10 лет Информация по технологиям построения сети Мы должны спроектировать локальную вычислительную сеть (ЛВС) для сбора информации о потребляемой энергии с предприятий. ЛВС – это комплекс оборудования и программного обеспечения, обеспечивающий передачу, хранение и обработку информации. Топология - схема сети. Наиболее распространены топологии: "шина ...
... дискретного программирование для решения задач проектирование систем обработки данных. - Сформулированы задачи диссертационного исследования. 2. БЛОЧНО-СИММЕТРИЧНЫЕ МОДЕЛИ И МЕТОДЫ ПРОЕКТИРОВАНИЯ СИСТЕМ ОБРАБОТКИ ДАННЫХ В данном разделе рассматриваются общая постановка блочно-симметричной задачи дискретного программирования, её особенности и свойства. Разработан общий подход решения задач ...
... элементов, глобальное пространство имен, а также лавинообразную первоначальную загрузку сети. Таким образом ОСРВ SPOX имеет необходимые механизмы для создания отказоустойчивой распределенной операционной системы реального времени, концепция построения которой описана в главе 2. 4.3 Аппаратно-зависимые компоненты ОСРВ Модули маршрутизации, реконфигурации, голосования реализованы как аппаратно- ...
0 комментариев