Сделал по другому. Догадался почти сразу после написания данной темы. Теперь он показывает микрорентгены в час. Коэффициент СБМ-20= 0,0057. Это если импульсы в минуту переводить в микрозиверты.
Для микрорентгенов надо ещё на 115 умножить.
Код
$regfile = "m8adef.dat"
$crystal = 1000000
$hwstack = 40
$swstack = 16
$framesize = 32
Config Int0 = Rising
On Int0 Encod
Dim W As Word
Dim S As Word
Dim R As Single
Dim O As Word
Enable Interrupts
Enable Int0
Cls
Cursor Off
Locate 1 , 1
Lcd "Dosimeter SBM-20"
Wait 2
W = 0
S = 0
O = 60 'Обратный отсчёт 60 секунд
R = 0
Do
Wait 1
Incr S
If S > 65530 Then
S = 0 'Сброс таймеры
W = 0 'Сброс счётчика импульсов
End If
If S > 60 Then
R = W / S 'Импульсы делим на секунды
R = R * 60 'Переводим в импульсы в минуту в среднем
R = R * 0.0057 'Микрозиверты
R = R * 115 'Микрорентген
Cls
Upperline
Lcd "Radiation:"
Lowerline
Lcd Fusing(r , "#########.#") ; " uR/Hour"
Else
O = 60 - S 'Даём ему просчитаться минуту после включения
Cls
Upperline
Lcd "Please wait " ; O ; " s"
End If
Loop
End
Encod:
If Pind.2 = 1 Then
Incr W
End If
Waitus 190 ' ждем пока утихнет импульс от СБМ-20
Gifr = 64 ' сбрасываем регистр хранения прерывания INT0
Return