سلام خدمت همه اساتيد:
در زير برنامه اي نوشتم و آنرا با hyper terminal چک کردم و بدون استفاده از دستور input داده هاي ارسالي از ميکرو بصورت متوالي نمايش داده ميشه.ميخواستم برنامه اي مثلا با ويژوال بيسيک نوشته بشه و داده ها هم ديده بشن البته مجزا و بشه از طريق کامپيوتر تنظيمات انجام داد و روي lcd ديد. البته فکر کنم هر رشته داده رو بايد آدرس دهي کرد تا بتونيم در کامپيوتر و برنامه ويژوال بيسيک مجزا کرد . در اين برنامه مقدار دماي 4 محيط به کامپيوتر ارسال شود و در ضمن بتوان از طريق کامپيوتر 4 داده را تنظيم کرد .
کد:
'''''''''''''''''''''''''
' AVR-serial port '
'''''''''''''''''''''''''
$regfile = "m16def.dat"
$crystal = 2000000
$baud = 9600
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.2 , Rs = Portd.3
Config Adc = Single , Prescaler = Auto , Reference = Internal
Config Pinc.7 = Output
Deflcdchar 1 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32
Dim Adc0 As Word
Dim Temp0 As Integer
Dim Adc1 As Integer
Dim Temp1 As Integer
Dim Adc2 As Integer
Dim Temp2 As Integer
Dim Adc3 As Integer
Dim Temp3 As Integer
Dim In0 As Integer
Dim In1 As Integer
Dim In2 As Integer
Dim In3 As Integer
Start Adc
Cursor Off
Cls
Do
'---- read ADC
Adc0 = Getadc(0)
Temp0 = Adc0 / 4
Adc1 = Getadc(1)
Temp1 = Adc1 / 4
Adc2 = Getadc(2)
Temp2 = Adc2 / 4
Adc3 = Getadc(3)
Temp3 = Adc3 / 4
'---- send to lcd 20*4
Locate 1 , 1
Lcd "Temp0:" ; Temp0 ; Chr(0) ; "c "
Locate 2 , 1
Lcd "Temp1:" ; Temp1 ; Chr(0) ; "c "
Locate 3 , 1
Lcd "Temp2:" ; Temp2 ; Chr(0) ; "c "
Locate 4 , 1
Lcd "Temp3:" ; Temp3 ; Chr(0) ; "c "
Locate 1 , 13
Lcd "Adj0:" ; In0
Locate 2 , 13
Lcd "Adj1:" ; In1
Locate 3 , 13
Lcd "Adj2:" ; In2
Locate 4 , 13
Lcd "Adj3:" ; In3
'---- delay
Waitms 200
'---- AVR send to serial port
Print "Temp0:" ; Temp0
Print "Temp1:" ; Temp1
Print "Temp2:" ; Temp2
Print "Temp3:" ; Temp3
'---- AVR recive from serial port
Input "Adj0:" , In0
Input "Adj1:" , In1
Input "Adj2:" , In2
Input "Adj3:" , In3
Loop
End 'end program