Krzysiek - nie róbmy prosze kolejnego wątku rozproszonego o wyższości....
Wiesz dobrze że zaawansowanie jakie obecnie masz, to wiele lat ASM-blerowania... i używasz ASM prawie jak "prywatnego BASICA" - na wszystko masz już gotowe kawałki kodu napisane i przetestowane wcześniej.
Natomiast dla początkującego "profesorowca" naprawdę ten
język z lat 60-siątych pozwala początkującemu na napisanie woltomierza w dosłownie kilku linijkach kodu.
Nawet 14 linijek wystarczy by napisać woltomiesz co wyświetla pomiar co 200 mc na LCD i wysyła pomiary na port szeregowy RS232.
Kod:
$regfile = "m8def.dat"
$crystal = 11059200
$baud = 115200
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portc.7 , Rs = Portc.6
Dim Pomiar_napiecia As Single
Dim Odczyt_przetwornika As Word
Start Adc
Do
Odczyt_przetwornika = Getadc(1)
Pomiar_napiecia = Odczyt_przetwornika
Pomiar_napiecia = 4.88 * Odczyt_przetwornika
Lcd "U mv: " ; Pomiar_napiecia
Print "U mV: " ; Pomiar_napiecia
Waitms 200
Loop
' jeśli mamy Vref 5V i pomiar max to 5V to 5000 mV / 1023 = 4,88 mv na jedną "działkę"
Po kolei deklaracja procka, deklaracja zegara, deklaracja zmiennych i deklaracja podłączenia LCD iiii program
a przykładowy kod wyświetlający napis na wyświetlaczy VFD
i rzesywający go w różnych kierunkach...
Kod:
'-------------------------------------------------------------
' (C) 1995-2010
' VFD.BAS demonstates the VFD display from
' "Electronic Design Bitzer"
' This progam requires the lcdcfd.lib wich is supplied with
' display
'-------------------------------------------------------------
$regfile = "m88def.dat" ' used processor
$crystal = 8000000 ' crystal clock
$hwstack = 40
$swstack = 40
$framesize = 40
'dim some variables
Dim A As Byte , X As Byte , Y As Byte
'include the library
$lib "lcdvfd.lib"
Config Lcd = 20x4vfd ' this is a special 20x4 display
Config Lcdpin = Pin , Busy = Portb.7 , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.6 , Reset = Portb.5 , Mode = 0
'this display supports various modes, and also has a normal LCD compatible mode. The library supports mode 0 and mode 1
'mode=0 4 bit parallel upper nibble first , mode=1 4 bit parallel lower nibble first
Waitms 3000 ' in case there was a welcome sign, delay
Lcd "test" ' show some text
Waitms 1000
Cls ' clear display
Lcd "VFD display" ' show text
Home ' set cursomr home
Waitms 1000
Home Lower 'see the cursor jumping
Waitms 1000
Home Third
Waitms 1000
Home Fourth
Waitms 1000
Locate 2 , 2 : Lcd "test" ' use locate
Waitms 1000
X = 3 : Y = 4 : Locate Y , X : Lcd "display" ' test with variables
Cursor Off
Waitms 1000
Cursor On
Waitms 3000
Cursor Blink
Waitms 3000
Display Off
Waitms 3000
Display Off
Waitms 3000
Display On
Shiftlcd Left
Shiftlcd Left
Waitms 1000
Shiftlcd Right
Waitms 1000
Shiftlcd Down ' this display can shift down
Waitms 1000
Shiftlcd Up ' and up
Lcdautodim 5 ' auto dim in 5 seconds ,to turn it off send a 0
End