Учет расхода газа

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

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.