Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 09.09.2011, 09:30  
Хатуль_мадан
Частый гость
 
Регистрация: 07.08.2011
Адрес: Уфа
Сообщений: 22
Сказал спасибо: 10
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
Хатуль_мадан на пути к лучшему
По умолчанию Re: PIC16F876

Еще отличие 876 может быть в максимальной частоте тактирования 4, 10, 20 МГЦ в то время 876А обычно с максимальной 20МГц, может и другие бывают, но не встречал. Основное отличие в аналоговом компараторе, у 876 его нет.
Реклама:
Хатуль_мадан вне форума  
Непрочитано 09.09.2011, 10:39  
korsaj
Частый гость
 
Регистрация: 12.05.2009
Сообщений: 44
Сказал спасибо: 3
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
korsaj на пути к лучшему
По умолчанию Re: PIC16F876

------------

Последний раз редактировалось korsaj; 09.09.2011 в 10:45.
korsaj вне форума  
Непрочитано 09.09.2011, 10:40  
korsaj
Частый гость
 
Регистрация: 12.05.2009
Сообщений: 44
Сказал спасибо: 3
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
korsaj на пути к лучшему
По умолчанию Re: PIC16F876

Сообщение от Pavel55 Посмотреть сообщение
Подскажите а как тогда быть со второй кнопкой?. Кажись всеровно необходимо применять таймеры и прерывания. Пока кнопка нажата идет отчет, если отпустил раньше отчет возвращается к нулю. Может есть класический пример? Спасибо.
Вот пример, работы с прерываниями для тармера только для p16f874a. немного запутано, но все объяснимо, появятся вопросы спрашивай.
Код:
	include "p16f874a.inc"
	__config _PWRTE_ON & _CP_OFF & _BODEN_ON &_CPD_OFF & _DEBUG_OFF & _WRT_OFF & _WDT_OFF & _XT_OSC


;--------------------------------------------------------------------------------------------
;	БЛОК ПЕРЕМЕННЫЕ
;--------------------------------------------------------------------------------------------

i			equ	0x30
j			equ	0x31
unithour	equ	0x32	;Единицы часов
unitmin		equ	0x33	;Единицы минут
helfsec		equ	0x34
sec			equ	0x35	
buferTXD	equ 0x36	;Буфер передачи
t			equ 0x37
Tc			equ 0x38
flag		equ	0x39
	mode1		equ 0x00
	mode2		equ 0x02
	fbtmode		equ 0x01	;Признак нажатия кнопки "Mode"
btflag		equ	0x3A
	bthour		equ 0x03
	btmin		equ 0x02
	btmode		equ 0x01
	btres		equ 0x00
volt		equ	0x3B
decvolt		equ	0x3C
unitvolt	equ	0x3D
degvolt		equ	0x3E
setpoint	equ	0x3F
	colon		equ 0x04
	letter_v	equ 0x04
	point		equ 0x02
temp		equ 0x40
W_temp		equ 0x41
STATUS_temp	equ 0x42
decademin	equ	0x43	;Десятки минут
decadehour	equ	0x44	;Десятки часов
temp_1		equ 0x45
num0		equ	0x46
num1		equ	0x47
num2		equ	0x48
num3		equ	0x49



Bank_0	macro
			bcf	STATUS,RP0
			bcf	STATUS,RP1
		endm

Bank_1	macro
			bsf	STATUS,RP0
			bcf	STATUS,RP1
		endm

Bank_2	macro
			bcf	STATUS,RP0
			bsf	STATUS,RP1
		endm

Bank_3	macro
			bsf	STATUS,RP0
			bsf	STATUS,RP1
		endm

CS	macro	bit
		if		bit
			bsf		PORTD,5
		else
			bcf 	PORTD,5
		endif
	endm

WR	macro	bit
	if		bit
	bsf		PORTC,3
	else
	bcf 	PORTC,3
	endif
	endm

CD	macro	bit
	if		bit
	bsf		PORTC,5
	else
	bcf 	PORTC,5
	endif
	endm


;--------------------------------------------------------------------------------------------
;	Начало программы
;--------------------------------------------------------------------------------------------

	org	0x00
	goto 	Start

;--------------------------------------------------------------------------------------------
;	Обработка прерывания
;--------------------------------------------------------------------------------------------

	org	0x04	
	movwf	W_temp			;Сохраняем аккамулятор
	swapf	STATUS,W
	movwf	STATUS_temp
	btfsc	INTCON,T0IF		;Прерывание по TMR0?
	goto	ClearIntTMR0	;Да переход на обработчик прерывания
endInt
	swapf	STATUS_temp,W
	movwf	STATUS
	swapf	W_temp,F		
	swapf	W_temp,W		;Востанавливаем значение аккамалятора
	retfie

ClearIntTMR0
	
	movlw	0x15			;Дополнительная задержка
	movwf	t

CITMR01
	decfsz	t,F
	goto	CITMR01
	nop
	nop
	bcf		INTCON,T0IF		;Очишаем флаг прерывания по TMR0
	Bank_0
	
	movlw	0x3D			;Запускаем таймер на счет (задержка 50mC)
	movwf	TMR0

	incf	Tc,F


	movf	Tc,W			;Переход к обработке АЦП каждые 0.5С (10*50mC)
	bcf		STATUS,Z
	xorlw	0x07
	btfsc	STATUS,Z
	goto	ADC

	movf	Tc,W			;Переход к обработке нажатия кн. каждые 0.5С (10*50mC)
	bcf		STATUS,Z
	xorlw	0x08
	btfsc	STATUS,Z
	goto	Button

	movf	Tc,W			;Переход к обработке часов каждые 0.5С (10*50mC)
	bcf		STATUS,Z
	xorlw	0x09
	btfsc	STATUS,Z
	goto	PointBlink

	movf	Tc,W			;Переход к обработке RAMLCD каждые 0.5С (10*50mC)
	bcf		STATUS,Z
	xorlw	0x0A
	btfsc	STATUS,Z
	goto	OutLCD

	goto	endInt



;--------------------------------------------------------------------------------------------
;	НАСТРОЙКА МИКРОКОНТРОЛЛЕРА
;--------------------------------------------------------------------------------------------


Start
;Очистка памяти регистров по адрессу 0х30..0х49
	movlw	0x30			;initialize pointer
	movwf	FSR				; to RAM
St3
	clrf	INDF
	incf	FSR,F				;inc pointer
	movf	FSR,W
	bcf		STATUS,Z
	xorlw	0x49
	btfss	STATUS,Z
	goto	St3


;Установка нолей индикатора часов и гашение знака "C" и "V"
	movlw	0x20			;initialize pointer
	movwf	FSR
	movlw	b'00000000'
	movwf	INDF
	incf	FSR,F				;inc pointer
	movlw	b'11111001'
	movwf	INDF
	incf	FSR,F
	movlw	b'01101111'
	movwf	INDF
	incf	FSR,F				;inc pointer
	movwf	INDF


	Bank_1					;Bank 1
	movlw	b'11010111'
	movwf	OPTION_REG
	nop
	nop

	Bank_0					;Bank 0

	movlw	0x3D			;Установка таймера
	movwf	TMR0

	clrf	PORTA
	Bank_1					;Bank 1
	movlw	b'11111111'		;RA0..RA7 - in
	movwf	TRISA
	clrf	ADCON1			;[7] левое выравнивание, Vref+ = Vdd Vref- = Vss

	Bank_0	
	movlw	b'01011001'		;[7,6] Fosc/8, [5..3] AN3, [2] перобразование отключено, [0] ADC - включен
	movwf	ADCON0

	clrf	PORTC
	Bank_1					;Bank 1
	movlw	b'11010111'		;RC5, RC3 - out
	movwf	TRISC
	Bank_0					;Bank 0

	clrf	PORTD
	Bank_1					;Bank 1
	movlw	b'11011111'		;RD5 - out, RD3..RD0 - in
	movwf	TRISD
	Bank_0					;Bank 0
	CD  1
	WR	1	
	CS	1
	Bank_1					;Bank 1
	clrf	Tc

	call	EPROMtoRAM

	movlw	b'11110000'
	movwf	INTCON			;Разрешение прерывания TMR0. 
;--------------------------------------------------------------------------------------------
;	ГЛАВНАЯ ПРОГРАММА
;--------------------------------------------------------------------------------------------

OsProg				
	call	InitLCD
aa
	goto aa

Последний раз редактировалось korsaj; 09.09.2011 в 10:43.
korsaj вне форума  
Непрочитано 09.09.2011, 11:17  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: PIC16F876

Вот здесь описан алгоритм.
Дальше есть код. Но на С...
omercury вне форума  
Непрочитано 09.09.2011, 19:01  
ua6ued
Прохожий
 
Регистрация: 17.06.2008
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua6ued на пути к лучшему
По умолчанию Re: PIC16F876

Сообщение от MisterDi Посмотреть сообщение
В первую очередь алгоритмом программирования. 876 пишется по словам, а 876А - блоками по 8 слов. Поэтому бывают проблемы со старыми версиями самодельных программаторов.
Кроме того по-моему есть небольшие различия во внутренней структуре, но это нужно внимательно смотреть документацию.
Понял спасибо приму к сведенью.Просто немогу запустить устройство кто до меня повторял запускалось сразу а у меня ни как не хочет может кто подскажет ? вот сылка http://www.cqham.ru/G6LVB.htm и почемуто кварц не возбуждается ??

Последний раз редактировалось ua6ued; 09.09.2011 в 19:11.
ua6ued вне форума  
Непрочитано 04.10.2011, 23:31  
ОКТОГЕН
Частый гость
 
Регистрация: 09.12.2009
Сообщений: 45
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
ОКТОГЕН на пути к лучшему
Вопрос Re: PIC16F876

добрый день мужики
дело такое нужно измерять ток. проблема вот в чём, хотел сигнал усиливать lm358 и оцифровывать pic16f690, но вот беда как я понял в нём нельзя выбрать источник верхнего и нижнего напряжения, как в pic16f876A, а только источник верхнего напряжения. что очень досадно.

подтвердите прав я в вышеописанном или нет.
ОКТОГЕН вне форума  
Непрочитано 04.10.2011, 23:40  
anatol378
Почётный гражданин KAZUS.RU
 
Аватар для anatol378
 
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,746
Сказал спасибо: 416
Сказали Спасибо 1,240 раз(а) в 551 сообщении(ях)
anatol378 на пути к лучшему
По умолчанию Re: PIC16F876

Сообщение от ОКТОГЕН Посмотреть сообщение
нельзя выбрать источник верхнего и нижнего напряжения
Если вы про опорное - то Вам нафига оно надо. Что будете ставить два опорника и измерять между ними?
Если обычное измерение от "0" и до вечера - разницы нет.
anatol378 вне форума  
Непрочитано 04.10.2011, 23:58  
ОКТОГЕН
Частый гость
 
Регистрация: 09.12.2009
Сообщений: 45
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
ОКТОГЕН на пути к лучшему
Восклицание Re: PIC16F876

да беда в том что на lm358 сделан усилитель с коэффициентом усиления 100. из-за чего даже при холостом ходе на выходе операционника присутствует 0.17 вольт. это то и затрудняет измерение.
вот я и хотел нижнюю опорку привязать тоже к 0.17в.
ОКТОГЕН вне форума  
Непрочитано 05.10.2011, 00:06  
anatol378
Почётный гражданин KAZUS.RU
 
Аватар для anatol378
 
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,746
Сказал спасибо: 416
Сказали Спасибо 1,240 раз(а) в 551 сообщении(ях)
anatol378 на пути к лучшему
По умолчанию Re: PIC16F876

Сообщение от ОКТОГЕН Посмотреть сообщение
lm358
1. Применить другие операционники
2. Изменить схему питания ОУ.
3. Ввести корректирующий коэфф.

1 и 3 не дадут высокой точности.
anatol378 вне форума  
Непрочитано 05.10.2011, 00:07  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: PIC16F876

Да 358 ниразу не измерительный операционник. Коррекцию надо делать програмно. Но возле нуля и питания там всегда каша будет.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
ОКТОГЕН (05.10.2011)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
pic16f877 и pic16f877A определяются PicKit2 как pic16f876 avr123-nm-ru Микроконтроллеры, АЦП, память и т.д 31 18.05.2010 23:04


Часовой пояс GMT +4, время: 22:19.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot