Pic Basic pro для начинающих
|
|
ivan_fd |
Дата: Чт, 08.10.2009, 14:52 | Сообщение # 46 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
То ecilop А вы пробовали сделать выводы порта А цифровыми портами Ввода\Вывода?
Сообщение отредактировал
ivan_fd - Чт, 08.10.2009, 14:53
|
|
|
|
ecilop |
Дата: Чт, 08.10.2009, 15:08 | Сообщение # 47 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
13
Замечания:
±
На сайте с 08.04.2009
Статус:
Offline
|
Не пробовал, я думал достаточно в регистре трисА, установить на вход...Да в предыдущем устройстве я так делал и все работало
|
|
|
|
MobyDick |
Дата: Чт, 08.10.2009, 16:23 | Сообщение # 48 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
14
Замечания:
±
На сайте с 08.09.2009
Статус:
Offline
|
МикроКодСтудио 3.0.0.0 не компилит 16F628A где подвох? Выдает кучу ошибок (225,212,300)Помогите кто сталкивался...
Учиться никогда не поздно....
|
|
|
|
slavauk |
Дата: Чт, 08.10.2009, 17:11 | Сообщение # 49 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
64
Замечания:
±
На сайте с 14.03.2009
Статус:
Offline
|
Quote (MobyDick) не компилит 16F628A Так в 16f628a нет АЦП .
|
|
|
|
MobyDick |
Дата: Чт, 08.10.2009, 17:20 | Сообщение # 50 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
14
Замечания:
±
На сайте с 08.09.2009
Статус:
Offline
|
slavauk, Блин....точно.А все невнимательность и торопливость.....
Учиться никогда не поздно....
|
|
|
|
contra |
Дата: Вс, 11.10.2009, 12:35 | Сообщение # 51 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.06.2009
Статус:
Offline
|
Всем привет! Господа форумчане, помогите разобраться! Пытаюсь написать программу для счётчика импульсов на три разряда За основу взял код из книги Ибрагима Дохана, но сколько не бился ничего не выходит. Помогите пожалуйста! вот код программы : (PIC16F627) Code Cnt var byte Digit var byte pattern var byte Digit1 var PORTA.0 Digit2 var PORTA.1 digit3 var PORTA.2 Pbutton var PORTB.7 i var byte
CMCON = 7 TRISA = 0 TRISB = $80 '++++++++++++ прерывания ++++++++++ INTCON = %00100000 OPTION_REG = %00000111 TMR0 = 217 on interrupt goto ISR INTCON = %10100000
Cnt = 0 loop: button Pbutton,0,255,0,i,0,loop cnt = cnt + 1 goto loop disable ISR: TMR0 = 217
digit = cnt dig 2 ' Самый старший разряд lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F], pattern pattern = pattern ^ $FF digit1=1 portb = pattern digit2 = 1 digit3 = 1 pause 1
digit = cnt dig 1 ' Средний разряд lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F], pattern pattern = pattern ^ $FF
portb = pattern digit1= 1 digit2=1
pause 5
digit = cnt dig 0'младший разряд LOOkup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F], pattern pattern = pattern ^ $FF digit1 = 0 PORTB = Pattern digit2=1 pause 1
'
INTCON.2 = 0 resume enable end
|
|
|
|
ivan_fd |
Дата: Вс, 11.10.2009, 15:24 | Сообщение # 52 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Вот так попробуйте, в железе не проверял. Code @ device PIC16F627A, INTRC_OSC_NOCLKOUT, WDT_OFF, PWRT_ON, PROTECT_OFF, CPD_OFF, BOD_OFF, LVP_OFF Cnt var byte Digit var byte pattern var byte odin var byte dva var byte tri var byte Digit1 var PORTA.0 Digit2 var PORTA.1 digit3 var PORTA.2 Pbutton var PORTB.7 i var byte
CMCON = 7 TRISA = 0 TRISB = $80 '++++++++++++ прерывания ++++++++++ INTCON = %00100000 OPTION_REG = %00000111 TMR0 = 156 on interrupt goto ISR INTCON = %10100000
'Cnt = 0
LOOP: Cnt = 0 ' Initialise Cnt to 0 NXT:
button Pbutton,0,255,0,i,0,nxt cnt = cnt + 1 Digit = Cnt DIG 2 ' Get 100s digit GOSUB CONVERT ' Get segments to turn on odin = Pattern ' Display 100s digit
Digit = Cnt DIG 1 ' Get 10s digit GOSUB CONVERT ' Get segments to turn on dva = Pattern ' Display 10s digit
Digit = Cnt DIG 0 ' Get 1s digit GOSUB CONVERT ' Get segments to turn on tri = Pattern ' Display 1s digit
FOR i = 1 to 1000 Pause 1 ' Wait 1 second NEXT i
IF Cnt > 200 THEN LOOP ' If Cnt > 99 then goto LOOP GOTO NXT ' Continue
'loop: 'button Pbutton,0,255,0,i,0,loop 'cnt = cnt + 1 'goto loop disable
'============================ ' Interupt '============================
ISR: TMR0 = 155 PORTB = odin digit3 = 0 Digit2 = 0 Digit1 = 1 PAUSE 4 digit1 = 0 PORTB = dva digit3 = 0 Digit2 = 1 Digit1 = 0 PAUSE 4 digit2 = 0 PORTB = tri digit3 = 1 Digit2 = 0 Digit1 = 0 PAUSE 4 digit3 = 0 INTCON.2 = 0 resume enable
Convert: LOOKUP Digit, [$3F, $06, $5B, $4F, $66, $6D, $7D, $07, $7F, $6F], Pattern Pattern = Pattern ^ $FF ' Invert bits of variable Pattern RETURN end
|
|
|
|
contra |
Дата: Вс, 18.10.2009, 18:58 | Сообщение # 53 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.06.2009
Статус:
Offline
|
ivan fd Большое спасибо! В Proteus работает нормально. Я только изменил: Cnt var WORD ; И соответственно: IF Cnt = 999 THEN Loop теперь буду пробовать в железеДобавлено (18.10.2009, 18.58.33) --------------------------------------------- Здравствуйте, господа программисты! Подскажите плз, можно ли использовать программу Ic-Prog для кодов написанных на PicBasic Pro? Если можно, то как работать с этой программой и какой программатор для этого подходит?
|
|
|
|
evgenb |
Дата: Вс, 18.10.2009, 21:36 | Сообщение # 54 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
91
Замечания:
±
На сайте с 14.09.2007
Статус:
Offline
|
Почитайте здесь: http://miliamper.narod.ru/Extra-PIC/Extra-PIC.htm
|
|
|
|
OLEGA |
Дата: Чт, 19.11.2009, 15:39 | Сообщение # 55 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
3
Замечания:
±
На сайте с 19.11.2009
Статус:
Offline
|
Здравствуйте, господа и товарищи! Начал осваивать ПБП. Собрал JDM программатор, поставил Микрокодестудио. Вобщем все шьется, все работает. Ну как все - пишу пока простенькие алгоритмы. Возник вопрос такой: как и где в программе обозначить, что у меня кварц стоит на 8МГц? Это устраняется пересчетом, конечно, но неудобно же, не по-людски ))) Подскажите, кому не влом. Ах да, чуть не забыл: у меня проект на PIC16F628A, хотя, я думаю, роЯли никакой. Заранее благодарю!
|
|
|
|
ivan_fd |
Дата: Чт, 19.11.2009, 16:58 | Сообщение # 56 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Цитата OLEGA Возник вопрос такой: как и где в программе обозначить, что у меня кварц стоит на 8МГц? Это устраняется пересчетом, конечно, но неудобно же, не по-людски ))) Подскажите, кому не влом.
Вот эту и эту книгу вы смотрели?
Во второй книге на 54 стр.
|
|
|
|
brown |
Дата: Чт, 19.11.2009, 16:59 | Сообщение # 57 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
333
Замечания:
±
На сайте с 18.09.2007
Статус:
Offline
|
Quote (OLEGA) как и где в программе обозначить, что у меня кварц стоит на 8МГц? DEFINE OSC 8 ; частота генератора
Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
|
|
|
|
OLEGA |
Дата: Пт, 20.11.2009, 07:47 | Сообщение # 58 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
3
Замечания:
±
На сайте с 19.11.2009
Статус:
Offline
|
Спасибо, друзья! ivan_fd, дело в том что по инету "гуляет" книга Чака Х. с некоторыми пропущеными страницами. А вот за ссылку на книгу Хилинского отдельное Вам спасибо.
|
|
|
|
Эд |
Дата: Вс, 13.12.2009, 18:43 | Сообщение # 59 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
10
Замечания:
±
На сайте с 30.08.2009
Статус:
Offline
|
Здравствуйте господа форумчане! помогите начинающему,проблема в следующем пишу элементарную прогу для пика 12ф629 поморгать светодиодом компилю и вставляю в Протеус не моргает гад хоть тресни и ошибок не находит не компилятор не протеус текст такой: Symbol LED = GPIO.0 GPIO = %111110 main: LED = 1 Pause 1000 LED = 0 Pause 1000 goto main
|
|
|
|
demanik |
Дата: Вс, 13.12.2009, 21:44 | Сообщение # 60 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Так работает: @ device pic12F629, intrc_osc_noclkout, wdt_on, PWRT_ON,mclr_off, protect_off Symbol LED = GPIO.0 TRISIO = %111110' указывает направление порта вход или выход main: LED = 1 Pause 1000 LED = 0 Pause 1000 goto main
Попробуй всё и вся... может быть пол...
Сообщение отредактировал
demanik - Вс, 13.12.2009, 21:46
|
|
|
|