Цитата
... Подскажите что здесь не так, схема не верна или в програме ошибка???
Похоже, и то, и другое...
По программе:
- нужно переключить порт D на выход, если хотите что-то туда выводить. Записать нули в соотв. биты TRISD. В данном случае - во все.
По схеме:
- Вывод RB6 нужно подтянуть к земле резистором (1-10К), если вы замыкаете кнопку на питание. Иначе, при ненажатой кнопке, на RB6 будет непонятно какой (плавающий) потенциал. Кстати, обычно делают наоборот - подтягивают резистором к питанию, а замыкают кнопкой на землю.
- Вывод MCLR нужно подтягивать к питанию, а не к земле. Если используете внутрисхемное программирование, то номинал резистора нужно увеличить до 5-10К.
- Светодиоды, также, лучше подключить общей точкой к питанию, а не к земле. Соответственно, развернув их, и включать подачей не 1, а 0.
- Вообще-то, не рекомендуется подключать всю нагрузку к одному порту (тем более, когда есть выбор). Можно превысить допустимый суммарный ток для порта (см. даташит).
- На питание пика, как правило, ставят два конденсатора: электролитический - емкостью в несколько единиц и десятков микрофарад, и керамический - порядка 0,1 мкф, поближе к выводам Vdd и Vss.
- Рекомендуемые номиналы конденсаторов для кварца нужно смотреть в ДШ...