РефератыИнформатика, программированиеМиМикропроцессорное устройство управления электронными весами

Микропроцессорное устройство управления электронными весами

Федеральное Агентство по образованию


ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)


Кафедра промышленной электроники (ПрЭ)


МИКРОПРОЦЕССОРНОЕ УСТРОЙСТВО УПРАВЛЕНИЯ ЭЛЕКТРОННЫМИ ВЕСАМИ


Пояснительная записка к курсовому проекту по дисциплине


«Микропроцессорные устройства и системы»


ЗФ КП. ХХХХХХ.008 ПЗ


Студент группы


Руководитель проекта


профессор кафедры ПрЭ


А.В.Шарапов


2008


Федеральное Агентство по образованию


ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)


Кафедра промышленной электроники (ПрЭ)


ЗАДАНИЕ


на курсовое проектирование по дисциплине


«Микропроцессорные устройства и системы»


студенту ____________________________________


группа ________________ факультет _______ ЗФ ________


Тема проекта: Микропроцессорное устройство управления


электронными весами ________________________________


Исходные данные к проекту: Фиксируются вес и стоимость расфасованной порции продукта ____________________________


Содержание пояснительной записки (перечень подлежащих разработке вопросов): ______________________________________


выбор микроконтроллера, обоснование функциональной схемы,


разработка полной принципиальной схемы устройства с перечнем


элементов и листинга управляющей программы


Перечень графического материала (с точным указанием обязательных чертежей и схем):


схема электрическая принципиальная – 1 лист


Дата выдачи задания: __________________________________


Руководитель профессор кафедры ПрЭ _______ А.В.Шарапов


Задание принял к исполнению ____________________


СОДЕРЖАНИЕ


1 Введение ...................................................................................................4


2 Конкретизация технического задания ...................................................4


3 Разработка функциональной схемы .......................................................4


4 Разработка схемы алгоритма прикладной программы .........................5


5 Разработка принципиальной схемы .......................................................7


6 Разработка управляющей программы ....................................................9


7 Заключение .............................................................................................10


Список использованных источников ......................................................11


Приложение А. Листинг управляющей программы ..............................12


ЗФ КП. ХХХХХХ.008 Э3 Плата микроконтроллера. Схема электрическая принципиальная……………......................................................19


ЗФ КП.ХХХХХХ.008 ПЭ3 Плата микроконтроллера. Перечень элементов..............................................................................................................20


1 ВВЕДЕНИЕ


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


Анализ технического задания показывает, что проектируемое устройство должно выполнять две основные задачи:


а) позволять вводить цену продукта с клавиатуры;


б) обрабатывать и выводить значение цены, веса и стоимости расфасованного продукта;


При проектировании принято, что вес товара не превышает 1кг, а цена за килограмм и стоимость – 99р. 99коп..


2 КОНКРЕТИЗАЦИЯ ТЕХНИЧЕСКОГО ЗАДАНИЯ


Для электронных весов потребуются следующие внешние устройства:


- клавиатура с цифрами 0-9 и клавишей ввода, т.е. всего десять клавиш;


- 2 семисегментных индикаторов: 4 отображают вес с точностью до грамма, по 4 для отображения цены и стоимости товара.


- усилитель сигнала с датчика веса и АЦП для оцифровки данных.


При использовании микропроцессорного комплекта серии К580 устройство управления весами кроме центрального процессора (пять микросхем) должно включать в себя параллельный интерфейс, программируемый таймер, ПЗУ для хранения прикладной программы и ОЗУ для организации стека.


Предпочтительнее использование однокристальных микроконтроллеров, где все перечисленные устройства реализованы в одной микросхеме и требуется лишь один источник питания. Наиболее оптимальное решение получается при применении микроконтроллеров AtmelAVRс гибкой и развитой системой команд и множеством вспомогательных функций, среди которых присутствуют 8- и 16-разрядные таймеры и 10-разрядные АЦП. Кроме того, эти контроллеры изготовлены по технологии КМОП, что обеспечивает экономичное потребление тока.


3 РАЗРАБОТКА ФУНКЦИОНАЛЬНОЙ СХЕМЫ


На рисунке 3.1 приведена функциональная схема устройства управления электроннымим весами, выполненного на однокристальном микроконтроллере Atmega16.


В связи с достаточно большим количеством семисегментных индикаторов следует использовать схему динамической индикации. Для этого информационные входы семисегментных индикаторов подключены к выходам дешифратора К514ИД1, а общий вход каждого индикатора – к выходу 4-разрядного дешифратора К1564ИД5. На вход К514ИД1 от микроконтроллера подается код символа, на вход К1564ИД5 – код активного индикатора. Каждый индикатор должен активироваться с частотой не менее 40 Гц (частота, при которой мерцание индикаторов незаметно для глаз). Для отображения информации при таком подключении потребуется один порт, в данной схеме для этих целей выделен порт PC. Поскольку у дешифратора семисегментного индикатора управление запятой не предусмотрено, то для следует выделить еще один вывод микроконтроллера, в данном случае PD7.


Клавиатуру удобно построить в виде матрицы 3´4, для ее сканирования потребуется один порт, в данном случае PB.


Для оцифровки сигнала датчика используется вход микроконтроллера ADC0.


Для определения веса товара с точностью до грамма при максимальном весе 1кг требуется 10-ти разрядный АЦП, встроенный в микроконтроллер.






DB CCD CNTL


RD SHIFT


WR RL


CS


A0 SL


IRQ


CLK BD


RES OB,OA





Рисунок 3.1 – Функциональная схема контроллера


4
Разработка алгоритма управляющей программы


Вне зависимости от задач, выполняемых микроконтроллером, алгоритм управляющей программы, как правило, состоит из двух частей:


- начальная загрузка регистров и значений переменных, инициализация внешних устройств;


- бесконечный цикл, в котором обычно происходит опрос внешних сигналов и обновление информации как для внутренних регистров, так и для внешних устройств.


У электронных весов должно быть два режима работы: режим взвешивания и режим редактирования цены за единицу продукции. Чтобы их различать, введен специальный байт status. При сбросе весы должны находиться в режиме редактирования, контроллер в этом режиме, ожидает ввода значения цены или ее подтверждения путем нажатия клавиши ввода. В режиме взвешивания контроллер пересчитывает значение стоимости взвешенной продукции в зависимости от веса и цены.


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





Рисунок 4.1 – Схема алгоритма прикладной программы


5 РАЗРАБОТКА СХЕМЫ ЭЛЕКТРИЧЕСКОЙ ПРИНЦИПИАЛЬНОЙ


Схема электрическая принципиальная полностью приведена в приложении.


При использовании контроллера Atmega16 фирмой-производителем рекомендовано использовать параллельно каждой паре выводов питания подсоединять помехозащищающий конденсатор емкостью не менее 1мкФ. На схеме эти конденсаторы обозначены C1 и C2, выбран тип К10-17–10В–1мкФ±10%. Между линией RESET и плюсом питания подключается резистор с типовым значением 10 кОм (на схеме – R1), между линией RESET и минусом питания – конденсатор емкостью 1мкФ (на схеме – C4). Такая схема позволяет избежать ложного сброса микроконтроллера.


Параллельно линиям XTAL1 и XTAL2 подсоединяется кварцевый резонатор, частота которого для данного микроконтроллера обычно равна 16МГц. Между минусом питания и линиями XTAL1 и XTAL2 ставятся конденсаторы емкостью (20..30) пФ (на схеме – C3 и C5).


Для усиления сигнала с датчика веса следует применить измерительный усилитель. Схема такого устройства часто включает в себя несколько операционных усилителей, но может выпускаться в интегральном исполнении. В качестве измерительного усилителя выбрана микросхема INA128, которая в качестве дополнительных пассивных элементов требует только резистор для регулирования коэффициента усиления (на схеме – R2), определяемый по формуле:


, (5.1)


где K – требуемый коэффициент усиления.


Например, при K=100 рассчитанное по формуле значение RG
равно 505 Ом, оно округляется до значения из ряда номиналов E6, равное 510 Ом. Лучше применять подстроечный резистор с целью калибровки коэффициента усиления.


В клавиатурной матрице опрашиваемые линии должны быть подтянуты к плюсу питания через резисторы, типовое значение которых равно 10кОм (на схеме – R4–R6).


Для отображения информации выбраны семисегментные индикаторы SA04-11 с общим анодом, каждый из которых потребляет максимальный ток 160мА, каждый сегмент потребляет ток Iсег
=20мА. Сопротивление, ограничивающее ток линии PD7, рассчитывается по формуле:


, (5.2)


Округляя значение сопротивления до стандартного, получаем R3=130Ом.


Выход дешифратора К1564ИД5, разрешающий работу отдельно взятого индикатора, не обеспечивает такого тока, поэтому следует применить схему с усилительным каскадом, изображенную на рис. 5.1. Работа семисегментного индикатора разрешена, когда с выхода дешифратора приходит низкий уровень. При этом между базой и эмиттером транзистора подается смещение, задаваемое делителем напряжения, состоящим из резисторов R1 и R3, включенного параллельно с сопротивлением эмиттерного перехода со стороны базы. Резистор R2 ограничивает ток.



Рис. 5.1 – Схема согласования по току дешифратора с семисегментным индикатором.


Для данной схемы можно выбрать транзистор К501 с максимальным током коллектора 300мА.


Если принять ток через R3 равным току базы, то величина этого сопротивление определиться по формуле:


(5.3)


где b – коэффициент передачи по току в схеме с общим эмиттером, для К501 можно принять равным 50;


Uбэ
– напряжение, необходимое для открытия транзистора, обычно равно (0,8..0,9)В;



– ток коллектора, в данном случае равен току, потребляемому индикатором;


Rбэ
– сопротивление эмиттерного перехода со стороны базы.


.


Округляя значение сопротивления до стандартного, получаем R3=300Ом.


R1 рассчитывается по формуле:


, (5.4)


где Uп
– напряжение питания.



Округляя значение сопротивления до стандартного, получаем R1=680Ом


R2 рассчитывается по формуле:


, (5.5)


где Uд
– падение напряжение на индикаторе, равно 2,5В.


Выводы 4 микросхемы К514ИД1, 18 и 19 микросхемы К1564ИД5 подсоединяются к минусу питания для разрешения их работы.


Извне на устройство управления через разъем XP1 подаются: сигнал датчика, напряжение питания +5В, -5В (для усилителя), общий провод питания.


6 РАЗРАБОТКА УПРАВЛЯЮЩЕЙ ПРОГРАММЫ


Листинг управляющей программы приведен в приложении А.


Для отображения информации в памяти следует выделить 12 байт, в каждом из которых будет храниться код отображаемого символа. Подпрограмма преобразования числа в последовательность выполняет деление машинного слова на 10 с остатком, поэтому для нее необходимо 6 байт: по два для делимого, частного и остатка. Подпрограмма расчета стоимости выполняет умножение и деление слов, поэтому для нее необходимо выделить 8 временных регистров. При выделении регистровой памяти учтено, что регистры r0–r15 не могут использоваться в ряде команд, например, при сравнении. В оперативной памяти также следует выделить 10 ячеек под таблицу для расшифровки скан-кодов цифровых клавиш. Под вес, цену и стоимость в памяти выделяется по два байта.


После подачи сигнала сброса RESET производится начальная загрузка регистров, с помощью которых реализуется настройка портов ввода/вывода и оцифровка аналогового сигнала, а также инициализация таблицы рашифровки скан-кодов. После инициализации программа входит в бесконечный цикл. Опрос клавиатуры происходит путем поочередной установки в низкий уровень линий PB4–PB6 и чтения линий PB0–PB3. Далее скан-код клавиши распознается про

граммно, под него выделен регистр r13. При выполнении процедуры ввода данных скан-код расшифровывается при помощи таблицы и конечное значение символа, введенного с клавиатуры, записывается в регистр r14.


Регистры r16–r25 используются для временного хранения данных.


При разработке процедуры отображения информации необходимо учитывать, что экран должен полностью обновляться с частотой не менее 40Гц, следовательно, с учетом того, что дисплей имеет 16 индикаторов, активный индикатор должен меняться не позже, чем через каждые 1,5625мс. Основной цикл программы, в котором происходит обновление отображаемой информации, занимает меньше времени


Микроконтроллер работает с целыми числами, дробная часть будет лишь имитироваться путем подсвечивания запятой возле соответствующего символа на дисплее.


7 ЗАКЛЮЧЕНИЕ


В контроллере можно использовать любые микросхемы семейства AVR, в зависимости от поставленных задач. Контроллер обладает резидентной памятью и множеством встроенных вспомогательных устройств, что значительно упрощает схемотехническую реализацию системы управления. Благодаря тому, что контроллер является перепрограммируемым, в системе управления электронными весами достаточно легко можно менять диапазоны веса, цены и стоимости.


ЛИТЕРАТУРА

1. Шарапов А.В. Примеры решения схемотехнических задач: Учебное пособие. - Томск: ТИАСУР, 1994. - 141 с.


2. Шарапов А.В. Цифровая и микропроцессорная техника: Учебное пособие. 2-е изд., перер. и доп. - Томск: Изд-во Том. ун-та, 1997. - 108 с.


3. Сташин В.В., Урусов А.В., Мологонцева О.Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. - М.: Энергоатомиздат, 1990. - 224 с.


4. Калабеков Б.А., Мамзелев И.А. Цифровые устройства и микропроцессорные системы: Учебник для техникумов связи. - М.: Радио и связь, 1987. - 400 с.


5. Микропроцессоры и микроЭВМ в системах автоматического управления: Справочник/ С.Т.Хвощ, Н.Н.Варлинский, Е.А.Попов; Под общ. ред. С.Т.Хвоща. - Л.: Машиностроение, 1987. - 640 с.


6. http://www.atmel.com/dyn/resources/prod_documents/2466S.pdf - польное руководство по работе с контроллером Atmega16. Электронный ресурс.


Приложение А. ЛИСТИНГ УПРАВЛЯЮЩЕЙ ПРОГРАММЫ


.include "m16def.inc";Включить определения для контроллера Atmega16


.defscancode=r13


.defkey=r14


.defpointer=r15; используется для ввода данных


.equ entercode=0xD7;кодклавишиввода


.DSEG; резервирование памяти


status: .BYTE1 ;байт статуса


weight: .BYTE 2 ;вес


price: .BYTE 2 ;цена


cost: .BYTE 2 ;стоимость


key_table .BYTE 10;таблица сканкодов


dysplay_table: .BYTE 16;выделить 16 байт как буфер дисплея


.CSEG


; перед началом выполнения программы контроллер проверяет векторы прерываний


rjmp RESET ; Reset Handler


nop


reti EXT_INT0 ; INT0 Handler


nop


reti EXT_INT1 ; INT1 Handler


nop


reti TIM2_COMP ; Timer2 Compare Handler


nop


reti ;TIM2_OVF ; Timer2 Overflow Handler


nop


reti ;TIM1_CAPT ; Timer1 Capture Handler


nop


reti ;TIM1_COMPA ; Timer1 CompareA Handler


nop


reti ;TIM1_COMPB ; Timer1 CompareB Handler


nop


reti ;TIM1_OVF ; Timer1 Overflow Handler


nop


reti ;TIM0_OVF ; Timer0 Overflow Handler


nop


reti ;SPI_STC ; SPI Transfer Complete Handler


nop


reti ;USART_RXC ; USART0 RX Complete Handler


nop


reti ;USART_DRE ; USART0,UDR Empty Handler


nop


reti ;USART_TXC ; USART0 TX Complete Handler


nop


reti ;ADC ; ADC Conversion Complete Handler


nop


reti ;EE_RDY ; EEPROM Ready Handler


nop


reti ;ANA_COMP ; Analog Comparator Handler


nop


reti ;TWI ; Two-wire Serial Interface Interrupt Handler


nop


reti ;TIM0_COMP ; Timer0 Compare Handler


nop


reti ;EXT_INT2 ; INT2 Handler


nop


reti ;SPM_RDY ; SPM Ready Handler


nop


;инициализация


reset: outDDRB, 0xF0; Старшая тетрада порта PB настраивается на вывод, младшая – на ввод


outDDRС, 0xFF; Порты PC и PB настраиваются на вывод


outDDRD, 0xFF;


outADMUX, 0x40; АЦП работает с внешним опорным сигналом, канал 0.


outSFIOR, 0x00; АЦП работает автоматического обновления данных.


out ADCSRA, 0xC0; ЗапускАЦП.


ldir26,low(key_table);заполнение таблицы скан-кодов


ldi r27,high(key_table)


ldi r16,0xE7; клавиша «0»


st X+,r16


ldi r16,0xEE; клавиша «1»


st X+,r16


ldi r16,0xDE; клавиша «2»


st X+,r16


ldi r16,0xBE; клавиша «3»


st X+,r16


ldi r16,0xED; клавиша «4»


st X+,r16


ldi r16,0xDD; клавиша «5»


st X+,r16


ldi r16,0xBD; клавиша «6»


st X+,r16


ldi r16,0xEB; клавиша «7»


st X+,r16


ldi r16,0xDB; клавиша «8»


st X+,r16


ldi r16,0xBB; клавиша «9»


st X+,r16


;опросклавиатуры


begin: ldi scancode,0xFF


ldir19,0x00; обнуление счетчика антидребезгового цикла


l3: ldir16,0x01; задается опрашиваемая линия


l1: movr17,temp1; номер опрашиваемой линии преобразуется для обнуления


negr17 ; соответствующего вывода


outPORTB,r17


inr17, PINB; чтение сканкода


orir17,0x80


cpir17,0xFF ;если клавиша нажата, то запомнить ее сканкод для


breql4 ; обработки в антидребезговом цикле


movr18,r17


l4: lslr16 ;следующая линия


cpir16,0x10


brnel1 ;если опрошены все линии, переходим к следующему шагу


cpi r19,0x00


breq l2


cp r18,scancode


brnel5;если текущий скан-код не равен предыдущему, то нажатие случайное


l2: mov scancode,r18


inc r19


cpir19,0x03 ;антидребезговый цикл


brne l3


;опросрежима


l5: ldi r26,low(status)


ldir27,high(status)


ldr16,X; загружается адрес байта состояния


cpir16,0x01


breql6;если status=1, то перейти к вводу данных


cpiscancode,entercode; если не нажат «Ввод»,


brnel7; то перейти пересчету данных


ldir16,0x01; иначе войти в режим ввода данных


st X,r16


ldi r16,0


move pointer,r16


jmp display


;пересчет данных


l7: in r16,low(ADC);чтение АЦП


inr17,high(ADC)


;пересчет единиц АЦП в реальный вес. Вес равен 1000*ADC/1024, операции умножения и деления на константу реализованы путем операций сдвига и вычитания


mov r18,r16


mov r19,r17


lsl r16


rol r17


lsl r16


rol r17


lsl r16


rol r17


lsl r16


rol r17


lsl r16


rol r17


lsl r16


rol r17


sub r16,r18


sbc r17,r19


sub r16,r18


sbc r17,r19


sub r16,r18


sbc r17,r19


lsr r17


ror r16


lsr r17


ror r16


lsr r17


ror r16


lsr r17


ror r16


lsr r17


ror r16


lsr r17


ror r16


ldi r26,low(weight)


ldi r27,high(weight)


st X+,r16


st X+,r17


;расчет стоимости


ldX+,r18;загрузка значения цены из памяти


ldX+,r19;загрузка значения цены из памяти


ldi r20,0


ldi r21,0


ldi r22,0


ldi r23,0


ldi r24,0


ldi r25,0


ldi r0,0


ldi r2,0


ldi r3,0


;умножение цены на вес


l11: add r20,weight_l


adc r21,weight_h


adc r22,r0


adc r23,r3


inc r24


adc r25,r0


cp r24,r18


cpc r25,r19


brne l11


;деление на тысячу


l12: ldi r24,0xE8


ldi r25,0x03


cp r20,r24


cpc r21,r25


ldi r24,0


cpc r22,r24


cpc r23,r24


brne l13


ldi r24,0xE8


sub r20,r24


sbc r21,r25


sbc r22,r0


sbc r23,r0


ldi r24


add r2,r24


adcr3,r0


rjmpl12


l13: stX+,r20;загрузка стоимости в память


stX+,r21


;преобразование чисел в символы


ldiR26,low(dysplay_table); загрузка начального адреса буфера


ldi R27,high(dysplay_table);дисплея в регистр X.


ldir16,0; заполнение буфера нулевыми символами


ldi r17,0


cpi r16,16


brlo l14


st X,r17


inc к16


l14: ldi r28,low(weight)


ldi r29,high(weight)


ldY+,r16; загрузка веса из памяти


ld Y+,r17


rjmp IntToStr


ldi r26,low(dysplay_table+4); загрузка начального адреса буфера


ldi r27,high(dysplay_table+4);дисплея в регистр X.


ldY+,r16; загрузка цены из памяти


ldY+,r17


rjmpIntToStr


ldir26,low(dysplay_table+8); загрузка начального адреса буфера


ldi r27,high(dysplay_table+8);дисплея в регистр X.


ldY+,r16; загрузка стоимости из памяти


ld Y+,r17


rjmpIntToStr


rjmpdisplay


;считывание данных с клавиатуры


l6: ldir26,low(key_table); загрузка начального адреса


ldi r27,high(key_table);таблицы скан-кодов


lde r17,0


l15: ld r16,X+


cpr16,scancode; расшифровка скан-кода


breql16; если нужный скан-код найден, переход к заполнению данных


inc r17


cpi r17,11


breq l18


rjmp l15


l18: cpi scancode,0xD7;обработка нажатия ввода


brnedisplay


ldir20,0


ldir28,low(dysplay_table +3); загрузка конечного адреса


ldir29,high(dysplay_table +3); символов, отображающих цену


;перевод данных из строкового вида в числовой


l19: ld r16,Y-


ldi r17,0


mov r18,r16


mov r19,r17


lsl r16


rsl r17


lsl r16


rsl r17


lsl r16


rsl r17


lsl r16


rsl r17


add r16,r18


adc r17,r19


add r16,r18


adc r17,r19


ld r18,Y


ldi r19,0


add r16,r18


adc r17,r19


inc r20


cpi r20,3


brnel19


ldir28,low(price); загрузка конечного адреса


ldir29,high(dysplay_table +3); символов, отображающих цену


st Y+,r16


st Y+,r17


jmp display


l16: mov key,r17


mov r17,pointer


cpi r17,0


brne l18


; если заполнение начато заново, обнуляется вся строка


ldir28,low(dysplay_table); загрузка начального адреса символов,


ldi r29,high(dysplay_table);отображающих цену


ldi r16,0


st Y+,r16


st Y+,r16


st Y+,r16


st Y+,r16


ldi r26,low(dysplay_table +7); загрузка адреса конца строки,


ldi r27,high(dysplay_table +7);отображающейцену


ldir28,low(dysplay_table+6); загрузка адреса предпоследнего


ldir29,high(dysplay_table+6);символа строки, отображающей цену


ld r16,Y-


st X-,R16


ld r16,Y-


st X-,R16


ld r16,Y-


st X-,R16


stY,key; запись символа


ldi r16,1


add r17,r16


cpi r17,4


brlo l17


ldi r17,0


l17: mov pointer,r17


;отображение на дисплее


display: ldir26,low(dysplay_table); загрузка начального адреса буфера


ldi r27,high(dysplay_table);дисплея в регистр X.


ldir16,0x00; r16 используется для адресации индикатора


l8: ldr17,X+; r17 используется для временного хранения кода символа


andir16,0x0F


lslr17;формирование байта для отправки на дисплей


lsl r17


lsl r17


lsl r17


add r17,r16


out PORTC,r17


cpi r16,0x01


breq l9


cpi r16,0x05


breq l9


cpi r16,0x0A


breq l9


out PORTD,0x01;гашение запятой


rjmp l10


l9: outPORTD,0x00; отображение запятой


l10: cpi r16,0x0F


brne l8


;подпрограмма преобразования числа в строку


IntToStr: ldi r20,10


ldi r21,0


ITS4: cp r16,r20


cpc r17,r21


brlo ITS1


mov r18,r16


mov r19,r16


ldi r16,0


ldi r17,0


ITS2: cp r18,r20


cpc r19,r21


brlo ITS3


sub r18,r20


sbs r19,r21


inc r16


adc r17,r19


rjmp ITS2


ITS3: ld X+,r16


rjmp ITS4


ITS1: ld X+,r16


reti

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Микропроцессорное устройство управления электронными весами

Слов:2827
Символов:28772
Размер:56.20 Кб.