Индикатор передач АКПП |
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Индикатор передач АКПП |
7.3.2012, 11:37
Сообщение
#1
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
В продолжении темы о переделке приборки и запоздавшая реализация того, о чем писал еще пару лет назад (IMG:style_emoticons/default/smile.gif)
Индикатор положения селектора АКПП. Как уже говорилось, приборки бывают разные, для МТ, для АТ с отдельными индикаторами и для АТ с ЖК индикатором. При замене приборки - по разным причинам - естественно надо найти точно с такой функциональностью как на старой. С подобной проблемой столкнулся и я во время замены своей приборки. В конце концов вопрос решился частично, машина дергаться перестала, но ручные режимы не индицируются. Описываемый блочок и предназначен для восстановления полной функциональности и даже больше - позволит установить МТ приборку на машину с АТ (IMG:style_emoticons/default/wink.gif) Схема девайса, естественно на МК (IMG:style_emoticons/default/tongue.gif) Режимы индицируются на 7-сегментном светодиодном индикаторе, который можно установить в любое удобное место. Я лично буду ставить на место ЖК экранчика. Входные сигналы подаются через делители-согласователи на входы порта А контроллера. На схеме показан только один делитель, конкретное число - до 8-и зависит от потребностей/желаний. Приведу пример, на моей приборке уже есть индикаторы P, D, R, N и дублировать их (кроме Р) я не хочу. Плюс надо чтобы высвечивались L, 2 и 3. Поэтому входных сигналов, и соответственно делителей, у меня будет 4. Остальная функциональность обеспечивается программой. Для моего случая исходник такой: Код '*********************** '* Name : AT.BAS * '* Author : SSh * '*********************** @ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT DEFINE OSC 4 ' Freq. 4 MHz ' ***** Variables ***** state VAR BYTE ' AT selector state TRISA = $FF TRISB = $00 VRCON = 0 CMCON = 7 ' *************************************** ' ********** Main program loop ********** ' *************************************** main: state = PORTA SELECT STATE CASE ' AT selector position CASE %00000001 ' L PORTB = $C7 CASE %00000010 ' 2 PORTB = $A4 CASE %00000100 ' 3 PORTB = $B0 CASE %00001000 ' P PORTB = $8C CASE ELSE ' All other positions PORTB = $FF ' Show none END SELECT GOTO main ' Loop END ' ***** End of Program ***** Распознавание входных сигналов производится в цикле SELECT CASE. Все очень просто. На RA0 идет сигнал с L, RА1 - 2, RA2 - 3, RA3 - P. В зависимости от входного сигнала на выходе формируется соотв. символ, напр., если входной сигнал 00000001 (L), то на выходе (PORTB) имеем С7 в шестнадцатиричном коде, т.е. 11000111 в двоичном. Т.к. мой индикатор - с общим анодом, то для "зажигания" нужных сегментов индикатора на них надо подать "0", что собственно и видно из кода - "0"подается на сегменты d, e, f что в итоге дает симввол "L". Для индикаторов с общим катодом надо просто проинвертировать код, в нашем примере будет 00111000. P.S. Пишу подробно для того, чтоб все желающие могли-бы переделать код "под себя" (IMG:style_emoticons/default/smile.gif) Исходник - как и для большинства девайсов - в PicBasic Pro. Сейчас допишу для всех режимов - покажу на видео как это будет выглядеть (IMG:style_emoticons/default/smile.gif) |
|
|
4.9.2018, 6:35
Сообщение
#2
|
|
Начинающий Технический Маньяк Группа: Технический Маньяк Сообщений: 27 Регистрация: 9.6.2011 Из: Борисоглебск, VRN Вне форума Авто: Lancer Cedia MX-E 4G15 (4WD) CVT Репутация: 0 |
Нет здесь регистра ADCON, есть ADCON0 и ADCON1 (см. даташит). За режим работы (аналог/цифра) портов отвечает ADCON1. ADCON1 = %00000110 'All digital [attachment=44095:pic16f72.jpg] Не понятно по поводу индикатора, что означает 16-разрядный, но в любом случае надо соотв. порты обозначить на выход, напр. TRISA = %00000000 ' Set PORTA to all output То-же самое с осциллятором, что планируется использовать в схеме? Если устанавливается резонатор, то XP, если RC цепочка, то RC (IMG:style_emoticons/default/wink.gif) . Внутреннего генератора у данного чипа нет. Если перейти на 886-й, то здесь можно обойтись и без внешнего осциллятора, т.к. в последнем присутствует встроенный на 8 МГц/32кГц Да, я об этом регистре и говорил (ADCON1). У меня только RA4 работает как аналоговый, остальные не срабатывают почему-то. Я подаю на RA0 - RA5 сигнал +5В через делитель от 12 В, и по факту только Ds отрабатывает. 16-разрядный - это 16 сегментный led индикатор https://www.chipdip.ru/product/psa05-11ywa Осциллятор я делал RC (как в даташите 10 кОм резистор и 22 пФ конденсатор) - не сработал почему-то. Сейчас 12 мГц кварц стоит и HS-осциллятор в конфигурации чипа. Вот немного модифицированная программа. И я никак не пойму, где я недочитал доки=)))) В даташите сказано, что если я установил TRISA = %11111111, то порты будут аналоговыми. При условии, что ADCON0 = %10000000 и ADCON1 = %00000000 установлены. Код '***********************
'* Name : AT.BAS * '* Author : Ssh * '*********************** '@ DEVICE pic16F628A, INTOSC_OSC_NOCLKOUT ' 1 2 3 4 N R P #define XTAL_FREQ 12000000 program _16_Digit include "P16F72" dim state as byte ' AT selector state ' ***** Variables ***** ' *************************************** ' ********** Main program loop ********** ' *************************************** main: TRISA = %11111111 TRISB = %00000000 TRISC = %00000000 ADCON0 = %10000000 ADCON1 = %00000000 'HGFE DCBA 'UTSR PNMK state = PORTA select case state ' AT selector position case 0x01 ' P PORTB = %00111000 'HG CBA PORTC = %01110111 'UP case 0x02 ' R PORTB = %00111000 'HG CBA PORTC = %01100111 'URP case 0x04 ' N PORTB = %00110011 'HGDC PORTC = %11101110 'RK case 0x08 ' D PORTB = %11000000 'FEDCBA PORTC = %11011101 'SM case 0x10 ' Ds PORTB = %01000100 'HFEDBA PORTC = %01110111 'UP case 0x20 ' L PORTB = %00001111 'HGFE PORTC = %11111111 case else ' All other positions PORTB = %11111111 ' Show none PORTC = %11111111 ' Show none end select goto main ' Loop end. ' ***** End of Program ***** |
|
|
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Текстовая версия | © 2006-2024 Форум Технических Маньяков. |
|