Форум по микроконтроллерам: Автомобильный Цифровой Спидометр - Форум по микроконтроллерам

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Автомобильный Цифровой Спидометр помогите переделать программу под PIC16F628 Оценка: ----- 1 Голосов

#1 Пользователь офлайн   nekyn 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 4
  • Регистрация: 17 Ноябрь 09

Отправлено 17 Ноябрь 2009 - 01:22

Доброго времени суток. Есть огромное желание собрать спидометр но
данный микроконтроллер немного дороговат и староват, есть в наличии PIC16F628A Проблема в том что необходимо подкорректировать программу Прикрепленный файл  6_6000.rar (3,61К)
Количество загрузок:: 125 Помогите начинающему.
Прикрепленное изображение: 6_1.gif
0

#2 Пользователь офлайн   Admin 

  • Администратор
  • PipPipPip
  • Группа: Администратор
  • Сообщений: 536
  • Регистрация: 08 Август 08

Отправлено 17 Ноябрь 2009 - 20:32

Код на асме, да ещё и на пике. А я к сожалению не знаю ни того, ни другого. Надо найти человека, который знает асм и ПИК. Ему не составит труда подкорректровать код. Можно и самому, для самообучения. Но времени потребует...
0

#3 Пользователь офлайн   Alex 

  • Активный участник
  • PipPipPip
  • Группа: Администратор
  • Сообщений: 307
  • Регистрация: 08 Август 08
  • Пол:Мужчина
  • Город:http://forum.eldigi.ru/

Отправлено 17 Ноябрь 2009 - 23:00

Дело в том, что тому кто сможет разобраться в чужом коде и подкоректировать программу, легче будет переписать её заного чем коректировать.
Не буду обещать, но попробуем что-нибудь придумать. Может напишу програмку.
0

#4 Пользователь офлайн   nekyn 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 4
  • Регистрация: 17 Ноябрь 09

Отправлено 19 Ноябрь 2009 - 09:40

Вообще то я не думал что все так сложно, ведь 16ф628 это улучшенный вариант 16ф84 или не все так просто как мне кажется
0

#5 Пользователь офлайн   Admin 

  • Администратор
  • PipPipPip
  • Группа: Администратор
  • Сообщений: 536
  • Регистрация: 08 Август 08

Отправлено 19 Ноябрь 2009 - 18:59

Кода написан на асме, это низкий язык программирования. Разбираться в этом коде - страшное мучение (речь не идёт о профессионалах). Если бы код был на языке более высокого уровня - было бы намного проще.
0

#6 Пользователь офлайн   nekyn 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 4
  • Регистрация: 17 Ноябрь 09

Отправлено 19 Ноябрь 2009 - 20:45

Придется страшно помучаться, другого варианта нет. F628 хватает и просто есть желание повторить конструкцию
0

#7 Пользователь офлайн   Alex 

  • Активный участник
  • PipPipPip
  • Группа: Администратор
  • Сообщений: 307
  • Регистрация: 08 Август 08
  • Пол:Мужчина
  • Город:http://forum.eldigi.ru/

Отправлено 19 Ноябрь 2009 - 20:47

628_ого за глаза хватит для данной задачи.
А может быть Вы попробуете сами начать, а мы Вам подмахнём :) Гляди того и программить научитесь :blink:
0

#8 Пользователь офлайн   Admin 

  • Администратор
  • PipPipPip
  • Группа: Администратор
  • Сообщений: 536
  • Регистрация: 08 Август 08

Отправлено 20 Ноябрь 2009 - 18:52

Тогда уж лучше начинать писать на си.
Я не спорю, что асм быстрее и в этом смысле лучше... но есть мудрая фраза: "На ассемблере можно написать всё что угодно, но жизь коротка" :)
0

#9 Пользователь офлайн   nekyn 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 4
  • Регистрация: 17 Ноябрь 09

Отправлено 20 Ноябрь 2009 - 21:23

Научиться программировать конечно хочется, спасибо Alex за совет наверное так и сделаю. Вот только с чего начать?
0

#10 Пользователь офлайн   yulibb 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 13 Март 12

Отправлено 13 Март 2012 - 19:05

Для установки времени измерения импульсов от датчика скорости с точностью до 1 км в час, необходимо разделить 3600 на количество импульсов датчика скорости на 1 км пройденного пути.
Полученное значение времени измерения (в секундах) необходимо занести в программу. Например, 3600/6000=0,6 сек.

Помогите когда это применимо, которых адрес
0

#11 Пользователь офлайн   korsaj 

  • Участник
  • PipPip
  • Группа: Пользователи
  • Сообщений: 10
  • Регистрация: 14 Март 12

Отправлено 14 Март 2012 - 13:33

Просмотр сообщенияyulibb (13 Март 2012 - 19:05) писал:

Помогите когда это применимо, которых адрес


А в какую программу?
0

#12 Пользователь офлайн   yulibb 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 13 Март 12

Отправлено 15 Март 2012 - 01:03

Просмотр сообщенияkorsaj (14 Март 2012 - 13:33) писал:

Просмотр сообщенияyulibb (13 Март 2012 - 19:05) писал:

Помогите когда это применимо, которых адрес


А в какую программу?




HEX file в WINPIC800
0

#13 Пользователь офлайн   korsaj 

  • Участник
  • PipPip
  • Группа: Пользователи
  • Сообщений: 10
  • Регистрация: 14 Март 12

Отправлено 15 Март 2012 - 11:11

Вопрос стал совсем не понятен. Хекс файл от устройства описанного в первом посте или какойто другой?
0

#14 Пользователь офлайн   yulibb 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 13 Март 12

Отправлено 15 Март 2012 - 12:20

Просмотр сообщенияkorsaj (15 Март 2012 - 11:11) писал:

Вопрос стал совсем не понятен. Хекс файл от устройства описанного в первом посте или какойто другой?


да в первом посте
0

#15 Пользователь офлайн   korsaj 

  • Участник
  • PipPip
  • Группа: Пользователи
  • Сообщений: 10
  • Регистрация: 14 Март 12

Отправлено 15 Март 2012 - 14:20

Тогда наверно вот тут:
m3                                    ; инициализация счетчиков
		movlw	.10
		movwf	dig_U	        ; инициализируем счетчики разрядов
		movwf	dig_D	        ; для уменьшения кода разрядные счетчики
		movwf	dig_H	        ; будем изменять в обратном порядке 10,9,...,1
		movlw   .45            ;
		movwf	count1	        ; цикл подсчета импульсов (90 раз отсчет таймером по 4мс)

Надо написать movlw .75 вместо movlw .45
И проверить в протеусе.
3600/10000=0,36с 90*4=360мс 90/2=45
3600/6000=0,6с 150*4=600мс 150/2=75
0

#16 Пользователь офлайн   yulibb 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 13 Март 12

Отправлено 16 Март 2012 - 00:52

Просмотр сообщенияkorsaj (15 Март 2012 - 14:20) писал:

Тогда наверно вот тут:
m3                                    ; инициализация счетчиков
		movlw	.10
		movwf	dig_U	        ; инициализируем счетчики разрядов
		movwf	dig_D	        ; для уменьшения кода разрядные счетчики
		movwf	dig_H	        ; будем изменять в обратном порядке 10,9,...,1
		movlw   .45            ;
		movwf	count1	        ; цикл подсчета импульсов (90 раз отсчет таймером по 4мс)

Надо написать movlw .75 вместо movlw .45
И проверить в протеусе.
3600/10000=0,36с 90*4=360мс 90/2=45
3600/6000=0,6с 150*4=600мс 150/2=75


Большое спасибо
:D
0

#17 Пользователь офлайн   yulibb 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 13 Март 12

  Отправлено 16 Март 2012 - 01:17

И как эта константа получается:
В одном случае, а другой 45 ,75

movlw .45

и что она

спасибо
0

#18 Пользователь офлайн   korsaj 

  • Участник
  • PipPip
  • Группа: Пользователи
  • Сообщений: 10
  • Регистрация: 14 Март 12

Отправлено 16 Март 2012 - 09:12

Прикалываешся???

m3                                    ; инициализация счетчиков
                movlw   .10
                movwf   dig_U           ; инициализируем счетчики разрядов
                movwf   dig_D           ; для уменьшения кода разрядные счетчики
                movwf   dig_H           ; будем изменять в обратном порядке 10,9,...,1
                movlw   .75            ;
                movwf   count1          ; цикл подсчета импульсов (90 раз отсчет таймером по 4мс)


Перепиши так и все!

В первом моем ответе все расписано!
0

#19 Пользователь офлайн   yulibb 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 6
  • Регистрация: 13 Март 12

Отправлено 16 Март 2012 - 12:44

Просмотр сообщенияkorsaj (16 Март 2012 - 09:12) писал:

Прикалываешся???

m3                                    ; инициализация счетчиков
                movlw   .10
                movwf   dig_U           ; инициализируем счетчики разрядов
                movwf   dig_D           ; для уменьшения кода разрядные счетчики
                movwf   dig_H           ; будем изменять в обратном порядке 10,9,...,1
                movlw   .75            ;
                movwf   count1          ; цикл подсчета импульсов (90 раз отсчет таймером по 4мс)


Перепиши так и все!

В первом моем ответе все расписано!


ОК извините
0

#20 Пользователь офлайн   Le_Fleurs 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 3
  • Регистрация: 27 Июнь 12

Отправлено 01 Август 2012 - 13:14

День добрый подскажите хочу собрать спидометр и установить его в Таврию куда подключать? не могу разобраться. помогите.
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей