۱۹-دى-۱۳۹۰, ۱۷:۴۴:۳۶
کسی هست بتونه به منه بدبخت کمک کنه؟؟؟
من یه برنامه دارم که دمای دو نقطه را با سنسور lm35 و با adc اندازه گرفته و به pc میفرسته
برنامه روی پروتئوس درست کار میکنه
حتی با virtual terminal پروتئوسم چک کردم داده هارو درست میفرسته به پی سی
اما برنامه سمت پی سی فقط عدد 0 به من نشون میده
مشکل از کجاسـت؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
این برنامه سمت میکرو:
اینم برنامه سمت pc :
اینم پروتئوس :
http://www.upload.iran-forum.ir/download32571.html
من یه برنامه دارم که دمای دو نقطه را با سنسور lm35 و با adc اندازه گرفته و به pc میفرسته
برنامه روی پروتئوس درست کار میکنه
حتی با virtual terminal پروتئوسم چک کردم داده هارو درست میفرسته به پی سی
اما برنامه سمت پی سی فقط عدد 0 به من نشون میده
مشکل از کجاسـت؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
این برنامه سمت میکرو:
کد:
#include <stdio.h>
#include <mega16.h>
#include <delay.h>
#include <lcd.h>
#define xtal 8000000
#asm
.equ __lcd_port=0x18 //portb
#endasm
#define ADC_VREF_TYPE 0xC0
float t0,t1;
unsigned int read_adc(unsigned char adc_input){
float temp1,temp2,var1,var2;
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
var1=ADCW/255;
temp1=((var1*2.56)/1023)*100;
var2=ADCW%255;
temp2=((var2*2.56)/1023)*100;
return temp1,temp2;
}
void main(void){
char buffer1[16],buffer2[16];
lcd_init(16);
SFIOR=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x86;
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
while (1){
t0=read_adc(0);
t1=read_adc(1);
lcd_clear();
sprintf(buffer1,"T0=%f\n",t0);
lcd_puts(buffer1);
sprintf(buffer2,"T1=%f",t1);
lcd_puts(buffer2);
printf("%s%s",buffer1,buffer2);
delay_ms(100);
};
}
اینم برنامه سمت pc :
کد:
[align=left]Option Explicit
Option Base 1
Dim buffer As Variant, b As Variant
Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1"
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.InputLen = 1
MSComm1.CommPort = 6
MSComm1.PortOpen = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
buffer = MSComm1.Input
Text1.Text = Asc(buffer)
End If
End Sub[/align]
اینم پروتئوس :
http://www.upload.iran-forum.ir/download32571.html