رفتن به مطلب

نیاز فوری به برنامه


ارسال های توصیه شده

سلام

من یه برنامه به زیون بسکام میخواهم که ورودی را از پورت aبگیره

بعد خود عدد را روی یک سون سگمنت که به پوراbوصله نشون بده

بعد دو واحد کم بشه ازش روی یک سون سگمنت که به پورت c وصله نشون بده

بعد تقسیم بر دو شود روی یک سون سگمنت که به پورت d وصله نشون بدهد

ممنون

لینک به دیدگاه

به زبان بسکام چندان آشنایی ندارم ولی این برنامه به زبان C نوشتم میتونی گزاره هاشو تبدیل به بسکام کنی امیدوارم بتونه مفید باشه

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 2
لینک به دیدگاه
به زبان بسکام چندان آشنایی ندارم ولی این برنامه به زبان C نوشتم میتونی گزاره هاشو تبدیل به بسکام کنی امیدوارم بتونه مفید باشه

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

ممنون

من این برنامه را گفتم که دستکاریش کنم برا برنامه دیگه ولی متاسفانه کد ویژن وارد نیسم

برنامه اصلی من اینه که ورودی 4 تا 20 ولت متغییر هست میخواهیم وقتی 4 هست عدد صف و وقتی 20 هست عدد300 داشته باشیم

به این صورت که یکان روی یک سون سگمنت

دهگان روی یک سون سگمنت جدای دیگه

صدگن روی دیگری

یه برنامه بهم دادن ولی اعشار را نمیتونه در نظر بگیره مثلا 4.25 باشه مثل 5 میشود

کد برنامه

#include

#include

 

#define yekan PORTC

#define dahgan PORTD

#define sadgan PORTB

 

int function (int temp);

 

void main(){

int value;

long V;

char str[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // codes for 7seg cathode

DDRA=PORTA=0x00;

DDRB=DDRD=DDRC=0xff;

yekan=dahgan=sadgan=0x00;

ADMUX = 0b01000000;

while(1) {

ADCSRA = 0b11000000;

while(ADCSRA.4 ==0);

V = ADCW * 20.2 / 1023;

ADCSRA.4 = 1;

value=function((int)V);

 

if (value

else if (value>300) value=300;

 

yekan=dahgan=sadgan=0x00; //turn off all 7 segment

yekan=str[value%10];

dahgan=str[(value/10)%10];

sadgan=str[(value/100)%10];

delay_ms(250);

}

}

 

int function (int temp)

{

temp = (18.75*(temp-4)+37.5);

return ((int)temp);

}

موفق باشید

و

  • Like 1
لینک به دیدگاه
ممنون

من این برنامه را گفتم که دستکاریش کنم برا برنامه دیگه ولی متاسفانه کد ویژن وارد نیسم

برنامه اصلی من اینه که ورودی 4 تا 20 ولت متغییر هست میخواهیم وقتی 4 هست عدد صف و وقتی 20 هست عدد300 داشته باشیم

به این صورت که یکان روی یک سون سگمنت

دهگان روی یک سون سگمنت جدای دیگه

صدگن روی دیگری

یه برنامه بهم دادن ولی اعشار را نمیتونه در نظر بگیره مثلا 4.25 باشه مثل 5 میشود

کد برنامه

#include

#include

 

#define yekan PORTC

#define dahgan PORTD

#define sadgan PORTB

 

int function (int temp);

 

void main(){

int value;

long V;

char str[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // codes for 7seg cathode

DDRA=PORTA=0x00;

DDRB=DDRD=DDRC=0xff;

yekan=dahgan=sadgan=0x00;

ADMUX = 0b01000000;

while(1) {

ADCSRA = 0b11000000;

while(ADCSRA.4 ==0);

V = ADCW * 20.2 / 1023;

ADCSRA.4 = 1;

value=function((int)V);

 

if (value

else if (value>300) value=300;

 

yekan=dahgan=sadgan=0x00; //turn off all 7 segment

yekan=str[value%10];

dahgan=str[(value/10)%10];

sadgan=str[(value/100)%10];

delay_ms(250);

}

}

 

int function (int temp)

{

temp = (18.75*(temp-4)+37.5);

return ((int)temp);

}

موفق باشید

و

 

برنامه کدهاش یکم بهم ریخته شده و تشخیصش سخته:ws52: اما چیزی که معلومه کلیه فرمت ها اعم از value و temp رو integer در نظر گرفته شده که در اینصورت نمیتونه اعداد اعشاری رو شامل بشه. شما باید از فرمت float استفاده کنید برای ارقام اعشاری. البته برای نمایشش روی 7seg کمی مشکل هست و نیاز به کار داره

  • Like 1
لینک به دیدگاه
برنامه کدهاش یکم بهم ریخته شده و تشخیصش سخته:ws52: اما چیزی که معلومه کلیه فرمت ها اعم از value و temp رو integer در نظر گرفته شده که در اینصورت نمیتونه اعداد اعشاری رو شامل بشه. شما باید از فرمت float استفاده کنید برای ارقام اعشاری. البته برای نمایشش روی 7seg کمی مشکل هست و نیاز به کار داره

سلام

ممنون

وقتی از نوع floatمیذارم خطا میده برنامه به اون خط

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

این ادرس برنامه هست ممنون میشم کمک کنید

  • Like 1
لینک به دیدگاه
×
×
  • اضافه کردن...