Учет расхода газа
Выбор элементной базы, удовлетворяющей требованиям быстродействия и возможностям реализации принципа работы устройства для учета расхода газа. Разработка программы для реализации устройства учета расхода газа на микроконтроллерах. Отладка программы.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 26.03.2017 |
Размер файла | 1,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Челябинской области
Государственное бюджетное профессиональное образовательное
Учреждение «Коркинский горно-строительный техникум»
Пояснительная записка к курсовому проекту
по МДК 02.01 Микропроцессорные системы
УЧЕТ РАСХОДА ГАЗА
Выполнил студент
группы КСК-13
А.В.Печенкин
Введение
Курсовой проект - это очень важный вид учебной и научно-исследовательской работы. Основной целью выполнения курсового проекта является освоение технологии проектных работ, выбор и обоснование технических решений, развитие навыков самостоятельной работы, а также закрепление и расширение знаний, полученных на лекциях, лабораторных и практических занятиях по принципам построения микропроцессорных устройств.
Микроконтроллерные технологии очень эффективны. Одно и то же устройство, которое раньше собиралось на традиционных элементах, будучи собрано с применением микроконтроллеров становится проще, не требует регулировки и меньше по размерам. Кроме того, с применением микроконтроллеров появляются практически безграничные возможности по добавлению новых потребительских функций и возможностей к уже существующим устройствам.
Целью данного курсового проекта является проектирование устройства для контроля и учета газа на микроконтроллерах.Система контроля и учета расхода газа на газопроводе относится к системам контроля, управления, сигнализации и наблюдения за расходом газа на газопроводе и может быть использовано для жилищно-коммунального хозяйства.
Система контроля и учета расхода газа на газопроводе содержит размещенный на ответвлении от последнего управляемый отсечной клапан и объемный диафрагменный счетчик газа со встроенным мерным механизмом и подключенным к нему через вращающийся вал с диском на конце отсчетным устройством расхода газа, включающим импульсную линию от телеметрического датчика. Система дополнительно содержит местный канал связи для передачи информации в прямом и обратном направлениях, устройства передачи информации на расстояние в прямом и обратном направлениях, удаленный канал связи и удаленного потребителя информации с функцией контроля и управления, при этом местный канал связи сообщает отсчетное устройство расхода газа с устройствами передачи информации на расстояние в прямом и обратном направлениях, а последние сообщены удаленным каналом связи с удаленным потребителем информации, обладающим функцией контроля и управления отсечным клапаном.
Задачи данного курсового проекта можно сформулировать таким образом:
- выбрать элементную базу (микроконтроллер, датчики и другие необходимые устройства), удовлетворяющие требованиям быстродействия и функциональным возможностям реализации принципа работы устройства учета расхода газа с учетом простоты и меньших затрат;
- программу для реализации устройства учета расхода газа на микроконтроллерах;
- в выбранной инструментальной среде(AVR Studio, MPLAB IDE и т. д) осуществить отладку программы.
1. Общая часть
1.1 Анализ задачи
Системы для контроля учета расхода газа (далее по тексту - система) предназначены для измерения объема неагрессивного, сухого газа (далее - газ), приведенного к стандартным условиям по ГОСТ 2939 путем измерения объема газа при рабочих условиях счетчиками газа турбинными (TRZ, TRZ2, СГ) или ротационными (RABO, RVG) и автоматической электронной коррекции по измеренным значениям температуры, давления газа, вычисленного по ГОСТ 30319 или подстановочному значению коэффициента сжимаемости газа.
Комплексы могут применяться для измерения объема природного газа по ГОСТ 5542 и других неагрессивных, сухих и очищенных газов (воздух, азот, аргон и т.п. за исключением кислорода в напорных трубопроводах газораспределительных пунктов и станций (ГРП, ГРС), теплоэнергетических установок и других технологических объектов.
Устройство относится к системам контроля, управления, сигнализации и наблюдения за расходом газа на газопроводах для жилищно-коммунального хозяйства.
Известны различные устройства учета газа на газопроводах для жилищно-коммунального хозяйства. Так, например, известен счетчик газа для бытовых нужд, содержащий корпус, механизм отсчета мерных объемов газа, связанный с отсчетным механизмом, включающим табло [SU 1661579 G01F 1/00, 1988]. Информацию о расходе газа по этому прибору можно получить только на месте установки счетчика, непосредственно контролируя табло его отсчетного механизма. В последнее время стал применяться в жилищно-коммунальном хозяйстве счетчик газа объемный диафрагменный типа NPMT [Счетчик газа объемный диафрагменный. Паспорт. Завод газового оборудования «Газдевайс». ГЮНК 407260.004 ПС]. Этот счетчик предназначен для учета газообразного топлива - сжиженного газа, нефтяного газа, крекинг-газа и природного газа. Особенностью счетчика является то, что он имеет в отсчетном устройстве телеметрический датчик (геркон) для вывода информации в виде импульсов, каждый из которых соответствует определенному объему газа, пропущенному через счетчик (например, 0, 01 м3/имп.). В случае применения его в условиях взрывоопасных зон помещений и наружных установок к разъему телеметрического датчика счетчика типа NPMT допускается применение электрооборудования с выходной искробезопасной электрической цепью, сертифицированного для взрывоопасной газовой смеси категории Устройства учета расхода газа можно классифицировать следующим образом:
- по назначению: домовые и промышленные;
- по числу выходов: с одним и двумя выходами;
- по технологическим схемам:
- с одной линией редуцирования;
- с основной и резервной линиями редуцирования;
- с двумя линиями редуцирования, настроенными на разное выходное давление, и двумя резервными линиями;
- с четырьмя линиями редуцирования (две основные, две резервные), с параллельным редуцированием, с одним или двумя выходами.
Устройство учета расхода газа выполняет следующие функции:
- вычисление приведенного к стандартным условиям объема газа;
- Отображение на дисплее корректора информации о текущих значениях измеряемых и рассчитываемых параметров (объем, давление, температура и т.д), данных архивов и журналов - суточного потребления и максимальных расходов текущего и прошедшего месяца с указанием времени и даты и т.д.;
- возможность интеграции в систему с дистанционной передачей данных с помощью интерфейса постоянного подключения RS232 (RS485) или оптического интерфейса
- дистанционная передача данных архива и технологических данных с помощью программного обеспечения;
- периодический вывод данных на принтер, оснащенный последовательным портом;
- представление отчетов о нештатных ситуациях, авариях, несанкционированных вмешательствах;
- архивирование основных измеряемых и вычисляемых параметров;
- почасовая запись данных в архив за 9 месяцев;
- ввод и изменение исходных условий и данных (процедура настройки);
- при использовании модуля функционального расширения МР260 возможно постоянное подключение различных по типу устройств (принтер, модем, ПК и пр.) для передачи или вывода на печать интервального архива (принтер), дистанционного управления корректором (модем, ПК).
- возможность работы по подставному значению расхода.
- контроль температуры окружающей среды (опционально);
- контроль перепада давления на счетчике газа (опционально, не требует внешнего питания, дооснащение в процессе эксплуатации);
- использование дополнительных высокочастотных (A1R, A1K) и среднечастотных (R300) датчиков импульсов для контроля расхода газа (опционально, дооснащение датчиком R300 в процессе эксплуатации);
- возможность считывания данных по оптическому интерфейсу с использованием кабеля адаптера КА/О-USB ;
- удобный 4-строчный дисплей.
Устройство учёта потребления газа выполняют непрерывное измерение расхода природного газа по узлам учёта осуществляют непрерывный сбор аналоговой и цифровой информации с ПИП с периодом не более 5 с, накопление, обработку и передачу этих данных осуществляют сбор информации и итоговую обработку этой информации.Обеспечивается возможность:
- ввода данных, характеризующих расходомерный узел, с фиксацией даты и времени (режим программирования вычислителя);
- ввода параметров, характеризующих выходные сигналы первичных преобразователей и назначение каналовАЦП;
- изменения параметров, характеризующих состав природного газа и атмосферное давление (при использовании преобразователя избыточного давления);
- отображения всех преобразованных сигналов преобразователей и вычисленный расход, а также промежуточных значений величин, характеризующих расход;
- считывания всех архивов и сохранения их в виде файлов на жёстком диске персонального компьютера в папке с наименованием предприятия.
- работы с несколькими вычислителями;
- конфигурирования (запись постоянных характеристик) вычислителя
- чтения и отображения в виде таблиц потребления энергоносителя за указанный месяц (сутки);
- вывода данных на печать;
- архивирования данных на НЖМД персонального компьютера;
учет расход газ микроконтроллер
1.2 Предварительное проектирование микропроцессорной системы
Проектирование микропроцессорной системы начинается с анализа и уточнения технического задания на разработку микропроцессорной системы. В процессе разработки микропроцессорной системы происходит переход от одного уровня представления к другому более детальному.
Этапы и задачи проектирования микропроцессорной системы:
- при проектировании многопроцессорных микропроцессорных систем, содержащих несколько типов микропроцессорных наборов, необходимо решать вопросы организации памяти, взаимодействия с процессорами, организации обмена между устройствами системы и внешней средой, согласования функционирования устройств, имеющих различную скорость работы, и т. д.
Ниже приведена примерная последовательность этапов, типичных для создания микропроцессорной системы:
- формализация требований к системе;
- разработка структуры и архитектуры системы;
- разработка и изготовление аппаратных средств и программного обеспечения системы.
Комплексная отладка и приемосдаточные испытания проводятся по этапам.
Этап 1. На этом этапе составляются внешние спецификации, перечисляются функции системы, формализуется техническое задание (ТЗ) на систему, формально излагаются замыслы разработчика в официальной документации.
Этап 2. На данном этапе определяются функции отдельных устройств и программных средств, выбираются микропроцессорные наборы, на базе которых будет реализована система, определяются взаимодействие между аппаратными и программными средствами, временные характеристики отдельных устройств и программ.
Этап 3. После определения функций, реализуемых аппаратурой, и функций, реализуемых программами, схемотехники и программисты одновременно приступают к разработке и изготовлению соответственно опытного образца и программных средств. Разработка и изготовление аппаратуры состоят из разработки структурных и принципиальных схем, изготовления прототипа, автономной отладки.
Разработка программ состоит из разработки алгоритмов; написания текста исходных программ; трансляции исходных программ в объектные программы; автономной отладки.
Этап 4. На каждом этапе проектирования МПС людьми могут быть внесены неисправности и приняты неверные проектные решения. Кроме того, в аппаратуре могут возникнуть дефекты.
Устройство учета расхода газа состоит из:
- микроконтроллера;
- дисплея;
- датчиков расхода, температуры и давления проходящего газа.
- элемента питания(батареи)
- LCD дисплея
Дадим основное назначение данных устройств.
Датчик давления - первичный преобразователь давления в электрическое напряжение.
Датчик расхода - считывает количество проходящего газа.
Датчик температуры - первичный преобразователь температуры в электрическое напряжение.
LCD дисплей - элемент, отображающий значение веса в виде десятичных цифр.
Микроконтроллер - элемент, управляющий устройство учета расхода газа, т.е. опрашивающий датчик с некоторой периодичностью и преобразующий его аналоговый электрический сигнал в цифровой, а также выводящий это значение на индикатор.
Батарея питания - элемент, питающий устройство учета расхода газа.
Их принцип действия. Датчики собирают информацию о расходе газа, его температуре и давления.Вся информация обрабатывается микроконтроллером и после преобразования в десятичные числа передается на LCDдисплей в форме удобной для отслеживания абонентом.
Рисунок 1 - Структурная схема устройства
1.3 Выбор и обоснование элементной базы
Таблица 1 - Характеристика микроконтроллера PIC16F87A
В байтах
Тип памяти программ |
Flash |
|||||
Объем памяти программ (кбайт) |
14 |
|||||
Быстродействие (MIPS -- миллионов команд в секунду) |
5 |
|||||
ОЗУ (байт) |
368 |
|||||
EEPROM память данных (байт) |
256 |
|||||
Поддерживаемые режимы связи с периферией |
1-UART, 1-A/E/USART, 1-SPI, 1-I2C1-MSSP(SPI/I2C) |
|||||
Модуль для формирования и измерения импульсных сигналов |
2 CCP |
|||||
Таймеры |
2 x 8-битных, 1 x 16-битный |
|||||
Компараторы |
2 |
|||||
АЦП |
10 разрядное, 5 канальное |
|||||
Диапазон температур (°C) |
от -40 до 125 |
|||||
Диапазон рабочего напряжения (В) |
от 2 В до 5.5 В |
|||||
Количество выводов |
28 |
|||||
Обозначениевывода |
№выводаDIP |
№выводаSOIC |
ТипI/O/P |
Типбуфера |
Описание |
|
OSC1/CLKIN |
9 |
9 |
I |
ST/CMOS(3) |
Входгенератора/вход внешнего тактового сигнала |
|
OSC2/CLKOUT |
10 |
10 |
O |
- |
Выход генератора.Подключаетсякварцевый или керамический резонатор. В RC режиметактового генератора на выходе OSC2 присутствует тактовыйсигнал CLKOUT, равныйFOSC/4. |
|
MCLR/VPP |
1 |
1 |
I/P |
ST |
Вход сбросамикроконтроллера иливход напряжения программирования.Сброс микроконтроллера происходит при низком логическом уровнесигналана входе. |
|
RA0/AN0 RA1/AN1 RA2/AN2/VREF- RA3/AN3/VREF+ RA4/T0CKI RA5/-SS/AN4 |
2 3 4 5 6 7 |
2 3 4 5 6 7 |
I/O I/O I/O I/O I/O I/O |
TTL TTL TTL TTL ST TTL |
Двунаправленный порт ввода/выводаPORTA.RA0 может бытьнастроен как аналоговый канал0 RA1может бытьнастроен как аналоговый канал1 RA2 может бытьнастроен как аналоговый канал2 или входотрицательного опорного напряжения RA3 может бытьнастроен как аналоговый канал3 или входположительного опорного напряжения RA4 можетиспользоватьсявкачествевхода внешнего тактовогосигналадляTMR0.Выход соткрытымстоком. RA1может бытьнастроен как аналоговый канал1 или вход выбора микросхемы врежимеведомогоSPI |
|
RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD |
21 22 23 24 25 26 27 28 |
21 22 23 24 25 26 27 28 |
I/O I/O I/O I/O I/O I/O I/O I/O |
TTL/ST(1) TTL TTL TTL TTL TTL TTL/ST(2) TTL/ST(2) |
Двунаправленный порт ввода/выводаPORTB. PORTB имеет программно подключаемые подтягивающие резисторынавходах. RB0 можетиспользоватьсявкачествевхода внешних прерываний. RB3 можетиспользоватьсявкачествевхода для режима низковольтного программирования. Прерывания по изменению уровнявходного сигнала. Прерывания по изменению уровнявходного сигнала. Прерывания по изменению уровнявходного сигнала или выводдлярежима внутрисхемной отладки ICD.Тактовыйвходврежимепрограммирования.Прерывания по изменению уровнявходного сигнала или выводдлярежима внутрисхемной отладки ICD. Вывод данныхв режимепрограммирования. |
|
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT |
11 12 13 14 15 16 17 18 |
11 12 13 14 15 16 17 18 |
I/O I/O I/O I/O I/O I/O I/O I/O |
ST ST ST ST ST ST ST ST |
Двунаправленный порт ввода/выводаPORTC. RC0 можетиспользоватьсяв качестве выхода генератора TMR1 или входа внешнеготактового сигнала для TMR1. RC1 можетиспользоватьсяв качестве входа генератора для TMR1 или выводамодуляCCP2. RC2 можетиспользоватьсяв качестве выводамодуля CCP1. RC3 можетиспользоватьсяв качестве входа/выхода тактовогосигналав режиме SPI и I2C. RC4 можетиспользоватьсяв качестве входа данныхв режиме SPI или вход/выход данныхврежимеI2C. RC5 можетиспользоватьсяв качестве выхода данныхв режиме SPI. RC6 можетиспользоватьсяв качестве вывода передатчикаUSART в асинхронном режиме или вывода синхронизации USART всинхронномрежиме. RC6 можетиспользоватьсяв качестве вывода приемника USARTвасинхронномрежиме иливывода данных USART в синхронном режиме. |
|
VSS |
8 19 |
8, 19 |
P |
- |
Общий вывод длявнутреннейлогики и портов ввода/вывода |
|
VDD |
20 |
20 |
P |
- |
Положительное напряжениепитания для внутренней логики и портов ввода/вывода |
Рисунок 2- Назначение выводов микроконтроллера
Конструктивно дисплей состоит из следующих элементов:
- ЖК-матрицы (первоначально -- плоский пакет стеклянных пластин, между слоями которого и располагаются жидкие кристаллы; в 2000-е годы начали применяться гибкие материалы на основеполимеров);
- источников света дляподсветки;
- контактногожгута(проводов);
- корпуса, чаще пластикового, с металлической рамкой для придания жёсткости.
- Состав пикселя ЖК-матрицы:
- два прозрачныхэлектрода;
- слой молекул, расположенный между электродами;
- два поляризационных фильтра, плоскости поляризации которых (как правило) перпендикулярны.
Если бы жидких кристаллов между фильтрами не было, то свет, пропускаемый первым фильтром, практически полностью блокировался бы вторым фильтром.
Поверхность электродов, контактирующая с жидкими кристаллами, специально обработана для изначальной ориентации молекул в одном направлении. В TN-матрице эти направления взаимно перпендикулярны, поэтому молекулы в отсутствие напряжения выстраиваются в винтовую структуру. Эта структура преломляет свет таким образом, что до второго фильтра плоскость его поляризации поворачивается и через него свет проходит уже без потерь. Если не считать поглощения первым фильтром половины неполяризованного света, ячейку можно считать прозрачной.
Если же к электродам приложено напряжение, то молекулы стремятся выстроиться в направлении электрического поля, что искажает винтовую структуру. При этом силы упругости противодействуют этому, и при отключении напряжения молекулы возвращаются в исходное положение. При достаточной величине поля практически все молекулы становятся параллельны, что приводит к непрозрачности структуры. Варьируя напряжение, можно управлять степенью прозрачности.
Если постоянное напряжение приложено в течение долгого времени, жидкокристаллическая структура может деградировать из-за миграции ионов. Для решения этой проблемы применяется переменный токили изменение полярности поля при каждой адресации ячейки (так как изменение прозрачности происходит при включении тока, вне зависимости от его полярности).
Во всей матрице можно управлять каждой из ячеек индивидуально, но при увеличении их количества это становится трудновыполнимо, так как растёт число требуемых электродов. Поэтому практически везде применяется адресация по строкам и столбцам.
Проходящий через ячейки свет может быть естественным -- отражённым от подложки (в ЖК-дисплеях без подсветки). Но чаще применяют искусственный источник света, кроме независимости от внешнего освещения, это также стабилизирует свойства полученного изображения.
Таким образом, полноценныймониторс ЖК-дисплеем состоит из высокоточной электроники, обрабатывающей входной видеосигнал, ЖК-матрицы, модуля подсветки, блока питания и корпуса с элементами управления. Именно совокупность этих составляющих определяет свойства монитора в целом, хотя некоторые характеристики важнее других.
Номер |
Обозначение |
Назначение |
|
1 |
GND |
Общий вывод источника питания |
|
2 |
+5V |
Напряжение питания +5В |
|
3 |
V0 |
Регулировка контраста |
|
4 |
RS |
Выбор регистра контроллера |
|
5 |
R/W |
Выбор режима обмена |
|
6 |
E |
Стробирующий импульс |
|
7 |
DB0 |
Двунаправленная шина данных |
|
8 |
DB1 |
||
9 |
DB2 |
||
10 |
DB3 |
||
11 |
DB4 |
||
12 |
DB5 |
||
13 |
DB6 |
Рисунок 4-LCDдисплей
Датчики расхода газа - устройства, при помощи которых определяют объём газа, пройденного сквозь отверстие неэлектрофицированных объектов за единицу времени.
ДРГ выполняют следующие функции:
- измеряют текущий объёмный расход в рабочих условиях;
- вычисляют и хранят информацию среднечасовых значений по расходу газа;
- отображают мгновенные параметры газового потока на цифровом индикаторе;
- сохраняют данные во время отключения питания;
- передают информацию на управляющие устройства при помощи стандартных протоколов и технологии RS-485, импульсными электрическими или токовыми сигналами
Рисунок 5-Датчик
Датчики давления - устройства, которые изменяют свои физические параметры при изменении давления газа При этом давление газа преобразуется в унифицированные пневматические и электрические сигналы или определённую последовательность цифрового кода.
В состав ДД входит первичный преобразователь (чувствительным элементом которого выступает приёмник давления), схема обработки сигналов, герметичное соединение датчика с объектами, система защиты от воздействий внешних факторов, устройство отображения полученных информационных сигналов.
Рисунок- Перечень элементов
1.4 Разработка программного обеспечения
Принцип работы устройства учета газа основан на свойстве изменения проводимости тонкопленочного слоя диоксида олова SnO2 при контакте его с определяемым газом. Чувствительность к разного рода газам достигается путем легирования различных присадок в чувствительный слой датчика. Сам чувствительный элемент датчика состоит из керамической микротубы с покрытием Al2O3 и нанесенного на нее чувствительного слоя диоксида олова. Внутри тубы проходит нагревательный элемент, который нагревает чувствительный слой до температуры при которой он начинает реагировать на определяемый газ. При попадании газа в датчик происходит абсорбция газа и в следствие чего сопротивление датчика падает и его количество замеряется.
После вывода на индикацию первой (верхней) строки значения второй строки перекодируются и записываются в те же регистры индикации, а затем -- выводятся на индикацию.Программа имеет размер 31 страница и имеет множество подпрограмм после выполнения которых данные выводятся на дисплей.Большой размер выходного файла объясняется большим объемом программы. Программа написана на языке программирования Assemblerи будет откомпилированна в интегрированной среде разаработки MPLAB.Графический алгоритм приведен в приложении Б.
1.5 Отладка и тестирование программного обеспечения
MPLAB - это интегрированная среда разработки, представляющая собой набор программных продуктов, предназначенная для облегчения роцесса создания, редактирования и отладки программ для микроконтроллеров семейства PIC, производимых компанией MicrochipTechnology. Среда разработки состоит из отдельных приложений, связанных друг с другом и включает в себя компилятор с языка ассемблер, текстовый редактор, программный симулятор и средства работы над проектами, также среда позволяет использовать компилятор с языка С.
Рисунок 6 - Главное окно программной оболочки MPLAB
Чтобы создать проект нужно в главном меню выбрать пункт «Project» (Проект) и строчку «ProjectWizard» (Мастер проектов) и запускаем ее. В открывшемся окне нужно нажать «Далее». Следующий шаг - это выбор микроконтроллера, который нужно запрограммировать. Далеевстроке «ActiveToolsuite» выбираем «HI-TECHPICCToolsuite». В следующем окне нажимаем кнопку «Browse…» и задаем название папки и место где будет распологаться данный проект и нажимаем «Далее». В следующем окне нажимаем кнопку «Готово».
В MPLAB создайте новый файл - меню "File" > "New" и сохраните его "File" > "Saves"под именем main.asm
Занести текст программы и нажать Сохранить
Теперь нужно добавить main.asm в проект.
Нужно выбрать инструмент в котором будет происходить проверка работы программы - это может быть реальное устройство с выбранным МК подключенное через интерфейс типаICD2к ПК, может быть супер симуляторPROTEUS - он позволяет симулировать работу не только МК PIC но целого электронного устройства с несколькими МК и даже разных производителей в одной схеме.
Мы будем использовать симулятор MPLAB - выберите его
Симулятор нужно настроить - меню: "Debugger">"Settings"
Здесь указывается частота тактирования микроконтроллера - 20 МГц в нашем примере.
Перейдите на закладку "Uart1 IO" и сделайте такие установки
Выход "Output" мы направим в "Window" - т.е. на экран, а можно было сохранять в файл. Если указать "Input File" то при симуляции его содержимое будет отправляться вUART МК. Нажмите "Применить" и "ОК".
6) Выполните компиляцию проекта
В результате должно появится 2 новых окна Закройте окно c018i.asm
Самое важное сейчас - это сообщение об успешной компиляции "BUILD SUCCEEDED". В окно "Output" выводятся все сообщения о ходе работа инструментов пакета MPLAB - вы видите сейчас в нём подробности процесса компиляции. Если бы при компиляции возникли ошибки или предупреждения то они тоже выводились бы в это окно.
Заключение
В результате работы был спроектировано устройство для учета расхода газа с микроконтроллерным управлением на PIC16F87A. Для данного устройства был построен алгоритм работы и написан код программы на языке ассемблер в интегрированной среде MPLAB. Также разработаны две схемы: электрическая структурная схема и электрическая принципиальная схема.Программа была откомпилирована в MPLAB.
Результатом всей работы является HEX-файл. Он представлен в Приложении Д.
Список использованных источников
1 Официальный сайт производителей микроконтроллеров серии PIC. [Электронный ресурс]. - Режим доступа: http://www.microchip.ru.
2 Официальный документ от производителя микроконтроллеров. [Электронный ресурс]. - Режим доступа: http://www.datasheet.ru.
Приложения
ПриложениеА
Схема электрическая принципиальная
Приложение Б
Алгоритм работы прибора учета расхода газа
Приложение В
Программа работы микроконтроллера PIC16F87A
;***********************************
; disassembled by HellFire v3.01.5
; 28 Mar 16 05:38:58
;***********************************
;-Register Definitions-
WEQU0x00
FEQU0x01
;-Register Files-
INDFEQU0x00
TMR0EQU0x01
PCLEQU0x02
STATUSEQU0x03
FSREQU0x04
PORTAEQU0x05
PORTBEQU0x06
PORTCEQU0x07
PORTDEQU0x08
PORTEEQU0x09
PCLATHEQU0x0A
INTCONEQU0x0B
PIR1EQU0x0C
PIR2EQU0x0D
TMR1LEQU0x0E
TMR1HEQU0x0F
T1CONEQU0x10
TMR2EQU0x11
T2CONEQU0x12
SSPBUFEQU0x13
SSPCONEQU0x14
CCPR1LEQU0x15
CCPR1HEQU0x16
CCP1CONEQU0x17
RCSTAEQU0x18
TXREGEQU0x19
RCREGEQU0x1A
CCPR2LEQU0x1B
CCPR2HEQU0x1C
CCP2CONEQU0x1D
ADRESHEQU0x1E
ADCON0EQU0x1F
OPTION_REGEQU0x01
TRISAEQU0x05
TRISBEQU0x06
TRISCEQU0x07
TRISDEQU0x08
TRISEEQU0x09
PIE1EQU0x0C
PIE2EQU0x0D
PCONEQU0x0E
SSPCON2EQU0x11
PR2EQU0x12
SSPADDEQU0x13
SSPSTATEQU0x14
TXSTAEQU0x18
SPBRGEQU0x19
ADRESLEQU0x1E
ADCON1EQU0x1F
EEDATAEQU0x0C
EEADREQU0x0D
EEDATHEQU0x0E
EEADRHEQU0x0F
EECON1EQU0x0C
EECON2EQU0x0D
;-STATUS bits-
CEQU0x00
DCEQU0x01
ZEQU0x02
NOT_PDEQU0x03
NOT_TOEQU0x04
RP0EQU0x05
RP1EQU0x06
IRPEQU0x07
;-INTCON bits-
RBIFEQU0x00
INTFEQU0x01
T0IFEQU0x02
RBIEEQU0x03
INTEEQU0x04
T0IEEQU0x05
PEIEEQU0x06
GIEEQU0x07
;-PIR1 bits-
TMR1IFEQU0x00
TMR2IFEQU0x01
CCP1IFEQU0x02
SSPIFEQU0x03
TXIFEQU0x04
RCIFEQU0x05
ADIFEQU0x06
;-PIR2 bits-
CCP2IFEQU0x00
BCLIFEQU0x03
EEIFEQU0x04
CMIFEQU0x05
;-T1CON bits-
TMR1ONEQU0x00
TMR1CSEQU0x01
T1SYNCEQU0x02
T1OSCENEQU0x03
T1CKPS0EQU0x04
T1CKPS1EQU0x05
;-T2CON bits-
T2CKPS0EQU0x00
T2CKPS1EQU0x01
TMR2ONEQU0x02
TOUTPS0EQU0x03
TOUTPS1EQU0x04
TOUTPS2EQU0x05
TOUTPS3EQU0x06
;-SSPCON bits-
SSPM0EQU0x00
SSPM1EQU0x01
SSPM2EQU0x02
SSPM3EQU0x03
CKPEQU0x04
SSPENEQU0x05
SSPOVEQU0x06
WCOLEQU0x07
;-CCP1CON bits-
CCP1M0EQU0x00
CCP1M1EQU0x01
CCP1M2EQU0x02
CCP1M3EQU0x03
CCP1YEQU0x04
CCP1XEQU0x05
;-RCSTA bits-
RX9DEQU0x00
OERREQU0x01
FERREQU0x02
ADDENEQU0x03
CRENEQU0x04
SRENEQU0x05
RX9EQU0x06
SPENEQU0x07
;-CCP2CON bits-
CCP2M0EQU0x00
CCP2M1EQU0x01
CCP2M2EQU0x02
CCP2M3EQU0x03
CCP2YEQU0x04
CCP2XEQU0x05
;-ADCON0 bits-
ADONEQU0x00
GOEQU0x02
CHS0EQU0x03
CHS1EQU0x04
CHS2EQU0x05
ADCS0EQU0x06
ADCS1EQU0x07
;-OPTION_REG bits-
PS0EQU0x00
PS1EQU0x01
PS2EQU0x02
PSAEQU0x03
T0SEEQU0x04
T0CSEQU0x05
INTEDGEQU0x06
NOT_RBPUEQU0x07
;-PIE1 bits-
TMR1IEEQU0x00
TMR2IEEQU0x01
CCP1IEEQU0x02
SSPIEEQU0x03
TXIEEQU0x04
RCIEEQU0x05
ADIEEQU0x06
;-PIE2 bits-
CCP2IEEQU0x00
BCLIEEQU0x03
EEIEEQU0x04
;-PCON bits-
NOT_BOREQU0x00
NOT_POREQU0x01
;-SSPCON2 bits-
SENEQU0x00
RSENEQU0x01
PENEQU0x02
RCENEQU0x03
ACKENEQU0x04
ACKDTEQU0x05
ACKSTATEQU0x06
GCENEQU0x07
;-SSPSTAT bits-
BFEQU0x00
UAEQU0x01
I2C_READEQU0x02
I2C_STARTEQU0x03
I2C_STOPEQU0x04
I2C_DATAEQU0x05
CKEEQU0x06
SMPEQU0x07
;-TXSTA bits-
TX9DEQU0x00
TRMTEQU0x01
BRGHEQU0x02
SYNCEQU0x04
TXENEQU0x05
TX9EQU0x06
CSRCEQU0x07
;-ADCON1 bits-
PCFG0EQU0x00
PCFG1EQU0x01
PCFG2EQU0x02
PCFG3EQU0x03
ADFMEQU0x07
__config0x3f7e
;Eeprom memory dump
org0x2100
de0x00, 0x00, 0x00, 0x00, 0x00
;*** Programm dump ***
org0x0000;Start address
clrf0x32
gotoL_0219
bsf0x32, 5
btfss0x32, 5
bcf0x32, 5
btfsc0x32, 3
gotoL_000B
bsf0x32, 3
callL_0044
btfscSTATUS, C
gotoL_0032
L_000B:
movlw0x08;b'0000 1000', ' ', .08
movwf0x23
L_000D:
callL_0058
rlf0x22, F
decfsz0x23, F
gotoL_000D
btfss0x32, 5
callL_003D
callL_0062
callL_005E
btfsc0x32, 5
callL_0032
callL_0037
movf0x22, W
bcfSTATUS, C
gotoL_0214
bsf0x32, 5
btfss0x32, 5
bcf0x32, 5
btfsc0x32, 2
gotoL_0025
andlw0xFE;b'1111 1110', 'ю', .254
movwf0x33
bsf0x32, 2
bcfSTATUS, C
gotoL_0214
L_0025:
btfsc0x32, 4
gotoL_002D
movwf0x26
bsf0x32, 4
callL_0044
btfscSTATUS, C
gotoL_0032
movf0x26, W
L_002D:
callL_004B
btfscSTATUS, C
gotoL_0032
btfss0x32, 5
gotoL_0214
L_0032:
callL_003D
callL_0062
bcf0x32, 2
bcf0x32, 4
bcf0x32, 3
L_0037:
movf0x36, W
movwfFSR
movf0x34, W
L_003A:
bsfFSR, 7
iorwfINDF, F
gotoL_0043
L_003D:
movf0x36, W
movwfFSR
comf0x34, W
L_0040:
andwfINDF, F
bsfFSR, 7
andwfINDF, F
L_0043:
return
L_0044:
callL_0037
callL_0062
callL_003D
callL_005E
movf0x33, W
btfsc0x32, 3
iorlw0x01;b'0000 0001', ' ', .01
L_004B:
movwf0x22
movlw0x08;b'0000 1000', ' ', .08
movwf0x23
L_004E:
rlf0x22, F
btfscSTATUS, C
callL_0037
btfssSTATUS, C
callL_003D
callL_0062
callL_005E
decfsz0x23, F
gotoL_004E
callL_0037
L_0058:
callL_0062
movf0x36, W
movwfFSR
movf0x34, W
andwfINDF, W
addlw0xFF;b'1111 1111', 'я', .255
L_005E:
movf0x37, W
movwfFSR
comf0x35, W
gotoL_0040
L_0062:
movf0x37, W
movwfFSR
movf0x35, W
gotoL_003A
movfFSR, W
L_0067:
movwf0x27
bcfPORTB, 1
bcfPORTB, 0
bcfPORTB, 0
bsfSTATUS, RP0
bcfTRISB, 1
bcfTRISB, 0
bcfTRISB, 0
movlw0x0F;b'0000 1111', ' ', .15
andwfTRISB, F
bcfSTATUS, RP0
movf0x27, W
btfsc0x32, 1
gotoL_0092
movlw0x3A;b'0011 1010', ':', .58
movwf0x21
movlw0xFC;b'1111 1100', 'ь', .252
callL_018D
movlw0x33;b'0011 0011', '3', .51
movwf0x26
callL_00A6
movlw0x10;b'0001 0000', ' ', .16
movwf0x21
movlw0x68;b'0110 1000', 'h', .104
callL_018D
callL_00A6
movlw0x64;b'0110 0100', 'd', .100
callL_018C
movlw0x22;b'0010 0010', '"', .34
movwf0x26
callL_00A6
movlw0x28;b'0010 1000', '(', .40
callL_0091
movlw0x0C;b'0000 1100', ' ', .12
callL_0091
movlw0x01;b'0000 0001', ' ', .01
callL_0091
movlw0x06;b'0000 0110', ' ', .06
callL_0091
bsf0x32, 1
movf0x27, W
gotoL_0092
L_0091:
bsf0x32, 0
L_0092:
movwf0x26
btfss0x32, 0
gotoL_00A0
bcfPORTB, 0
sublw0x03;b'0000 0011', ' ', .03
btfssSTATUS, C
gotoL_00A5
callL_00A5
movlw0x07;b'0000 0111', ' ', .07
movwf0x21
movlw0xD0;b'1101 0000', 'Р', .208
callL_018D
bsfSTATUS, C
return
L_00A0:
bsf0x32, 0
sublw0xFE;b'1111 1110', 'ю', .254
btfscSTATUS, Z
gotoL_0214
bsfPORTB, 0
L_00A5:
btfss0x32, 0
L_00A6:
bcf0x32, 0
bsfPORTB, 1
movlw0x0F;b'0000 1111', ' ', .15
andwfPORTB, F
movf0x26, W
andlw0xF0;b'1111 0000', 'р', .240
iorwfPORTB, F
bcfPORTB, 1
swapf0x26, F
btfsc0x32, 0
gotoL_00A6
movlw0x32;b'0011 0010', '2', .50
callL_018C
bsfSTATUS, C
return
movlw0x08;b'0000 1000', ' ', .08
btfsc0x33, 2
movlw0x01;b'0000 0001', ' ', .01
movwf0x23
clrf0x22
movf0x36, W
movwfFSR
L_00BC:
movf0x34, W
callL_015F
callL_0214
callL_0214
movf0x34, W
iorwfINDF, F
movlw0x06;b'0000 0110', ' ', .06
callL_018C
movf0x34, W
bcfFSR, 7
andwfINDF, W
addlw0xFF;b'1111 1111', 'я', .255
btfss0x33, 2
rrf0x22, F
btfsc0x33, 2
rlf0x22, F
movlw0x32;b'0011 0010', '2', .50
callL_018C
decfsz0x23, F
gotoL_00BC
movf0x22, W
bsfSTATUS, C
gotoL_0214
movwf0x22
movlw0x08;b'0000 1000', ' ', .08
btfsc0x33, 2
movlw0x01;b'0000 0001', ' ', .01
movwf0x23
L_00D8:
rrf0x22, F
movf0x36, W
movwfFSR
movf0x34, W
callL_015F
callL_0214
callL_0214
movf0x34, W
btfscSTATUS, C
iorwfINDF, F
movlw0x37;b'0011 0111', '7', .55
callL_018C
movf0x34, W
iorwfINDF, F
movlw0x09;b'0000 1001', ' ', .09
callL_018C
decfsz0x23, F
gotoL_00D8
bsfSTATUS, C
gotoL_0214
btfss0x33, 1
gotoL_0214
gotoL_00F2
movwf0x33
btfss0x33, 0
gotoL_0214
L_00F2:
movf0x36, W
movwfFSR
movf0x34, W
callL_015F
movlw0x01;b'0000 0001', ' ', .01
movwf0x21
movlw0xE0;b'1110 0000', 'а', .224
callL_018D
movf0x34, W
iorwfINDF, F
movlw0x01;b'0000 0001', ' ', .01
movwf0x21
movlw0xE0;b'1110 0000', 'а', .224
gotoL_018D
movwf0x34
bsfFSR, 7
iorwfINDF, F
bcfFSR, 7
clrf0x22
btfss0x20, 0
movwf0x22
callL_010F
btfscSTATUS, Z
gotoL_0214
callL_010F
btfscSTATUS, Z
gotoL_0214
callL_010F
gotoL_0214
L_010F:
movf0x34, W
xorwf0x22, F
movlw0x01;b'0000 0001', ' ', .01
movwf0x20
clrf0x21
L_0114:
movfINDF, W
andwf0x34, W
xorwf0x22, W
btfssSTATUS, Z
return
incf0x20, F
btfscSTATUS, Z
incfsz0x21, F
gotoL_0114
return
bcf0x33, 7
movf0x29, W
btfscSTATUS, Z
bsf0x33, 7
movlw0x04;b'0000 0100', ' ', .04
movwf0x28
swapf0x25, W
callL_012B
movf0x25, W
callL_012B
swapf0x24, W
callL_012B
movf0x24, W
L_012B:
andlw0x0F;b'0000 1111', ' ', .15
addlw0xF6;b'1111 0110', 'ц', .246
btfscSTATUS, C
addlw0x07;b'0000 0111', ' ', .07
addlw0x0A;b'0000 1010', ' ', .10
gotoL_014E
bcf0x33, 7
movf0x29, W
btfscSTATUS, Z
bsf0x33, 7
movlw0x05;b'0000 0101', ' ', .05
movwf0x28
movlw0x27;b'0010 0111', ''', .39
movwf0x23
movlw0x10;b'0001 0000', ' ', .16
callL_0147
movlw0x03;b'0000 0011', ' ', .03
movwf0x23
movlw0xE8;b'1110 1000', 'и', .232
callL_0147
clrf0x23
movlw0x64;b'0110 0100', 'd', .100
callL_0147
clrf0x23
movlw0x0A;b'0000 1010', ' ', .10
callL_0147
movf0x24, W
gotoL_014E
L_0147:
movwf0x22
movf0x25, W
movwf0x21
movf0x24, W
movwf0x20
callL_01DD
movf0x20, W
L_014E:
movwf0x20
decf0x28, F
btfscSTATUS, Z
bcf0x33, 7
movf0x29, W
btfscSTATUS, Z
gotoL_0158
subwf0x28, W
btfscSTATUS, C
return
L_0158:
movf0x20, W
btfssSTATUS, Z
bcf0x33, 7
btfsc0x33, 7
return
addlw0x30;b'0011 0000', '0', .48
gotoL_020F
L_015F:
xorlw0xFF;b'1111 1111', 'я', .255
andwfINDF, F
gotoL_0162
L_0162:
bsfFSR, 7
andwfINDF, F
gotoL_0214
L_0165:
bsfSTATUS, RP1
bsfSTATUS, RP0
clrfEECON1
bsfEECON1, RD
bcfSTATUS, RP0
movfEEDATA, W
bsfSTATUS, RP1
incfEEADR, F
gotoL_0214
clrw
bsfSTATUS, RP1
movwfEEDATA
bsfSTATUS, RP0
clrfEECON1
bsfEECON1, WREN
movlw0x55;b'0101 0101', 'U', .85
movwfEECON2
movlw0xAA;b'1010 1010', 'Є', .170
movwfEECON2
bsfEECON1, WR
L_0179:
btfscEECON1, WR
gotoL_0179
bcfEECON1, WREN
bcfSTATUS, RP0
incfEEADR, F
gotoL_0214
L_017F:
clrf0x23
movwf0x22
L_0181:
movlw0xFF;b'1111 1111', 'я', .255
addwf0x22, F
btfssSTATUS, C
addwf0x23, F
btfssSTATUS, C
gotoL_0214
movlw0x03;b'0000 0011', ' ', .03
movwf0x21
movlw0xE6;b'1110 0110', 'ж', .230
callL_018D
gotoL_0181
L_018C:
clrf0x21
L_018D:
addlw0xFC;b'1111 1100', 'ь', .252
movwf0x20
comf0x21, F
btfssSTATUS, C
gotoL_0198
L_0192:
movlw0xFF;b'1111 1111', 'я', .255
L_0193:
nop
addwf0x20, F
btfscSTATUS, C
gotoL_0193
addwf0x20, F
L_0198:
clrwdt
incfsz0x21, F
gotoL_0192
return
addlw0x01;b'0000 0001', ' ', .01
movwf0x27
movlw0x0A;b'0000 1010', ' ', .10
movwf0x22
clrf0x23
L_01A1:
callL_01DD
decfsz0x27, F
gotoL_01A1
movf0x24, W
return
L_01A6:
bcfSTATUS, C
rrf0x21, F
rrf0x20, F
addlw0xFF;b'1111 1111', 'я', .255
btfscSTATUS, C
gotoL_01A6
movf0x20, W
gotoL_0214
L_01AE:
clrf0x23
movwf0x22
movlw0x03;b'0000 0011', ' ', .03
gotoL_01BF
L_01B2:
movwf0x22
movlw0x01;b'0000 0001', ' ', .01
gotoL_01BF
L_01B5:
clrf0x23
movwf0x22
movlw0x06;b'0000 0110', ' ', .06
gotoL_01BF
L_01B9:
movwf0x22
movlw0x04;b'0000 0100', ' ', .04
gotoL_01BF
L_01BC:
clrf0x23
movwf0x22
movlw0x05;b'0000 0101', ' ', .05
L_01BF:
movwf0x28
movf0x23, W
subwf0x21, W
btfssSTATUS, Z
gotoL_01C6
movf0x22, W
subwf0x20, W
L_01C6:
movlw0x04;b'0000 0100', ' ', .04
btfscSTATUS, C
movlw0x01;b'0000 0001', ' ', .01
btfscSTATUS, Z
movlw0x02;b'0000 0010', ' ', .02
andwf0x28, W
btfssSTATUS, Z
movlw0xFF;b'1111 1111', 'я', .255
gotoL_0214
L_01CF:
movwf0x22
movf0x20, W
movwf0x26
movf0x24, W
movwf0x20
movf0x26, W
movwf0x24
movf0x21, W
movwf0x26
movf0x25, W
movwf0x21
movf0x26, W
movwf0x25
gotoL_01DF
L_01DD:
clrf0x25
clrf0x24
L_01DF:
movlw0x10;b'0001 0000', ' ', .16
movwf0x26
L_01E1:
rlf0x21, W
rlf0x24, F
rlf0x25, F
movf0x22, W
subwf0x24, F
movf0x23, W
btfssSTATUS, C
incfsz0x23, W
subwf0x25, F
btfscSTATUS, C
gotoL_01F3
movf0x22, W
addwf0x24, F
movf0x23, W
btfscSTATUS, C
incfsz0x23, W
addwf0x25, F
bcfSTATUS, C
L_01F3:
rlf0x20, F
rlf0x21, F
decfsz0x26, F
gotoL_01E1
movf0x20, W
gotoL_0214
L_01F9:
movlw0x10;b'0001 0000', ' ', .16
movwf0x28
clrf0x21
clrf0x20
L_01FD:
rrf0x27, F
rrf0x26, F
btfssSTATUS, C
gotoL_0207
movf0x22, W
addwf0x20, F
movf0x23, W
btfscSTATUS, C
incfsz0x23, W
addwf0x21, F
L_0207:
rrf0x21, F
rrf0x20, F
rrf0x25, F
rrf0x24, F
decfsz0x28, F
gotoL_01FD
movf0x24, W
gotoL_0214
L_020F:
movwfFSR
movf0x31, W
movwfPCLATH
movf0x30, W
movwfPCL
L_0214:
bcfSTATUS, IRP
bcfSTATUS, RP1
bcfSTATUS, RP0
clrwdt
return
L_0219:
movlw0x10;b'0001 0000', ' ', .16
movwf0x50
movlw0x70;b'0111 0000', 'p', .112
movwf0x38
movlw0x17;b'0001 0111', '', .23
movwf0x39
clrf0x3A
clrf0x3B
bcfPCLATH, 3
bcfPCLATH, 4
gotoL_02DF
clrwdt
movf0x50, W
sublw0x00;b'0000 0000', ' ', .00
bcfPCLATH, 3
bcfPCLATH, 4
btfscSTATUS, Z
gotoL_02DE
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0xC0;b'1100 0000', 'А', .192
clrfPCLATH
callL_0067
movf0x3A, W
movwf0x26
movf0x3B, W
movwf0x27
movf0x50, W
movwf0x22
clrf0x23
clrfPCLATH
callL_01F9
movwf0x3C
movf0x25, W
movwf0x3D
movf0x39, W
movwf0x23
movf0x38, W
clrfPCLATH
callL_01CF
movwf0x3C
movf0x21, W
movwf0x3D
movf0x24, W
movwf0x44
movf0x25, W
movwf0x45
clrf0x51
L_024A:
movlw0xFF;b'1111 1111', 'я', .255
addwf0x50, W
movwf0x46
movlw0xFF;b'1111 1111', 'я', .255
btfscSTATUS, C
addlw0x01;b'0000 0001', ' ', .01
movwf0x47
movf0x51, W
movwf0x20
clrf0x21
movf0x47, W
movwf0x23
movf0x46, W
clrfPCLATH
callL_01B2
bcfPCLATH, 3
bcfPCLATH, 4
btfssSTATUS, Z
gotoL_02DE
movf0x3C, W
movwf0x20
movf0x3D, W
movwf0x21
movf0x51, W
clrfPCLATH
callL_01B5
bcfPCLATH, 3
bcfPCLATH, 4
btfssSTATUS, Z
gotoL_026E
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
bcfPCLATH, 3
bcfPCLATH, 4
gotoL_02D9
L_026E:
movf0x3C, W
movwf0x20
movf0x3D, W
movwf0x21
movf0x51, W
clrfPCLATH
callL_01AE
bcfPCLATH, 3
bcfPCLATH, 4
btfssSTATUS, Z
gotoL_027F
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
bcfPCLATH, 3
bcfPCLATH, 4
gotoL_02D9
L_027F:
movf0x3C, W
movwf0x20
movf0x3D, W
movwf0x21
movf0x51, W
clrfPCLATH
callL_01BC
bcfPCLATH, 3
bcfPCLATH, 4
btfssSTATUS, Z
gotoL_02D9
movf0x38, W
movwf0x26
movf0x39, W
movwf0x27
movlw0x06;b'0000 0110', ' ', .06
movwf0x22
clrf0x23
clrfPCLATH
callL_01F9
movwf0x40
movf0x25, W
movwf0x41
clrf0x23
movlw0x0A;b'0000 1010', ' ', .10
clrfPCLATH
callL_01CF
movwf0x40
movf0x21, W
movwf0x41
movf0x44, W
movwf0x20
movf0x45, W
movwf0x21
movf0x41, W
movwf0x23
movf0x40, W
clrfPCLATH
callL_01B9
bcfPCLATH, 3
bcfPCLATH, 4
btfssSTATUS, Z
gotoL_02B0
movlw0x01;b'0000 0001', ' ', .01
clrfPCLATH
callL_0067
bcfPCLATH, 3
bcfPCLATH, 4
gotoL_02D9
L_02B0:
movf0x38, W
movwf0x26
movf0x39, W
movwf0x27
movlw0x03;b'0000 0011', ' ', .03
movwf0x22
clrf0x23
clrfPCLATH
callL_01F9
movwf0x40
movf0x25, W
movwf0x41
clrf0x23
movlw0x0A;b'0000 1010', ' ', .10
clrfPCLATH
callL_01CF
movwf0x40
movf0x21, W
movwf0x41
movf0x44, W
movwf0x20
movf0x45, W
movwf0x21
movf0x41, W
movwf0x23
movf0x40, W
clrfPCLATH
callL_01B9
bcfPCLATH, 3
bcfPCLATH, 4
btfssSTATUS, Z
gotoL_02D6
movlw0x02;b'0000 0010', ' ', .02
clrfPCLATH
callL_0067
bcfPCLATH, 3
bcfPCLATH, 4
gotoL_02D9
L_02D6:
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
L_02D9:
incf0x51, F
bcfPCLATH, 3
bcfPCLATH, 4
btfssSTATUS, Z
gotoL_024A
L_02DE:
return
L_02DF:
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x40;b'0100 0000', '@', .64
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x15;b'0001 0101', '', .21
clrfPCLATH
callL_0067
movlw0x15;b'0001 0101', '', .21
clrfPCLATH
callL_0067
movlw0x15;b'0001 0101', '', .21
clrfPCLATH
callL_0067
movlw0x15;b'0001 0101', '', .21
clrfPCLATH
callL_0067
movlw0x15;b'0001 0101', '', .21
clrfPCLATH
callL_0067
movlw0x15;b'0001 0101', '', .21
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x48;b'0100 1000', 'H', .72
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x14;b'0001 0100', '', .20
clrfPCLATH
callL_0067
movlw0x14;b'0001 0100', '', .20
clrfPCLATH
callL_0067
movlw0x14;b'0001 0100', '', .20
clrfPCLATH
callL_0067
movlw0x14;b'0001 0100', '', .20
clrfPCLATH
callL_0067
movlw0x14;b'0001 0100', '', .20
clrfPCLATH
callL_0067
movlw0x14;b'0001 0100', '', .20
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x50;b'0101 0000', 'P', .80
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x10;b'0001 0000', ' ', .16
clrfPCLATH
callL_0067
movlw0x10;b'0001 0000', ' ', .16
clrfPCLATH
callL_0067
movlw0x10;b'0001 0000', ' ', .16
clrfPCLATH
callL_0067
movlw0x10;b'0001 0000', ' ', .16
clrfPCLATH
callL_0067
movlw0x10;b'0001 0000', ' ', .16
clrfPCLATH
callL_0067
movlw0x10;b'0001 0000', ' ', .16
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x58;b'0101 1000', 'X', .88
clrfPCLATH
callL_0067
movlw0x16;b'0001 0110', '', .22
clrfPCLATH
callL_0067
movlw0x09;b'0000 1001', ' ', .09
clrfPCLATH
callL_0067
movlw0x08;b'0000 1000', ' ', .08
clrfPCLATH
callL_0067
movlw0x08;b'0000 1000', ' ', .08
clrfPCLATH
callL_0067
movlw0x08;b'0000 1000', ' ', .08
clrfPCLATH
callL_0067
movlw0x09;b'0000 1001', ' ', .09
clrfPCLATH
callL_0067
movlw0x06;b'0000 0110', ' ', .06
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x60;b'0110 0000', '`', .96
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x02;b'0000 0010', ' ', .02
clrfPCLATH
callL_0067
movlw0x06;b'0000 0110', ' ', .06
clrfPCLATH
callL_0067
movlw0x0E;b'0000 1110', ' ', .14
clrfPCLATH
callL_0067
movlw0x06;b'0000 0110', ' ', .06
clrfPCLATH
callL_0067
movlw0x02;b'0000 0010', ' ', .02
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x68;b'0110 1000', 'h', .104
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x08;b'0000 1000', ' ', .08
clrfPCLATH
callL_0067
movlw0x0C;b'0000 1100', ' ', .12
clrfPCLATH
callL_0067
movlw0x0E;b'0000 1110', ' ', .14
clrfPCLATH
callL_0067
movlw0x0C;b'0000 1100', ' ', .12
clrfPCLATH
callL_0067
movlw0x08;b'0000 1000', ' ', .08
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x70;b'0111 0000', 'p', .112
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x04;b'0000 0100', ' ', .04
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x78;b'0111 1000', 'x', .120
clrfPCLATH
callL_0067
movlw0x1F;b'0001 1111', '', .31
clrfPCLATH
callL_0067
movlw0x1F;b'0001 1111', '', .31
clrfPCLATH
callL_0067
movlw0x1F;b'0001 1111', '', .31
clrfPCLATH
callL_0067
movlw0x1F;b'0001 1111', '', .31
clrfPCLATH
callL_0067
movlw0x1F;b'0001 1111', '', .31
clrfPCLATH
callL_0067
movlw0x1F;b'0001 1111', '', .31
clrfPCLATH
callL_0067
movlw0x1F;b'0001 1111', '', .31
clrfPCLATH
callL_0067
movlw0x00;b'0000 0000', ' ', .00
clrfPCLATH
callL_0067
movlw0x64;b'0110 0100', 'd', .100
clrfPCLATH
callL_017F
bsfSTATUS, RP1
clrfEEADR
bcfSTATUS, RP1
clrfPCLATH
callL_0165
andlw0x01;b'0000 0001', ' ', .01
btfscSTATUS, Z
bcf0x52, 0
btfssSTATUS, Z
bsf0x52, 0
bsfSTATUS, RP0
movlw0xFF;b'1111 1111', 'я', .255
movwfTRISA
movlw0x8E;b'1000 1110', 'Ћ', .142
movwfADCON1
bcfSTATUS, RP0
clrf0x53
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x01;b'0000 0001', ' ', .01
clrfPCLATH
callL_0067
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x0C;b'0000 1100', ' ', .12
clrfPCLATH
callL_0067
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x80;b'1000 0000', 'Ђ', .128
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0xC0;b'1100 0000', 'А', .192
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x2A;b'0010 1010', '*', .42
clrfPCLATH
callL_0067
movlw0x64;b'0110 0100', 'd', .100
clrfPCLATH
callL_017F
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x80;b'1000 0000', 'Ђ', .128
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0xC0;b'1100 0000', 'А', .192
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x64;b'0110 0100', 'd', .100
clrfPCLATH
callL_017F
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x80;b'1000 0000', 'Ђ', .128
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x75;b'0111 0101', 'u', .117
clrfPCLATH
callL_0067
movlw0x62;b'0110 0010', 'b', .98
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0xC0;b'1100 0000', 'А', .192
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x3C;b'0011 1100', '<', .60
clrfPCLATH
callL_0067
movlw0x43;b'0100 0011', 'C', .67
clrfPCLATH
callL_0067
movlw0x20;b'0010 0000', ' ', .32
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x3E;b'0011 1110', '>', .62
clrfPCLATH
callL_0067
movlw0x64;b'0110 0100', 'd', .100
clrfPCLATH
callL_017F
movlw0xFE;b'1111 1110', 'ю', .254
clrfPCLATH
callL_0067
movlw0x80;b'1000 0000', 'Ђ', .128
Подобные документы
Понятие расхода как количественной характеристики жидкости или газа, протекающего через сечение трубопровода в единицу времени. Классификация приборов, измеряющих расход. Новые методы измерения расхода жидкостей и газов. Сигнализаторы потока и протока.
презентация [459,5 K], добавлен 07.12.2012Разработка и описание алгоритма функционирования устройства, отладка рабочей программы на языке команд микропроцессора. Обоснование аппаратной части устройства. Составление электрической принципиальной схемы устройства, расчет быстродействия устройства.
курсовая работа [50,2 K], добавлен 03.12.2010Изучение устройства температурного датчика на основе термопары. Принцип работы металлических тензодатчиков веса (силы). Микросенсоры расхода газа (жидкости), их технические характеристики. Уравнение пироэлектрического эффекта. Способы измерения ускорений.
доклад [977,7 K], добавлен 18.03.2013Построение схемы цифрового устройства и разработка программы, обеспечивающей работу устройства как цифрового сглаживающего фильтра. Отладка программы. Оценка быстродействия устройства. Преимущества и недостатки цифровых фильтров перед аналоговыми.
курсовая работа [526,8 K], добавлен 03.12.2010Описание функциональной схемы цифрового устройства для реализации микроопераций. Выбор элементной базы для построения принципиальной электрической схемы цифрового устройства. Разработка и описание алгоритма умножения, сложения, логической операции.
курсовая работа [684,0 K], добавлен 28.05.2013Разработка функционально законченного устройства для обработки входных сигналов линии с использованием цифровых устройств и аналого-цифровых узлов. Алгоритм работы устройства. Составление программы на языке ассемблера. Оценка быстродействия устройства.
курсовая работа [435,5 K], добавлен 16.12.2013Назначение, конструкция и принцип работы тепловых расходомеров. Расчёт чувствительного элемента датчика, преобразователей. Структурная схема измерительного устройства. Выбор аналогово-цифрового преобразователя и вторичных приборов, расчет погрешности.
курсовая работа [906,9 K], добавлен 24.05.2015Обзор принципа работы расходомеров переменного перепада давления, электромагнитных и переменного уровня. Измерение расхода и количества веществ с целью управления ими. Установление зависимости расхода вещества от перепада давления на сужающем устройстве.
реферат [49,3 K], добавлен 03.02.2013Обзор существующих методов и средств измерения расхода вещества. Скоростной метод измерения расхода. Измерение расхода на основе различных методов, их характеристика и сущность. Наименование объекта проектирования, назначение и область применения (ОП).
курсовая работа [729,5 K], добавлен 27.02.2009Рассмотрение устройства простейшего проволочного тензорезистора. Изучение основных параметров микросхемы АЦП HX711. Выбор датчика, микропроцессора и дисплея. Разработка алгоритма работы программы, программы устройства и выбор языка программирования.
курсовая работа [1,5 M], добавлен 26.07.2022