Перейти к содержанию
    

asekart

Участник
  • Постов

    17
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о asekart

  • Звание
    Участник
    Участник
  • День рождения 12.07.1988

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

685 просмотров профиля
  1. Помогите с PIC16F84A

    Посмотрел, вспомнил себя, нашел старый проект покромсал. Только лучше использовать PIC16F628A поновее будет. Тут тебе файл с рабочим таймером, и твои светодиоды мигают, поочереди. Попытался файл прикрепить не прошло будет так. list p=16f84A include <p16f84A.inc> __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC sys_t EQU 0x0C; led EQU 0x0D; sys_k EQU 0xF0;Константа счета ;----------------------------------------------------------------- ; Вектор сброса ;----------------------------------------------------------------- RESET_VECTOR org 0x000 ;Адрес вектора сброса ;Банк 1 ;Сброс при включении питания? goto start ;Да goto OTHER_RESET ;НЕТ, WDT или сброс MCLR ;------------------------------------------------------------------ ; ;Подпрограмма обработки прерываний перифирийных устройств ;Определяется источник прерывания. Разрешены следующие ; 4.Прерывание по переполнению TMR1 ; INT_VECTOR org 0x004 ;Адрес первичного вектора прерываний VECTOR_INT ;-------------------------------------------------------------------- ; Сохранение регистров и переменных ; ;--------------------------------------------------------------------- ; bcf STATUS, RP0;Банк 0 btfss STATUS, NOT_TO; goto ERROR_WDT;Сработал сторожевой таймер btfsc INTCON, T0IF;Переполнение таймера 1? goto T1_Overfl;ДА, обслуживание ;Тут вставляются другие проверки T1_Overfl movlw sys_k ;Загрузить таймер movwf TMR0 ; clrf sys_t ;Сбрасываем флаг ; Восстанавливаем ;-------------------------------------------------------------------- ; Конец обработки прерывания ;---------------------------------------------------------------- bcf INTCON, T0IF;Переполнение таймера 1? retfie ;Выходим, с разрешением прерываний ;main org ;// Обработка ошибок ERROR_WDT clrf STATUS ; clrf INTCON ;Запретить ;прерывания clrwdt ; goto $-1 ;Зациклить на ошибке ;Проверка типа сброса OTHER_RESET btfss STATUS, NOT_TO;Сброс WDT? WDT_TIMEOUT goto ERROR_WDT ;Да, превышение WDT. goto start ;Внешний сброс goto ERROR_WDT ERROR1 nop nop goto ERROR1 ; ;----------------------------------------------------------------- ; ; Начало, инициализация микроконтроллера ; ;----------------------------------------------------------------- start clrf STATUS ; clrf INTCON ;Запретить clrwdt ; ;--------------------------------------------------------------------- ; Начальная установка ПОРТОВ clrf STATUS ;Установить банк 0 clrf PORTA clrf PORTB movlw b'11111100'; bsf STATUS, RP0;Установить банк 1 movwf TRISA ; 0-1 выход адреса movlw b'00000001' banksel PORTA movwf PORTA movwf led ;------------------------------------------------------------------------ ; Инициация таймера TMR0 ;------------------------------------------------------------------------ clrf TMR0 ; clrf INTCON ; movlw b'11000111' ; banksel OPTION_REG; movwf OPTION_REG; movlw sys_k ; banksel TMR0 ; movwf TMR0 ;значение 1/8 секунды при banksel INTCON ; bsf INTCON, T0IE;Разрешить bsf INTCON, GIE;Разрешить прерывания перифирийных устройств main;Главный цикл banksel PORTA btfsc sys_t, 0 goto main ; comf led, W movwf led movwf PORTA bsf sys_t, 0 goto main ; end Огромное спасибо за ответ, уж и не думал что больше ответят... я так понял чтио вот эта строчка movlw b'11000111' задаёт как-бы частоту прерываний в данном случае 1/8, правильно?
  2. Можно взять данные из обоих, но учесть максимальные параметры и не приближаться к ним. Ширина импульса будет совпадать со входной, если таковая задана. Только учти, что импульс инвертируется, т.е. положительные выброс становится отрицательным - увеличение напряжения на базе вызовет уменьшение напряжения на коллекторе, т.е. начальной фазой будет участок, помеченный вопросом, но и скважность должна соответствовать входному сигналу - будь внимателен, на рисунке у тебя другая скважность. Если фаза сигнала должна совпадать со входной, надо ставить 2 каскада. Нет, 2 каскада не надо, т.к. это простая РГР (расчетка)...т.е. импульс будет идти наоборот, чем на моем рисунке...пасибо за помощь...буду рисовать... Всем огромное спасибо за помощь!!! Расчетку выполнил, но пока ещё не здал... :) Всё замечательно получилось выполнить графоаналитическим методом...Если кому надо будет могу выложить фото работы...
  3. Можно взять данные из обоих, но учесть максимальные параметры и не приближаться к ним. Ширина импульса будет совпадать со входной, если таковая задана. Только учти, что импульс инвертируется, т.е. положительные выброс становится отрицательным - увеличение напряжения на базе вызовет уменьшение напряжения на коллекторе, т.е. начальной фазой будет участок, помеченный вопросом, но и скважность должна соответствовать входному сигналу - будь внимателен, на рисунке у тебя другая скважность. Если фаза сигнала должна совпадать со входной, надо ставить 2 каскада. Нет, 2 каскада не надо, т.к. это простая РГР (расчетка)...т.е. импульс будет идти наоборот, чем на моем рисунке...пасибо за помощь...буду рисовать...
  4. Ну, примерно так. Только в линейном режиме надо помнить о максимальных мощностях и токах, и их сочетании. Я бы уменьшил, а то как-то близко к пределам (Если верить Перельману, Ikmax=15 mA; P=15mW). Но надо учитывать и частотные параметры. Голая схема с ОЭ нестабильна. Реальная схема получится, если применить обратные связи и согласование с источником и нагрузкой. А для этого надо больше входных данных. Т.е. лучше по Перельману рисовать. как я понял....? А как мне потом узнать ширину импульса и с какой стороны он начинается (справа или слева...?)...
  5. Вот полные данные с характеристиками: Во втором файле справа вверху выходная характеристика. На оси Х отмечаешь свое Е (4,5в - точка ХХ). На оси У откладываешь точку КЗ - 4,5/Rc (соответственно реально расcчитываешь Rc исходя из шкалы тока коллектора, точку выбирай повыше, чтобы диапазон базовых токов был больше. Учти, что точка на оси тока мнимая. Реальной будет точка пересечения с крайней верхней кривой - точка насыщения). Рисуй прямую, соединяющую эти точки. Это твоя нагрузочная характеристика. Выбираешь на ней середину и смотришь, какой базовый ток пересекает ее - это ток смещения. Определяешь крайние точки, за которые транзистор не должен уйти слева и справа и величины базовых токов в них. Теперь твоя задача обеспечить этот диапазон токов в базе исходя из размахов входного напряжения и сопротивления в базе. Имеется ввиду, что у транзистора стоят сопротивления в цепи базы и коллектора - самая простая схема. Если что неточно изложил, извиняйте, лет 30 не занимался этими расчетами. Спасибо, зделал как вы сказали, только на выходной характеристике из другого источника т.к. мне показалось, что на выходных характеристиках Перельмана слишком маленькие значения тока коллектора...вот что вышло, проверьте и дополните если что не так...
  6. Здраствуйте, сккажите, как будет выглядет выходная характеристика КТ317А, может у кого в книжке есть, или кто щнает ссылочку на ресурс, оч. надо найти не могу....
  7. а я никак не пойму что вы не понимаете :) у транзистора есть два кардинально отличающихся режима работы: 1. по постоянному току. 2. по переменному току. для УСИЛИТЕЛЕЙ есть несколько способов построения схем, их еще называют КЛАССЫ. А(он же линейный), АВ, С, D и т.д. и т.п. так о чем речь ведете? Теперь вроде прояснилось!!! Спасибо, вроде понял чуток! Вот исходные данные: Тип транзистора - КТ317А Схема включения ОЭ Ек(В) - 4,5 В Rн - любое Расчёт произвести для линейного режима усиления Сигнал испульсный (+/-) ... что типа такого
  8. Я просто не пойму разницу между, расчеом транзистора в линейном режиме и простым расчетом транзистора....??: Какая разница!!?? может кто знает
  9. Всё таки дайте ссылочку на сайт нгде есть эта книга, а то я скачал, а архив битый на 2 сайтах! титце-шенк если можно!!!
  10. Я просто не пойму, чем отличается, режим линейного усиления и просто режим усиления! Спасибо за внимание! А можете дать ссылку на титце-шенк пожалуста, у меня такой нет? Всё уже есть! Будем читать... хотя у Хоровица я всёже не заметил про это...
  11. Здравствуйте уважаймые знатоки электроники... Я не прошу никого делать мне расчеты, просто хочу, что бы вы мне помогли с поиском инфы по теме...может у кого есть учебники по данной теме или инфа какая-то на компе. Может кому-то из васбудет не лень нарисовать мне схему и объяснить как её делать... Транзистор мой КТ317А - кремниевый \питаксиально-планарный n-p-n универсальный, высокочастотный, маломощный.... Помогите...работа горит....
  12. Помогите с PIC16F84A

    А вы можете привести пожалуста простенькое дополнение к уже существующей проге, только с использованием таймера...буду бескрайне благодарен...нужно просто увидеть пример, а потом поковырятся в нем....огромное спасибо!!!!
  13. Помогите с PIC16F84A

    Приведите текст программы полностью. Мое предложение - не более чем изменить инициализацию ledset перед входом в цикл - никак не могло отразиться на способности моргать светодиодами. Вот код, я ошибался.... ;******************************************************************************* ************* ;* Мигание светодиода *************************************** ;******************************************************************************* ************* list p=16f84 #include <p16F84a.inc> __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC count1 EQU 0x0C count2 EQU 0x0D ledset EQU 0x0E ORG 0x000 clrf PORTA clrf PORTB bsf STATUS, RP0 movlw b'11111100' movwf PORTA movlw b'00000101' movwf PORTB bcf OPTION_REG,7 bcf STATUS,RP0 movlw b'00000001' movwf ledset loop movlw b'00000011' xorwf ledset, f movf ledset, w movwf PORTA movlw 0xFF movwf count1 cycle1 movlw 0xD9 movwf count2 cycle2 decfsz count2, f goto cycle2 decfsz count1, f goto cycle1 goto loop end ОГРОМНЕЙШЕЕ ВАМ СПАСИБО ЗА ПРОГУ!!! :a14: :a14: Я только щас заново попробывал, загнал сначало в Протеус...и мое удивление было ооочень большим когда заработало, наверно не работало из-за невнимательности...яэти занимался пол первого ночи, вот и ошибся в куче файлов и выбрал не тот наверно....Щас вот на практике еще проверил.....всё чудно работает.... Теперь и этот вариант есть в сети.... Так сказать мультивибратор на PIC16F84A!!!! Вот кстати ещё один вариант который мне посоветовали на другом форуме, но он немного отличается, получается что-то вроде бегущих огней на 2 светодиодаз, то еть они продолжают какбы работу друг-друга, но из-за быстроты внимания, это не так уж сильно и заметно....Но этот вариант - Ваш всиысле значительно лучше.... Вот ихний вариант: list p=16f84 #include <p16F84a.inc> __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC count1 EQU 0x0C count2 EQU 0x0D ledset EQU 0x0E ORG 0x000 clrf PORTA clrf PORTB bsf STATUS, RP0 movlw b'11111100' movwf PORTA movlw b'00000101' movwf PORTB bcf OPTION_REG,7 bcf STATUS,RP0 clrf ledset loop movlw b'00000010' xorwf ledset, f movf ledset, w movwf PORTA movlw 0x00 movwf count1 cycle1 movlw 0xFF movwf count2 cycle2 decfsz count2, f goto cycle2 incfsz count1, f goto cycle1 movlw b'00000001' xorwf ledset, f movf ledset, w movwf PORTA movlw 0x00 movwf count1 cycle3 movlw 0xFF movwf count2 cycle4 decfsz count2, f goto cycle4 incfsz count1, f goto cycle3 goto loop end Интересно, а никак нельзя было бы это всё зделать на таймере так чтобы можно был бы ихнее время мигания задавать.... т.к. это вариант на простых задержках...время только быстрей можно зделать, а медленнее нельзя... Еще раз огромное спасибо! Добавлю исходную схему! Собрать просто...там есть кнопки, для усовершенствования... multi.bmp
  14. Помогите с PIC16F84A

    Первый мигает, второй горит! - вот что выйдет на практике если применить ваши дополнения...еффект чуток опять не тот.... :)
  15. Помогите с PIC16F84A

    Вместо clrf PORTA напишите, например: movlw b'00000001' movwf PORTA Светодиоды будут мигать в противофазе. Как показала практика то не будут...будут опять вместе мигать....так как после вашего присваивания...им дальше как и у меня присаивается опять новое значение... Нужен другой како-то способ.... Упс-с, извините. Естесно, читать: clrf ledset напишите, например: movlw b'00000001' movwf ledset Это я подумал про то, что в данном случае можно и не заводить промежуточную переменную, а работать прямо с PORTA, ну и написал, что думал:) :( Теперь картина чуток иная, спасиба и на этом! Но цель всёже не достигнута, второй диод не мигает, а мигает только первый, кторый записан у вас (т.е который на 18 ножке.....)... так вот :) Может есть всё таки еще какие-то идеи на реализацию этого примера....нужная штука в просторах сети такого нет, может кто увидит и использует по назначению :) Хелп короче! Пасиба огромное за идеи!!!!
×
×
  • Создать...