помогите с pic16f877

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
giorgi
Родился
Сообщения: 16
Зарегистрирован: Чт сен 22, 2011 01:35:11

Re: помогите с pic16f877

Сообщение giorgi »

K@T спасибо получил.
Реклама
Аватара пользователя
К@Т
Говорящий с текстолитом
Сообщения: 1573
Зарегистрирован: Сб окт 09, 2010 12:33:48
Откуда: Незалежная

Re: помогите с pic16f877

Сообщение К@Т »

giorgi писал(а):K@T спасибо получил.
Пжалста :)
У кошки 4 ноги и хвост-плюс,минус,вход,выход,а хвост-земля.....Надо переходить с китайской бурды на канифоль.......[url=http://infobar.hsdn.org/][img]http://static.hsdn.org/infobar/350x60.gif[/img][/url]
Реклама
Аватара пользователя
AVT-28
Потрогал лапой паяльник
Сообщения: 378
Зарегистрирован: Вс сен 11, 2011 12:35:11

Re: помогите с pic16f877

Сообщение AVT-28 »

Тема моя заглохла. Хорошо дайте пример на C++ опросить кнопки подключеные к порту B биты 0 1 2.
Я делаю так.

И это не работает!!! Поправьте пожалуйста код что бы это работало. Я уже соображу по аналогии. Все что до этого советовали не работает. Какая то мелочь зараза.
Кнопки подключены к 16f887 контакты 33, 34, 35 (RB0, RB1, RB2). Кнопки подтянуты резисторами на +5 воьт, при замыкании дают 0 на выводах процессора.
Я уже не спрашиваю про динамический опрос клавиатурной матрицы, это на потом оставлю. Есть еще куча другого в чем я легко могу разобраться. Но вот это меня убивает.
Получается только что на RB0 и RB2 присутствует 1 а на RB1 всегда 0, как такое может быть он же подтянут тоже на +5.

Код: Выделить всё

#include <pic.h>	// Include header file for MCU
#include <lcd.h>
#define _XTAL_FREQ	20000000	// Define Frequency 20.0 MHz for function __delay_ms
__CONFIG(HS & WDTDIS & LVPDIS);	// Config. High speed clock,Disable watchdog and Disable LVP
void Delay_ms(unsigned int tick)
{
     while(tick--)	// Loop counter delay time
     {
      __delay_ms(1);	// Delay 1 ms
     }     
}
void main()
{
        lcd_init();	
	TRISB = 0;		
	PORTB = 0b11111111;		
	ANS8 = 0;		 
	while(1)	
	{
		if(RB0==0)	
		{
                	lcd_puts(0x80,"Нажали кнопку 1 ");		
			Delay_ms(200);		
		}
		if(RB1==0)	
		{
			lcd_puts(0x80,"Нажали кнопку 2");
			Delay_ms(200);		
		}
		if(RB2==0)	
		{
			lcd_puts(0x80,"Нажали кнопку 3");
			Delay_ms(200);		
		}
	}
}
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: помогите с pic16f877

Сообщение urry »

TRISB=0xFF; // INPUT
ANSELH=0;
прекратите обзывать С компилятор как С++.
Это разные вещи.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: помогите с pic16f877

Сообщение Аlex »

Код: Выделить всё

   TRISB = 0;      
   PORTB = 0b11111111; 
Я надеюсь Вы не на железе так над контроллером издеваетесь ? :o
Направления портов выберите правильное!

PS: Не помешало бы Вам ДатаШит покурить немного. Тем более, что он есть на Русском и всё разжовано до некуда...
Реклама
Аватара пользователя
AVT-28
Потрогал лапой паяльник
Сообщения: 378
Зарегистрирован: Вс сен 11, 2011 12:35:11

Re: помогите с pic16f877

Сообщение AVT-28 »

Аlex писал(а):

Код: Выделить всё

   TRISB = 0;      
   PORTB = 0b11111111; 
Я надеюсь Вы не на железе так над контроллером издеваетесь ? :o
Направления портов выберите правильное!

PS: Не помешало бы Вам ДатаШит покурить немного. Тем более, что он есть на Русском и всё разжовано до некуда...
Конечно на железе а на чем же еще. :) Сразу в практике.
А где его на русском нарыть? Я был бы рад почитать. Конечно начинаю во что то врубаться медленно и это радует.
Реклама
Аватара пользователя
AVT-28
Потрогал лапой паяльник
Сообщения: 378
Зарегистрирован: Вс сен 11, 2011 12:35:11

Re: помогите с pic16f877

Сообщение AVT-28 »

urry писал(а):TRISB=0xFF; // INPUT
ANSELH=0;
прекратите обзывать С компилятор как С++.
Это разные вещи.
А ясно, не называю больше.
Чегой то я вообще не понимаю, работаю с PORTB, но подключив ANSELH = 0 все заработало как надо. Вроде как ANSELH предназначен для PORTA что бы его в цифровой или аналоговый переключать, или я быстрее всего что то не то понимаю. Но работает теперь то что я уже 3-й день сделать не мог!!! Спасибо огромное.
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: помогите с pic16f877

Сообщение urry »

ну нельзя же настолько себя не любить.
887 - это продолжение 877, описание которого на русском есть здесь http://www.microchip.ru/lit/?mid=1x0
Дальше - качаем описание 887 с сайта микрочипа и смотрим, какие регистры добавились и за что отвечают - их там всего десяток новых. И видим, что для перевода на аналог-цифра для порта А ANSEL а для порта В ANSELH
Аватара пользователя
AVT-28
Потрогал лапой паяльник
Сообщения: 378
Зарегистрирован: Вс сен 11, 2011 12:35:11

Re: помогите с pic16f877

Сообщение AVT-28 »

Вот спасибо, классная информация.
giorgi
Родился
Сообщения: 16
Зарегистрирован: Чт сен 22, 2011 01:35:11

Re: помогите с pic16f877

Сообщение giorgi »

Привет всем
У меня ко всем такой вопрос.
Сегодня впервые включил pic16f628 .Написал элементарную прогу.

LDmicro0.1
MICRO=Microchip PIC16F628 18-PDIP or 18-SOIC
CYCLE=10000
CRYSTAL=20000000
BAUD=2400

IO LIST
X1 at 2
Y3 at 1
END

PROGRAM
RUNG
CONTACTS X1 0
COIL Y3 0 0 0
END

т.е.если на второй ножке подам единицу на первой тоже сядет единица.
Т.о.работает (светодиод загорается) ,а если сделаю наоборот,т.е. для входа использую первую ножку .а для выхода вторую не работает. Там имеет значение какой ножке присвоешь вход ,а какой выход?
Может литературу какую небудь подскажете.
А то в даташитах такая терминология ,что для меня пока темный лес.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: помогите с pic16f877

Сообщение Аlex »

А то в даташитах такая терминология ,что для меня пока темный лес.
Для Вас Русский язык - тёмный лес ?
В даташитах про
имеет значение какой ножке присвоешь вход ,а какой выход
написано более чем доходчиво...
Это называется - "Мне лень читать и вникать. Расскажите мне всё, разжуйте и в рот положите...".
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: помогите с pic16f877

Сообщение Dmitry Dubrovenko »

giorgi писал(а):Сегодня впервые включил pic16f628
Скоро уже про чайники и телевизоры писАть будем. :?
И куда только модераторы смотрят... :roll:
ICQ нет, и, в ближайшее время, не будет.
giorgi
Родился
Сообщения: 16
Зарегистрирован: Чт сен 22, 2011 01:35:11

Re: помогите с pic16f877

Сообщение giorgi »

спасибо за помащь.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»