Перейти до вмісту

Мікроконтролери


Повідомлень в темі: 118

#101 І Цвях

    опозиція

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1876 повідомлень
  • Стать:Чоловік
  • Місто:Мати міст руських

Відправлено 26.11.2010 – 16:54

Чуваки, ви такого загнули...
Я не знаю, що таке PHP, COM і всяке Макро-мікро.

В мене є РГР. Як я зрозумів, треба намалювати мій контроллер MCS-51, поруч намалювати АЦП Макс-1240 і попід*єднувати їхні ніжки, а потім дивитись в датащіті Макса-1240 на графіки сигналу (защьолка там, по урьовню, по фронту, синхронізація) і писати в ассемблері програму, щоб цей АЦП фуричив як треба. Але оскільки в цьому семестрі Мікроконтроллери в мене не пішли, то я навіть не уявляю собі, для чого це треба і з чим його їдять.
Як розберуся - поясню вам всю фішку роботи...
  • 0

#102 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ->НТУУ "КПІ"

Відправлено 26.11.2010 – 19:15

Власне нас хвилює робота програми на стороні компа. Вона просто так як за часів DOS працювати не буде. От і все.
P.S. Ти ж про драйвер для ПК писав, да?

Повідомлення відредагував FT232BM: 26.11.2010 – 19:17

  • 0

#103 kavalera

    Старійшина

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1258 повідомлень
  • Стать:Чоловік

Відправлено 26.11.2010 – 19:37

Перегляд дописуАндре (26.11.2010 09:39) писав:

щоб пост не був флудом напишу троха по темі :cry: : в XP доступу до портів напряму немає, треба писати драйвери, або юзати готові, але це якщо код доступу знаходиться в exe-файлі. якщо ж код звернення до порта винести в dll, то все працює. не перевіряв, просто десь таке читав в неті.
цікаво. а в чому фішка?
  • 0

#104 Андре

    Постійний житель

  • Користувачі
  • PipPipPipPipPip
  • 134 повідомлень
  • Стать:Чоловік
  • Місто:Тернопіль

Відправлено 27.11.2010 – 13:15

Перегляд дописуFT232BM (26.11.2010 15:12) писав:

Цілком згоден. А то що Цвяха просять на мові асемблера таке писати -- то цілковитий маразм, бо драйвери під вєнду вже готові є.
ну я б не сказав, що цілковитий маразм. вчитись програмуванню потрібно саме з ассемблера. це якщо про програмування на компі. якщо брати контролери, то там без асемблера часом не обійтись, якщо йдеться про контролер з малим обємом памяті і вимагається помаксимуму його нагрузити.

Перегляд дописуFT232BM (26.11.2010 19:15) писав:

P.S. Ти ж про драйвер для ПК писав, да?
нє, він писав про прошивку контролера.


Перегляд дописуkavalera (26.11.2010 19:37) писав:

цікаво. а в чому фішка?
то треба в Біллі питатись :cry:

щодо MCS-51... якщо взяти контролери Atmel. я не розмію, чому в середовищі AVR Studio вони не підтримуються. в чому справа?
  • 0

#105 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ->НТУУ "КПІ"

Відправлено 27.11.2010 – 14:34

Може причина в тому що то AVR studio
  • 0

#106 Андре

    Постійний житель

  • Користувачі
  • PipPipPipPipPip
  • 134 повідомлень
  • Стать:Чоловік
  • Місто:Тернопіль

Відправлено 27.11.2010 – 19:03

Перегляд дописуFT232BM (27.11.2010 14:34) писав:

Може причина в тому що то AVR studio


ггг. значить в мене були хибні уявлення про типи(архітектури) контролерів атмел  :happy1: . тільки нікому не кажи, що я таке примітивне запитання давав  :lol: . ніби й не вчора прошив свій перший контролер, але якось не доходили руки розібратись з цим.
  • 0

#107 kavalera

    Старійшина

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1258 повідомлень
  • Стать:Чоловік

Відправлено 27.11.2010 – 19:09

Перегляд дописуАндре (27.11.2010 13:15) писав:

то треба в Біллі питатись :happy1:
Тобто ви не знаєте того, про що написали?
  • 0

#108 Андре

    Постійний житель

  • Користувачі
  • PipPipPipPipPip
  • 134 повідомлень
  • Стать:Чоловік
  • Місто:Тернопіль

Відправлено 27.11.2010 – 19:25

Перегляд дописуkavalera (27.11.2010 19:09) писав:

Тобто ви не знаєте того, про що написали?

я ж написав, що не перевіряв на практиці, тільки в неті бачив. і Біллі також можете не питати. він не знає)).
  • 0

#109 kavalera

    Старійшина

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1258 повідомлень
  • Стать:Чоловік

Відправлено 27.11.2010 – 19:34

Перегляд дописуАндре (27.11.2010 19:25) писав:

я ж написав, що не перевіряв на практиці, тільки в неті бачив. і Біллі також можете не питати. він не знає)).
Я б у Біллі такого не питав: побоявся б виставитися невігласом.
Просто думав, Ви дійсно розкажете мені, що це за чарівна магія, яка привілейований код дозволяє до виконання в непривілєйованому режимі від перенесення його в динамічну бібліотеку. А воно ні, не розкажете. А в неті дійсно багато чого пишуть, особливо про Біллі.
  • 0

#110 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ->НТУУ "КПІ"

Відправлено 29.11.2010 – 11:06

Няяяя, там просто магічні точки входу в динамічні бібліотеки. Жартую звичайно. Звісно в захищеному режимі такимй код не виконається, тому і кажу треба WinAPI використовувати. Просто пан Андре зустрічав магічні DLL, які спрощували доступ до COM та LPT та думав, що вони спрощують доступ тільки через свою сутність, насправді вони викликали ці ж самі API функції. Свого часу я теж з такими зустрічався і заявляю що краще писати безпосередньо через API, бо частот проблеми неминучі.

Повідомлення відредагував FT232BM: 29.11.2010 – 11:10

  • 0

#111 І Цвях

    опозиція

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1876 повідомлень
  • Стать:Чоловік
  • Місто:Мати міст руських

Відправлено 05.12.2010 – 23:56

Цитата

1. Розробити принципову схму контроллра з мікроконтроллером MCS-51 (самостійно вибрати оптимальний тип мівкроконтроллера), колами живлення, кварцовим генератором, схемою скиду і АЦП MAX1240. З використанням мови ассемблеру розробити драйвер MAX1240.
Отож, я розібрався, але є кілька питань.

12-бітний АЦП. На AIN подається аналоговий сигнал, з DOUT (digital out) отримуємо цифру. Подивившись на часові діаграмки пишемо, коли SCLK, CS, DOUT ставиться в 0, а коли в 1. Спочатку считуємо 8 бітів, а потім ще 4. Оскільки в нас ліміт в регістрі - всього 8 біт. Считування іде через біт "С" аккумулятора. Читаємо по одному і зсуваємо вліво, поки аккумулятор А не заповниться. Потім через косвенну адресацію записуємо число з аккумулятора в комірку пам*яті (у мене це 30h), решту - ще 4 біти запихуємо в 31h.

Таким чином отримуємо всі 12 біт сигналу. В даній прозі зупинки немає, походу буде оцифровувати, поки не згорить. Бо я так написав із другом.




Питання:

1. Чи обов*язково під*єднувати ножку АЦП під назвою SHDN (shut down)?

2. У мене АЦП живиться не від 5, а від 3,3 В. Це треба резистор поставити, щоб понизити напругу, чи окреме джерело якесь?




Прихований текст
SCLK bit P1.0
     CS bit P1.1
 SHDN bit P1.2
     DOUT bit P1.3; задаем имена ножкам порта Р1
     
     const_P1 equ 11111010b; константа загрузки, начальное состояние порта Р1
     
     org 00h
     jmp ini
     org 20h
     
     ini: mov P1, #const_P1; присвоение порту Р1 начального состояния
      mov R5, #8
      mov R0, #30h
      clr CS
      mov R2, #4
     
     delay: djnz R2, delay
     
     main: call DRV
      inc R0
      jmp main
     
     DRV: setb SCLK
     
      M1: clr SCLK
      setb sclk
      mov C, DOUT; бит с DOUT передаем в бит С
      RLC A; сдвиг аккумулятора на единицу влево через бит С
      djnz R5, M1; цикл повторяется 8 раз
     
      mov @R0,A; запись первых бит В11-В4 в ячейку памяти данных 30h
     
     inc R0; регистр R0 стал 31h
     mov A, #0; обнулили акуумулятор
     mov R5, #4
     
      M2: clr SCLK
      setb SCLK
      mov C, DOUT
      RLC A
      djnz R5, M2; цикл повторяется 4 раза (12-8=4)
      mov @R0, A; сдвиг аккумулятора влево через перенос
      mov A, #0; запись оставшихся бит В3-В0 в в ячейку памяти данных 31h
     RET
end
 

Зараз ще кину кілька пояснень з датащіту АЦП...

Зображення



 Стосовно SHDN:


The MAX1240/MAX1241 have two modes: normal and shutdown. Pulling SHDN low shuts the device down and
reduces supply current below 10μA (VDD ² 3.6V), while pulling SHDN high or leaving it open puts the device
into operational mode. Pulling CS low initiates a conversion.
The conversion result is available at DOUT in unipolar serial format. The serial data stream consists of a high bit, signaling the end of conversion (EOC), followed by the data bits (MSB first).


Зображення

Зображення

Зображення
  • 0

#112 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ->НТУУ "КПІ"

Відправлено 06.12.2010 – 00:13

В тебе джерело опорної напруги всередині чи зовнішнє, а то на схемі якийсь короб торчить?

Щоб сприймати коректно вихід треба DOUT підтягнути до 5 В через резистор 10КОм. Тоды коли вых буде в третьому станы, на виходы буде напруга 5 В а не 3,3В

Хоча, нє, попередній абзац не вірний. Це було б вірно з виходом відкритий колектор, а тут єресб. Треба ще подумати.
  • 0

#113 І Цвях

    опозиція

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1876 повідомлень
  • Стать:Чоловік
  • Місто:Мати міст руських

Відправлено 06.12.2010 – 00:19

Джерело опорної напруги я не намалював. Я так розумію, воно обов'язкове. Тут в інших варіантах діти малювали LM 385, регулюєме, від 1,24 до 5 В.
Зображення

Це джерело треба туди, де Vdd ніжка на АЦП чи живлення МК? Чи і туди і туди? А та схемка знизу +220 В, 50 Гц і те, що тягнеться від неї хіба не 5 В дає?
  • 0

#114 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ->НТУУ "КПІ"

Відправлено 06.12.2010 – 00:20

На скільки я розумію воно НЕ обов"язкове. Той nSHDN якраз вибирає зовнішнє чи внутрішнє джерело використовувати.
Інше питання тобі тільки MAX1240 можна використовувати чи MAX1241 теж підійде? Бо його можна живити 5 В.

Повідомлення відредагував FT232BM: 06.12.2010 – 00:20

  • 0

#115 І Цвях

    опозиція

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1876 повідомлень
  • Стать:Чоловік
  • Місто:Мати міст руських

Відправлено 06.12.2010 – 00:23

В завданні 1240.
  • 0

#116 Андре

    Постійний житель

  • Користувачі
  • PipPipPipPipPip
  • 134 повідомлень
  • Стать:Чоловік
  • Місто:Тернопіль

Відправлено 06.12.2010 – 10:28

Перегляд дописуІ Цвях (6.12.2010 00:23) писав:

В завданні 1240.
а якщо контролер з живленням 2,7-5,5 В. тоді можна кинути спільне джерело на 3,3В.DOUT не тре підтягувати.
  • 0

#117 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ->НТУУ "КПІ"

Відправлено 06.12.2010 – 16:37

В MAX1240 напруга живлення до 3,6В
  • 0

#118 dashuliya_

    Чайник

  • Користувачі
  • Pip
  • 1 повідомлень

Відправлено 09.02.2014 – 12:13

Доброго дня! Поможіть будь ласка написати програму на Ассемблері . Навести програму сортування масиву кодів у порядку зростання
  • 0

#119 pv1

    Чайник

  • Користувачі
  • Pip
  • 2 повідомлень

Відправлено 19.07.2016 – 09:35

Потрібна програма для контролера, готовий заплатити
До контролера підключено 2 датчика вологості та реле. У разі, якщо вологість хоча б на одному з датчиків перевищить 75% має увімкнутися реле.
Програма має запускатися автоматично після ввімкнення живлення.

Як варіант можна використати Arduino Nano V3.0 AVR ATmega328 P-20AU та датчики HTU21, або запропонуйте свої варіанти
  • 0



Кількість користувачів, що читають цю тему: 1

0 користувачів, 1 гостей, 0 анонімних


Магазин кубиков Рубика Cubes.in.ua