Реферат по предмету "Коммуникации и связь"


Разработка цифрового измерителя кровяного давления на микроконтроллере MC68HC908JL3

МО РФ
Новосибирскийколледж электроникиКУРСОВОЙ ПРОЕКТПодисциплине микроконтроллеры
На тему:“Разработка ЦИФРОВОГО ИЗМЕРИТЕЛЯ КРОВЯНОГО ДАВЛЕНИЯ на микроконтроллере MC68HC908JL3”
Выполнил: Мамаев А.С.
Гр. 9Вт-454
Проверил: Брикман А.И.
2003
Содержание
Введение
1.       Техническое задание
2.       Выбор и обоснование элементной базы
2.1     Выбор микроконтроллера
3.       Структурная схема устройства
3.1     Состав и назначение отдельных элементов
3.2     Анализ ресурсов ввода-вывода
4.       Структура алгоритма программы
4.1     Обобщённая БСА
4.2     Рабочая БСА
4.2.1 БСА основной программы.
4.2.2 БСА обработчика прерывания от таймера
4.2.3 БСА обработчика прерываний от АЦП
4.2.4 БСА подпрограммы табличной перекодировки напряжение вдавление
4.2.5 БСА подпрограммы вывода числа на индикацию
4.2.6 БСА подпрограммы перевода числа в BCD формат
5. Принципиальная схема устройства
Заключение        
Список литературы
Приложение

Введение.
С развитиеммикроэлектронной индустрии, а в частности с развитием микроконтроллеров,появилась возможность делать малогабаритные и сравнительно дешёвые электронныеизделия.
На сегодняшний день, вкаждой аптеке и специализированных магазинах, можно увидеть в продаже различныемедицинские приборы. Например, цифровой термометр, цифровой измеритель давлениякрови и многое другое.
Появление таких приборовна прилавках магазинов, обусловлено прогрессивным развитием цифровой техники, втом числе и микроконтроллерных систем.
Микроконтроллерыпозволяют меньше использовать типовые элементы в разработках, т.к. практическивсё можно сделать программными средствами, тем самым электронные изделиясделанные на базе микроконтроллеров являются малогабаритными и стоят сравнительноне дорого.
В настоящее время,большая часть медицинских приборов построенна на цифровой логике, главнымэлементом которой является микроконтроллер, и индикация происходит на цифровыхиндикаторах, большую часть из которых составляют ЖКИ.
Поэтому, тема дляразработки была выбранна: “Цифровой измеритель кровяного давления”. Этот приборявляется наиболее нужным в каждой семье. Ведь если ты чувствуеш себя не важно,то в любой момент можно померить давление и из полученных результатов сделатьвывод, надо бежать в больницу или нет.

1.Техническое задание
Устройство – цифровойизмеритель кровяного давления.
Основные техническиехарактеристики прибора:
1.  Общий диапазон измерения:
а.Систолическое/диастолическое давление: от 0 до 250 мм.рт.ст.
б. Пульс: от 0 до 133 уд.в мин.
2.  Минимальный шаг индикации: 1.5мм.рт.ст.
3.  Точность измерения:
а. Статическое давление:3 мм.рт.ст.
б. Пульс: 5% показаний.
4. Индикатор: ЖКИ-модуль.
Информация о давлении ипульсе отображается на 16-ти разрядном, 2-х строчном ЖКИ-модуле.
Измерение происходит вполуавтоматическом режиме.

2. Выбор и обоснованиеэлементной базы
В данном устройстве,информация о систолическом, диастолическом давлении и пульсе должна выводитьсяодновременно. С учётом всего этого, был выбран ЖКИ-модуль DV-16210NRB/R,который имеет две строки, по 16 разрядов в каждой строке.
Датчик давления врассматриваемом устройстве, должен отвечать следующим требованиям:
1.  Датчик должен быть со стандартнымвыходным сигналом, то есть при минимальном значении давления должен иметьвыходной сигнал не более 0,3V, апри максимальном давлении не более 4,8V, это обеспечивает непосредственное соединение датчика смикроконтроллером.
2.  Датчик должен измерять относительноедавление(относительно атмосферы).
3.  Максимальное измеряемое давлениедолжно лежать в пределах от 30 кПа до 50 кПа, так как диапазон измерениясистолического/диастолического давления составляет от 0 до 250 мм.рт.ст.
Взяв во внимание все эти3-и пункта был выбран датчик давления фирмы MOTOROLA MPX5050DP.
2.1 Выбормикроконтроллера
Выбор микроконтроллераосуществляется с учётом следующих параметров:
1.  Линий ввода-вывода должно быть неменее 13, т.к. 11 линий необходимо для работы с индикатором, а две линии дляработы с сигналами поступающими от датчика давления.
2.  Микроконтроллер должен иметьвстроенный АЦП, для работы с аналоговыми сигналами поступающими от датчикадавления MPX5050DP на входы АЦП микроконтроллера.
Поэтому, принимая вовнимание, эти два главных параметра, был выбран маловыводной микроконтроллерфирмы MOTOROLA MC68HC908JL3.

3. Структурная схемаустройства
3.1 Состав и назначениеотдельных элементов
Структурная схемаустройства приведена на рис.3.1.1.
Основой устройстваявляется микроконтроллер. Основная функция микроконтроллера, это прием данныхот датчика и активного фильтра(АФ), обработка этих данных, т.е. вычислениесистолического, диастолического давления и усреднённой частоты пульса. Послетого, как все измерения будут произведены, микроконтроллер выводит информациюна индикатор.
Датчик предназначен дляперевода давления в манжете, в электрический сигнал, т.е. напряжение.
АФ высокой частотыпредназначен для выделения и усиления сигнала, пульсирующего с частотой 1Гц,наложенного на медленно изменяющийся сигнал 0.04Гц. Выделение сигнала необходимо,потому что давление распознаётся по производной сигнала, пульсирующего счастотой 1Гц, а значение давления смотрится по медленно изменяющемуся сигналу(0,04Гц). Поэтому у микроконтроллера задействованы 2-а входа АЦП.
При разработке данногоустройства существовала сложность в том, что датчик при неинвазивныхприменениях(без проникновения во внутренние полости организма) не может бытьрасположен непосредственно внутри системы, в которой измеряется давление.Поэтому пришлось разработать нестандартную систему измерений, в которой датчикпомещается внутри манжеты, на которое наложены небольшие по амплитуде и болеебыстрые пульсации, соответствующее изменению давления в кровеносной системе.
С внешней стороной этогометода измерения давления крови, называемого осциллометрическим, знакомыпрактически все. При этом рука сжимается кольцевой надувной манжетой,накачиваемой вручную. Затем вентиль манжеты слегка приоткрывается, и давление вманжете постепенно падает, и, когда оно становится близким к артериальномудавлению, амплитуда пульсации давления возрастает. Пульсации давленияопределяются работой сердца.
Когда давление в манжетеизменяется от систолического до диастолического, пульсации давления достаточновелики, за границей этого диапазона они резко снижаются. Определить этотдиапазон можно, прослушивая манжету с помощью стетоскопа, но, имея датчикдавления, лучше превратить пульсации давления в электрический сигнал и далееанализировать его с помощью микропроцессорного устройства.
Такой электрический сигнална протяжении всего времени измерения представлен на рис.3.1.2.а. Сначала идётэтап ручной подкачки манжеты(на рис.3.1.2.а. видны повышения давления прикаждом нажатии груши), затем в момент t1 прекращается подкачка и открывается вентиль. Давление, которое в моментt1 превышает систолическое, постепеннопонижается.
В то же время, как этовидно из рис.3.1.2.а. на определённом участке пульсации давления растут, ноотносительная величина этих пульсаций очень невелика по сравнению с усреднённойвеличиной давления. Чтобы было удобно работать с сигналом пульсаций, необходимоотфильтровать низкочастотную усреднённую составляющую и усилить сигналпульсаций. Это можно сделать с помощью активного фильтра на базе операционногоусилителя (на структурной схеме АФ). Такой отфильтрованный и усиленный сигналпредставлен на рис.3.1.2.б в диапазоне выделенном на рис.3.1.2.апрямоугольником.
Диаграммы рис.3.1.2.хорошо иллюстрируют основную идею измерения давления крови, которая сводится вполучении и анализе данных, приходящих с датчика и активного фильтра.

Структурная схемаустройства./> /> /> /> /> /> /> /> /> />
MCU   /> />
Индикатор   />
Датчик   /> /> /> /> /> />

/>/>/>/>/> 11/> /> /> /> /> /> /> /> /> />

Рис.3.1.1.
Диаграммы измерениякровяного давления
/>
Рис.3.1.2.
3.2 Анализ ресурсовввода-вывода
Микроконтроллерысемейства HC08 фирмы MOTOROLA имеют закрытую архитектуру, котораяхарактеризуется отсутствием линий магистралей адреса и данных на выводахкорпуса микроконтроллера. Микроконтроллер представляет собой законченнуюсистему обработки данных, наращивание памяти или периферийных устройств сиспользованием параллельных магистралей адреса и данных не предполагается.Поэтому анализ ресурсов ввода-вывода, должен происходить в самом началеразработки, т.к. в противном случае может возникнуть ситуация нехватки линийввода-вывода.
На принципиальной схемеизображённой на рис.5.1. можно подсчитать, что у микроконтроллера должно бытьне менее 13 линий ввода-вывода(11 линий для работы с ЖКИ-модулем и две линиидля работы с датчиком давления).
В данном случае былвыбран микроконтроллер MC68HC908JL3, который имеет 22 линии ввода-вывода. То есть, по сути делау нас остаётся свободными, 9-ть линий ввода-вывода, которые можно использоватьдля различных усовершенствований прибора. Например, можно дополнительно вприборе сделать часы, также можно сделать, чтобы прибор измерял давление вавтоматическом режиме, для этого необходим компрессор, который будет нагнетатьдавление в манжету. Все эти доработки непосредственно повлекут за собой,задействование дополнительных линий ввода-вывода.

4. Структура алгоритмапрограммы
4.1 Обобщённая БСА
Обобщённая БСА программы,управляющей системой, приведена на рис.4.1.2. После включения питания происходитинициализация всей системы. После этого микроконтроллер ждёт накачки манжеты,осуществляя циклическую проверку окончания накачки. Когда сигнал датчикауменьшается в течении более чем 0,75 секунд, это свидетельствует, чтопользователь больше не накачивает манжету, и микроконтроллер начинаетанализировать сигнал колебания. Анализ сигнала колебания сводится кидентификации амплитуды пульса и осуществляется в блоках 3 и 4.
Пороговый уровень дляизмерения частоты импульсов установлен равным 1,75V, чтобы устранить шумы или всплески. Как только амплитудапульса идентифицирована, микроконтроллер игнорирует сигнал в течении 450 мS, чтобы предотвратить ложнуюидентификацию из-за наличия промежуточного максимума колебания. После чего вблоке 5 происходит вычисление производной амплитуды пульса. Именно попроизводной амплитуды пульса определяется давление крови, блок 6.
Из графика показанного нарис.4.1.1., можно увидеть, что основной принцип измерения основан на сравнениипроизводной с 2-мя порогами, Порог1 и Порог2. Более подробно, это будетрассмотрено в пункте 4.2.

График производнойамплитуды пульса./> /> /> /> /> /> /> /> />

/>/>/>   Порог2/> /> /> /> /> /> /> /> />

/>/>/>/>/>/>/>   Порог1
/>
Рис.4.1.1.
          После того какустройство определит давление и пульс, оно проверяет, есть ошибки в измеренииили нет. Если ошибки есть, то микроконтроллер выводит сообщение об ошибки,после чего, если манжета спущена, т.е. давление внутри манжеты равноатмосферному давлению, то устройство начинает измерение по новому. Если ошибокнет, то информация о давлении и пульсе выводится на индикатор, после чегосистема опять смотрит, если манжета спущена, то измерение давления происходитпо новому, если манжета не спущена, то программа зациклевается и ждёт спускаманжеты.

/>

/>/>
2. Процедура ожидания окончания накачки манжеты             
/>

/>/>/>/>/>                                                    Y                           N
/>

/>/>/>                                                            Y                                             N                                                                    
/>                                                       
/>

/>/>/>                                     Y                                    N            
                                 
/>

/>/>/>/>                          N                                                          Y
                  
/>

/>/>                              Y                                                 
Рис.4.1.2. ОбобщённаяБСА.

4.2 Рабочая БСА
4.2.1 БСА основнойпрограммы
Рабочая БСА придставленнана рис.4.2.1.2… В начале программы происходит инициализация, блок 1, в которомпроисходит инициализация портов ввода-вывода, АЦП и таймера. После чего в блоке2 обнуляются все переменные, задействованные в данной программе. Как только,это всё выполнится, происходит запуск АЦП(блок 4), у которого аналоговым входомявляется линия РТВ0.
Первый результат преобразованияаналогового сигнала, заносится в ячейку памяти CONST, и означает значение кода при нулевом давлении. Послеэтого на индикатор выводятся символы как показано на рис.4.2.1.1., и в младшемразряде “сис:” зажигается 0. После чего, идёт процедура ожидания окончаниянакачки манжеты.
/>
                                       сис х х 0
/>                          диа х х х            пул х хх
рис.4.2.1.1. Расположениесимволов на индикаторе.
Она заключается вследующем. В ячейку памяти delзаносится число соответствующее задержке 0,75 секунды( бл.12). В блоках 16 и 15организован цикл, после выполнения которого, происходит индикация текущегодавления (бл. 17 – 21). После чего делается декремент ячейки памяти del. Если del/>0 то, программа переходит к выполнению бл.13. и всепроисходит заново. Если del=0,то в бл.25. происходит сравнение давления до задержки и после задержки. Еслидавление после задержки больше давления до задержки, то программа переходит квыполнению бл.12. и данная процедура повторяется. Если же давление послезадержки меньше давления до задержки, то это означает, что пользовательпрекратил накачку манжеты, и программа переходит на процедуру определенияамплитуды.
В начале процедуры, вблоке 30 происходит сравнение напряжения снимаемого с активного фильтра (входРТВ1) с заданным порогом напряжения (1,75V). Если пороговое напряжение больше напряжения снимаемого сАФ, то программа зациклевается и ожидает когда напряжение с АФ будет большепорогового. Причём, если в течении 5 секунд программа находится в цикле, тоизмерение прекращается и выводится сообщение об ошибки. Если Upress1>Пор, то происходит сброс ячейкипамяти OVSEC, и далее происходит определениезначения амплитуды (бл. 33 – 37).
Как только, амплитудабудет определенна, происходит сброс и перезапуск таймера, а также обнуление SEC10 и SEC (бл. 38). После чего значение амплитуды заносится вячейку памяти АМР2 (бл. 39). Далее АЦП переключается на вход РТВ0 (бл. 40), ирезультат второго преобразования заносится в UDAV (этот результат показывает давление в манжете), послечего АЦП обратно переключается на вход РТВ1. Как только АЦП переключится навход РТВ1, ячейка памяти PULSE,в которой находится кол-во пульсаций, инкрементируется. А далее идет процедуравычисления производной амплитуды.
Производная вычисляетсяпо формуле:
/>,
где, AMP1 и AMP2 – амплитуды;
/>time – время между амплитудами.
При первом входе впроцедуру SB=0 (бл.50), вычисляется времяимпульса и заносится в ячейку памяти time1 (бл.52 – 55). После чего проверяется (бл.56), если первая амплитуданаходится в АМР2, а вторая в АМР1, то они меняются местами (бл.57 – 59) ипрограмма переходит на выполнение бл.29, т.е. определение амплитуды начинаетсясначала. Если первая амплитуда находится в АМР1, а вторая в АМР2, то ничего непроисходит, и определение амплитуды начинается заново.
При последующем входе SB=1, в начале также определяется времяимпульса, но далее смотрится:
1.  Если РВ=0, то значение временизаносится в time2, после чего из time2 вычитается time1, и РВ устанавливается в “1” (бл.64 – 66).
2.  Если РВ=1, то значение временизаносится в time1, после чего из time1 вычитается time2, и РВ устанавливается в “0” (бл.61 – 63).
И в первом, и во второмслучае, результат преобразования заносится в time3 (бл.67).
В блоке 68 происходитопределение разности между АМР2 и АМР1. Далее в блоках 69 – 73 вычисляетсяпроизводная. После чего программа переходит к процедуре определения давления.
Из графика показанного нарис.4.2.1.1. видно, что первая производная, которая больше порога ПОРОГ1является определяющей для систолического давления, т.е. по ней определяютсистолическое давление. Последующее производные, которые больше порога ПОРОГ1,но меньше порога ПОРОГ2 не являются определяющими и игнорируются. Когдапроизводная будет больше порога ПОРОГ2, то она станет определяющей длядиастолического давления. Поэтому в процедуре определения давления, сначалаопределяется систолическое давление (бл.75). Если давление определилось, тозначение давления заносится в SIS,после чего бит QB устанавливаетсяв “1” (бл.77,78), и идёт определение диастолического давления. Если давление неопределилось, то бит QB неустанавливается, и далее происходит определение диастолического давления.
Как только диастолическоедавление будет определенно (бл.76), его значение переносится в DIA (бл.79). После чего осуществляетсяпроверка (бл.80), если SIS=0,то выводится сообщение об ошибки, после чего устройство ожидает спуска манжеты(бл.81), перед повторным измерением. Если SIS/>0, то идёт вычисление частоты пульса (бл.82 – 84) идалее происходит индикация давления и пульса (бл.85), после чего устройствоопять ожидает спуск манжеты перед повторной накачкой.
Бит QB позволяет сначала определятьсистолическое давление, и только потом определять диастолическое давление,причём если систолическое давление определенно, то в последующем определяетсятолько диастолическое давление./> /> /> /> /> /> /> /> /> /> /> /> /> />
1.INIT   /> /> />

/>/>/> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> />
7.Upress/>Const   /> /> /> /> /> />
8.Индикация символов   /> /> /> />

Рис.4.2.1.2.

/>

                                    
/>

                
/>

/>                                                                                              /> /> /> /> /> /> /> />

Рис.4.2.1.2.(продолжение)

/>/>/>
26.A/>cmp1  
24.Upress/>A   />/>                      /> /> /> /> /> /> /> /> /> /> /> /> />

/>/>/>                                                       
/>

/>/>/>/>                                                                                                              /> /> /> /> /> />
32.Вывод сообщения об ошибки  

/>/>                                                                                         /> /> /> /> /> /> /> /> /> />

/>/>/>                                                /> /> /> /> /> /> /> />

/>/>/>/>                             
/>

/>/>/>                                                   
Рис.4.2.1.2.(продолжение)
/> /> /> /> /> /> /> /> />

/>                                                 /> /> /> /> /> /> /> />

/>/>                                                                                   /> /> /> /> /> /> /> />

/>/>/>/>/>
53.Обнуление H:X   />                                                                                      /> /> /> /> /> /> /> /> /> /> />

/>/>
63.Сброс Pb  
66.Уст Pb в 1   />                          /> /> /> /> /> /> /> /> />

Рис.4.2.1.2.(продолжение)
/> /> /> /> /> /> /> /> /> /> /> /> />

/>                                                   /> /> /> /> /> /> /> />

/>/>/>/>/>/>                       /> /> /> /> /> /> /> /> />

/>/>/>                                 
/>

/>                                                                     
/>

Рис.4.2.1.2.(продолжение)
/> /> /> /> /> /> /> />

/>                                                                                   /> /> /> /> /> /> /> />

/>/>                            
Рис.4.2.1.2.(продолжение)
4.2.2 БСА обработчикапрерывания от таймера
БСА обработчикапрерывания от таймера, представлена на рис.4.2.2.1. Для правильной работыобработчика, необходимо частоту тактирования таймера сделать равной 125кГц,т.е. Fbus/8, а в регистр периода загрузитьчисло 12499. Тогда через каждые 0,1 S будет вызываться обработчик прерывания от таймера.
В начале подпрограммыобработчика необходимо сбросить флаг TOF(бл.1), иначе в противном случае следующий запрос на прерывание“потеряется”.
После того, как флагбудет сброшен, подпрограмма переходит к выполнению блока 2, в котором онаделает инкремент ячейки памяти Sec10(вней находятся 10-е доли секунды). Как только Sec10 станет равным 9-и (бл.3), происходит очистка, т.е.обнуление, Sec10 (бл.4) и делается инкримент ячейкипамяти Sec (в которой находятся целые секунды).
В блоках 6,7 происходитотсчёт времени до 2-х минут, после чего устанавливается бит Dvb(бл.8), который контролирует времянахождения в программы в цикле (бл.30,31,29) см. рис.4.2.1.2.

/>

Рис.4.2.2.1.
4.2.3 БСА обработчикапрерываний от АЦП
БСА обработчикапрерываний от АЦП представленна на рис.4.2.3.1.
Бит ab (бл.1) определяет аналоговый входАЦП, или РТВ0, или РТВ1. Рассмотрим случай когда аналоговым входом являетсялиния РТВ0, т.е. ab=0.
В блоке 2 определяется,был ли ранее у АЦП аналоговый вход РТВ0:
1.  Если не был (ab2=0), то происходит сброс бита ab1, который выполняет аналогичную функцию, только показывает,был ли ранее у АЦП, аналоговый вход РТВ1. После чего происходит установка бита ab2 в 1 (бл.4), и запуск АЦП саналоговым входом РТВ0 (бл.7). Далее программа выходит из обработчика.
2.  Если был (ab2=1), то в блоке 5 устанавливается бит СОСО1, сигнализирующийо том, что преобразование завершено, после чего результат из регистра данныхАЦП переносится в ячейку памяти Upress,и происходит запуск АЦП с аналоговым входом РТВ0 (бл.7). После чего программавыходит из обработчика.
В случае когда аналоговымвходом является линия РТВ1 (ab=1),всё происходит аналогично.
Бит ab2 и ab1 необходимы для корректной работы подпрограммы. То есть,если аналоговым входом является линия РТВ0, то при смене аналогового входа наРТВ1, первый результат преобразования окажется ложным, он не будетсоответствовать значению сигнала на входе РТВ1. Поэтому чтобы этого неслучилось, вводятся биты ab2 и ab1./> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> />
3.Сброс Ab1   />
5.Уст. СОСО1 в 1  
9.Сброс Ab2   />
11.Уст.СОСО в 1   /> /> /> /> /> /> /> /> /> /> />
4.Уст. Ab2 в 1   />
6.ADR/>Upress  
10.Уст. Ab1 в 1   />
12.ADR/>Upress1   /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> />
RTI  

Рис.4.2.3.1.
4.2.4 БСА подпрограммытабличной перекодировки напряжение в давление.
БСА подпрограммы табличнойперекодировки напряжения в давление представленна на рис. 4.2.4.1.
В начале подпрограммыпроисходит сохранение регистров CPU встеке (бл.1). Далее происходит вычисление истинного давления(бл.2), после чегорезультат проделанной операции заносится в Udav (бл.3). В блоке 4 происходит загрузка числа в регистрХ, затем следует команда табличной перекодировки ( бл.5), где TCP – начало таблицы перекодировки.После чего, в блоке 6, перекодированное число заносится в Udav, в блоке 7 восстанавливаются из стекарегистры CPU, и программа выходит из обработчика./> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> />
1.Загрузить в стек регистры CPU   /> /> /> /> /> />
2.Udav  — CONST   /> /> /> /> /> />
3.Рез./>Udav   /> /> /> /> /> />
4.Udav/>X   /> /> /> /> /> />
5.LDA TCP,X   /> /> /> /> /> />
6.A/>Dav   /> /> /> /> /> />
RTS  

Рис.4.2.4.1.

4.2.5 БСА подпрограммывывода числа на индикацию
БСА вывода числа наиндикацию представлена на рис.4.2.5.1.
В ячейку памяти ci заносится число (бл.2) равное кол-вуцифр выводимых на индикатор.
В блоке 5 происходитзагрузка числа для табличной перекодировки, в регистр Х. После чего в бл.6следует команда табличной перекодировки числа для индикации, где TCI – это начало кодовой таблицы. Послеэтой команды, происходит передвижение по ячейкам BCDxxx.
В блоках 8,9 происходитзапись перекодированного числа в одну из ячеек памяти INDxxx, после чего в блоке 10 идёт передвижение по ячейкам INDxxx.
В блоке 11 происходитнастройка индикатора на приём адреса, после чего в блоке 12 адрес передаётся виндикатор, который стробируется импульсом образованным блоками 13-15. Послеэтого следует задержка 30 мкС, в течении которой индикатор выполняет, своивнутренние операции.
Как только задержка окончилась,в бл.17,18 индикатор настраивается на приём данных, и далее происходит передачаданных (бл.19), которые стробируются импульсом образованным блоками 20-22.После чего в блоке 23 происходит задержка, после которой декрементируетсяячейка памяти ci, в блоках 25-27 происходитподготовка для вывода следующего числа на индикацию, и в бл.28 проверяется,если ci />0, то подпрограмма переходит к выполнению бл.6 и всёначинается заново. Если ci=0,то программа выходит из обработчика.

/>

Рис.4.2.5.1.

/>

Рис.4.2.5.1.(продолжение)
4.2.6 БСА подпрограммыперевода числа в BCD формат
БСА подпрограммы переводачисла в BCD формат представлена на рис.4.2.6.1.
В начале подпрограммы,регистры CPU сохраняются в стеке. В блоке 1происходит проверка:
1.  Если число больше 99, то в блоке 3происходит деление числа на 100, в результате этой операции, целое частное помещаетсяв аккумулятор, а остаток деления в регистр H. Целое частное – это сотни числа, поэтому они заносятся вячейку памяти BCD100 (бл.4), после чего остатокзагружается в аккумулятор (бл.5), и делится на 10 (бл.6). В результате этойоперации, в аккумуляторе получаются десятки числа, которые заносятся в BCD10 (бл.7), а остаток числа показываетединицы и заносится в BCD1(бл.8).
2.  Если число меньше 99, то онопроверяется в блоке 2, если оно меньше 9, то в ячейку памяти BCD100,BCD10 записывается код пробела (бл. 11,12), после чегоданное число записывается в BCD1(бл.13). Если оно больше 9, то число записывается в аккумулятор (бл.9), вячейку памяти BCD100 записывается код пробела, послечего происходит деление числа на 10 (бл.6) и далее всё происходит как в пункте1, только начиная с блока 6.
3. 
/>

Рис.4.2.6.1.

5. Принципиальная схемаустройства
Принципиальная схемаустройства изображена на рис.5.1.

Заключение
Обратите внимание напринципиальную схему прибора, в ней как видно минимум элементов. Этообъясняется применением в схеме, микроконтроллера. Причем всё измерениеосуществляется в полуавтоматическом режиме и происходит в микроконтроллере. Темсамым пользователь прикладывает минимум усилий для измерения своего давления.
Таким образом применениемикропроцессорных систем в устройствах различного типа, позволяет сократитькол-во элементов в схеме, сделать устройство более качественным, а такжепозволяет осуществить наиболее “дружелюбный” интерфейс с пользователем.
Программа для данногоустройства была написана на ассемблере CASM08, оттранслированна и отлажена на ICS08JL, листинг программы приведён в приложении.

Список литературы
1. Панфилов Д.И.Датчики фирмы MOTOROLA. Москва. ДОДЭКА. 2000. 96 с.
2. БЭК.Жидкокристалические индикаторы фирмы DATA INTERNATIONAL.Москва. 1999. 64 с.
3. TechnicalData. MC68HC908JL3.
4. TechnicalData. MPX5050DP.

Приложение
тонометр.asmAssembled with CASM08Z 25.02.03 9:58:45 PAGE 1
0000                   1 PTA     equ     $0
 0000                   2 PTB     equ     $1
 0000                   3 PTD     equ     $3
 0000                   4 DDRA    equ     $4
 0000                   5 DDRB    equ     $5
 0000                   6 DDRD    equ     $7
 0000                   7  PDCR   equ     $A
 0000                   8 PTAPUE  equ     $D
 0000                   9 KBSCR   equ     $1A
 0000                  10 KBIER   equ     $1B
 0000                  11 CONFIG2 equ     $1E
 0000                  12 CONFIG1 equ     $1F
 0000                  13 TSC     equ     $20
 0000                  14 TCNTH   equ     $21
 0000                  15 TCNTL   equ     $22
 0000                  16 TMODH   equ     $23
 0000                  17 TMODL   equ     $24
 0000                  18 ADSCR   equ     $3C
 0000                  19 ADR     equ     $3D
 0000                  20 ADICLK  equ     $3E
                       21 
                       22 
                       23 
 0080                 24          org     $80    ; ОЗУ
                       25 
 0080                  26 ind     rmb     3
 0083      01          27 adres   db      1
 0084      01          28 BCD100  db      1
 0085      01          29 BCD10   db      1
 0086      01          30 BCD1    db      1
 0087      01          31 indx    db      1
 0088      01          32 ci      db      1
 0089      01          33 bitf    db      1
 008A      01          34 upress1 db      1
 008B      01          35 upress  db      1
 008C      01          36  udav   db      1
 008D      01          37 const   db      1
 008E      01          38 dav     db      1
 008F      01          39 y       db      1
 0090      01          40 pulse   db      1
 0091      01          41 bitf1   db      1
 0092      01          42 cmp1    db      1
 0093      01          43 del     db      1
 0094      01          44 por     db      1
 0095      01          45 ovsec   db      1
 0096      01          46 cmpad   db      1
 0097      01          47  amp2   db      1
 0098      01          48 amp1    db      1
 0099      01          49 sec     db      1
 009A      01          50 sec10   db      1
 009B      01          51 time1   db      1
 009C      01          52 time2   db      1
 009D      01          53 time3   db      1
 009E      01          54 pr1     db      1
 009F      01          55 sis     db      1
 00A0      01          56 pr2     db      1
 00A1      01          57 dia     db      1
 00A2      01          58 pul     db      1
тонометр.asm          Assembled with CASM08Z  25.02.03  9:58:45  PAGE 2
 00A3      01          59 bcdx    db      1
 00A4      01          60 pmem1   db      1
                       61 
 EC00                 62          org     $ec00  ; программа
                       63 
                       64 start:
                       65 ;--------------------------- Инициализация -----
                       66 
 EC00 [01] 4F         67          clra
 EC01 [01] 5F         68          clrx
                       69 
 EC02 [04] 6EFF07      70         mov     #$ff,DDRD; Настраиваем линии
                                                     порта PTD на вывод
 EC05 [04] 6E1C05      71         mov     #$1c,DDRB; Настраиваем линии
                                                      РТВ2, РТВ3, РТВ4на вывод
                       72 
                       73 ; Инициализация индикатора
                       74 
 EC08 [04] 1501        75         bclr    2,PTB
 EC0A [04] 1701        76          bclr   3,PTB
 EC0C [04] 6E0603      77         mov     #$6,PTD ; Установка режима ввода
                                                                         
 EC0F [04] 1801        78         bset    4,PTB   ; Формирование
                                                     стробирующегоимпульса
 EC11 [01]9D          79          nop
 EC12 [01] 9D         80          nop
 EC13 [01] 9D         81          nop
 EC14 [01] 9D         82          nop
 EC15 [01] 9D         83          nop
 EC16 [04] 1901       84          bclr    4,PTB
 EC18 [05] CDEF08     85          jsr     deleysret
 EC1B [04] 6E3803     86          mov     #$38,PTD; Установка выполняемых
функций
 EC1E [04] 1801        87         bset    4,PTB   ; Формирование
                                                    стробирующего импульса
 EC20 [01]9D          88          nop
 EC21 [01] 9D         89          nop
 EC22 [01] 9D         90          nop
 EC23 [01] 9D         91          nop
 EC24 [01] 9D          92         nop
 EC25 [04] 1901       93          bclr    4,PTB
 EC27 [05] CDEF08     94          jsr     deleysret; Задержка 30 мкС
 EC2A [04] 6E0803     95          mov     #$8,PTD
 EC2D [04] 1801       96          bset    4,PTB    ; Формирование
                                                      стробирующегоимпульса
 EC2F [01] 9D          97          nop
 EC30 [01] 9D          98          nop
 EC31 [01]9D          99          nop
 EC32 [01] 9D        100          nop
 EC33 [01] 9D         101          nop
 EC34 [04] 1901      102          bclr    4,PTB
 EC36 [05] CDEF08    103          jsr     deleysret; Задержка 30 мкС
                      104 
                      105 ;---------------------------------------------
                      106 
                      107  main:
тонометр.asm          Assembled with CASM08Z  25.02.03  9:58:45  PAGE 3
 EC39 [02] A628      108          lda     #!40
 EC3B [02] AE80      109          ldx     #$80
                      110  sbm:
 EC3D [02] 7F        111          clr     ,X     ; Обнуление ячеек памяти
 EC3E [01] 5C        112          incx
 EC3F [01] 4A        113          deca
 EC40 [03] 26FB      114          bne     sbm
 EC42 [04] 6E5994    115          mov     #!89,por
 EC45 [04] 6E089E    116          mov     #!8,pr1; Порог для систоличе
                                                                         ского
 EC48 [04] 6E0DA0     117         mov     #!13,pr2; Порог для диастолического
                      118 
 EC4B [02] 9A         119         cli            ; Разрешаем прерывания
                      120 
 EC4C [04] 6E403C     121         mov     #$40,ADSCR; Запуск АЦП вход РТВ0
 EC4F [05]0789FD     122          brclr   3,bitf,$
 EC52 [04] 1789       123          bclr   3,bitf
 EC54 [05] 4E8B8D    124          mov     upress,const
                      125 
                      126 ;--------------------------- ИНДИКАЦИЯ сис, диа, пул
                      127 
 EC57 [04] 6E0B84     128         mov     #!11,bcd100  ;$34 — код буквы «C»
 EC5A [04]6E0C85     129          mov     #!12,bcd10
 EC5D [04] 6E0B86    130          mov     #!11,bcd1
 EC60 [04] 6E0083    131          mov     #$0,adres
 EC63 [05] CDEEC1    132          jsr     IND_RET     ; Вывод на индикацию
 EC66 [04] 6E0D84    133          mov     #!13,bcd100 ; Вывод «ДИА»
 EC69 [04] 6E0C85    134          mov     #!12,bcd10
 EC6C [04] 6E0E86    135          mov     #!14,bcd1
 EC6F [04] 6E4083    136          mov     #$40,adres
 EC72 [05] CDEEC1    137          jsr     IND_RET
 EC75 [04] 6E0F84    138          mov     #!15,bcd100 ; Вывод «ПУЛ»
 EC78 [04] 6E1085    139          mov     #!16,bcd10
 EC7B [04] 6E1186    140          mov     #!17,bcd1
 EC7E [04] 6E4983     141          mov    #$49,adres
 EC81 [05] CDEEC1    142          jsr     IND_RET
                      143 
                      144 ;----------------------------------------------
                      145 
                      146 
                      147  ;----------ИНДИКАЦИЯ 0 в разделе сис ------------------------------;
                      148 
 EC84 [04] 6E0A84     149         mov     #$a,bcd100     ; Символ пробела
 EC87 [04]6E0A85     150          mov     #$a,bcd10
 EC8A [04] 6E0386     151         mov     #$03,bcd1      ; Символ «0»
 EC8D [04] 6E4683    152          mov     #$46,adres     ; Запись адреса
 EC90 [05]CDEEC1     153          jsr     IND_RET
 EC93 [04] 1501      154          bclr    2,PTB
 EC95 [04] 1701      155          bclr    3,PTB
 EC97 [04] 6E0C03    156          mov     #$c,PTD        ; Включить дисплей
                      157 

тонометр.asmAssembled with CASM08Z 25.02.03 9:58:45 PAGE 4
                      158 
                      159 ;-------------------------------------------------
                      160 
 EC9A [05] 4E8B92    161          mov     upress,cmp1
                      162 
                      163  ;-Процедура ожидания окончания накачки манжеты --
                      164 
                      165  ;- Задержка0.7 секунды с индикацией текущего давления --------
                      166 
                      167  loop:
 EC9D [04] 6E0093    168          mov     #$0,del
                      169 loop2:
 ECA0 [01] 4F        170          clra
 ECA1 [04] C7FFFF    171          sta     $ffff      ; Сброс WDOG
                      172 loop1:
 ECA4 [01] 4A        173          deca
 ECA5 [03] 26FD      174          bne     loop1      ; Если аккумулятор=0 то
 переход на loop1
 ECA7 [05] 4E8B8C     175         mov     upress,udav; код напряжения с датчика заносим в udav
 ECAA [03] 450000     176         ldhx    #$0
 ECAD [05] CDEE74     177         jsr     VOLTS_PRESSURE_RET; Вызов подпрограммы перекодировки напряжение вдавление
 ECB0 [05]4E8E8F     178          mov     dav,y
 ECB3 [05] CDEE85    179          jsr     BCD_RET
 ECB6 [04] 6E0483    180          mov     #$04,adres; занести адрес начала индикации
 ECB9 [05]CDEEC1     181          jsr     IND_RET
 ECBC [04] 3A93      182          dec     del
 ECBE [03] 26E0      183          bne     loop2   ; Если del=0 то переход на loop2
 ECC0 [05] 069104     184         brset   3,bitf1,lop; Если 3 бит=0 то задержка происходит снова
 ECC3 [04] 1691       185         bset    3,bitf1    ; Установить 3 бит в 1
 ECC5 [03] 20D6       186         bra     loop       ; Переход на loop
                      187  lop:
 ECC7 [04] 1789       188         bclr    3,bitf     ; Сбросить 3 бит в 1
                      189 
                      190 ;-------------------------------------------------
 ECC9 [04] C7FFFF     191         sta     $ffff
 ECCC [03] B68B       192         lda     upress    ; Загружаем upress в аккумулятор для сравнения
 ECCE [03]B192       193          cmp     cmp1      ; с cmp1
 ECD0 [03] 2502      194          blo     ampmet    ; Если А>cmp1, то
накачка манжеты всё ещё идет
 ECD2 [03] 20C9       195         bra     loop      ; поэтому переходим на loop
                      196 
                      197  ;-------Определение амплитуды -------------------
                      198 
тонометр.asmAssembled with CASM08Z 25.02.03 9:58:45 PAGE 5
                      199  ampmet:
 ECD4 [04] C7FFFF     200          sta    $ffff
 ECD7 [04] 1089       201         bset    0,bitf    ; Устанавливаем аналоговый вход РТВ1
 ECD9 [04] 6E3023     202         mov     #$30,TMODH; Инициализация
таймера, период счёта до 12499
 ECDC [04] 6ED324     203         mov     #$d3,TMODL; частота тактирования 125000 Гц
 ECDF [04] 6E4320     204         mov     #$43,TSC  ; Запуск таймера
                      205  dvbm:
 ECE2 [04] C7FFFF     206         sta     $ffff
 ECE5 [05] 0A8902     207         brset   5,bitf,rm ; Если цикл продолжается больше 5 секунд
 ECE8 [03] 2003       208         bra     m55       ; то выводим сообщение об ошибки
                      209 rm:
 ECEA [03] CCEDFC    210          jmp     rorm
                      211  m55:
 ECED [03] B68A      212          lda     upress1
 ECEF [03] B194      213          cmp     por       ; Сраниваем upress1 c порогом por
 ECF1 [03] 25EF      214          blo     dvbm      ; Если upress1
 ECF3 [03] 3F95      215          clr     ovsec     ; Сброс OVsec
 ECF5 [05] 4E8A96    216          mov     upress1,cmpad   ;-----------------------------
                      217 loopamp:
 ECF8 [04] C7FFFF    218          sta     $ffff           ;-----------------
 ECFB [04] 1989      219          bclr    4,bitf          ;-----------------
 ECFD [05] 0989FD    220          brclr   4,bitf,$       ; Идентификация
амплитуды
 ED00 [03] B68A      221          lda     upress1         ;-----------------
 ED02 [03] B196      222          cmp     cmpad           ;-----------------
 ED04 [03] 22F2      223          bhi     loopamp       ; Еслиupress1>cmpad
то переходим на loopamp
                      224 
                      225  ;----------Сброс и перезапуск таймера -----------
                      226 
 ED06 [04] 1A20      227          bset    5,TSC
 ED08 [04] 1820      228          bset    4,TSC
 ED0A [04] 6E4320    229          mov     #$43,TSC
                      230 
                      231 ;-------------------------------------------------
                      232 
 ED0D [05] 4E9697    233          mov     cmpad,amp2     ; В amp2 находится    значение амплитуды
 ED10 [04] 1189      234          bclr    0,bitf          ; Устанавливаем   аналоговый вход РТВ0
 ED12 [04] 1789       235         bclr    3,bitf         ; Обнуляем бит СОСО1
 ED14 [05] 0789FD     236         brclr   3,bitf,$       ; Если СОСО1=0 то
зациклеваемся
 ED17 [05] 4E8B8C     237          mov    upress,udav    ; Код напряжения с
тонометр.asmAssembled with CASM08Z 25.02.03 9:58:45 PAGE 6
                                                                датчикав udav
 ED1A [04] 1089       238         bset    0,bitf         ; Устанавливаем
                                                          аналоговый вход РТВ1
 ED1C [04] 3C90       239         inc     pulse          ; В pulse кол-во
амплитуд
 ED1E [03] B697       240         lda     amp2
 ED20 [03] B198       241         cmp     amp1
 ED22 [03]220B       242          bhi     proim          ; Если amp2>amp1 то
переход на proim
 ED24 [05] 4E98A4    243          mov     amp1,pmem1      ;-----------------
 ED27 [05] 4E9798    244          mov     amp2,amp1      ; Меняем местами
                                                           amp2сamp1
 ED2A [05] 4EA497    245          mov     pmem1,amp2      ;-----------------
 ED2D [04] 1E89      246          bset    7,bitf         ; Устанавливаем в 1
                                                            битcb
                      247 
                      248  ;---Процедура вычисления производной амплитуды --
                      249  proim:
 ED2F [04] C7FFFF     250         sta     $ffff
 ED32 [05] 00913E     251         brset   0,bitf1,mtime  ; Если вход в
процедуру 2-ой раз то переход на mtime
 ED35 [04] 1091       252         bset    0,bitf1     ; Устанавливаем sb в 1
 ED37 [03]BE99       253          ldx     sec
 ED39 [02] A60A       254         lda     #!10
 ED3B [05] 42        255          mul                 ; Умножаем sec на 10
 ED3C [01] 8C        256          clrh
 ED3D [01] 5F        257          clrx
 ED3E [03] BB9A      258          add     sec10       ; Результат умножения
складываем с sec10,
                     259                              ; получаем время импульса
 ED40 [03] B79B       260         sta     time1       ; Время импульса
                                                        заносим в time1
                      261  cbm:
 ED42 [05] 0F8908     262         brclr   7,bitf,perem; Если amp2 и amp1
                                                        менялись местами то
 ED45 [04] 1F89       263         bclr    7,bitf      ; меняем их обратно
 ED47 [05]4E97A4     264          mov     amp2,pmem1   ;-------------------
 ED4A [05] 4E9897    265          mov     amp1,amp2   ;-------------------                                                         
                      266 perem:
 ED4D [05] 4E9798    267          mov     amp2,amp1    ;amp2 заносим в amp1
                      268 
                      269  ;- Задержкас индикацией текущего давления 0.3 секунды ---------------------;
                      270 
                      271 
 ED50 [04] 6E0093    272          mov     #$0,del
                      273 loop20:
 ED53 [01] 4F        274          clra
 ED54 [04] C7FFFF    275          sta     $ffff          ; Сброс WDOG
                      276 loop11:
 ED57 [01] 4A         277         deca
тонометр.asmAssembled with CASM08Z 25.02.03 9:58:45 PAGE 7
ED58 [03] 26FD      278          bne     loop11
 ED5A [05] 4E8B8C    279          mov     upress,udav
 ED5D [03] 450000    280          ldhx    #$0
 ED60 [05] CDEE74     281         jsr     VOLTS_PRESSURE_RET; Вызов  подпрограммы перекодировки напряжение вдавление
 ED63 [05]4E8E8F     282          mov     dav,y
 ED66 [05] CDEE85    283          jsr     BCD_RET
 ED69 [04] 6E0483    284          mov     #$04,adres ; занести адрес начала индикации
 ED6C [05]CDEEC1     285          jsr     IND_RET
 ED6F [04] 3A93      286          dec     del
 ED71 [03] 26E0      287          bne     loop20
                      288 
                      289 
                      290 
291  ;---------------------------------------------
292 
                      293  mtime:
 ED73 [04] C7FFFF     294         sta     $ffff
 ED76 [03] BE99       295         ldx     sec
 ED78 [02] A60A       296         lda     #!10
 ED7A [05] 42         297         mul                   ;sec умножаем на 10
 ED7B [03] BB9A      298          add     sec10         ;sec10+результат
                                                         умножения
 ED7D [05] 039108    299          brclr   1,bitf1,time2m ; Если pb=0 то
                                                         переходимна time2m
 ED80 [03] B79B       300         sta     time1          ; Время импульса в
                                                            time1
 ED82 [03] B09C      301          sub     time2          ; Вычитаем из
                                                         time1,time2
 ED84 [04] 1391      302          bclr    1,bitf1        ; Обнуляем pb
 ED86 [03] 2006      303          bra     raznom
                      304 time2m:
 ED88 [03] B79C      305          sta     time2          ; Время импульса в
                                                           time2
 ED8A [03] B09B       306         sub     time1          ; Вычитаем из
                                                         time2,time1
 ED8C [04] 1291      307          bset    1,bitf1        ; Устанавливаем pb
                      308  raznom:
 ED8E [03] B79D       309         sta     time3         ; Разность времени в
                                                                   Time3
 ED90 [03] B697       310         lda     amp2            ;-------------------
                                                                        ------
 ED92 [03] B098       311         sub     amp1          ; Вычисляем разность  амплитуд рез. в аккумуляторе
 ED94 [02] AE0A       312         ldx     #!10           ; Разность амплитуд
                                                        умножаем на 10
 ED96 [05]42         313          mul                     ;-------------------
                                                                 -------------
 ED97 [03] BFA4       314         stx     pmem1
 ED99 [04] 55A4      315          ldhx    pmem1
 ED9B [03] BE9D      316          ldx     time3
 ED9D [07] 52        317          div        ; Разность амплитуд умноженная на 10 делим на time3
                      318                      ; врезультате получаем производную амплитуд
                      319 
тонометр.asm          Assembled with CASM08Z  25.02.03  9:58:45  PAGE 8
                      320 ;--------------------- Процедура определения
                                   давления----------------------------------;
                      321 
 ED9E [05] 049109     322         brset   2,bitf1,pr2m   ; Если qb=1 то
переходим на pr2m
 EDA1 [03] B19E       323         cmp     pr1             ;pr1 — порог для
                                                      систолическогодавления
 EDA3 [03] 2505       324         blo     pr2m           ; Если производная
                                               меньше pr1 то переход на pr2m
 EDA5 [05] 4E8C9F     325         mov     udav,sis       ; Заносим значение
                                                            давления в sis
 EDA8 [04] 1489       326         bset    2,bitf        ; Устанавливаем qb в
                                                           1
                      327  pr2m:
 EDAA [04] C7FFFF    328          sta     $ffff
 EDAD [03] B1A0      329          cmp     pr2             ;pr2 — порог для
                                                    диастолическогодавления
 EDAF [03] 2591       330         blo     cbm            ; Если производная
                                                меньше pr2 то переход на cbm
 EDB1 [05] 4E8CA1     331         mov     udav,dia       ; Значение давления
                                                            заносим в dia
 EDB4 [02] A600      332          lda     #!0
 EDB6 [03] B19F      333          cmp     sis
 EDB8 [03] 2342      334          bls     rorm           ; Если sis=
                                                           переходим на rorm
 EDBA [02] A63C       335         lda     #!60       ; Вычисляем усреднённое значение пульса
 EDBC [03]BE99       336          ldx     sec             ;-----------------
 EDBE [07] 52        337          div                     ;-----------------
 EDBF [03] BE90      338          ldx     pulse           ;-----------------
 EDC1 [05] 42        339          mul                     ;-----------------
 EDC2 [03] B7A2       340         sta     pul             ;-----------------
                      341 
                      342 ;--------------------- Индикация давления и пульса
                                          -----------------------------------;
                      343 
 EDC4 [04] C7FFFF     344         sta     $ffff
 EDC7 [05] 4E9F8C     345         mov     sis,udav    ; Вывод систолического давления
 EDCA [05]CDEE74     346          jsr     VOLTS_PRESSURE_RET; Вызов
подпрограммы перекодировки напряжение вдавление
 EDCD [05] 4E8E8F     347         mov     dav,y
 EDD0 [05] CDEE85     348         jsr     BCD_RET
 EDD3 [04] 6E0483     349         mov     #$04,adres  ; занести адрес начала индикации
 EDD6 [05]CDEEC1     350          jsr     IND_RET
                      351 
 EDD9 [05] 4EA18C    352          mov     dia,udav  ; Вывод диастолического давления
 EDDC [05]CDEE74     353          jsr     VOLTS_PRESSURE_RET; Вызов 
подпрограммы перекодировки напряжение вдавление
 EDDF [05] 4E8E8F     354         mov     dav,y
 EDE2 [05]CDEE85     355          jsr     BCD_RET
тонометр.asm          Assembled with CASM08Z  25.02.03  9:58:45  PAGE 9
 EDE5 [04] 6E4483    356          mov     #$44,adres   ; занести адрес начала индикации
 EDE8 [05]CDEEC1     357          jsr     IND_RET
                      358 
 EDEB [04] C7FFFF    359          sta     $ffff
 EDEE [05] 4EA28F    360          mov     pul,y        ; Вывод пульса
 EDF1 [05] CDEE85    361          jsr     BCD_RET
 EDF4 [04] 6E4D83    362          mov     #$4d,adres   ; занести адрес начала индикации
 EDF7 [05] CDEEC1    363          jsr     IND_RET
 EDFA [03] 2022      364          bra     exitdav
                      365  rorm:
 EDFC [04] 1501       366          bclr   2,PTB
 EDFE [04] 1701      367          bclr    3,PTB
 EE00 [04] 6E0103    368          mov     #$1,PTD    ; Очистка                                                             дисплея
 EE03 [04]6E1284     369          mov     #!18,bcd100              ; «O»
 EE06 [04] 6E1385    370          mov     #!19,bcd10              ; «Ш»
 EE09 [04] 6E0C86    371          mov     #!12,bcd1               ; «И»
 EE0C [04] 6E0583    372          mov     #$5,adres
 EE0F [05] CDEEC1    373          jsr     IND_RET
 EE12 [04] 6E1484    374          mov     #!20,bcd100             ; «Б»
 EE15 [04] 6E1585    375          mov     #!21,bcd10              ; «К»
 EE18 [04] 6E0E86    376          mov     #!14,bcd1               ; «А»
 EE1B [05] CDEEC1    377          jsr     IND_RET
                      378 exitdav:
                      379 
                      380  ;------Проверка спущена манжета или нет ---------
 EE1E [04]C7FFFF     381          sta     $ffff
 EE21 [04] 1189      382          bclr    0,bitf
 EE23 [04] 1789      383          bclr    3,bitf
 EE25 [05] 0789FD    384          brclr   3,bitf,$ ; Если COCO1=0 происходитзациклевание
 EE28 [03]B68B       385          lda     upress
 EE2A [02] A105       386          cmp    #!5
 EE2C [03] 22F0      387          bhi     exitdav
 EE2E [03] CCEC39    388          jmp     main
                      389 
                      390 ;------------------------------------------------;
                      391 
                      392 
                      393 
                      394 
                      395 
                      396 ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                      397 
                      398 
                      399  ADC_INT:  ;обработчик прерывания от АЦП
 EE31 [02] 8B        400                  pshh
 EE32 [05] 018913    401                  brclr   0,bitf,adm1; если ав=0
то переход на adm1
 EE35 [05] 038907    402                  brclr   1,bitf,adm2; переход если ав1=0
тонометр.asmAssembled with CASM08Z 25.02.03 9:58:45 PAGE 10
EE38 [04] 1889      403                  bset    4,bitf
 EE3A [05] 4E3D8A    404                  mov     ADR,upress1
 EE3D [03] 2004      405                  bra     zap
                      406  adm2:
 EE3F [04] 1589      407                  bclr    2,bitf         ; сброс ав2
 EE41 [04] 1289      408                  bset    1,bitf         ; уст. ав1
                      409  zap:
 EE43 [04] 6E413C    410                  mov     #$41,ADSCR    ; команда
запуска АЦП вход PTB1
                      411 
 EE46 [03] 2011      412                  bra     exit
                      413  adm1:
 EE48 [05] 058907    414                  brclr   2,bitf,adm3  ; переход  если ав2=0
 EE4B [04]1689       415                  bset    3,bitf
 EE4D [05] 4E3D8B    416                  mov     ADR,upress
 EE50 [03] 2004      417                  bra     zap1
                      418  adm3:
 EE52 [04] 1389      419                  bclr    1,bitf        ; сброс ав1
 EE54 [04] 1489      420                  bset    2,bitf        ; уст. ав2
                      421  zap1:
 EE56 [04] 6E403C    422                  mov     #$40,ADSCR   ; команда
запуска АЦП вход PTB0
                      423 exit:
 EE59 [02] 8A        424                  pulh
 EE5A [07] 80        425                  rti
                      426 
                      427 
                      428 
                      429 ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                      430 
                      431 timer_int:      ; Обработчи прерывания от таймера
 EE5B [04] 1F20      432                  bclr    7,TSC     ; Сброс TOF
 EE5D [04]3C9A       433                  inc     sec10
 EE5F [03] B69A      434                  lda     sec10
 EE61 [02] A109      435                  cmp     #$9
 EE63 [03] 250E      436                  blo     exittime   ; Если sec10>9 то перхода нет
 EE65 [03] 3F9A      437                  clr     sec10
 EE67 [04] 3C99      438                  inc     sec
 EE69 [04] 3C95      439                  inc     ovsec
 EE6B [03] B695      440                  lda     ovsec
 EE6D [02] A105      441                  cmp     #!5
 EE6F [03] 2502      442                  blo     exittime
 EE71 [04] 1A89      443                  bset    5,bitf
                      444 exittime:
 EE73 [07] 80        445                  rti
                      446 
                      447 
                      448 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
                      449 
                      450 
                      451 VOLTS_PRESSURE_RET:   ; подпрограмма табличной перекодировки напр. в давление
                     452                        ; число для перекодир

тонометр.asmAssembled with CASM08Z 25.02.03 9:58:45 PAGE 11
                     453                            ; начало таблицы -TCP
 EE74 [02]87         454                  psha
 EE75 [02] 8B        455                  pshh
 EE76 [02]89         456                  pshx
                      457 
 EE77 [03] B68C      458                  lda     udav
 EE79 [03] B08D      459                  sub     const   ;const- напряжение
                                                        принулевом давлении
 EE7B [01] 97        460                  tax
 EE7C [04] D6EF14    461                  lda     TCP,x
 EE7F [03] B78E       462                  sta    dav    ; перекодированное
                                                          число в dav
                      463 
 EE81 [02] 88        464                  pulx
 EE82 [02] 8A        465                  pulh
 EE83 [02] 86         466                 pula
 EE84 [04] 81        467                  rts
                      468 
                      469 
                      470 
                      471 
                      472 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
                      473 
                      474 
                      475 
                      476 
                      477  BCD_RET:; подпрограмма перевода числа в BCD формат
                      478              ; число для перевода находится в «y»
                     479                                  ;BCD100 — сотни
                     480                                  ;BCD10 — десятки
                     481                                  ;BCD1 — единицы
                      482 
 EE85 [02] 87        483                  psha
 EE86 [02] 8B        484                  pshh
 EE87 [02] 89        485                  pshx
                      486 
 EE88 [03] B68F      487                  lda     y         ; Делимое в
                                                              аккумулятор
 EE8A [02] A163      488                  cmp     #!99
 EE8C [03] 2206      489                  bhi     bcd100m   ; если y>99 то переход на bcd100m
 EE8E [02] A109       490                 cmp     #!9
 EE90 [03] 2210      491                  bhi     bcd10m    ; если y>9 то переход на bcd10m
 EE92 [03] 2020      492                  bra     bcd1m
                      493  bcd100m:
 EE94 [02] AE64       494                  ldx    #!100      ;100-делитель
 EE96 [07] 52        495                  div
 EE97 [03] B784      496                  sta     BCD100    ; Результат в BCD100
 EE99 [04]35A4       497                  sthx    pmem1
 EE9B [03] 450000     498                  ldhx   #!0
тонометр.asmAssembled with CASM08Z 25.02.03 9:58:45 PAGE 12
EE9E [03] B6A4      499                  lda     pmem1    ; Остаток в
                                                            аккумулятор
 EEA0 [03] 2003      500                  bra     mb1
                      501 bcd10m:
 EEA2 [04] 6E0A84    502                  mov     #$a,BCD100; Пробел в BCD100
                      503  mb1:
 EEA5 [02] AE0A      504                  ldx     #!10        ;10-делитель
 EEA7 [07] 52        505                  div                ; Делим остаток на 10
 EEA8 [03] B785      506                  sta     BCD10      ; Результат в BCD10
 EEAA [04]35A4       507                  sthx    pmem1
 EEAC [03] 450000    508                  ldhx    #!0
 EEAF [05] 4EA486    509                  mov     pmem1                                   BCD1
 EEB2 [03] 200C      510                  bra     exitb
                      511 bcd1m:
 EEB4 [04] 6E0A84     512                  mov    #$a,BCD100     ; Пробел в      BCD100
 EEB7 [04] 6E0A85    513                  mov     #$a,BCD10      ; Про         BCD10
 EEBA [05] 4E8F86    514                  mov     y,BCD1
                      515 
                      516 
 EEBD [02] 88        517                  pulx
 EEBE [02] 8A        518                  pulh
 EEBF [02] 86        519                  pula
 EEC0 [04] 81         520 exitb:          rts
                      521 
                      522 
                      523 
                      524 
                      525 
                      526 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
                      527 
                      528 
                      529 
                      530  IND_RET:  ; Подпрограмма для вывода числа на индикацию
                      531            ; для подпрограммы необходимо:
                      532            ;- число или символ для индикации
                      533                                          ;(BCD100,BCD
                                                                      10,BCD1)
                      534             ;- адрес ячейки в индикаторе
 EEC1 [02]87         535                  psha
 EEC2 [02] 8B        536                  pshh
 EEC3 [02] 89        537                  pshx
                      538 
 EEC4 [04] 6E0388    539                  mov     #$3,ci
 EEC7 [04] 6E8087    540                  mov     #$80,indx  ; заместо ind поставить адрес!!!!!!!!!!!!!!!!!
 EECA [04] 6E84A3    541                  mov     #$84,bcdx  ; адрес bcd100 вbcdx
тонометр.asmAssembled with CASM08Z 25.02.03 9:58:45 PAGE 13
EECD [03] BE84      542                  ldx     BCD100
                      543 stind:
 EECF [04] D6EFAE    544                  lda     TCI,x  ;TCI-началотаблицы перекодировки
 EED2 [04]3CA3       545                  inc     BCDX
 EED4 [03] BE87      546                  ldx     indx
 EED6 [02] F7        547                  sta     ,x   ; Результат перекодировки в ячейку памятис                       регистре Х
 EED7 [04] 3C87      548                  inc     indx  ; передвегаемся по ячейкам IND
 EED9 [04] 1501       549                  bclr   2,PTB           ; уст. в 0
                                                                          PTB2
 EEDB [04] 1701      550                  bclr    3,PTB
 EEDD [05] 4E8303    551                  mov     adres,PTD       ; Адрес
знакоместа в порт PTD
 EEE0 [04]1801       552                  bset    4,PTB
 EEE2 [01] 9D        553                  nop
 EEE3 [01] 9D        554                  nop
 EEE4 [01] 9D        555                  nop      ; Формирование стробирующего импульса
 EEE5 [01]9D         556                  nop
 EEE6 [01] 9D        557                  nop
 EEE7 [04] 1901      558                  bclr    4,PTB
 EEE9 [04] AD1D      559                  bsr     deleysret; задержка 30mkc
 EEEB [04] 1401       560                 bset    2,PTB
 EEED [04] 1701      561                  bclr    3,PTB
 EEEF [04] 7E03      562                  mov     x+,PTD   ; Вывод числа на индикацию
 EEF1 [04]1801       563                  bset    4,PTB
 EEF3 [01] 9D         564                 nop
 EEF4 [01] 9D        565                  nop     ; Формирование стробирующего импульса
 EEF5 [01]9D         566                  nop
 EEF6 [01] 9D        567                  nop
 EEF7 [01] 9D        568                  nop
 EEF8 [04] 1901      569                  bclr    4,PTB
 EEFA [04] AD0C      570                  bsr     deleysret; задержка 30mkc
 EEFC [04] 3C83      571                  inc     adres    ; Подготовка
                                                    к следующему циклу
 EEFE [03]BEA3       572                  ldx     BCDX             ;----
 EF00 [02] FE        573                  ldx     ,x               ;--------
 EF01 [05] 3B88CB    574                  dbnz    ci,stind  ; Если все числа выведены то выходим изподрограммы
                      575 
 EF04 [02] 88        576                  pulx
 EF05 [02] 8A        577                  pulh
 EF06 [02] 86        578                  pula
 EF07 [04] 81        579                  rts
                      580 
                      581  ;\\\\\\Подпрограмма задержки на 30 мкС\\\\\\\\\\\
                      582 
                      583 deleysret:
тонометр.asmAssembled with CASM08Z 25.02.03 9:58:45 PAGE 14
                      584 
                      585 
                      586 
 EF08 [02] 87        587                  psha
 EF09 [02] 8B        588                  pshh
 EF0A [02] 89        589                  pshx
                      590 
 EF0B [02] A61E       591                 lda     #!30
                      592 loopdel:
 EF0D [01] 4A        593                  deca
 EF0E [03] 26FD      594                  bne     loopdel
                      595 
 EF10 [02] 88        596                  pulx
 EF11 [02] 8A        597                  pulh
 EF12 [02] 86        598                  pula
 EF13 [04] 81        599                  rts
                      600 
                      601 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
                      602 
                      603 ;/////Таблица перекодировки для давлен ////////
                      604 
                      605  TCP:
                      606 
 EF14      00        607                  db      !0
 EF15      01         608                 db      !1
 EF16      03        609                  db      !3
 EF17      05        610                  db      !5
 EF18      06        611                  db      !6
 EF19      08        612                  db      !8
 EF1A      0A        613                  db      !10
 EF1B      0B        614                  db      !11
 EF1C      0D        615                  db      !13
 EF1D      0F        616                  db      !15
 EF1E      10        617                  db      !16
 EF1F      12        618                  db      !18
 EF20      14        619                  db      !20
 EF21      15        620                  db      !21
 EF22      17        621                  db      !23
 EF23      19        622                  db      !25
 EF24      1A        623                  db      !26
 EF25      1C        624                  db      !28
 EF26      1E        625                  db      !30
 EF27      1F        626                  db      !31
 EF28      21        627                  db      !33
 EF29      23        628                  db      !35
 EF2A      24        629                  db      !36
 EF2B      26        630                  db      !38
 EF2C      28         631                 db      !40
 EF2D      29        632                  db      !41
 EF2E      2B        633                  db      !43
 EF2F      2D        634                  db      !45
 EF30      2E        635                  db      !46
 EF31      30        636                  db      !48
 EF32      32        637                  db      !50
 EF33      33        638                  db      !51
 EF34      35        639                  db      !53
тонометр.asmAssembled with CASM08Z 25.02.03 9:58:45 PAGE 15
EF35      37        640                  db      !55
 EF36      38        641                  db      !56
 EF37      3A        642                  db      !58
 EF38      3C        643                  db      !60
 EF39      3D        644                  db      !61
 EF3A      3F        645                  db      !63
 EF3B      41        646                  db      !65
 EF3C      42        647                  db      !66
 EF3D      44        648                  db      !68
 EF3E      46        649                  db      !70
 EF3F      47        650                  db      !71
 EF40      49        651                  db      !73
 EF41      4B         652                 db      !75
 EF42      4C        653                  db      !76
 EF43      4E        654                  db      !78
 EF44      50        655                  db      !80
 EF45      51        656                  db      !81
 EF46      53        657                  db      !83
 EF47      55        658                  db      !85
 EF48      56        659                  db      !86
 EF49      58        660                  db      !88
 EF4A      5A        661                  db      !90
 EF4B      5B        662                  db      !91
 EF4C      5D        663                  db      !93
 EF4D      5F        664                  db      !95
 EF4E      60        665                  db      !96
 EF4F      62         666                 db      !98
 EF50      64        667                  db      !100
 EF51      65        668                  db      !101
 EF52      67        669                  db      !103
 EF53      69        670                  db      !105
 EF54      6A        671                  db      !106
 EF55      6C        672                  db      !108
 EF56      6E        673                  db      !110
 EF57      6F        674                  db      !111
 EF58      71        675                  db      !113
 EF59      73        676                  db      !115
 EF5A      74        677                  db      !116
 EF5B      76        678                  db      !118
 EF5C      78         679                  db     !120
 EF5D      79        680                  db      !121
 EF5E      7B        681                  db      !123
 EF5F      7D        682                  db      !125
 EF60      7E        683                  db      !126
 EF61      80        684                  db      !128
 EF62      82        685                  db      !130
 EF63      83        686                  db      !131
 EF64      85        687                  db      !133
 EF65      87        688                  db      !135
 EF66      88        689                  db      !136
 EF67      8A        690                  db      !138
 EF68      8C        691                  db      !140
 EF69      8D        692                  db      !141
 EF6A      8F         693                 db      !143
 EF6B      91        694                  db      !145
 EF6C      92        695                  db      !146
 EF6D      94        696                  db      !148
 EF6E      96        697                  db      !150
тонометр.asm          Assembled with CASM08Z  25.02.03  9:58:45  PAGE 16
 EF6F      97        698                  db      !151
 EF70      99        699                  db      !153
 EF71      9B        700                  db      !155
 EF72      9C        701                  db      !156
 EF73      9E        702                  db      !158
 EF74      A0        703                  db      !160
 EF75      A1        704                  db      !161
 EF76      A3         705                  db     !163
 EF77      A5        706                  db      !165
 EF78      A6        707                  db      !166
 EF79      A8        708                  db      !168
 EF7A      AA        709                  db      !170
 EF7B      AB        710                  db      !171
 EF7C      AD        711                  db      !173
 EF7D      AF        712                  db      !175
 EF7E      B0        713                  db      !176
 EF7F      B2        714                  db      !178
 EF80      B4        715                  db      !180
 EF81      B5        716                  db      !181
 EF82      B7        717                  db      !183
 EF83      B9        718                  db      !185
 EF84      BA         719                 db      !186
 EF85      BC        720                  db      !188
 EF86      BE        721                  db      !190
 EF87      BF        722                  db      !191
 EF88      C1        723                  db      !193
 EF89      C3        724                  db      !195
 EF8A      C4        725                  db      !196
 EF8B      C6        726                  db      !198
 EF8C      C8        727                  db      !200
 EF8D      C9        728                  db      !201
 EF8E      CB        729                  db      !203
 EF8F      CD        730                  db      !205
 EF90      CE        731                  db      !206
 EF91      D0         732                  db     !208
 EF92      D2        733                  db      !210
 EF93      D3        734                  db      !211
 EF94      D5        735                  db      !213
 EF95      D7        736                  db      !215
 EF96      D8        737                  db      !216
 EF97      DA        738                  db      !218
 EF98      DC        739                  db      !220
 EF99      DD        740                  db      !221
 EF9A      DF        741                  db      !223
 EF9B      E1        742                  db      !225
 EF9C      E2        743                  db      !226
 EF9D      E4        744                  db      !228
 EF9E      E6        745                  db      !230
 EF9F      E7         746                 db      !231
 EFA0      E9        747                  db      !233
 EFA1      EB        748                  db      !235
 EFA2      EC        749                  db      !236
 EFA3      EE        750                  db      !238
 EFA4      F0        751                  db      !240
 EFA5      F1        752                  db      !241
 EFA6      F3        753                  db      !243
 EFA7      F5        754                  db      !245
 EFA8      F6        755                  db      !246
тонометр.asmAssembled with CASM08Z 25.02.03 9:58:45 PAGE 17
EFA9      F8        756                  db      !248
 EFAA      FA        757                  db      !250
 EFAB      FB         758                  db     !251
 EFAC      FD        759                  db      !253
 EFAD      FF        760                  db      !255
                      761 
                      762 
                      763 ;//////////////////////////////////////////////
                      764 
                      765  ;//////////Таблица перекодировки для индикации //
                      766 
                      767  TCI:
 EFAE      03        768                 db       $03       ;0
 EFAF      13        769                 db       $13       ;1
 EFB0      23        770                 db       $23       ;2
 EFB1      33        771                 db       $33       ;3
 EFB2      43        772                 db       $43       ;4
 EFB3      53        773                 db       $53       ;5
 EFB4      63        774                 db       $63       ;6
 EFB5      73        775                 db       $73       ;7
 EFB6      83        776                 db       $83       ;8
 EFB7      93        777                 db       $93       ;9
 EFB8      02        778                 db       $02      ; Пробел
 EFB9      34        779                 db       $34      ; С
 EFBA      5A        780                 db       $5a       ; И
 EFBB      0E        781                 db       $0e      ; Д
 EFBC      14        782                 db       $14      ; А
 EFBD      8A        783                 db       $8a      ; П
 EFBE      9A        784                 db       $9a       ; У
 EFBF      7A        785                 db       $7a      ; Л
 EFC0      F4        786                 db       $f4      ; О
 EFC1      CA        787                 db       $ca      ; Ш
 EFC2      0A        788                 db       $0a       ; Б
 EFC3      B4        789                 db       $b4      ; К
                      790 
                      791 ;///////////////////////////////////////////////////
                                       ///////////////////////////////////////
                      792 
                      793 
 FFDE                794                  org     $ffde
 FFDE      EE31      795                  dw      ADC_INT ; Векторпрерывания
                                                            для АЦП
 FFF2                796                  org     $fff2
 FFF2      EE5B      797                  dw      timer_int; Векторпрерывания
                                                           для таймера
 FFFE                798                  org     $fffe
 FFFE      EC00      799                  dw      start  ; Вектор сброса
                      800  
Symbol Table
ADC_INT          EE31
ADICLK           003E
ADM1             EE48
ADM2             EE3F
ADM3             EE52
тонометр.asm          Assembled with CASM08Z  25.02.03  9:58:45  PAGE 18
ADR              003D
ADRES            0083
ADSCR            003C
AMP1             0098
AMP2             0097
AMPMET           ECD4
BCD1             0086
BCD10            0085
BCD100           0084
BCD100M          EE94
BCD10M           EEA2
BCD1M            EEB4
BCDX             00A3
BCD_RET          EE85
BITF             0089
BITF1            0091
CBM              ED42
CI               0088
CMP1             0092
CMPAD            0096
CONFIG1          001F
CONFIG2          001E
CONST            008D
DAV              008E
DDRA             0004
DDRB             0005
DDRD             0007
DEL              0093
DELEYSRET        EF08
DIA              00A1
DVBM             ECE2
EXIT             EE59
EXITB            EEC0
EXITDAV          EE1E
EXITTIME         EE73
IND              0080
INDX             0087
IND_RET          EEC1
KBIER            001B
KBSCR            001A
LOOP             EC9D
LOOP1            ECA4
LOOP11           ED57
LOOP2            ECA0
LOOP20           ED53
LOOPAMP          ECF8
LOOPDEL          EF0D
LOP              ECC7
M55              ECED
MAIN             EC39
MB1              EEA5
MTIME            ED73
OVSEC            0095
PDCR             000A
PEREM            ED4D
PMEM1            00A4
POR              0094
PR1              009E
тонометр.asm          Assembled with CASM08Z  25.02.03  9:58:45  PAGE 19
PR2              00A0
PR2M             EDAA
PROIM            ED2F
PTA              0000
PTAPUE           000D
PTB              0001
PTD              0003
PUL              00A2
PULSE            0090
RAZNOM           ED8E
RM               ECEA
RORM             EDFC
SBM              EC3D
SEC              0099
SEC10            009A
SIS              009F
START            EC00
STIND            EECF
TCI              EFAE
TCNTH            0021
TCNTL            0022
TCP              EF14
TIME1            009B
TIME2            009C
TIME2M           ED88
TIME3            009D
TIMER_INT        EE5B
TMODH            0023
TMODL            0024
TSC              0020
UDAV             008C
UPRESS           008B
UPRESS1          008A
VOLTS_PRESSURE_R EE74
Y                008F
ZAP              EE43
ZAP1             EE56


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Экономический анализ фирмы
Реферат Организация собственной выставки
Реферат Автоматизированная система обработки экономической информации (АСОЭИ)
Реферат Сословно-представительная монархия в России
Реферат Інфляція та її особливості в Україні
Реферат Роль диверсификации производства на предприятиях химической промышленности в современных условия
Реферат Анализ финансового состояния предприятия на примере ООО Электрум
Реферат Борисова Юлия Константиновна
Реферат О методике решения задач на относительность движения при изучении основ кинематики в 9 классе общеобразовательной школы
Реферат Информационные системы в бухгалтерском учете
Реферат Праздники на Руси
Реферат Концептуальные основы христианства
Реферат Технологическая карта на устройство временного ограждения территории
Реферат Забезпечення прав і свобод людини та громадянина: умови, чинники, соціально-правовий механізм
Реферат Акционерные общества и их виды