|
|
|
Sample Program
'**************************************************************
'
' Frequency Measuring Program for PF-700
'
' 2000/11/29 Koichi Hirata
'
' pf700a.bas
'
'**************************************************************
'
' for AT90S2313-10PC
'
'*********************
' Initial set
'*********************
'
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
Config Lcd = 16 * 2 'configure lcd screen
Config Timer1 = Timer , Prescale = 1024 'Timer1 Setup
Dim A As Byte
Dim B As String * 16
Dim X As Single ' Word
Ddrb = &B11111100
Ddrd = &B00110000
'
'*********************
' First screen
'*********************
'
Cls 'clear the LCD display
Lcd "Freq Counter" 'display this at the top line
Lowerline 'select the lower line
Lcd "for PF-700" 'display this at the lower line
Wait 1
'
'*********************
' Sencing (Loop)
'*********************
'
Start Timer1 'Start Timer1
Do
A = 0
Timer1 = 0
While A < 4
If A = 0 And Pinb.0 = 1 Then
A = 1
Portd.4 = 1
End If
If A = 1 And Pinb.0 = 0 Then
A = 2
Timer1 = 0
Portd.4 = 0
End If
If A = 2 And Pinb.0 = 1 Then
A = 3
Portd.4 = 1
End If
If A = 3 And Pinb.0 = 0 Then
A = 4
X = Timer1
Portd.4 = 0
End If
If Timer1 => 50000 Then 'Time Over=5 sec
A = 4
X = Timer1
End If
Wend
'
' Calculation
'
X = 10000 / X 'Frequency (Hz)
X = X / 2 'For PF-700 (Reduced 1/2 by Bevel gears)
B = Str(x)
B = Left(b , 4)
'
' Result screen
'
Cls
Home Upper
Lcd "Freq= "
Lcd B
Lcd " Hz"
' If X =< 0.1 Then
' Lowerline 'select the lower line
' Lcd "Time Over"
' End If
Wait 1
Loop
End
|
|
[ Microcomputer ] [ Hirata HOME ] [ Power and Energy Engineering Division ] [ NMRI HOME ] |
|
|
| Contact khirata@nmri.go.jp |