Jump to content
Onixx

Помогите Студенту-Чайнику По Мк

Recommended Posts

канечно, как же иначе спользовать delay ?

Пробовал с сбросом сторожевого таймера и без

Edited by krant

Share this post


Link to post
Share on other sites

Помогите пожалуйста. Задали по курсовому! Разработать охранное устройство на микроконтроллере 51-серии. Питание 12 и 24 В. Работает с 10 парами светодиод-фотодиод. Микроконтроллер выдает на какоето сигнальное устройство (без разницы) тревогу лишь при пересечении сразу 2 и более лучей. Для экономии энергии использоваться должен генератор микроконтроллера. Программа работы микроконтроллера в Асемблере.

Прошу помочь, ибо самому мне это тяжеловато! С уважением и заранее благодарю за любую помощь.

Для подобных вопросов есть отдельная тема. В следующий раз забаню. Zer.

Share this post


Link to post
Share on other sites

эм ну так что, проблемма для меня становится всё актуальней и актуальней (для ШИМ'a мне это необходимо)... помогоите кто-нибудь :)

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

Народ мне нужно придумать себе тему для дипломного проекта:

хочу собрать какоенибуть интересное устройство на ATmega8 в устройстве нужно применить побольше периферии (ЖКИ, АЦП, клавиатура, различные датчики и т. д.)

набросал в sPlan схемку с использованием 6-ти клавиш и ЖКИ, остался свободным порт С(к нему внутри МК подключен 6-ти канальный 10-ти розрядный АЦП)

и контроллер и ЖКИ у меня уже есть, бюджет остальной периферии неболее 10$(50 грн)

подкиньте идейку какого нибуть интересного устройства :rolleyes:

я тут думал сделать несложный лабораторный блок питания (с индикацией тока и напряжения) только незнаю какую на входе каналов АЦП нужно сделать обвязку чтоб мерять напряжение и ток в больших пределах (0 - 30 В, 0 - 5 Ампер)

post-42779-1225127898_thumb.jpg

Share this post


Link to post
Share on other sites

Дорогие форумчане, прошу вас в окозании мне помощи с моим курсовым проектом! Значит прередомной стоит такая задача: для некого прибора есть рабочий температурный режим от 10 до 35 *С, нужно создать устройство на микроконтроллере PIC, которое зажигало бы светодиод(тревоги), при выходе температуры с заданных рамок! Помогите пожалуйста, кто чем может smile.gif

P.S Или можно решить другую задачу: сделать так, чтоб при включении прибора, через 15 мин зажигался светодиод(15 мин. даеться прибору на прогрев),тоже на PIC.

Edited by 2517212

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

Или можно решить другую задачу.......
По подробнее пожалуйста...

Это что, обычный таймер нужен чтоли ? Для чего тогда МК ?

Если точность не столь важна, можно сделать так.

long i;
LED=0;
for( i=0;i<=(15 * 60);i++)
{
DelayMs(1000);
}
LED=1;

Share this post


Link to post
Share on other sites

Да, нужен обычный таймер, в конце отсчета должен зажигаться светодиод, все это должно быть на МК PIC, и написано на асме.

Share this post


Link to post
Share on other sites

Вот по этой ссылке http://radiosait.ru/page_281.html есть помоему что-то похожее на то что мне надо, только нужно переделывать программу, что я сам сделать не в состоянии, хотя надеюсь когда-то научиться, но до сроков сдачи курсовой у меня это явно не выйдет. Может кто то может переделать текст программы http://radiosait.ru/files/image/200/81/thermostst.asm ,

под мои нужды? Тоесть чтобы если температура будет выходить за рамки +10-+35 *С, то зажигался светодиод, который будет висеть вместо реле на ноге RA4? Кнопки на Start и SW INC можно вообще убрать, параметры температуры никогда меняться не будут.

Share this post


Link to post
Share on other sites
Может кто то может переделать текст программы
Да легко. Обращайся :)

Share this post


Link to post
Share on other sites

Какие могут быть шутки на форуме ? :) Я на полном серьёзе.

Share this post


Link to post
Share on other sites

Помогите с курсачом, работаю с программатором и отладчиком mplab icd. На PIC16F877 надо сделать устройство, которое запоминало бы введённое число А (ввод потенциометром), затем переключалось в режим ввода числа В (ввод аналогичен) и в режиме коррекции числа В на светодиодах (подключены к порту D) был показан результат сравнения А и В. Сами значения А и В должны отображаться на семисегментных индикаторах. Если загорелся 1 диод значит В<=А, 2-й значит В>А на 12,5%, 3-й - В>А на 25%, 4-й - В>А на 50%.

Share this post


Link to post
Share on other sites

Чем конкретно Вам помоч ? По подробнее плиз...

надо сделать устройство
Вам его собрать и прислать на дом ? :)

Share this post


Link to post
Share on other sites

нет конешно! Надо написать прогу на ассемблере, схему выложу вечером. Просто не знаю где хранить число А, как сравнивать и т.д.

Edited by Dexa

Share this post


Link to post
Share on other sites

Ну теперь рассказывайте что конкретно у вас не получаеться. На чём заткнулись.

Устройство простейшее...

Share this post


Link to post
Share on other sites

Вам не зря задали такие простые значения как 12.5, 25, и 50%

Подсказка :

12.5% это деление на 8 ( т.е. сдвинут регистр вправо на 3 позиции )

25% это деление на 4 ( вправо на 2 позиции )

50% это деление на 2 ( вправо на 1 позицию )

Вот вам и все вычесления :)

Share this post


Link to post
Share on other sites

Спасибо это я знаю, такое же устройство проектировал на ПЛИС и AHDL, а вот с ассемблером проблемы(( Программно как это описать на PIC16F877? Какими командами сравнивать? Где хранить число А? В аккумуляторе? Для сдвига вправо можно использовать команду RRF? И еще куча вопросов про АЦП и так далее. Смутно представляю это так:

movlw ???; загрузил число А в аккумулятор

movwf w_temp50; отправил содержимое акк-ра в ячейку памяти W_temp50

RRF W_temp50,1; сдвинул на 1 бит вправо и получил 50% от числа А (результат в этой же ячейке)

ADDWF W_temp50,1; А+50% от числа А

???; сравниваю В и содержимое ячейки W_temp50 и если В больше значит результат: выше нормы на 50%

еще надо как-то и куда-то загружать число В, также число В должно меняться потенциометром и результат сравнения тут же должен появляться на индикаторах и как-то надо реализовать алгоритм (наверно опрашивать кнопку): 862e8333d07e.jpg

заранее благодарен

Share this post


Link to post
Share on other sites

Да, всё верно.

???; сравниваю В и содержимое ячейки W_temp50
Просто из В вычитаешь W_temp50 и смотришь за флагом С. Если не установлен, то заёма не было (В >= W_temp50). И наоборот, если установлен, то B < W_temp50 .

Находиться флаг в регистре STATUS ,бит №0 .

еще надо как-то и куда-то загружать число В, также число В должно меняться потенциометром и результат сравнения тут же должен появляться на индикаторах и как-то надо реализовать алгоритм (наверно опрашивать кнопку):
Чего то я совсем ничего не понял.....

Share this post


Link to post
Share on other sites

Спасибо огромное! Сам не додумался))

Ниже я говорил про цикл, т.е. после вывода результата сравнения надо вернуться на шаг "чтение с АЦП числа В". Я могу менять потенциометром число В и при следующем его значении может загореться уже другой диод (>25%). Не знаю как точнее объяснить ...ну на картинке вот эта стрелочка 2bc04de461fb.jpg

Share this post


Link to post
Share on other sites

Хорошо бы, но у меня чтоб воткнуть программатор надо выдирать клаву, посему очень пролематично оперативно работать... (при неверном контроллере прого подвисает)

Share this post


Link to post
Share on other sites

Здравствуйте. Умоляю, помогите с курсовой :rolleyes:

Знаний у меня почти совершенно никаких, пожалуйста поподробнее) Если кто соберется помочь от начала до конца, отблагодарю материально через вебмани или еще как-то.

Первая часть задания:

1. Увеличить ПЗУ.

Там стоит вроде на 2К, нужно поставить хотя бы еще 3 штуки, чтоб было 8Кб. Как я понимаю, нада запараллелить данные, поставить какую-то штуку, чтоб переключала ПЗУ в каждый момент времени... Не знаю.

2. Заменить операционный усилитель и всю его обвязку на АЦП серии 1108. Т.е сделать датчик температуры на нем.

02e86ccea278533bf2f4d7c7369c193d.jpg

Описание устройства из журнала "Микропроцессорные средства и системы №4, 1989"

Локальный регулятор температуры на основе ОЭВМ серии К1816

Основу прибора состовляет ОЭВМ К1816ВЕ39 (D3) в сочетании с регистрами К555ИР27 (D4) и К155ТМ8 (D5) для хранения адреса, шинными формирователями (ШФ) К589АП26 (D6, D7), РПЗУ К573РФ5 (D8)? преобразователем сопротивление-код К140УД20 (DA9), десятичным делителем частоты К155ИЕ1 (D2), триггером Шмитта К155ТЛ2 (D1), усилителем на транзисторе КТ315 (VT3), формирователем импульса сброса при отключении питания на транзитсторах КТ315 (VT1, VT2), схемой дополнительного питания энергонезависимого ОЗУ ОЭВМ на стабилитроне КС137 (VD2) и диодах КД511 (VD3... VD5), гальваническим элементом питания GB, коммутаторами для управления исплнительными механизмами.

кварцевый генератор на 8Мгц. Для инициализации функционирования К1816ВЕ39 вырабатывается сигнал системного сброса. После прихода имульса сброса, выборка команд из РПЗУ начинается с нулевого адреса. Адреса выставляются на 8ми разрядной шине DB, трех младших разрядах порта Р и заносятся в регистры D4, D5 по сигналу ALE. C выходов этих регистров адреса поступают на адресные шины РПЗУ, где по данному адресу выбирается соответсвующая команда при наличии сигнала PME(с черточкой, наверное, НЕ РМЕ). Порт DB после выдачи адреса переходит в высокоимпендансное состояние и готов принять команду (инструкцию), выбираемую из РПЗУ. В процессе выполнения команд программы на соответствующие шины портов Р1, P2 выдаются сигналы управления, необходимые для запуска преобразователя сопротивление-код и считывания кода температуры, подачи сигналов управления на коммутаторы исполнительных механизмов.

Для организации связи ОЭВМ с центральной микроЭВМ разработана схема, состоящая из ШФ D6, импульсного трасформатора ТР, ТШ, D1.4, усилителя на транзисторе VT3 и двупроводной линии связи (ЛС). Управление режимом вводы-выода информации через ШФ осуществляется синалоом DIEN. Передоваемый в ЛС сигнал усиливается по току тразистором VT3, затем через имульсный трансформатор ТР, ТШ, D1.4 и ШФ D6 поступает для обработки в ОЭВМ. Резисторы R12 и R13 предназначены для согласования волнового сопротивления линии связи. Шифратор D7 выводит сигналы управления на коммутаторы.

Преобразователь сопротивление-код, выполненный на операционном усилителе К140УД20 (DA 9), позволяет считывать аналоговую информацию с любых резистивных датчиков, например с термометров сопротивления. Для считывания используется всего один логический (одноразрядный) вход и выход порта К1816ВЕ39. Преобразователь не требует управляющих сигналов и отдельного блока питания (используется 5В), основной элемент преобразователя - электрический мост, образованный резисторами R15..R17, R20, К21. На случай кратковременного отключения питания предусмотрен гальванический элемент дополнительного питания GB.

Edited by dimivan

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Максим123456789
      делаю диплом, в схеме у меня микроконтроллер PIC16F688 и мне нужно его заменить на ATmega. Не могу найти похожий
    • By Anton Bondarenko
      Всем привет
      Прошу не ругать, впервые подобный вопрос задаю.
      Хочу сделать прибор, который будет посылать сигнал, когда возле прибора будет проходить металлический предмет. 
      — угол отслеживания до 30° а лучше прямая линия, траектория
      — время реакции очень высокое до 100 мс
      — ширина проема в котором нужно сканировать от 10 до 20метров,
      — передача сигнала через вифи
      Может есть готовые решения, или отдельные компоненты.
      Подскажите пжл в каком направлении искать.
      Смотрел датчики движения, но главная проблема — время реакции.
      Спасибо
       
    • By Sofia Vin
      Предлагаем проектную работу в Москве:
      Микроконтроллер STM32F103.
        
      Есть встроенный код с использованием функций библиотеки FreeRTOS, код имеет описанный протокол для связи с внешним миром.
        
      Необходимо проводить доработку кода под задачи программиста верхнего уровня и его тестирование в составе оборудования. 
      Работа в лаборатории (м.Университет) и удаленно. 
      Оплата по договоренности.
      Если Вы обладаете опытом схемотехнического проектирования и программирования микроконтроллеров, и Вас заинтересовала данная возможность, ждем Ваши отклики по контактным данным:
      8 (925) 023-60-02   Алексей
      E-mail: nassa@marathon.ru
       
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
    • Guest Денис
      By Guest Денис
      В общем, есть такое чудо китайской техники (фото)
      Что оно может:
      1. Заряжаться через microUSB порт
      2. Кнопка вкл/выкл, она же переключает режимы
      3. 3 режима свечения светодиода (он светит разными цветами)
      Что я хочу сделать:
      1. Пункты 1 и 2 выше
      2. Разнообразить количество режимов, переливание статичный цвет и тд...
      Вопрос: как это сделать? что купить?

      P.S. К сожалению, в гугле не нашел подробной инструкции, а я в электронике я дуб дубом


  • Сообщения

    • да нахрен он вообще нужен? покрасить и выкинуть, а так электролиты, дросселя из порошка, аккумуляторы
    • Мне очень запала эта схемка,кто бы ее правильно на кварц.стабилизацию качнул!?Хотя жалоб о стабильности от меня.Просто хотелось бы увести его из этого диапазона.  представляю мощного жука #1²  и #1³ Т1 КТ3130Б; Т2 Bfr93; Т3 Bfr93. Т1 КТ3107Л; Т2 КТ368; КТ913Б.     Для антенн буду использовать посеребренный провод. .ля,как же я доволен вашей схемкой!
    • Вопрос следовало задать в теме защиты акустики, так так собственно к усилителю она имеет опосредованное отношение. По вопросу, я делаю так       
    • Здарова друзья!Ну что пробовал я собирать как и обещал,эту схему!Так как на схемке. Работает жучек,но мощность сильно падает,до 150метров,катушку на выходе делал так :L3 3+3витка(2катушки)спаивал в одну катушку,получался центральный выход на коллектор s9018,и катушечка L4 на 2виточка, от которой идет уже конкретно антенна,своими двумя витками помещалась посредине L3,3миллиметровый латунный сердечник плотно проходил внутри,и это не добавляло особо мощности,только взлетала частота до 145мГц что немножко упрощало его поиск и все. Потому я от этого каскада отказался.Просто перед антенной поставил конденсатор от 10--22pf!
    • То есть цифровой вольтметр определяет направление тока и по этому принципу ставит знак? И высчитывает разность потенциалов этого минуса?
    • Еще раз напишу, что стрелочки указывают направление тока. Если батарейку (любую) перевернуть, тока не будет, светодиод светится не будет. Ионы не перейдут через запрещённую зону PN-перехода диода  при "не той" полярности. Считай, что в мультиметре знак "минус" подсвечивает тот светодиод, который правый. Переворачиваешь правую батарейку, и мультиметр твой покажет напряжение без знака "минус".
    • @Slavka Всё именно так, как вы сказали. Но и с vg155 согласен, что вызванивать каждый контакт без конкретной схемы, а только аналогов. Нет гарантий что найду все контакты или не допущу ошибки. По этому и посмотрел барахолку и нашёл экземпляр с более простой проблемой. А так вот мой парк (маленьких DT182 даже 2шт)  
  • Покупай!

×
×
  • Create New...