مدار ولتمتر DC رو سون سگمنت مالتی پلکس ساختم که اشکال اون نوسان در نمایش مقدار ولتاژه.
یعنی اگه مثلا ورودی5.2 ولت باشه خروجی نمایشگر بین 4.7 و 5.6 ولت نوسان می کنه.
یعنی اگه مثلا ورودی5.2 ولت باشه خروجی نمایشگر بین 4.7 و 5.6 ولت نوسان می کنه.
$regfile = "m8def.dat"
$crystal = 1000000
Config Portd = Output
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Output
Dim A As Word
Dim B As Word
Dim C As Word
Dim N As Word
Dim N1 As Word
Dim N2 As Word
Dim N3 As Word
Dim N4 As Word
Dim A2d As Word , Volt As Single
'-------------------------------------------------------------------------------
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Enable Adc
'-------------------------------------------------------------------------------
Main:
If N = 100 Then
Start Adc
A2d = Getadc(5)
Stop Adc
N = 0
Volt = A2d / 204.6
Volt = Volt * 6.607
End If
Incr N
'------------------------
A = Volt * 100
B = A Mod 1000
N1 = A - B
N1 = N1 / 1000
Gosub Show1
'------------------------
C = B Mod 100
N2 = B - C
N2 = N2 / 100
Gosub Show2
'------------------------
N4 = C Mod 10
N3 = C - N4
N3 = N3 / 10
Gosub Show3
'------------------------
'------------------------
Goto Main
'============================================ ===================================
Show1:
Portc.1 = 1
Portc.2 = 0
Portc.3 = 0
Portd = Lookup(n1 , Code)
Waitms 2
N1 = 0
Return
'============================================ ===================================
Show2:
Portc.1 = 0
Portc.2 = 1
Portc.3 = 0
Portd = Lookup(n2 , Code1)
Waitms 2
N2 = 0
Return
'============================================ ===================================
Show3:
Portc.1 = 0
Portc.2 = 0
Portc.3 = 1
Portd = Lookup(n3 , Code)
Waitms 2
N3 = 0
Return
'============================================ ===================================
Goto Main
End 'end program
Code:
Data &B11000000 '0
Data &B11111001 '1
Data &B10100100 '2
Data &B10110000 '3
Data &B10011001 '4
Data &B10010010 '5
Data &B10000010 '6
Data &B11111000 '7
Data &B10000000 '8
Data &B10010000 '9
Code1:
Data &B01000000 '0
Data &B01111001 '1
Data &B00100100 '2
Data &B00110000 '3
Data &B00011001 '4
Data &B00010010 '5
Data &B00000010 '6
Data &B01111000 '7
Data &B00000000 '8
Data &B00010000
$crystal = 1000000
Config Portd = Output
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Output
Dim A As Word
Dim B As Word
Dim C As Word
Dim N As Word
Dim N1 As Word
Dim N2 As Word
Dim N3 As Word
Dim N4 As Word
Dim A2d As Word , Volt As Single
'-------------------------------------------------------------------------------
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Enable Adc
'-------------------------------------------------------------------------------
Main:
If N = 100 Then
Start Adc
A2d = Getadc(5)
Stop Adc
N = 0
Volt = A2d / 204.6
Volt = Volt * 6.607
End If
Incr N
'------------------------
A = Volt * 100
B = A Mod 1000
N1 = A - B
N1 = N1 / 1000
Gosub Show1
'------------------------
C = B Mod 100
N2 = B - C
N2 = N2 / 100
Gosub Show2
'------------------------
N4 = C Mod 10
N3 = C - N4
N3 = N3 / 10
Gosub Show3
'------------------------
'------------------------
Goto Main
'============================================ ===================================
Show1:
Portc.1 = 1
Portc.2 = 0
Portc.3 = 0
Portd = Lookup(n1 , Code)
Waitms 2
N1 = 0
Return
'============================================ ===================================
Show2:
Portc.1 = 0
Portc.2 = 1
Portc.3 = 0
Portd = Lookup(n2 , Code1)
Waitms 2
N2 = 0
Return
'============================================ ===================================
Show3:
Portc.1 = 0
Portc.2 = 0
Portc.3 = 1
Portd = Lookup(n3 , Code)
Waitms 2
N3 = 0
Return
'============================================ ===================================
Goto Main
End 'end program
Code:
Data &B11000000 '0
Data &B11111001 '1
Data &B10100100 '2
Data &B10110000 '3
Data &B10011001 '4
Data &B10010010 '5
Data &B10000010 '6
Data &B11111000 '7
Data &B10000000 '8
Data &B10010000 '9
Code1:
Data &B01000000 '0
Data &B01111001 '1
Data &B00100100 '2
Data &B00110000 '3
Data &B00011001 '4
Data &B00010010 '5
Data &B00000010 '6
Data &B01111000 '7
Data &B00000000 '8
Data &B00010000
دیدگاه