|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 11:22 pm
|
Страница 1 от 1
|
[ 15 мнения ] |
|
| Автор |
Съобщение |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
 Помощ за 16F871
Пуснах първо тази тема във форума на Hardwarebg.com, но ме насочиха към този форум и мисля че тук и е мястото.
Та имам следния проблем:
Имам следния проблем:
Оптивам се да направя едно управление с микроконтролер, което да има и седемсегментна индикация. Досега съм работил само с 16F84A и не съм имал никакви проблеми. Обаче на него са му малко портовете и за това минах на този. Зададох му най елементарна програма (това е от MPLAB):
list p=16f871
#include <p16f871.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
ORG H'0000'
goto start
start bsf STATUS,RP0
bcf STATUS,RP1
movlw B'10010100'
movwf OPTION_REG
bcf STATUS,RP0
clrf PORTA
clrf PORTB
bsf STATUS,RP0
clrf TRISA
clrf TRISB
loop nop
goto loop
END
и когато меря с мултицет изходите на PORTA и PORTB, все ми дава от 3 до 5 волта, а би трябвало да е логическа 0. Когато задържа ресета на MCLR, за момент стойностите малко падат, и като пусна - пак се възстановяват. Генератора с кварца работи, с осцилоскопа ми излиза синусуидата.
Много ще се радвам някой да помогне, а и да даде някакво инфо или линкове специално за този пик, защото почти нищо не намирам в мрежата.
P.S. Ето и листинга от IC-Prog
; Generated by WinDis84, (c) Nigel Goodwin 1998.
LIST P=16F84, F=INHX8M
include "P16FXX.inc"
ORG 0x0000
GOTO Label_0001
Label_0001 BSF STATUS , RP0
BCF STATUS , RP1
MOVLW 0x94
MOVWF OPTION_REG
BCF STATUS , RP0
CLRF PORTA
CLRF PORTB
BSF STATUS , RP0
CLRF TRISA
CLRF TRISB
Label_0002 NOP
GOTO Label_0002
и се чудя защо ми дава (LIST P=16F84, F=INHX8M), когато съм задал 16F871?
P.P.S Кварца ми е на 4MHz, не знам дали това е проблем, но не намерих 20MHz. Схемата работи на 5V.
|
| Вто Окт 03, 2006 12:06 pm |
|
 |
|
didofen
Ранг: Популярен
Регистриран на: Вто Юни 27, 2006 11:13 am Мнения: 381 Местоположение: Варна
|
Има няколко неща.
Първо, ти си задал в сорса, че си с 871, но задал ли си го в настройките на МПЛАБ-а? Иначе МПАСМ няма да ти копмилира както трябва.
Второ, след като конгфигурираш портовете в ТРИС-а, е хубаво да си нулираш пак и ПОРТ регистрите.
Трето, има много литература, в сайта на Микрочип има колкото искаш, и за 871 има. Ако не намериш, пиши, ще ти я пратя както искаш.
Птри още въпроси, питай.
|
| Вто Окт 03, 2006 12:17 pm |
|
 |
|
VSU
Ранг: Напреднал
Регистриран на: Нед Авг 14, 2005 1:08 pm Мнения: 433 Местоположение: Казанлък
|
Виж там има 1 регистър казва се ADCON1 зареди в него 0x06 за да направиш ПОРТА цифрови IN/OUT
|
| Вто Окт 03, 2006 1:17 pm |
|
 |
|
didofen
Ранг: Популярен
Регистриран на: Вто Юни 27, 2006 11:13 am Мнения: 381 Местоположение: Варна
|
Да бе, верно, най-важното пропуснах да спомена за АДКОН1 регистъра 
Последна промяна didofen на Сря Окт 04, 2006 3:05 pm, променена общо 1 път
|
| Вто Окт 03, 2006 1:39 pm |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
Благодаря Ви много за бързите отговори. Ще изпробвам и ще напиша за резултата. Относно документацията, се рових в microchip.com, но само намерих datasheet-a. А мен ми трябват някакви примерни сорсове специално за този чип, така че ако имате нещо, пратете.
P.S. В MPLAB-a му задавам 16F871, но като отворя HEX файла с IC-PROG не ми го пище точно същия.
|
| Вто Окт 03, 2006 3:17 pm |
|
 |
|
didofen
Ранг: Популярен
Регистриран на: Вто Юни 27, 2006 11:13 am Мнения: 381 Местоположение: Варна
|
къде не ти го пише точно същия. като си го отвориш в ИС-Прога, си задаваш процесора от скролбарчето. в нех файла не се съдържа вида на процесора, а само валидни машинни кодове на операции за него. Задаваш си го ипосле зареждаш нех файла. а относно примери, вече наистина е малко трудно да намериш. мога да ти пратя някои страници, ама точно за 871 няма много. пиши точно конкретна нужда, и ще ти напиша примерен код.
|
| Вто Окт 03, 2006 4:29 pm |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
Ами ще се радвам на каквото и да е. Просто нещо, което да тръгне, колкото и елементарно да е. Защото зацепих още от самото начало, не мога да подкарам нищо. А с 16F84A нямах никакви проблеми, но за него има доста неща в нета, а и имам книгата на български от Млад конструктор.
|
| Вто Окт 03, 2006 7:15 pm |
|
 |
|
didofen
Ранг: Популярен
Регистриран на: Вто Юни 27, 2006 11:13 am Мнения: 381 Местоположение: Варна
|
ами ето тук има няколко готови примера: http://www.techdesign.be/projects/001/001.htm
просто сменяй 1-та на 2, и т.н., но и на двете места. на някой цифри нищо няма да излезе, давай следващата. примерите са за 874,877, но стават и за 871,872. а наистина посочи нещо конкретно за тема, и ще ти напиша програмата. кажи какви материали имаш, за да може бързо да си сглобиш схемата. инструкциите на цялата 16 серия са еднакви, разликата е в периферията (периферните регистри, с които се работи). така че ако знаеш инструкциите на 84, ще можеш лесно да се справиш и с 871. прочети внимателно пдф на 871 от сайта на микрочип и ще ти просветне, ако си на ти с тая материя.
успех 
|
| Сря Окт 04, 2006 9:42 am |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
 |  |  |  | didofen написа: ами ето тук има няколко готови примера: http://www.techdesign.be/projects/001/001.htmпросто сменяй 1-та на 2, и т.н., но и на двете места. на някой цифри нищо няма да излезе, давай следващата. примерите са за 874,877, но стават и за 871,872. а наистина посочи нещо конкретно за тема, и ще ти напиша програмата. кажи какви материали имаш, за да може бързо да си сглобиш схемата. инструкциите на цялата 16 серия са еднакви, разликата е в периферията (периферните регистри, с които се работи). така че ако знаеш инструкциите на 84, ще можеш лесно да се справиш и с 871. прочети внимателно пдф на 871 от сайта на микрочип и ще ти просветне, ако си на ти с тая материя. успех  |  |  |  |  |
Благодаря за информацията отново  . Ще трябва да прочета pdf на 16F871 подробно, защото явно има някой тънкости с този контролер, като ADCON1. Ще се помъча малко да го пусна, и ако имам въпроси ще пиша пак в тази тема. А възможно ли е чипа да е нещо дефектен, при условие че съм го взел нов, програмира се без проблеми и му работи тактовия генератор?
|
| Сря Окт 04, 2006 1:34 pm |
|
 |
|
didofen
Ранг: Популярен
Регистриран на: Вто Юни 27, 2006 11:13 am Мнения: 381 Местоположение: Варна
|
никога не можеш да си сигурен дали е наред контролера, но при условие че е нов и му работи кварца, моли се да е наред. а иначе е мн важно да прочетеш пдф, това фактически е най-важното и основното, а и е официална информация на производителя. тук имаш ацп, което е свързано с портА, и по подразбиране порта е включен към него (входовете са избрани за аналогови). затова трябва изрично да му кажеш, че искаш да са цифрови, като запишеш 0х06 в адцон1, който е контролен регистър 1 на ацп-то. а по въпроса, ти пусна ли си схемата, дето искаше да има 0в на портА и портБ?
|
| Сря Окт 04, 2006 3:04 pm |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
 |  |  |  | didofen написа: никога не можеш да си сигурен дали е наред контролера, но при условие че е нов и му работи кварца, моли се да е наред. а иначе е мн важно да прочетеш пдф, това фактически е най-важното и основното, а и е официална информация на производителя. тук имаш ацп, което е свързано с портА, и по подразбиране порта е включен към него (входовете са избрани за аналогови). затова трябва изрично да му кажеш, че искаш да са цифрови, като запишеш 0х06 в адцон1, който е контролен регистър 1 на ацп-то. а по въпроса, ти пусна ли си схемата, дето искаше да има 0в на портА и портБ? |  |  |  |  |
Снощи пак опитах като зададох 0х06 на ADCON1 и пак същия проблем. На PORTA си излизат логически единици на всички изводи. Предполагам, че сработва безкрайния цикъл, дето съм го дал накрая. Относно стойностите на OTION регистъра не съм сигурен 100% дали трябва да са така, защото ги взех примерно от 16F84A но би трябвало да са така. Следващия път ще пробвам с някой от другите портове, дето не са мултиплексирани, да видя какво ще излезе. В най-лошия случай ще потърся някой друг вид пик с повече портове, без допълнителни екстри като АЦП (и без това няма да го ползвам)
|
| Сря Окт 04, 2006 3:36 pm |
|
 |
|
didofen
Ранг: Популярен
Регистриран на: Вто Юни 27, 2006 11:13 am Мнения: 381 Местоположение: Варна
|
ама ти нулира ли портовете, СЛЕД като си ги конфигурирал като изходи? защото според програмата, би трябвало да имаш 0 на порта. а и портб не е с ацп, и поне на него трябва да имаш 0в. а по отношение на ОПТИОН регистъра, той има същото значение, като на 84, така че там нямаш проблеми. дано успееш да го подкараш, много е яко да видиш как върви програмата ти наживо!
|
| Сря Окт 04, 2006 4:00 pm |
|
 |
|
VSU
Ранг: Напреднал
Регистриран на: Нед Авг 14, 2005 1:08 pm Мнения: 433 Местоположение: Казанлък
|
Ето ти тест за порт A,B,C i tmr0 всичко по краката на портовете A,B,C трябва да се клати  трябва да работи с кварц >= 4МХц ако е по-малък осцилатора да е на XT
|
| Чет Окт 05, 2006 2:01 am |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
Ей, благодаря много  . Довечера ако имам време ще пробвам програмката, но съботa и неделя обезателно ще се позаровя в нещата, защото това ми е влязло под кожата и не ми дава мира. Като има резултати, ще пиша в тази тема.
|
| Чет Окт 05, 2006 3:27 pm |
|
 |
|
Zeus
Ранг: Почетен член
Регистриран на: Вто Окт 03, 2006 11:58 am Мнения: 924 Местоположение: Ботевград
|
Най-накрая открих проблема. Благодаря много VSU (също така и на didofen). Програмирах чипа с програмата дето ми я прати VSU и като че ли всичко беше наред. И започнах да сравнявам нещата. След неколкократни проби и програмирания на чипа се оказа, че проблема е в първоначалната инициализация, а именно _LVP_OFF. Доколкото намерих информация, това се ползва за програмиране на чипа с ниски напрежения. Когато не се изключи, просто каквото и да му пробвам, явно не тръгва. След като го зададох, изкарах нулите на портовете. Предполагам, че няма да възникнат повече проблеми, но все пак... не се знае. Важното е, че има хора дето разбират нещата и са готови да помогнат. Много Ви благодаря отново. Ако има нещо друго, пак ще питам 
|
| Чет Окт 05, 2006 8:59 pm |
|
|
|
Страница 1 от 1
|
[ 15 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 2 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|