Elektrod-serv.ru

Передача данных по радиоканалу

Программа для работы с АЦП 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/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 2

Советуем почитать:

Разработка микропроцессорной системы Автомобильные часы-термометр-вольтметр на базе микроконтроллера Современную микроэлектронику трудно представить без такой важной составляющей, как микроконтроллеры. Микроконтроллеры незаметно завоевали весь мир. Микроконтроллерные технологии очень эф ...

Разработка мероприятий по повышению эффективности деятельности ОАО Московская Городская Телефонная Сеть Актуальность темы. В настоящее время активно развивается коммерческий сектор телекоммуникационного рынка России, представленный на региональных рынках как мультисервисными, так и с ...

Расчёт частотозадающих элементов принципиальной схемы передатчика радиолюбительского маячка В настоящей курсовой работе были приобретены умения и навыки расчёты частотозадающих элементов принципиальной схемы автогенератора, транзисторного усилителя мощности, схемы сложного вых ...