'-------------------------------------------------------------- ' Basmon.bas ' Basmon voor het Educatief Ontwikkel Bord ' (c) 1995-2005, MCS Electronics ' Bestandsversie 1.0 '-------------------------------------------------------------- ' 'Dit bestand is een kopie uit de Bascom AVR Samples map '> Onderdeel van Update 1 voor het Educatief Ontwikkel Bord 'Revisie 26 oktober 2005 ' 'De Simulator stuurt commando's naar het monitor programma als er een poort wijzigd. 'Dit programma ontvangt ook commando's om de poortwaarden te manipuleren. ' 'Deze simulatie werkt met het LCD commando en alle POORT gerelateerde commando's 'I2C kan ook worden gebruikt. 1wire is tijdkritisch en kan niet worden gebruikt. 'Dus als timing niet belangrijk is kunt u deze simulator gebruiken ' 'Als u een LCD display gebruikt (in bus mode) dient u external memory access 'aan te zetten in de compiler options '----------------------------------------------------------------------- $regfile = "m88def.dat" $crystal = 8000000 $baud = 19200 'Dit programma wacht op commando's, het protocol is eenvoudig: 'xyz '^--- Command kan W zijn voor write (schrijven), R voor read(lezen), en T voor test ' ^-- Addres dat gelezen of geschreven wordt ' ^- Tijdens schrijven is dit byte de data die gescreven wordt, ' tijdens lezen zal het programma een T zenden, de ECHO is dan OK '[variables] Dim Krk As Byte 'command Dim Adr As Word 'address Dim Adrl As Byte , Adrh As Byte 'for new OUT command Dim Vl As Byte 'value '[main program] Print "BASMON Version 1.01" Do Krk = Waitkey() If Krk = "T" Then 'check if it is attached Print Chr(13); 'it is working Elseif Krk = "W" Then Adr = Waitkey() 'wait for address Vl = Waitkey() 'wait for value Out Adr , Vl 'write value Print Chr(13); 'confirm Elseif Krk = "R" Then Adr = Waitkey() ' wait for address Vl = Inp(adr) 'get value Print Chr(vl); 'write back value Elseif Krk = "O" Then Adrl = Waitkey() 'wait for LSB of address Adrh = Waitkey() 'wait for MSB Vl = Waitkey() 'wait for data Adr = Adrh * 256 Adr = Adr + Adrl Out Adr , Vl Print Chr(13); Elseif Krk = "?" Then ' just echo for test Print "?"; End If Loop 'for ever