|
|
|
|
lex: С ваших слов получается что можно обойтись контроллером одним ? Для такой задачи однозначно. Считать значение в RAM и каждый день писать значение в EEPROM, 4-x кило надолго хватит. А если еще и внешнюю память припахать...... , но думаю реально не потребуется. Про исчисление все верно 8бит =255, 9бит =512, 10бит =1024, 11бит=2048 и т.д. Счетчик можно организовать и в десятичной системе, но тогда надо больше RAM. Допустим на индикаторе 12 разрядов, каждому разряду соответствует ячейка RAM соответственно 12 шт, к младшей ячейке прибавляем 1 и как в ней досчитали до 10 его обнуляем ее и прибавляем еденицу к следующему разряду и т.д. всего число = 999.999.999.999 кВт за глаза . |
|
|
Dron_Gus: спасибо но я пишу на Асме только. Да название EEPROM со встроенными часами было бы очень кстати, и скорее всего такой подходи и будет реализоваться " статстику сводить в "потребление за месяц" " Ridiko: хорошая штука ADUC8xx, но стоит от 9$, теже опции можно реализовать на контроллере подешевле. Попробую это сделать на 51ом. |
|
|
AlexAlcoa: ЗдОрово ! Хороший метод, спасибо. У меня 8 разрядов, и соответсвенно по такому методу можно выводить 9999 9999. Но вопрос с деление с остатком остается открытым, почитаю мануал по контроллеру, получается 1 импульс = 10 ватт. Можеть быть сколько угодно импульсов. Если считать 255 импульсов, потом умножать на 10 .... куда я результат то складу  Непомню я могу сразу адресовать во внешнюю память ? Если да то это многое упращает. Потому что если использовать встроенную епром память контроллера это 8 бит всего. |
|
|
Насколько я помню 8051, при умножении 2х 8-битных результат 16-битный и разложен по двум регистрам. |
|
|
Dron_Gus: Не совсем, там все складывается 8 битный аккамулятор !!! Dron_Gus: на второй ответ .. Может это поновее .. хотя раз 51 то архитектура та же .. У меня дока на Intel ... И Motorola ..не нашел что там 16 .. Но это щас не суть важно ) |
|
|
Вот читаю в доке 8051 Microcontroller Instruction Set.pdf от Atmel: MUL AB Function: Multiply Description: MUL AB multiplies the unsigned 8-bit integers in the Accumulator and register B. The low-order byte of the 16-bit product is left in the Accumulator, and the high-order byte in B. If the product is greater than 255 (0FFH), the overflow flag is set; otherwise it is cleared. The carry flag is always cleared. Example: Originally the Accumulator holds the value 80 (50H). Register B holds the value 160 (0A0H). The instruction, MUL AB will give the product 12,800 (3200H), so B is changed to 32H (00110010B) and the Accumulator is cleared. The overflow flag is set, carry is cleared. |
|
|
Я вообщем благодаря вашей помощи, мануалу и старой памяти, кое что придумал, вот на ваш суд выдаю такой способ: Использую восемь, 8разрядных регистров и Таймер-счетчик Данные хранимые в регистрах соответсвенно: 1. 10 Вт 2. 100 Вт 3. 1кВт 4.10кВт 5. 100кВт 6. 1мВт 7.10 мВт 8.100 мВт (это уже наверное перебор, но учтем) Краткий алгоритм: Т/C контроллера работает в режиме захвата по фронту, по прерыванию сохраняем в ячейку памяти Единичку (в первый регистр) Далее проверяем, если НЕравен 9 - инкремент, если равен9 - очищаем текущий регистр и инкрементируем след. яч. памяти. (тоесть получается 100 кВт), это же условие проверяем здесь же = или != 9 ... и так далее до 8го регистра. Так же переодическая пересылка на индикатор данных. (Не знаю взять "умный" или пользоваться 7 сегментным с дишифратором ...) индикатор 8разрядный - 9.9.9.9.9.9.9.9 Это все должно произойти за время между импульсами. По-моему на все должно хватить, программа на 20-30 команд, каждая по 2-3 машинных цикла, тоесть всего 90 мксек ) Требование Т/C у 51го чтобы импульс был длительностью не менее 2х тактов. Это тут тоже будет. Кварц - 12 мГц. |
|
|
это как бы "костяг" Потом в планах статистика, запись во внешнюю память .. |
|
|
Ув lex, что-то я не заметил "ячейки" для 1 Вт  |
|
|
chav1961: - а не будет такой, "разрешение" счетчика 10 Вт Для промышленного счетчика я считаю это нормально, а Вы ? 220 В и ток до 100 А ... в каждой фазе Dron_Gus: Может это поновее .. хотя раз 51 то архитектура та же .. У меня дока на Intel ... И Motorola ..не нашел что там 16 .. Но это щас не суть важно ) |
|
|
|
|