Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
04.10.2007, 16:17
|
|
Вид на жительство
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Подключение PIC16F877A
Подключил PIC16F877A по анологии с pic16f628a, но не запускается.
Бит конфигурации такой
__CONFIG(HS & PWRTDIS & WDTDIS & BORDIS & LVPDIS);
Главное в PROTEUS все работает.
Может есть какие особенности подключения?
-- Прилагается рисунок: --
|
|
|
|
04.10.2007, 16:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
А Вы уверены, что его записали ? Он поставляется с установленным битом низковольтного программирования и вначале его нужно снять.
https://kazus.ru/forum/topic_8349-0-asc-30.html
|
|
|
|
04.10.2007, 16:48
|
|
Вид на жительство
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Ну раз я с считываю то что в него записал, значит записал?
И в программаторе у меня с PGM на землю 240R стоит
|
|
|
|
04.10.2007, 16:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Логично. Проект в студию.
|
|
|
|
04.10.2007, 16:53
|
|
Вид на жительство
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Начнем с конфигурации, так как у меня даже порты не выстанавливаются.
Код:
|
int main()
{
int i=0;
__CONFIG(HS & PWRTDIS & WDTDIS & BORDIS & LVPDIS/* & PROTECT*/);
STATUS=0x00;
RCSTA=0b10010000;//настройка приемника uart
TXSTA=0b00100100;//настройка передатчика uart
SPBRG=10;// скорость uart 57600 baund
INTCON=0b11010000;//разрешения прирываний
OPTION=0b0100;//предделитель TMR0 = 32
T2CON=0b00000100;//предделитель TMR2 256
T0CS=0;//выбор внутреннего тактового сигнала для TMR0
RCIE=1;//прерывания от приемника uart
T0IE=1;//прерывания от TMR0
TMR2IE=1;//прерывания от TMR2
ADCON0=0b10000001;;//включаем АЦП
ADCON1=0b00001001;;//выключаем компараторы
ADIE=1;//прерывание для АЦП
TRISA=0b00101111;//настройка порта A
TRISB=0b11110000;//настройка порта В
TRISC=0b10011111;//настройка порта C
TRISD=0b00000000;//настройка порта D
TRISE=0b00000101;//настройка порта E
ADIF=0;//флаг прерывания от АЦП
PORTD=0b00000000;//значение порта D
RB0=0;//buzzer
RB1=0;//клавиатура
RB2=1;//клавиатура
RB3=1;//клавиатура
RE1=0;//индикатор состаяния
RC5=0;//модем выключен
RD5=0;//реле 2 выкл.
RD6=0;//реле 1 выкл.
RD7=0;//сирена выкл.
if (RE2==0) ReadStandartSetings();
else LoadSetings();
Pause(2,1);
f_expectation=1;
for(;;)
{
if (f_programming==1) Programming();
if (f_expectation==1) Expectation();
if (f_protection==1) Protection();
if (f_tamper==1) Tamper();
}
} |
|
|
|
|
04.10.2007, 17:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Весь проект.
Понятно. При инициализации регистра intcon срывается на обработку прерывания.
|
|
|
|
04.10.2007, 17:38
|
|
Вид на жительство
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Вроде запустился, Уже успел один контроллер спалить
Положил программатор на проводок с 12V и так точно что попал прям на питание контроллера
|
|
|
|
04.10.2007, 17:45
|
|
Вид на жительство
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Я тут заметил, что у меня в память данных ни чего не записывается, в прцесе работы.
Это тоже связанно с битом низкого уровня программирования?
Я что то не понял этот бит снимается если замкнуть PGM на массу через резистор, или это нужго делать каждый раз при записи?
|
|
|
|
04.10.2007, 17:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Я их тоже попалил в свое время.. На датчики 12 вольт приходят, неосторожное касание - и все, по контроллеру.
А по этой ошибке - симулятор в мп-лабе запустить и все видно - дело минуты.
Память данных - не знаю, время записать даете ?
Галочка кажется, восстанавливается командой - стереть все.
|
|
|
|
04.10.2007, 18:39
|
|
Вид на жительство
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Не память данных, я имею ввиду у меня не записывается, когда контроллер уже в девайсе работает. То есть
Код:
|
for (;i‹53;i++) EEPROM_WRITE(adress++, setings[i]);
i=0;
for (;i‹47;i++) EEPROM_WRITE(adress++, numbers[i]=0x30); |
он у меня какого то не записывает.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Применение PIC16F877A
|
kostyan-sokolov |
Микроконтроллеры, АЦП, память и т.д |
12 |
24.04.2009 08:17 |
pic16f877a + DV-16230
|
Mozart |
Микроконтроллеры, АЦП, память и т.д |
3 |
23.02.2006 21:50 |
2 вопроса по PIC16F877A - HELP!
|
pawelk |
Микроконтроллеры, АЦП, память и т.д |
1 |
13.06.2005 13:36 |
PIC16F877A
|
pawelk |
Микроконтроллеры, АЦП, память и т.д |
17 |
28.05.2005 23:54 |
АЦП PIC16F877A
|
pawelk |
Микроконтроллеры, АЦП, память и т.д |
0 |
20.05.2005 17:14 |
Часовой пояс GMT +4, время: 22:19.
|
|