Часы на PICBasicPro
|
|
ivan_fd |
Дата: Чт, 22.01.2009, 16:17 | Сообщение # 1 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Привет всем! Прошу сильно не пинать, я только начинаю Может у кого есть пример, простейших часов под PICBasicPro, (~PIC16F628A) или ссылочку? Буду премного благодарен. Спасибо!
Сообщение отредактировал
ivan_fd - Чт, 22.01.2009, 16:19
|
|
|
|
brown |
Дата: Чт, 22.01.2009, 23:41 | Сообщение # 2 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
333
Замечания:
±
На сайте с 18.09.2007
Статус:
Offline
|
Посмотрите здесь, правда на Протоне [url=http://basicpic.moy.su/forum/5-97-1] Ну и в примерах по РВР есть простейшие часы.
Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
|
|
|
|
ivan_fd |
Дата: Пт, 23.01.2009, 12:21 | Сообщение # 3 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Большое спасибо!
|
|
|
|
holyuser |
Дата: Сб, 14.02.2009, 02:34 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
228
Замечания:
±
На сайте с 12.12.2007
Статус:
Offline
|
Еще вариант часов на PIC16LF628A, с кварцем на 32.768 КГц, используется генератор таймера TMR1. При срыве основного питания (при напряжении ниже 9В), пик работает от литиевой батарейки в режиме низкого энергопотребления (около 0,1 мкА). Подобным способом легко можно организовать часы реального времени в PBP, обновление происходит в прерываниях, один раз в секунду, практически "прозрачно" для основной программы на бейсике.
|
|
|
|
ivan_fd |
Дата: Пт, 20.02.2009, 16:17 | Сообщение # 5 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Спасибо, посмотрим.
|
|
|
|
vpashko |
Дата: Пт, 20.02.2009, 21:55 | Сообщение # 6 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
13
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 16.02.2009
Статус:
Offline
|
http://basicpic.moy.su/forum/5-153-1 думаю это может помочь правда суть немного другая, чам отображаются и впемя и дата и день недели и напоряжене бортовой сети ( но это можно не включать) Я сейчас как раз собираю... на дняз собрал пограмматор, теперь эти часы, которые благополуно планируется приспособить в в машине.
Я новичок, но буду стараться...
|
|
|
|
ivan_fd |
Дата: Вт, 10.03.2009, 13:20 | Сообщение # 9 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Спасибо, теперь наверно нужно будет Протон изучать.
|
|
|
|
DNM |
Дата: Вт, 04.10.2011, 23:51 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
75
Замечания:
±
На сайте с 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/
|
|
|
|