[ Последние сообщения · Участники · Правила форума · Поиск · RSS · РЕГЛАМЕНТ КЛУБА ]
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Форум скутеристов » Мотороль :) » Тюнинг » Измерительные приборы (Измерительные приборы)
Измерительные приборы
PredatorДата: Пятница, 06.02.2009, 13:03 | Сообщение # 21

СМОТРЯЩИЙ
Группа: Скутеристы
Сообщений: 2186
Репутация
« 34 »
Награды: 3
Город: Донецк
Техника: SpeedGear 50QT-E
Статус:
Quote (Tosha443)
вольто, термо. будет готовый результат, обязательно дам посмотреть.

Надеемся.. И ждем.

К стати а как помне лучше этого результата нет покачто ничего

некоторые Характеристики:
Часы
Вольтметр
Одометр
Спидометр
Тахометр
Секундомер
индикатор уровня бензина
стандартные индикаторы (поворотники Лево/право; индикатор масла; индикатор дального света)
...

Правда есть аналог, но это БК

И он не только отображает состояние скутера (температуру, обороты, скорость, литраж в бензобаке, ...), а также и управляет скутером (зажиганием)


... так мало пройдено дорог, так много сделано ошибок ...
(пробег с покупки скутера до текущего момент составляет 32245км)
borusevichДата: Пятница, 22.05.2009, 19:26 | Сообщение # 22

Болтун
Группа: Скутеристы
Сообщений: 172
Репутация
« 1 »
Награды: 0
Город: Донецк
Техника: Viper xt
Статус:
добрый всем вечер. Predator скажи термометр где на радиорынке брал (палатка), за сколько и как давно?
З.Ы. я про первый термометр и можно ли на мотодроме найти?


Сообщение отредактировал borusevich - Пятница, 22.05.2009, 19:47
PredatorДата: Пятница, 22.05.2009, 22:05 | Сообщение # 23

СМОТРЯЩИЙ
Группа: Скутеристы
Сообщений: 2186
Репутация
« 34 »
Награды: 3
Город: Донецк
Техника: SpeedGear 50QT-E
Статус:
Quote (borusevich)
термометр и можно ли на мотодроме найти?

Без проблем по вторникам и пятницам данные термометры продаются как на "МОТОДРОМе", так и на "МАЯКе"
Я покупал раньше по 35грн! Сейчас какая цена не знаю!


... так мало пройдено дорог, так много сделано ошибок ...
(пробег с покупки скутера до текущего момент составляет 32245км)
Tosha443Дата: Суббота, 23.05.2009, 08:53 | Сообщение # 24

Профи
Группа: Заблокированные
Сообщений: 1392
Репутация
« 26 »
Награды: 6
Город: Донецк
Техника: ZSM SuperCub 50
Статус:
Quote (Predator)
Я покупал раньше по #%UHY? Сейчас какая цена незнаю!

перевожу - по 35грн biggrin


пьяный проспится, дурак - никогда.
Весна придет, она покажет кто где...
(с) Народная мудрость
borusevichДата: Суббота, 23.05.2009, 14:21 | Сообщение # 25

Болтун
Группа: Скутеристы
Сообщений: 172
Репутация
« 1 »
Награды: 0
Город: Донецк
Техника: Viper xt
Статус:
сегодня на маяке купил за 50грн датчик, правда предел измерения 125 градусов, но думаю масло до таких температур не нагревается, так как нормальная температура масла 90 градусов, а при перегреве120 тоесть при 100 я буду остывать, думаю датчик выдержит так как 110 уже выдержал :hands:
Tosha443Дата: Суббота, 23.05.2009, 17:24 | Сообщение # 26

Профи
Группа: Заблокированные
Сообщений: 1392
Репутация
« 26 »
Награды: 6
Город: Донецк
Техника: ZSM SuperCub 50
Статус:
дтчик на основе DS18B20. скачай даташит на него. у него предельная Т=125, там и разніе графики есть. не думаю, что он будет долго жить при 100С.
хотя могу и ошибаться.


пьяный проспится, дурак - никогда.
Весна придет, она покажет кто где...
(с) Народная мудрость
mexaniksДата: Вторник, 02.06.2009, 14:36 | Сообщение # 27

эксперт по юридическим вопросам
Группа: Пользователи
Сообщений: 593
Репутация
« 13 »
Награды: 3
Статус:
Странно что здесь никто не спорит про: ВМАСЛО или ВРЁБРА ? Эт я про термометр...... Я вот склоняюсь к рёбрам поближе к свече.....В масло это имхо не мгновенная температура цилиндра есть некоторое запаздывание(кста можно термодатчик от ланоса вкрутить вместо сливного болта в картере))))).
Какие будут мнения и их обоснования уважаемые клубни?


...как говорил мой старик отец, прежде чем покинуть этот говённый мир: "Перед своим ударом не забудь тщательно помелить кий..."
PredatorДата: Вторник, 02.06.2009, 16:13 | Сообщение # 28

СМОТРЯЩИЙ
Группа: Скутеристы
Сообщений: 2186
Репутация
« 34 »
Награды: 3
Город: Донецк
Техника: SpeedGear 50QT-E
Статус:
Quote (mexaniks)
ВМАСЛО или ВРЁБРА ?

если сравнивать масло или ребро то лучше в НУТЬРЬ в МАСЛО.
Quote (mexaniks)
Я вот склоняюсь к рёбрам поближе к свече

Ребра быстро охлаждаются и показывают заниженную температуру!
Лучше или в кольцо свечи тыкать.




Или на выпускной клапан (но я не могу найти датчика который выдержит такую температуру)


... так мало пройдено дорог, так много сделано ошибок ...
(пробег с покупки скутера до текущего момент составляет 32245км)
Tosha443Дата: Среда, 03.06.2009, 10:15 | Сообщение # 29

Профи
Группа: Заблокированные
Сообщений: 1392
Репутация
« 26 »
Награды: 6
Город: Донецк
Техника: ZSM SuperCub 50
Статус:
Quote (mexaniks)
Странно что здесь никто не спорит про: ВМАСЛО или ВРЁБРА ?

эх, знать бы что это такое... тогда можно было бы спорить... biggrin
Quote (Predator)
в НУТЬРЬ

а что это я вообще не догадываюсь.

по большому счету, если исправен маслонасос, то все равно, где будет датчик.
если искать просто место, куда ткнуть - то можно и под ребра. и без разницы ближе-дальше от свечи. важно, чтобы тело головы в том месте было достаточно большим и с максимально возможным контактом с камерой сгорания.

имхо - можно мерять где угодно. главное, чтобы отдача тепла была и знать погрешность. причем в градусах - совсем не обязательно. важо знать "низко", "классно" и "пп.. фсё"


пьяный проспится, дурак - никогда.
Весна придет, она покажет кто где...
(с) Народная мудрость
olegДата: Среда, 03.06.2009, 22:14 | Сообщение # 30

Болтун
Группа: Скутеристы
Сообщений: 193
Репутация
« 2 »
Награды: 0
Город: Макеевка
Техника: Speed gear 150t-9x Yamaha Jog Next Zone
Статус:
Вань,ачё там у нас с тахометрами?На моём скуте его нет,а хотелось бы поставить.

Если нужен звоните 0954055530
PredatorДата: Четверг, 04.06.2009, 10:57 | Сообщение # 31

СМОТРЯЩИЙ
Группа: Скутеристы
Сообщений: 2186
Репутация
« 34 »
Награды: 3
Город: Донецк
Техника: SpeedGear 50QT-E
Статус:
Quote (oleg)
Вань,ачё там у нас с тахометрами?На моём скуте его нет,а хотелось бы поставить.

Ставь кто мешает!
вот куда его тыкать

Только не покупай дешевые тахометры, они нестабильно работают!


... так мало пройдено дорог, так много сделано ошибок ...
(пробег с покупки скутера до текущего момент составляет 32245км)
mexaniksДата: Четверг, 04.06.2009, 11:37 | Сообщение # 32

эксперт по юридическим вопросам
Группа: Пользователи
Сообщений: 593
Репутация
« 13 »
Награды: 3
Статус:
Да, главное знать при какой температуре масла и одновременно при какой температуре(они 100% разные будут хоть и не на много) цилиндра мы ловим клин(или он нас...))))) А этих данных нигде ненахожу.... Звучит 90 масло 120 цилиндр....Верно ? ХЗ.....

...как говорил мой старик отец, прежде чем покинуть этот говённый мир: "Перед своим ударом не забудь тщательно помелить кий..."
PredatorДата: Четверг, 04.06.2009, 12:24 | Сообщение # 33

СМОТРЯЩИЙ
Группа: Скутеристы
Сообщений: 2186
Репутация
« 34 »
Награды: 3
Город: Донецк
Техника: SpeedGear 50QT-E
Статус:
Quote (mexaniks)
Звучит 90 масло 120

если температура масла более 100 градусов это считается перегрев. Если добиться 120 то будет клин!


... так мало пройдено дорог, так много сделано ошибок ...
(пробег с покупки скутера до текущего момент составляет 32245км)
DocHudsonДата: Воскресенье, 14.06.2009, 15:53 | Сообщение # 34

Прохожий
Группа: Скутеристы
Сообщений: 3
Репутация
« 0 »
Награды: 0
Статус:
Видал косовский термометр
там датчик ставится вместо кольца под свечу
PredatorДата: Понедельник, 15.06.2009, 00:54 | Сообщение # 35

СМОТРЯЩИЙ
Группа: Скутеристы
Сообщений: 2186
Репутация
« 34 »
Награды: 3
Город: Донецк
Техника: SpeedGear 50QT-E
Статус:
Quote (DocHudson)
Видал косовский термометр там датчик ставится вместо кольца под свечу

Ну и что? А цену видел? А я сделал колечко за 2грн!
Да и цена самого термометра космическая! Дешевле самому собрать БК!


... так мало пройдено дорог, так много сделано ошибок ...
(пробег с покупки скутера до текущего момент составляет 32245км)
PredatorДата: Понедельник, 31.08.2009, 22:18 | Сообщение # 36

СМОТРЯЩИЙ
Группа: Скутеристы
Сообщений: 2186
Репутация
« 34 »
Награды: 3
Город: Донецк
Техника: SpeedGear 50QT-E
Статус:
Электронный цифровой спидометр.


Электронный цифровой спидометр построен микропроцессоре pic16F84A. Схема работает с программой, написанной Александром Аникиным. Огромное ему спасибо как за все программы, так и за эту!
-----------------------------------------------
:020000040000FA
:10000000850186018B018101640083160030850023
:100010000130860046308100831202309400423065
:10002000920002309100FE3093000A308E008F0063
:10003000900078308C008B109F3081000B118B1C4E
:100040002E288E0B2D280A308E008F0B2D280A307B
:100050008F00900B2D280A3090008B100B1D1F284D
:100060000310940C141C38280830940014308400B9
:100070008501840300088600140885008C0B1C2869
:100080008D0110084C2092000F084C2091000D1497
:100090000E084C20930015280A3C031D51280D1C06
:1000A00054280D1456200800FE3008000F3982072E
:1000B00002349E3424340C349834483440341E3492
:1000C000003408347E34BE34DE34EE34F634FA3490
:02400E00F23F7F
:00000001FF
-----------------------------------------------
Для программирования надо все, что находится между строчками с «тире», в любом текстовом редакторе сохранить в виде файла с расширением .hex, и дальше программатором – «прошить» в микропроцессор.
В качестве индикаторов использованы три семисегментных блока SA08-11 с высотой знака 20.3 мм фирмы «Kingbright». Цвет – ярко красный. Напомню, что семисегментники в данном случае берутся с общим анодом. Индикаторы включены по схеме динамической индикации, их аноды управляются через ключи на транзисторах КТ646. Можно применять и другие, например, КТ815. Одноименные (a, b, c, d, e, f, g) катоды соединяются параллельно у всех трех индикаторов.
Схема работает сразу же, и при отсутствии ошибок в монтаже настройки не требует.
Датчик скорости – от Ижа, вставляется вместо нашего тросика спидометра в коробку как «родной».

Исходник материала взят отсюда


... так мало пройдено дорог, так много сделано ошибок ...
(пробег с покупки скутера до текущего момент составляет 32245км)
PredatorДата: Понедельник, 31.08.2009, 22:24 | Сообщение # 37

СМОТРЯЩИЙ
Группа: Скутеристы
Сообщений: 2186
Репутация
« 34 »
Награды: 3
Город: Донецк
Техника: SpeedGear 50QT-E
Статус:
Электронный цифровой одометр.


Идея этого одометра была позаимствована в Интернете, однако та публикация грешила таким количеством ошибок и «капканов» как очевидных, так и скрытых, что многое пришлось переделывать. Целой осталась тольео общая структура схемы. Неоценимую помощь при этом я получил от соклубников Алл-екссс-анд-РРРА (отладка схемной части) и Аналарка (отладка программы). Оба Шурами зовутся. Огромное им спасибо!
-----------------------------------------------
:10000000831601308500803086008B0181018113C9
:1000100081110111811001108312850186010617DB
:10002000A4019F01A101A201282169210518192815
:100030001E283B214F21051819281E283B214F213E
:10004000051C1E286520252019281008C53E031808
:100050002B28900A080090011108F73E0318322857
:10006000910A080091011208F73E03183928920AF4
:10007000080092011308F73E03184028930A08006D
:1000800093011408F73E03184728940A08009401C6
:100090001508F73E03184E28950A08009501160822
:1000A000F73E03185528960A080096011708F73EF0
:1000B00003185C28970A080097011808F73E0318F0
:1000C0006328980A0800980108001908C53E03181B
:1000D0006B28990A080099011A08F73E031872283C
:1000E0009A0A08009A011B08F73E031879289B0A10
:1000F00008009B011C08F73E031880289C0A080092
:100100009C011D08F73E031887289D0A08009D01E1
:100110001E08F73E03188E289E0A08009E0108005C
:100120002408820798289E28A428AA28B028B62840
:100130001308E82086128500061408001408E82039
:1001400006108500861408001508E8208610850032
:10015000061508001608E820061185008615080017
:100160001708E82086118500061608001808E82000
:10017000061285008616080024088207C428CA28AB
:10018000D028D628DC28E2281A08E8208612850024
:10019000061408001B08E8200610850086140800D5
:1001A0001C08E82086108500061508001D08E820B8
:1001B00006118500861508001E08E82086118500B6
:1001C000061608000F30E820061285008616080083
:1001D0000F398207003402340434063408340A34F8
:1001E0000C340E34103412341434163418341A34D7
:1001F0001C341E3440308600831611308500831273
:100200006400051E002983160130850083129901C0
:100210009A019B019C019D019E0108000F30A100E5
:10022000103084000408F03E640083128900000846
:1002300088008316081555308900AA308900881473
:10024000881820298312840AA10B1229A101080011
:100250000F30A1001030840064000408F03E8312C7
:10026000890083160814831208088000840AA10BF1
:100270002C29A1010800861F3F2964000800403096
:1002800086000E21143085000614A2016400A1012D
:10029000A10B4829A20B4629061300004D29A10BEA
:1002A0000800640083161930850083120508A30036
:1002B0008316013085008312231EFA20A40A240825
:1002C000FA3E0319A401A31D672990200800BC2051
:1002D000080083160330850083120508A3008316E7
:1002E000013085008312A31808009001910192014A
:1002F00093019401950196019701980199019A0142
:100300009B019C019D019E010800FF3FFF3FFF3FB5
:10031000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FED
:10032000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FDD
:10033000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FCD
:10034000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FBD
:10035000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FAD
:10036000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F9D
:10037000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F8D
:10038000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F7D
:10039000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F6D
:1003A000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F5D
:1003B000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F4D
:1003C000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F3D
:1003D000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F2D
:1003E000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F1D
:1003F000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F0D
:10040000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFC
:10041000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FEC
:10042000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FDC
:10043000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FCC
:10044000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FBC
:10045000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FAC
:10046000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F9C
:10047000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F8C
:10048000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F7C
:10049000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F6C
:1004A000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F5C
:1004B000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F4C
:1004C000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F3C
:1004D000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F2C
:1004E000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F1C
:1004F000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F0C
:10050000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFB
:10051000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FEB
:10052000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FDB
:10053000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FCB
:10054000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FBB
:10055000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FAB
:10056000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F9B
:10057000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F8B
:10058000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F7B
:10059000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F6B
:1005A000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F5B
:1005B000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F4B
:1005C000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F3B
:1005D000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F2B
:1005E000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F1B
:1005F000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F0B
:10060000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFA
:10061000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FEA
:10062000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FDA
:10063000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FCA
:10064000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FBA
:10065000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FAA
:10066000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F9A
:10067000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F8A
:10068000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F7A
:10069000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F6A
:1006A000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F5A
:1006B000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F4A
:1006C000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F3A
:1006D000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F2A
:1006E000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F1A
:1006F000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F0A
:10070000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FF9
:10071000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FE9
:10072000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FD9
:10073000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FC9
:10074000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FB9
:10075000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FA9
:10076000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F99
:10077000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F89
:10078000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F79
:10079000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F69
:1007A000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F59
:1007B000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F49
:1007C000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F39
:1007D000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F29
:1007E000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F19
:1007F000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F09
:02400E00F63F7B
:10420000000000000000010001000100050008009E
:104210000000000000000000000000000000FF009F
:10422000FF00FF00FF00FF00FF00FF00FF00FF0096
:10423000FF00FF00FF00FF00FF00FF00FF00FF0086
:10424000FF00FF00FF00FF00FF00FF00FF00FF0076
:10425000FF00FF00FF00FF00FF00FF00FF00FF0066
:10426000FF00FF00FF00FF00FF00FF00FF00FF0056
:10427000FF00FF00FF00FF00FF00FF00FF00FF0046
:040000FE03050000F6
:00000001FF
-----------------------------------------------
Для программирования надо все, что находится между строчками с «тире», в любом текстовом редакторе сохранить в виде файла с расширением .hex, и дальше программатором – «прошить» в микропроцессор.
В качестве индикаторов использованы шесть семисегментных блоков SA04-11 с высотой знака 10,2 мм фирмы «Kingbright». Цвет – ярко красный. Напомню, что семисегментники в данном случае берутся «с общим анодом». Индикаторы включены по схеме динамической индикации, их аноды управляются через ключи на транзисторах КТ646. Можно - и на других, например КТ815. Одноименные (a, b, c, d, e, f, g) катоды соединяются параллельно у всех шести индикаторов. Показания одометра я выставлял под себя, так что, если надо какие-то другие – через программатор в блоке памяти микросхемы их можно поменять на то, что нужно.
Схема работает сразу же, и при отсутствии ошибок в монтаже настройки не требует.
Датчик скорости – Ижа, вставляется вместо нашего спидометра в коробку как «родной».
В качестве кнопок управления я брал кнопочки от старых компьютеров: переключение "Low-High" и "Reset". Кнопки DSP и «Полный-суточный» с фиксацией, при замыкании обоих контактов одометр показывает суточный пробег и запятую в формате «999,99» (то есть, подсчитывает десятки метров). Прикольно получилось smile Если эти контакты разомкнуты, то индицируется истинный пробег в формате «999999». Кнопка Reset – не фиксируемая, она обнуляет суточный пробег В ЛЮБОМ ИЗ РЕЖИМОВ РАБОТЫ. Обратим внимания, что схема требует подключения 12 вольт от АКБ. При выключении зажигания микропроцессор сначала записывает данные в память, и только потом подает команду на выключение ключа на транзисторе VT1 (отрубает общее свое питание). После этого можно отключать аккумулятор без боязни потери данных.

Исходник материала взят от сюда


... так мало пройдено дорог, так много сделано ошибок ...
(пробег с покупки скутера до текущего момент составляет 32245км)
PredatorДата: Понедельник, 31.08.2009, 22:31 | Сообщение # 38

СМОТРЯЩИЙ
Группа: Скутеристы
Сообщений: 2186
Репутация
« 34 »
Награды: 3
Город: Донецк
Техника: SpeedGear 50QT-E
Статус:
Тахометр на светодиодной линейной шкалы



Схема для тахометра.
Вход рассчитан для двигателя F3R. При изготовлении для УФЫ или ВАЗ необходимо вход переделать, как сделано на страничке у analarc

Исходный текст программы для прошивки микроконтроллера.

Quote

; ТАХОМЕТР на PIC16F873 (или PIC16F876 в нем просто больше памяти)

; кварц 4 Мгц (вариант "Дмитрий")

; распиновка аналогична варианту ВМА

; шкала 7 групп по 6х8 светодиодов, в 7й - 3 6х8+3= 51 диод

; индикация динамическая, группами с общим анодом

; масштаб шкалы

; 9 диодов при 200-1000 об/мин

; 7 диодов на 1000 об/мин для со 2й до 7й тысячи

; 9+6х7=51 диод (вся шкала) при 7000 об/мин

; Подсчитает интервал измерения

; всегда должно выдаваться 2 имп/об (2 искры на оборот для 4х-цилиндрового, 4х-тактного)

; при частоте вращения 6000 об/мин = 100 об/сек или 60 сотен об/мин

; 100 об/сек * 2 имп/об = 200 имп/сек

;

; 60 имп : 200 имп/сек = 0,3 сек = 300мс

; за 300 мс на вход должно придти столько же импульсов,

; сколько происходит сотен оборотов в минуту

; а за 600 мс столько импульсов, сколько пятидесяток

; будем подсчитывать пятидесятки,

; т.к. 7 диодов на 1000 об/мин - это 1 диод на 143 об/мин

; поэтому при подсчете в сотнях из-за дискретности шкалы

; получаются неравномерные показания

; при подсчете в пятидесятках неравномерность минимальна,

; т.к. 143 достаточно близко к 150 (=3х50)

list p=16F873

#include

__config _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC & _LVP_OFF

; Константы

iniTMR equ d'256'-d'205'; начальный отсчет таймера, загружается такое число, с которого до 256 идет отсчет

iniRPT equ d'183' ; 183 повтора по ( 1 640 мкс(=205 тиков по 8мкс) + 2 мкс на разгон ) = 0,300486 сек

iniDBL equ d'032' ; задержка в 32 повтора подобрана именно для 4 МГц

; Переменные

GRNOM equ 0x20 ; номер группы диодов, которая выводится на индикацию

GRFUL equ 0x21 ; число групп с включенными 8-ю диодами (целое от деления CLMP/8)

GRLST equ 0x22 ; число диодов в последней, неполной группе 0-7 диодов (остаток деления CLMP/8)

CRPT equ 0x23 ; счетчик повторений отсчетов по 1,6 мс (точнее 1638,4 мкс)

R100 equ 0x24 ; сотни оборотов в минуту

CLMP equ 0x25 ; число диодов для зажигания в шкале

CDBL equ 0x26 ; удвоение времени измерения (дискретность отсчета 50 об/мин)

cntDBL equ 0x27 ; счетчик времени дребезга контактов

; программа

org 0x000

bcf STATUS, RP0 ; Банк 0

bcf STATUS, RP1

clrf PORTA

clrf PORTB

clrf PORTC

bsf STATUS, RP0 ; банк 1

movlw 0x06 ; все ноги А на цирфу

movwf ADCON1 ; выключили АЦП

movlw b'00000000'

movwf TRISA ; RА на вывод

movlw b'00000001'

movwf TRISB ; RB0 ввод, RB1-RB7 вывод

movlw b'00000000'

movwf TRISC ; RC - вывод

; будем использовать таймер TMR0 - для динамической индикации

; выключаем подтягивающие резисторы (не нужны на RB0, там будет плюсовой импульс)

; устанавливаем TMR0 на внутренний такт с предделителем 8

movlw b'11000010' ; один тик таймера 8 * 1 мкс = 8 мкс

movwf OPTION_REG

bcf STATUS,RP0 ; банк 0

clrf INTCON

; прелюдия

; включить всю шкалу

movlw 7

movwf GRFUL

movwf GRNOM

movwf GRLST

movlw 4

movwf R100

clrf CRPT

TestLoop

movlw iniTMR

movwf TMR0

bcf INTCON,T0IF

TestDelay

btfss INTCON,T0IF ; повторяем маленький цикл,

goto TestDelay ; пока TMR0 не скажет: хватит!

call CH_GROUP

decfsz CRPT,f ; вывод всей шкалы

goto TestLoop ; в течение 1,2 сек

decfsz R100,f

goto TestLoop

clrf CLMP

; глобальный цикл

Main_loop

clrf R100 ; обнуляем счетчик сотен оборотов в минуту

movlw iniDBL

movwf cntDBL ; инициализируем счетчик блокировки дребезга

movlw 1 ; здесь нужно будет поставить 2,

movwf CDBL ; если тах будет показывать половину нужного

ms600

movlw iniRPT

movwf CRPT ; цикл подсчета импульсов (183 раза отсчет таймером по 1,6мс)

bcf INTCON,INTF

ms300

movlw iniTMR ; при 4Мгц и предделителе 8 получается 205 тиков таймера = 1640 мкс + 2 мкс на разгон

movwf TMR0 ; TMR0 должен отсчитать 205 тика от 51 до 256

bcf INTCON,T0IF

s1m6

btfss INTCON,INTF ; если был фронт импульса датчика, то идем на обработку счетчиков

goto NoINCR ; датчик молчит, идем проверять таймер

DoINCR

; для сигнала с инжекторных мозгов всего две строчки

; incf R100,f ; +1 в счечик импульсов

; bcf INTCON,INTF ; сбросили флаг внешнего прерывания

; а для прерывателя нужно еще добавить

btfss PORTB,0

goto ClrINT ; если RB0=0, то сбрасываем прерывание

; если RB0=1, то

decfsz cntDBL,f ; задерживаем дальнейшие действия

goto NoINCR ; до обнуления счетчика дребезга

; закончилась задержка на время дребезга

incf R100,f ; +1 в счечик импульсов

ClrINT

bcf INTCON,INTF ; сбросили флаг внешнего прерывания

movlw iniDBL

movwf cntDBL ; инициализируем счетчик блокировки дребезга

NoINCR

btfss INTCON,T0IF ; повторяем маленький цикл,

goto s1m6 ; пока TMR0 не скажет: хватит!

call CH_GROUP ; здесь обслуживание динамической индикации

decfsz CRPT,f ; отсчет по 1,6 мс нужно повторить 183 раза,

goto ms300 ; чтобы мерный интервал получился 0,3 сек (183 х 1,642 мс = 300,486 мс = 0,3 с)

decfsz CDBL,f

goto ms600 ; повторяем 2х0,3=0,6

; отсчитали 600 мс

; теперь переменная R100 содержит число оборотов в минуту

; выраженное в пятидесятках (R100=1 - это 50 об/мин)

; его нужно пересчитать в число диодов, которые нужно зажечь

movf R100,w

sublw d'20' ; CarryFlag =1, если W<=20 (оборотов <1000)

btfsc STATUS,C

goto LE1000

GT1000 ; оборотов больше, чем 1000

movlw 9 ; 9 диодов на 1ю тысячу

movwf CLMP

movlw d'20' ; со 2й тысячи об/мин масштаб шкалы 7 диодов на 1000 об/мин

subwf R100,f ; вычитаем 1ю тысчу (10 сотен, или 20 пятидесяток) из R100

Loop1000

movlw d'20' ; вычитаем 20 пятидесяток на каждую полную

subwf R100,f ; тысячу об/мин

btfss STATUS,C

goto LT_10

GE_10

movlw 7 ; прибавляем 7 к числу зажигаемых диодов

addwf CLMP,f ; на каждую полную тысячу оборотов в минуту

goto Loop1000

LT_10 ; остаток оборотов в последней тысяче,

addwf R100,w ; выраженное в пятидесятках

call Get50 ; по таблице находим число диодов,

addwf CLMP,f ; которое нужно зажечь

goto ClcGroups

LE1000 ; для 1й тысячи

rrf R100,f ; число оборотов/2, чтобы 50-ки пересчитать в 100-ки

bcf R100,7

movf R100,w

btfss STATUS,Z ; зажигаем диодов на 1 меньше,

addlw -1 ; чем подсчитано сотен оборотов в минуту

movwf CLMP ; (но при нуле обходим -1, а то вся шкала зажигается)

ClcGroups

; теперь мы знаем CLMP - число зажигаемых диодов

; нужно его разбить по группам для динамической индикации

movf CLMP,w

movwf GRFUL

rrf GRFUL,f ; /2

bcf GRFUL,7

rrf GRFUL,f ; /4

bcf GRFUL,7

rrf GRFUL,f ; /8

bcf GRFUL,7 ; в GRFUL число полных октетов диодов

movf CLMP,w

andlw 7

movwf GRLST ; в GRLST неполный октет

goto Main_loop

CH_GROUP

; переключение группы индикации

clrf PORTB ; отключили анодые ключи

movlw 1 ; организуем цикл GRNOM = 1,2,...,7,1,2,...

incf GRNOM,f ; GRNOM=GRNOM+1

btfsc GRNOM,3 ; if GRNOM>7

movwf GRNOM ; then GRNOM=1

movf GRNOM,w

addlw -1 ; меняем базу цикла 0,...,6

subwf GRFUL,w ; сравниваем GRNOM и GRFUL

btfss STATUS,C

goto GRNOM_GT_GRFUL

GRNOM_LE_GRFUL ; <=

btfss STATUS,Z ; выясняем < или = ?

goto GRNOM_LT_GRFUL

GRNOM_EQ_GRFUL ; =

movf GRLST,w ; включаем только часть катодов по GRLST

call GetCathod ; число преобразуем в код катодов

movwf PORTC

goto TURN_ON

GRNOM_LT_GRFUL ; <

clrf PORTC ; нужно включить все 8 диодов

goto TURN_ON ; (все катоды подключить на землю)

GRNOM_GT_GRFUL ; >

return ; вышли без включения анода

TURN_ON

movf GRNOM,w ; включение анода

call GetAnod ; номер преобразуем в код анода

movwf PORTB

return

GetAnod ; из-за того, что аноды в схеме

andlw 0x07 ; соединены с ногами порта RB

addwf PCL,f ; не по порядку

; 3217654-

retlw b'00000000' ; приходится использовать табличную

retlw b'00100000' ; функцию преобразования

retlw b'01000000' ; номер анода -> номер бита

retlw b'10000000'

retlw b'00000010'

retlw b'00000100'

retlw b'00001000'

retlw b'00010000'

GetCathod ; из-за того, что катоды в схеме

andlw 0x07 ; соединены с ногами порта RА

addwf PCL,f ; не по порядку

; 76540123

retlw b'11111111' ; приходится использовать табличную

retlw b'11110111' ; функцию преобразования

retlw b'11110001' ; номер диодов в группе ->

retlw b'11110011' ; -> раскладка битов порта

retlw b'11110000'

retlw b'11100000' ; 0-зажигает, 1-гасит диод

retlw b'11000000'

retlw b'10000000'

Get50 ; для 2й, 3й и т.д. неполных тысяч

andlw 0x1F ; оборотов в минуту

addwf PCL,f ; подсчитанное число пятидесяток

retlw 0 ;0 ; в этих тысячах

retlw 0 ;1 ; преобразуем в число зажигаемых

retlw 0 ;2 ; диодов

retlw 1 ;3 ; с помощью этой табличной функции

retlw 1 ;4

retlw 1 ;5

retlw 2 ;6

retlw 2 ;7

retlw 2 ;8

retlw 3 ;9

retlw 3 ;10

retlw 4 ;11

retlw 4 ;12

retlw 4 ;13

retlw 5 ;14

retlw 5 ;15

retlw 5 ;16

retlw 6 ;17

retlw 6 ;18

retlw 6 ;19

nop ;20 ; в неполной тысяче не может быть

nop ;21 ; более 19 пятидесяток

nop ;22 ; но часть таблицы для 20-31

nop ;23 ; вставлена для страховки

nop ;24 ; от ошибок вычислений

nop ;25

nop ;26 ; чтоб не висло, когда не нужно

nop ;27

nop ;28

nop ;29

nop ;30

retlw 6 ;31

end

И собственно сама прошивка

:020000040000FA
:1000000083120313850186018701831606309F0042
:10001000003085000130860000308700C23081004A
:1000200083128B010730A100A000A2000430A400BD
:10003000A301333081000B110B1D1C286520A30B7D
:100040001928A40B1928A501A4012030A70001300C
:10005000A600B730A3008B10333081000B118B1C2E
:100060003928061C3628A70B3928A40A8B10203003
:10007000A7000B1D2F286520A30B2C28A60B2928D1
:100080002408143C031853280930A5001430A40296
:100090001430A402031C4F280730A5074828240762
:1000A0009020A5075928A40CA4132408031DFF3E83
:1000B000A5002508A100A10CA113A10CA113A10C5E
:1000C000A11325080739A200242886010130A00ABF
:1000D000A019A0002008FF3E2102031C7728031D61
:1000E000752822088620870078288701782808004C
:1000F00020087C208600080007398207003420345D
:100100004034803402340434083410340739820710
:10011000FF34F734F134F334F034E034C034803455
:100120001F398207003400340034013401340134B3
:100130000234023402340334033404340434043407
:100140000534053405340634063406340000000056
:10015000000000000000000000000000000000009F
:040160000000063461
:02400E00713F00
:00000001FF


... так мало пройдено дорог, так много сделано ошибок ...
(пробег с покупки скутера до текущего момент составляет 32245км)
PredatorДата: Понедельник, 31.08.2009, 22:43 | Сообщение # 39

СМОТРЯЩИЙ
Группа: Скутеристы
Сообщений: 2186
Репутация
« 34 »
Награды: 3
Город: Донецк
Техника: SpeedGear 50QT-E
Статус:
Спидо-одометр

Схема для спидометра-одометра "в одном флаконе". При изготовлении обнаружились ошибки:
1.номиналы нужно изменить....
R1=200 Ом, R2=680 Ом, R3=1,5кОм, R4=3,3кОм.
2. входы пика 11 и 21 поменять местами.

Программа для спидометра-одометра

Quote

;******************************************

;* 2 в 1 СПИД-ОДО-МЕТР PIC 16F873 *

;******************************************

;=====================================================================================

; кварц 10 Мгц

; датчик 6 импульсов на метр (для Дмитрия)

list p=16F873

#include

__config _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _LVP_OFF

; Константы

RCSwitch equ 1 ; RC1

RCPower equ 0 ; RC0

RCButton equ 3 ; RA3

RCPoint equ 4 ; RA4

; Переменные

; Номер активного сегмента

INDNO equ 0x20

; Буфер дисплея одометра, разряды в виде комбинаций сегментов

IND01 equ 0x21

IND02 equ 0x22

IND03 equ 0x23

IND04 equ 0x24

IND05 equ 0x25

IND06 equ 0x26

; Буфер дисплея спидометра

INDS1 equ 0x27

INDS2 equ 0x28

INDS3 equ 0x29

; основной счетчик полного пробега

tot_prev equ 0x2A

tor_k001 equ 0x2B

tot_k010 equ 0x2C

tot_k100 equ 0x2D

tot_001k equ 0x2E

tot_010k equ 0x2F

tot_100k equ 0x30

tot_001t equ 0x31

tot_010t equ 0x32

tot_100t equ 0x33

; дополнительный счетчик суточного пробега

aux_prev equ 0x34

aux_k001 equ 0x35

aux_k010 equ 0x36

aux_k100 equ 0x37

aux_001k equ 0x38

aux_010k equ 0x39

aux_100k equ 0x3A

IPM equ 0x3B

SCR_MODE equ 0x3C

BTN_MODE equ 0x3D

BTN_CNTR equ 0x3E

BTN_STAT equ 0x3F

cntr2 equ 0x40

iHCNT equ 0x41

iLCNT equ 0x42

cHCNT equ 0x43

cLCNT equ 0x44

PreDIG equ 0x45

EspDIG equ 0x46

DspDIG equ 0x47

HspDIG equ 0x48

; BTN_MODE - описывает, что произошло с кнопкой

; 00 - кнопка находится в верху

; 01 - нажатие (ход вниз)

; 11 - находится внизу

; 10 - отпускание (ход вверх)

; SCR_MODE - указывает процедуре FILL_VB, чем заполнять видеобуфер

; 0 - полный пробег

; 1 - суточный

; 2 - пусто

; 3 - слово СБРОС

; Программа

org 0x00

goto START

; перекодировка цифры в код 7-сегментного индикатора

SEG7 ; в счетчиках не само значение, а (10-значение)

sublw d'010' ; вычислили значение

andlw 0x0F ; на всякий случай

addwf PCL,f

; ebfdacg ноль в бите зажигает сегмент

retlw b'00000011' ; 0

retlw b'10111011' ; 1

retlw b'00100101' ; 2

retlw b'10100001' ; 3

retlw b'10011001' ; 4

retlw b'11000001' ; 5

retlw b'01000001' ; 6

retlw b'10110011' ; 7

retlw b'00000001' ; 8

retlw b'10000001' ; 9

retlw b'11110111' ; 10

retlw b'10111111' ; 11

retlw b'11111011' ; 12

retlw b'11101111' ; 13

retlw b'01111111' ; 14

retlw b'11011111' ; 15

; вычисление бита включения разряда по номеру активного анода

ANOD_C

andlw 0x07 ;на всякий случай

addwf PCL,f

; 123465 единица в бите зажигает разряд

retlw b'00000000' ; 0

retlw b'10000000' ; 1

retlw b'01000000' ; 2

retlw b'00100000' ; 3

retlw b'00010000' ; 4

retlw b'00000100' ; 5

retlw b'00001000' ; 6

retlw b'00000000' ; 7

; вычисление бита включения разряда по номеру активного анода

ANOD_A

andlw 0x03 ;на всякий случай

addwf PCL,f

; 321 единица в бите зажигает разряд 1-сотни 2-десятки 3-единицы

retlw b'00010000' ; 0

retlw b'00010001' ; 1

retlw b'00010010' ; 2

retlw b'00010100' ; 3

START

bcf STATUS, RP0 ; Банк 0

bcf STATUS, RP1

clrf T2CON

clrf TMR0

clrf TMR2

clrf INTCON

clrf PORTA

clrf PORTB

clrf PORTC

bsf STATUS, RP0 ; банк 1

movlw 0x06 ; все ноги А на цирфу

movwf ADCON1

movlw b'00001000'

movwf TRISA ; RA3 - кнопка, остальные вывод

movlw b'00000001'

movwf TRISB ; RB0 - датчик, остальные вывод

movlw b'00000001'

movwf TRISC ; RC0 - зажигание, остальные вывод

; включаем подтягивающие резисторы, TMR0 на внутренний такт с предделителем 16 (4 ms на цифру)

movlw b'01000011'

movwf OPTION_REG

; включаем TIMER2

clrf PIE1

movlw d'249' ; при кварце 10 МГц частота clock = Fosc/4 = 2,5 МГц 0,4 мкс

movwf PR2 ; регистр периода TIMER2 = 250 clock = 100 мкс на цикл

; цикл = 100 мкс * 1(PRE) * 1 (POST) = 100 мкс

bcf STATUS,RP0 ; банк 0

movlw b'00000100' ; none:7 (POST-1):6-3 On/Off:2 PRE: 1-0

movwf T2CON ; b0000 = 1:1 1=On b00 = 1

clrf PIR1

bsf PORTC, RCSwitch

call READ_EEPROM

movlw d'10'

movwf HspDIG

movwf DspDIG

movwf EspDIG

; ***

movlw 1 ; было 8

movwf PreDIG

movlw 9

movwf INDNO

clrf TMR0

bcf INTCON,T0IF ; обнулить таймер

call PROLOG

clrf BTN_MODE

clrf SCR_MODE

call FILL_VB

call FILL_SPD

; ***

movlw d'23' ; было d'37' для 30 имп/м

movwf iHCNT

; ***

movlw d'112' ; было d'128' для 30 имп/м

movwf iLCNT

clrf cHCNT

movlw 1

movwf cLCNT

MAIN_LOOP

; проверить питание

btfss PORTC,RCPower; обходим отключение, если 1

goto PowerDown

PowerRise

; проверить мерный таймер

btfsc PIR1,TMR2IF ; если 0 (нет сигнала от TIMER2), от обход

call DO_TICK ; а если 1, то идем увеличивать счетчики

; проверить датчик

btfsc INTCON,INTF ; если 0 (нет сигнала от датчика), от обход

call DO_INCR ; а если 1, то идем увеличивать счетчики

; продублировать состояние датчика

; btfsc PORTB,0

; bsf PORTA,5

; btfss PORTB,0

; bcf PORTA,5

; проверить таймер для динамической индикации

btfss INTCON,T0IF ; если таймер закончил отсчет, то идем менять разряд

goto MAIN_LOOP ; иначе повторяем проверки в цикле

; все, что ниже, выполняется 1 раз в 1,6 мс (на 10МГц)

call ChkButton ; обработка кнопи

call ChAnod ; переключение разрядов индикатора

bcf INTCON,T0IF ; обнулить таймер

goto MAIN_LOOP

; проверить кнопку и отреагировать

ChkButton

rlf BTN_MODE,f ; каждый раз BTN_MODE сдвигаем на 1 бит влево

bcf BTN_MODE,0 ; а в 0й бит заносим

btfss PORTA, RCButton ; 0, если кнопка вверху

bsf BTN_MODE,0 ; 1, если внизу

movf BTN_MODE,w ; затем вырезаем младшие два бита

andlw 3 ; и по ним выбираем вариант обработки

addwf PCL,f ;

goto Btn_UpUp ; 00 - кнопка была и остается наверху (постоянно отжата)

goto Btn_UpDn ; 01 - перешла сверху вниз (нажали)

goto Btn_DnUp ; 10 - перешла снизу вверх (отпустили)

goto Btn_DnDn ; 11 - была и остается внизу (постоянно прижата)

Btn_UpDn ; НАЖАЛИ

clrf BTN_CNTR ; в момент нажатия кнопки

clrf BTN_STAT ; обнуляем счетчики времени удержания

goto Btn_UpUp

Btn_DnDn ; УДЕРЖИВАЮТ продолжаем увеличивать счетчик

incfsz BTN_CNTR,f ; когда счетчик досчитает до 256 (0,4сек)

goto TestSTATUS

incf BTN_STAT,f ; изменим код реакции на подъем кнопки

TestSTATUS ; в зависимости от времени удержания

btfss BTN_STAT,2 ; 0, 1 , 2, 3 ( до 0,4 до 0,8 до 1,2 до 1,6 сек)

goto Btn_UpUp

decf BTN_STAT,f ; если код дошел до 4, то вернем его в 3

bsf SCR_MODE,1 ; изменим режим отображения данных на индикаторе

call FILL_VB ; теперь для ПОЛНОГО на экране НИЧЕГО

goto Btn_UpUp ; для СУТОЧНОГО на экране слово СБРОС

Btn_DnUp ; ОТПУСТИЛИ

btfss SCR_MODE,1 ; если был короткий тычок

goto SwitchMode ; то идем на переключение режима отображения

TestReset

bcf SCR_MODE,1 ; для длинного тычка

btfss SCR_MODE,0 ; вернули нормальный режим индикатора ПОЛНЫЙ/СУТОЧНЫЙ

goto ODOmode

movf IPM,w ; а для суточного кроме того

movwf aux_prev ; сделали сброс разрядов в 000.00

movlw d'10'

movwf aux_100k

movwf aux_010k

movwf aux_001k

movwf aux_k100

movwf aux_k010

movwf aux_k001

goto ODOmode

SwitchMode ; переключение режима индикатора ПОЛНЫЙ/СУТОЧНЫЙ

movlw 1

xorwf SCR_MODE,f

ODOmode ; восстановление буфера индикатора

call FILL_VB

Btn_UpUp ; если кнопка постоянно на верху, то ничего делать не надо

return

FILL_SPD ; переносим цифры скрости предыдущего замера в видеобуфер

movf HspDIG,w

call SEG7 ; вывод сотен

movwf INDS1 ;

movf DspDIG,w

call SEG7 ; вывод десятков

movwf INDS2

movf EspDIG,w ; вывод единиц всегда

call SEG7

movwf INDS3

call CLR_LEAD0 ; погасить незначащие нули

return

; заполнение видеобуфера кодами сегментов

FILL_VB

movfw SCR_MODE ; выбираем, чем заполнить буфер индикатора

andlw b'00000011' ; в зависимости от значения переменной SRC_MODE

addwf PCL,f

goto Fill_ODOM

goto Fill_TRIP

goto Fill_NONE

goto Fill_TEXT

Fill_ODOM ; заполняем буфер

movfw tot_100t ; цифрами полного пробега

call SEG7

movwf IND01

movfw tot_010t

call SEG7

movwf IND02

movfw tot_001t

call SEG7

movwf IND03

movfw tot_100k

call SEG7

movwf IND04

movfw tot_010k

call SEG7

movwf IND05

movfw tot_001k

call SEG7

movwf IND06

return

Fill_TRIP ; цифрами суточного пробега

movlw b'11111111' ; старший разряд темный

movwf IND01

movfw aux_100k

call SEG7

movwf IND02

movfw aux_010k

call SEG7

movwf IND03

movfw aux_001k

call SEG7

movwf IND04

movfw aux_k100

call SEG7

movwf IND05

movfw aux_k010

call SEG7

movwf IND06

bcf IND04,0 ; поставили признак "нужна точка" для второго разряда

return

Fill_TEXT ; слово СБРОС

; ebfdacg ноль зажигает

movlw b'11111111'

movwf IND01

movlw b'01000111' ; С

movwf IND02

movlw b'01000001' ; Б

movwf IND03

movlw b'00010101' ; Р

movwf IND04

movlw b'00000011' ; 0

movwf IND05

movlw b'01000111' ; С

movwf IND06

return

Fill_NONE ; погасили все разряды

movlw b'11111111' ; это при длительном удержании

movwf IND01 ; кнопки в режиме полного пробега

movwf IND02

movwf IND03

movwf IND04

movwf IND05

movwf IND06

return

ChAnod

;обслуживание индикации (каждый раз после отсчета таймером полного цикла 1,6мс х 6 разрядов = 100Гц)

movlw IND01-1

movwf FSR

movlw 0x03

andwf PORTC,f ; выключили разряд

movlw 0xF8

andwf PORTA,f

bsf PORTA, RCPoint

movlw 9 ; вычисление номера следующего разряда

decfsz INDNO,f ; циклически

movfw INDNO ; 9 8 7 6 5 4 3 2 1 и по кругу 9 8 7 6 5 ...

movwf INDNO

addwf FSR,f ; загружаем комбинацию катодов

movfw INDF ; для следующего разряда

movwf PORTB

movfw INDNO

sublw 6

btfss STATUS,C

goto ANOD_SPD

btfss INDF,0 ; если признак "нужна точка" сброшен, то обход включения

bcf PORTA, RCPoint ; включили точку

movfw INDNO

call ANOD_C

iorwf PORTC,f ; включаем анод следующего разряда

return

ANOD_SPD

call ANOD_A

iorwf PORTA,f ; включаем анод следующего разряда

return

; пришел тик от мерного таймера (прошло 100 мкс)

DO_TICK

bcf PIR1,TMR2IF ; сбросить флаг прерывания

decfsz cLCNT,f

return

; закончился очередной маленький счетчик

movf cHCNT,f ; проверяем большой счетчик

btfsc STATUS,Z ; если cHCNT=0

goto ResetCNTS ; то идет инициализируем счетчики на новый отсчет

movf iLCNT,w

decfsz cHCNT,f ; cHCNT=cHCNT-1

movlw 0 ; если <>0, то cLCNT=256

movwf cLCNT ; =0, =iLCNT

return

ResetCNTS

movf iHCNT,w

movwf cHCNT ; cHCNT=iHCNT

clrf cLCNT ; cLCNT=256

call FILL_SPD

; call FILL_VB

; обнуление для нового замера

movlw d'10'

movwf HspDIG

movwf DspDIG

movwf EspDIG

; ***

movlw 1 ; было 8

movwf PreDIG

return

; Приращение счетчиков

DO_INCR ; 123 456 789 10

movlw d'10' ; 10 разрядов для полного пробега 999 999 км (видны). 999 м +IPM (не видны)

movwf cntr2

movlw tot_prev-1

call CH_CNTR ; 123 45 6 7

movlw 7 ; 7 разрядов для суточного 999 км .99 (видны) 9м + IPM (не видны)

movwf cntr2

movlw aux_prev-1

call CH_CNTR

movlw 4 ; сначала 3 разряда спидометра

movwf cntr2

movlw PreDIG-1

movwf FSR

; ***

movlw 1 ; было 8

call CH_LOOP

call FILL_VB ; обновили коды катодов в буфере индикатора

; call FILL_SPD

bcf INTCON,INTF ; сбросили флаг внешнего прерывания

return

CH_CNTR

movwf FSR

movf IPM,w ; для предварительного счетчика метров IPM (impacts per meter)

CH_LOOP

incf FSR,f

decfsz INDF,f

return

movwf INDF

movlw d'10' ; для всех остальных разрядов счетчика

decfsz cntr2,f

goto CH_LOOP

return

PowerDown

call WRITE_EEPROM ; записываем счетчики в энергонезависимую память

; слово ЗАПИСЬ в буфер индикатора

; ebfdacg ноль в бите зажигает сегмент

movlw b'10100001' ; 3

movwf IND01

movlw b'00010001' ; A

movwf IND02

movlw b'00010011' ; П

movwf IND03

movlw b'00001011' ; И

movwf IND04

movlw b'01000111' ; С

movwf IND05

movlw b'01001001' ; Ь

movwf IND06

SDeadLoop

movlw D'255'

movwf cntr2

bcf INTCON,T0IF ; обнулить таймер

DeadLoop

btfss INTCON,T0IF

goto DeadLoop

call ChAnod

decfsz cntr2,f

goto DeadLoop-1

; goto SDeadLoop

btfsc PORTC,RCPower ; если питание не восстановилось (0), то обход возврата

goto PWRRestoted ; если восстановилось (1), то возвращаемся

; все отключаем питание

bcf PORTC,RCSwitch

goto SDeadLoop

PWRRestoted

call FILL_VB

bsf PORTC,RCSwitch ; придется опять включить

goto PowerRise

READ_EEPROM ; загрузка счетчиков из энергонезависимой памяти

movlw d'18'

movwf cntr2

movlw tot_prev

movwf FSR

RD_LOOP

movfw FSR

addlw -tot_prev

bsf STATUS,RP1 ; банк 2 - на входе банк 0

movwf EEADR

bsf STATUS,RP0 ; банк 3

bcf EECON1,EEPGD

bsf EECON1,RD

bcf STATUS,RP0 ; банк 2

movfw EEDATA

bcf STATUS,RP1 ; банк 0

movwf INDF

incf FSR,f

decfsz cntr2,f

goto RD_LOOP

return

WRITE_EEPROM ; сохранение счетчиков в энергонезависимой памяти

movlw d'17'

movwf cntr2 ; cntr2 = 15

movlw tot_prev

movwf FSR ; FSR = @tot_prev = адреса регистров RAM

WR_LOOP

movfw FSR

addlw -tot_prev ; W = 0, 1, ... , 14 = адреса регистров EEPROM

; Процедура записи байта в EEPROM

bsf STATUS,RP1 ; банк 2

movwf EEADR ; Переносим W в EEADR

bcf STATUS,RP1 ; банк 0

movfw INDF ; Заносим в W содержимое регистра RAM

bsf STATUS,RP1 ; банк 2

movwf EEDATA ; Из W в EEDATA

bsf STATUS,RP0 ; банк 3

bcf EECON1,EEPGD; выбираем EEPROM

bsf EECON1,WREN ; Разрешаем запись

movlw h'55' ; ** Обязательная **

movwf EECON2 ; ** процедура **

movlw h'AA' ; ** без **

movwf EECON2 ; ** комментариев **

bsf EECON1,WR ; Команда начала записи

btfsc EECON1,WR ; цикл ожидания завершения записи

goto $-1 ; повторяем

bcf EECON1,WREN

bcf STATUS,RP1

bcf STATUS,RP0 ; БАНК 0

incf FSR,f ; FSR = @tot_prev +1, +2, ..., + 15

decfsz cntr2,f

goto WR_LOOP ; повторяем 17 раз

return

CLR_LEAD0

movf HspDIG,w

sublw d'10'

btfss STATUS,Z

return

movlw b'11111111'

movwf INDS1

movf DspDIG,w

sublw d'10'

btfss STATUS,Z

return

movlw b'11111111'

movwf INDS2

return

PROLOG

clrf IND01

clrf IND02

clrf IND03

clrf IND04

clrf IND05

clrf IND06

clrf INDS1

clrf INDS2

clrf INDS3

clrf cLCNT

movlw 3

movwf cHCNT

PRO_LOOP

btfss INTCON,T0IF

goto PRO_LOOP

call ChAnod

bcf INTCON,T0IF ; обнулить таймер

decfsz cLCNT,f

goto PRO_LOOP

decfsz cHCNT,f

goto PRO_LOOP

return

org 0x2100

; цифры по умолчанию ( МЕСТАМИ НЕ МЕНЯТЬ! ПОРЯДОК ВАЖЕН!)

; в EEPROM они хранятся в виде 10-х

; полный пробег

; ***

eet_prev de d'06' ; предварительные неотображаемые

eet_k001 de d'10'-0

eet_k010 de d'10'-0

eet_k100 de d'10'-0 ; отображаемые разряды ниже

eet_001k de d'10'-0 ; 1 км

eet_010k de d'10'-0

eet_100k de d'10'-0

eet_001t de d'10'-5

eet_010t de d'10'-9

eet_100t de d'10'-0 ; 100 000 км

;суточный пробег

; ***

eea_prev de d'06' ; предварительные неотображаемые

eea_k001 de d'10'-0

eea_k010 de d'10'-0 ; 10 м

eea_k100 de d'10'-0

eea_001k de d'10'-0 ; 1 км

eea_010k de d'10'-0

eea_100k de d'10'-0 ; 100 км

; число импульсов на 1 метр

; ***

eeIPM de d'06'

end ;конец программы

И прошивка
------------------------------------------------------------------------------
:020000040000FA
:1000000024280A3C0F3982070334BB342534A13439
:100010009934C1344134B33401348134F734BF34BA
:10002000FB34EF347F34DF34073982070034803407
:100030004034203410340434083400340339820747
:1000400010341134123414348312031392018101D9
:1000500091018B01850186018701831606309F007F
:100060000830850001308600013087004330810070
:100070008C01F93092008312043092008C018714B5
:1000800042210A30C800C700C6000130C50009304F
:10009000A00081010B117F21BD01BC0198208D20A2
:1000A0001730C1007030C200C3010130C400071C0A
:1000B00026298C18F5208B180B210B1D572863203F
:1000C000DA200B115728BD0D3D10851D3D143D084C
:1000D000033982078C286E287A287128BE01BF0157
:1000E0008C28BE0F7428BF0A3F1D8C28BF03BC1488
:1000F00098208C28BC1C8928BC103C1C8B283B08F1
:10010000B4000A30BA00B900B800B700B600B500B4
:100110008B280130BC069820080048080120A70061
:1001200047080120A80046080120A9007221080004
:100130003C08033982079F28B228D228C5283308F3
:100140000120A10032080120A20031080120A300F3
:1001500030080120A4002F080120A5002E0801204E
:10016000A6000800FF30A1003A080120A2003908CB
:100170000120A30038080120A40037080120A500B1
:1001800036080120A60024100800FF30A1004730E7
:10019000A2004130A3001530A4000330A500473071
:1001A000A6000800FF30A100A200A300A400A50043
:1001B000A60008002030840003308705F83085054C
:1001C00005160930A00B2008A0008407000886004F
:1001D0002008063C031CF228001C051220081420ED
:1001E000870408001E20850408008C10C40B08003A
:1001F000C308031900294208C30B0030C4000800DB
:100200004108C300C4018D200A30C800C700C600E1
:100210000130C50008000A30C00029301C21073019
:10022000C00033301C210430C00044308400013051
:100230001E2198208B10080084003B08840A800B44
:10024000080080000A30C00B1E2908005521A1308B
:10025000A1001130A2001330A3000B30A4004730DE
:10026000A5004930A600FF30C0000B110B1D362938
:10027000DA20C00B352907183F2987103329982029
:10028000871459281230C0002A3084000408D63E52
:1002900003178D0083168C130C1483120C080313A0
:1002A0008000840AC00B462908001130C0002A30A3
:1002B00084000408D63E03178D00031300080317BB
:1002C0008C0083168C130C1555308D00AA308D00D0
:1002D0008C148C1869290C1103138312840AC00B27
:1002E0005929080048080A3C031D0800FF30A700F0
:1002F00047080A3C031D0800FF30A8000800A101C0
:10030000A201A301A401A501A601A701A801A901B9
:10031000C4010330C3000B1D8B29DA200B11C40B61
:080320008B29C30B8B29080097
:02400E00723FFF
:1042000006000A000A000A000A000A000A00050067
:1042100001000A0006000A000A000A000A000A005B
:044220000A0006008A
:00000001FF
-------------------------------------------------------------------------------


некоторые из плат

Датчик скорости от ИЖ-2126. с диаметром резьбы на 22 мм. (250 рублей) У кого коробка другая - то нужно на 18... В обсчем, нужно померять перед тем как покупать...

Платы изготовлены с помощью программы Sprint-Layot 4.0 и технологии лазерный принтер-утюг. Кто заинтересуется, спрашиваите в аську, вышлю файлы для Sprint-Layot 4.0 с рисунками плат....


Готовая плата спидо-одометра

Плата семисегментников соединена с платой спидометра с помощью компутерного шлейфа....


Ну, а внешнее оформление - кому как нравится.

Шкалы тахометра и указателей, а так же изображения на контрольных лампах я напечатал на струйном принтере с помощью фотокартрижда на пленке-самоклейке и совместил 3 (ТРИ) слоя. потому как один не давал черного непросвечивающего фона.

Семисегментники заклеены куском пленки для тонировки стекол лучше видно днем!!!

Все программы написаны и отлажены Александром Аникиным (analarc)

Огромное спасибо ему!!!

Исходник материала взят от сюда


... так мало пройдено дорог, так много сделано ошибок ...
(пробег с покупки скутера до текущего момент составляет 32245км)
ykromДата: Вторник, 01.09.2009, 08:07 | Сообщение # 40

Резидент "95й квартал", г. Константиновка :)))
Группа: Скутеристы
Сообщений: 1203
Репутация
« 21 »
Награды: 2
Город: Константиновка
Техника: Viper Cruiser 150
Статус:
Quote
если температура масла более 100 градусов это считается перегрев. Если добиться 120 то будет клин!
Ничего подобного. Средняя рабочая температура масла (датчик опущен в заливную горловину)на исправном двигателе 150 сс составляет примерно 115 градусов. При остановке на передых (на холостых) после часа езды температура резко повышается до 130 градусов, минут через 5 может опуститься до 120 градусов, (а может и не опуститься) и дальше ни-ни. дальше надо заглушить двигатель и подождать еще 5 минут- температура падает до 100 градусов. Если нет желания и времени ожидать пока остынет масло, то можно не останавливаться если масло в пределах 115-120 градусов. У мя не получается, задница после часа езды хочет покоя. когда при езде температура быстренько переваливает за 120- это уже повод задуматься о техническом состоянии двигателя или состоянии масла. Из-за таких высоких температур старение масла происходит намного быстрее, чем в двигателе с водяным охлождением и его следует менять чаще, максимум через 3000 км, хотя при езде по городу (на короткие дистанции), когда температура редко доходит до 100 градусов срок замены масла можно еще немного увеличить, но тут следует не забывать об отсутствии полноценного маслофильтра, что тоже влияет на свойства масла совсем не положительно. мнение моё, могу ошибаться. Сам меняю масло примерно через 3000 км, пока лью ХАДО синтетику 10W60, но собираюсь заменить на Shell полусинтетику, потому что её считают эталоном и все масла сравнивают с Shell.

Quote
а как помне лучше этого результата нет покачто ничего
согласен на все 100%! В АЛЬФА-МОТО аналоги шторма изначально идут с электронной приборной панелью



Прикрепления: 4935637.jpg (47.8 Kb) · 8840243.jpg (42.8 Kb) · 3507080.jpg (39.1 Kb)


тел. 0990205031; 0988456363; ICQ 363123619;
Мы все родом с тех мест, где слово "друг" не пустяк
Форум скутеристов » Мотороль :) » Тюнинг » Измерительные приборы (Измерительные приборы)
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

[ Последние сообщения · Участники · Правила форума · Поиск · RSS ]




Навигация
Контакты
Как нас найти
BUB (Артём): +380 99 712 22 15
Место слётов скутеристов
Каждую субботу в 18:00 (UTC +2)
Донецк, Стадионная ТЦ Амстор, парковка
Location in google Maps