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

 















Рис.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.ADRUpress

 

10.Уст. Ab1 в 1

 

12.ADRUpress1

 
 









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.UdavX

 

5.LDA TCP,X

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



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