kendab 184 ارسال شده در 17 آذر، 2012 سلام من یه برنامه به زیون بسکام میخواهم که ورودی را از پورت aبگیره بعد خود عدد را روی یک سون سگمنت که به پوراbوصله نشون بده بعد دو واحد کم بشه ازش روی یک سون سگمنت که به پورت c وصله نشون بده بعد تقسیم بر دو شود روی یک سون سگمنت که به پورت d وصله نشون بدهد ممنون
Mehdi.Aref 26783 ارسال شده در 18 آذر، 2012 به زبان بسکام چندان آشنایی ندارم ولی این برنامه به زبان C نوشتم میتونی گزاره هاشو تبدیل به بسکام کنی امیدوارم بتونه مفید باشه برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام 2
kendab 184 مالک ارسال شده در 22 آذر، 2012 به زبان بسکام چندان آشنایی ندارم ولی این برنامه به زبان 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); } موفق باشید و 1
Mehdi.Aref 26783 ارسال شده در 23 آذر، 2012 ممنونمن این برنامه را گفتم که دستکاریش کنم برا برنامه دیگه ولی متاسفانه کد ویژن وارد نیسم برنامه اصلی من اینه که ورودی 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); } موفق باشید و برنامه کدهاش یکم بهم ریخته شده و تشخیصش سخته اما چیزی که معلومه کلیه فرمت ها اعم از value و temp رو integer در نظر گرفته شده که در اینصورت نمیتونه اعداد اعشاری رو شامل بشه. شما باید از فرمت float استفاده کنید برای ارقام اعشاری. البته برای نمایشش روی 7seg کمی مشکل هست و نیاز به کار داره 1
kendab 184 مالک ارسال شده در 23 آذر، 2012 برنامه کدهاش یکم بهم ریخته شده و تشخیصش سخته اما چیزی که معلومه کلیه فرمت ها اعم از value و temp رو integer در نظر گرفته شده که در اینصورت نمیتونه اعداد اعشاری رو شامل بشه. شما باید از فرمت float استفاده کنید برای ارقام اعشاری. البته برای نمایشش روی 7seg کمی مشکل هست و نیاز به کار داره سلام ممنون وقتی از نوع floatمیذارم خطا میده برنامه به اون خط برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام این ادرس برنامه هست ممنون میشم کمک کنید 1
ارسال های توصیه شده