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

6.ADav

 

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.                             Technical Data. MC68HC908JL3.

4.                             Technical Data. MPX5050DP.

Приложение


тонометр.asm Assembled 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  ;Установка режима ввода

                                                                         

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.