Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ivan_fd  
Форум Picbasic.ru » Программирование МК » PicBasicPro » Часы на PICBasicPro (Начинающий.)
Часы на PICBasicPro
ivan_fd Дата: Чт, 22.01.2009, 16:17  |                                                                                                                Сообщение # 1
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Привет всем! Прошу сильно не пинать, я только начинаю cry
Может у кого есть пример, простейших часов под PICBasicPro, (~PIC16F628A)
или ссылочку?
Буду премного благодарен.
Спасибо!

Сообщение отредактировал ivan_fd - Чт, 22.01.2009, 16:19
ЯНДЕКС Дата: 22.01.2009
brown Дата: Чт, 22.01.2009, 23:41  |                                                                                                                Сообщение # 2
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 333
Репутация: 12   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

Посмотрите здесь, правда на Протоне [url=http://basicpic.moy.su/forum/5-97-1]
Ну и в примерах по РВР есть простейшие часы.


Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
ivan_fd Дата: Пт, 23.01.2009, 12:21  |                                                                                                                Сообщение # 3
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Большое спасибо!
holyuser Дата: Сб, 14.02.2009, 02:34  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 228
Репутация: 5   ±
Замечания:   ±
На сайте с 12.12.2007

Статус: Offline

Еще вариант часов на PIC16LF628A, с кварцем на 32.768 КГц, используется генератор таймера TMR1.
При срыве основного питания (при напряжении ниже 9В), пик работает от литиевой батарейки в режиме низкого энергопотребления (около 0,1 мкА).
Подобным способом легко можно организовать часы реального времени в PBP, обновление происходит в прерываниях, один раз в секунду, практически "прозрачно" для основной программы на бейсике.
Прикрепления: SampleClock.rar (25.8 Kb)
ivan_fd Дата: Пт, 20.02.2009, 16:17  |                                                                                                                Сообщение # 5
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Спасибо, посмотрим.
vpashko Дата: Пт, 20.02.2009, 21:55  |                                                                                                                Сообщение # 6
Группа: Пользователи
Ранг:  Новенький
Сообщений: 13
Репутация: 0   ±
Замечания:   ±
На сайте с 25.06.2008

Статус: Offline

100% рабочие часы, сам собирал, заработали с пол оборота. (www.kaligraf.narod.ru/kaligraf_narod_002.html)
Сообщение отредактировал vpashko - Сб, 21.02.2009, 11:37
ivan_fd Дата: Чт, 05.03.2009, 14:31  |                                                                                                                Сообщение # 7
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Мне нужно будет перерабатывать, так как мне нужно под семи сегментный индикатор,
и выполнять некие задачи в определенное время. За основу я думаю сойдет. Спасибо!

Добавлено (05.03.2009, 2:31:24)
---------------------------------------------

Quote (holyuser)
Еще вариант часов на PIC16LF628A, с кварцем на 32.768 КГц, используется генератор таймера TMR1.
При срыве основного питания (при напряжении ниже 9В), пик работает от литиевой батарейки в режиме низкого энергопотребления (около 0,1 мкА).
Подобным способом легко можно организовать часы реального времени в PBP, обновление происходит в прерываниях, один раз в секунду, практически "прозрачно" для основной программы на бейсике.

Привет! Кто то делал это в Протеусе. Я что то не могу запустить.
Настраиваю часы, минуты, выхожу с режима SET, чачи стоят.

vlass-off Дата: Пт, 06.03.2009, 21:56  |                                                                                                                Сообщение # 8
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 21
Репутация: 0   ±
Замечания:   ±
На сайте с 16.02.2009

Статус: Offline

http://basicpic.moy.su/forum/5-153-1

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


Я новичок, но буду стараться...
ivan_fd Дата: Вт, 10.03.2009, 13:20  |                                                                                                                Сообщение # 9
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Спасибо, теперь наверно нужно будет Протон изучать. dry
DNM Дата: Вт, 04.10.2011, 23:51  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 75
Репутация: 0   ±
Замечания:   ±
На сайте с 29.09.2011

Статус: Offline

можно что-то вроде этого, если не леньсегменты подкл.

'***************************************************
'программа проекта "ЧАСЫ-4 (семисегментный индикатор
'на четыре цифры)" для 16F628 (A)
'часы, отсчет начинается с установленного времени
'кнопка на RA0 - установка времени
'кнопка на RA1 - пуск часов
'***************************************************
'*** переменные ***
u VAR BYTE[10] ;задаем массив
n var byte
t var byte
a var byte ;список переменных
d1 var byte ;код первой цифры
d2 var byte ;код второй цифры
d3 var byte ;код третьей цифры
d4 var byte ;код четвертой цифры
'****************************
'***конфигурируем порты******

TRISB = %00000000 ;конфигурируем порт Б
porta=0
portb=0 ;обнуляем clrf
'*** Сегменты индикатора ***
' RB7
' ---
'RB2|RB1|RB6
' ---
'RB3| |RB5
' --- .RB0
' RB4
' --- --- --- ---
' | || || || |
' --- --- --- ---
' | || || || |
' --- --- --- ---
' RA3 RA2 RA0 RA1
'******************************
;заполняем массив
' если с общим анодом
u[0]=%00000011 '---0---
u[1]=%10011111 '---1---
u[2]=%00100101 '---2---
u[3]=%00001101 '---3---
u[4]=%10011001 '---4---
u[5]=%01001001 '---5---
u[6]=%01000001 '---6---
u[7]=%00011111 '---7---
u[8]=%00000001 '---8---
u[9]=%00001001 '---9---
' если с общим катодом
' u[0]=%11111100 '---0---
' u[1]=%01100000 '---1---
' u[2]=%11011010 '---2---
' u[3]=%11110010 '---3---
' u[4]=%01100110 '---4---
' u[5]=%10110110 '---5---
' u[6]=%10111110 '---6---
' u[7]=%11100000 '---7---
' u[8]=%11111110 '---8---
' u[9]=%11110110 '---9---
'***тело программы***********
a=0
d1=0
d2=0 ;** обнуляем переменные
d3=0
d4=0
enter:
call outportA_config
call ind_A
portb.0=1 'зажигаю точку - это плюсовой общий кнопок
porta.0=0
porta.1=0
call inpportA_config 'порт а на считывание
for n=1 to 10
if porta.1=1 then goto start1
if porta.0=1 then d1=d1+1
if d1>9 then d1=0:d2=d2+1
if d2>6 then d2=0:d3=d3+1
if d3>9 then d3=0:d4=d4+1
if d4>59 then d1=0:d2=0:d3=0:d4=0
next n
call outportA_config

'for n=1 to 10 ' задержка обработки события нажатия кнопки
call ind_A ' отображение результата
'next n

goto enter
start1:
call outportA_config
start:
'*** непосредственно часы ***
portb.0=0
a=a+1: if a>59 then a=0:d1=d1+1 ; последовательно инкрементируем значения
portb.0=1
for t=1 to 50
if d1>9 then d1=0:d2=d2+1
if d2>6 then d2=0:d3=d3+1

if d3>9 then d3=0:d4=d4+1
if d4>59 then d1=0:d2=0:d3=0:d4=0
'call ind_A
'
call ind_K
next t
goto start ;бесконечно зациклить

'**** подпрограмма индикации четырех цифр ***
'*** общий анод ***
ind_A
portb = u[d2] ;значение первой цифры посылать в PORTB
porta.0=1 ;зажечь первую цифру
pause 5 ;подождать 10 мс
porta.0=0 ;потушить первую цифру
portb = u[d1] ;значение второй цифры посылать в PORTB
porta.1=1 ;зажечь вторую цифру
pause 5 ;подождать 10 мс
porta.1=0 ;потушить вторую цифру
portb = u[d3] ;значение третьей цифры посылать в PORTB
porta.2=1 ;зажечь третью цифру
pause 5 ;подождать 10 мс
porta.2=0 ;потушить третью цифру
portb = u[d4] ;значение четвертой цифры послать в PORTB
porta.3=1 ;зажечь четвертую цифру
pause 5 ;подождать 10 мс
porta.3=0 ;потушить четвертую цифру
return

'**** подпрограмма индикации четырех цифр ***
'*** общий катод ***
ind_K
portb = u[d1] ;значение первой цифры посылать в PORTB
porta.0=0 ;зажечь первую цифру
pause 5 ;подождать 10 мс
porta.0=1 ;потушить первую цифру
portb = u[d2] ;значение второй цифры посылать в PORTB
porta.1=0 ;зажечь вторую цифру
pause 5 ;подождать 10 мс
porta.1=1 ;потушить вторую цифру
portb = u[d3] ;значение третьей цифры посылать в PORTB
porta.2=0 ;зажечь третью цифру
pause 5 ;подождать 10 мс
porta.2=1 ;потушить третью цифру
portb = u[d4] ;значение четвертой цифры послать в PORTB
porta.3=0 ;зажечь четвертую цифру
pause 5 ;подождать 10 мс
porta.3=1 ;потушить четвертую цифру
return

outportA_config
asm ;конфигурируем порт А
MOVLW 0x07 ;выключить компаратор
MOVWF CMCON ;каналы PORTA - цифровые входы/выходы
BCF STATUS, RP1
BSF STATUS, RP0
MOVLW 0x0 ;каналы PORTA - все на вывод
MOVWF TRISA
endasm
TRISA=%00000000
return

inpportA_config
asm ;конфигурируем порт А
MOVLW 0x07 ;выключить компаратор
MOVWF CMCON ;каналы PORTA - цифровые входы/выходы
BCF STATUS, RP1
BSF STATUS, RP0
MOVLW 0xF ;каналы PORTA - все на вывод
MOVWF TRISA
endasm
TRISA=%00001111
return


Более подробно здесь: http://asemlab.net/
Форум Picbasic.ru » Программирование МК » PicBasicPro » Часы на PICBasicPro (Начинающий.)
  • Страница 1 из 1
  • 1
Поиск: