امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
سوالهای برنامه نویسی با کامپایلر BASCOM
نویسنده پیام
hmosakazemi آفلاین
كاربر تک ستاره
*

ارسال‌ها: 26
موضوع‌ها: 4
تاریخ عضویت: فروردین ۱۳۸۹

تشکرها : 18
( 16 تشکر در 9 ارسال )
ارسال: #45
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
تو این بسکام چه جوری می شه بیت پریتی و بیت شروع و بیت پایان رو در ارتباط سخت افزاری سریال ( UART )رو چک کرد .
یه سولا دیگه . تو هلپش تو توضیحات دستور open یعنی
OPEN "device" for MODE As #channel
برای قسمت MODE نوشته که
You can use BINARY or RANDOM for COM1 and COM2
منظورش از باینری و رندم چی بوده . اصلا اینا چی هستند.
(آخرین ویرایش در این ارسال: ۰۸-مهر-۱۳۸۹, ۰۰:۵۵:۲۱، توسط hmosakazemi.)
۰۸-مهر-۱۳۸۹, ۰۰:۲۲:۰۲
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #46
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
مهندس چقدر سختی میگیری !
حالا یه بیت اینور اونور بشه کار نمیشه !
اگه با خلوص نیت دیتا رو بفرستی مطمئن باش هیچ کاریش نمیشه !!!



تا حالا به پارامترهای دستور Open دقت کردی؟
تو هلپ بسکام یه سرچ بزن !
ببین با اون نمیشه !!!
۰۸-مهر-۱۳۸۹, ۰۰:۳۱:۲۶
ارسال‌ها
پاسخ
تشکر شده توسط : رسول, hmosakazemi, reza555
hmosakazemi آفلاین
كاربر تک ستاره
*

ارسال‌ها: 26
موضوع‌ها: 4
تاریخ عضویت: فروردین ۱۳۸۹

تشکرها : 18
( 16 تشکر در 9 ارسال )
ارسال: #47
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
(۰۸-مهر-۱۳۸۹, ۰۰:۳۱:۲۶)Gawky نوشته است: مهندس چقدر سختی میگیری !
حالا یه بیت اینور اونور بشه کار نمیشه !
اگه با خلوص نیت دیتا رو بفرستی مطمئن باش هیچ کاریش نمیشه !!!
Smileولی میخام بدونم که چه جوری باید بیت پریتی رو چک کنم.
نقل قول: تا حالا به پارامترهای دستور Open دقت کردی؟
تو هلپ بسکام یه سرچ بزن !
ببین با اون نمیشه !!!
منظرت رو از کلمه ی اون در ببین با اون می شه نفهمیدم . دستور open رو هم در مد سخت افزاری و نرم افزاری بارها خوندم . ولی این
You can use BINARY or RANDOM
رو منظورش رو نمی فهم . می خاد بگه که نوع داده ورودی باینری باشه یا هر نوع دلخواه یا نه.
(آخرین ویرایش در این ارسال: ۰۸-مهر-۱۳۸۹, ۰۱:۱۷:۴۸، توسط hmosakazemi.)
۰۸-مهر-۱۳۸۹, ۰۱:۱۱:۵۲
ارسال‌ها
پاسخ
EBKA آفلاین
مخترع
****

ارسال‌ها: 1,099
موضوع‌ها: 89
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1655
( 2792 تشکر در 982 ارسال )
ارسال: #48
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
من پایه های رو که به عنوان ال سی دی تعریف کردم به هیچ عنوان نمیتونم ازش ورودی و خروجی بگیرم...
میخوام هر وقت خواستم ال س دی رو قطع کنم و پایه ها رو ورودی خروجی کنم..
میشه؟؟/؟؟

ابراهیم خوانین زاده
 ساعت کار بدن انسان بیشتر وقتها, کمتر از 657.000 ساعت است و بعد از آن از کار می افتد  :():کمی فکر کنیم.....

259-734

[/url]
وبلاگ من


وب سایت من
[url=http://www.ebka-intelligent.com/]
آموزش کار با rfm12b,آموزش کامل ای سی ds1307, آموزش اتصال ماژول em18,سنسور رنگ ,سنسور گاز, و ... در وبلاگ من خواهید دید



۰۸-مهر-۱۳۸۹, ۰۷:۵۷:۵۳
وب سایت ارسال‌ها
پاسخ
hmosakazemi آفلاین
كاربر تک ستاره
*

ارسال‌ها: 26
موضوع‌ها: 4
تاریخ عضویت: فروردین ۱۳۸۹

تشکرها : 18
( 16 تشکر در 9 ارسال )
ارسال: #49
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
(۰۸-مهر-۱۳۸۹, ۰۷:۵۷:۵۳)ebka نوشته است: من پایه های رو که به عنوان ال سی دی تعریف کردم به هیچ عنوان نمیتونم ازش ورودی و خروجی بگیرم...
میخوام هر وقت خواستم ال س دی رو قطع کنم و پایه ها رو ورودی خروجی کنم..
میشه؟؟/؟؟
وقتی پایه ای رو برای ال سی دی config می کنی دیگه نمی تونی برای کار دیگه ای ازش استفاده کنی .
۰۸-مهر-۱۳۸۹, ۱۸:۳۵:۰۴
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #50
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
میشه ها !

بعدش تو ریجستر ddr خروجی تعریفشون کن و سپس صفر و یکشون کن !!!
۰۸-مهر-۱۳۸۹, ۲۳:۳۱:۲۰
ارسال‌ها
پاسخ
تشکر شده توسط : reza555, رسول, EBKA
EBKA آفلاین
مخترع
****

ارسال‌ها: 1,099
موضوع‌ها: 89
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1655
( 2792 تشکر در 982 ارسال )
ارسال: #51
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
برای اینکه یه پایه رو ورودی تعریف کنی به چه صورته!!! config نه ها!!
با
کد:
ddrb=255 خروجی
ddrb=0 ورودی
...(اصلاح شد)...
این برای کل پایه هاست!!! برای یکی از چه دستوری استفاده کنم؟؟
دستور
کد:
cbi ddrd,2
cbi ddrd,3
یعنی چی؟؟
(۰۸-مهر-۱۳۸۹, ۲۳:۳۱:۲۰)Gawky نوشته است: میشه ها !

بعدش تو ریجستر ddr خروجی تعریفشون کن و سپس صفر و یکشون کن !!!

به چه صورت علی جان؟؟؟
کد:
config lcdbus=4
-----------
config lcdbus=8
انتقال داده به صورت 8 بیتی یعنی چی؟؟؟
سریعتره یا پایه هاش فرق میکنه!!!
میدونم که به صورت پیش فرض 4 بیتی هست!!!!

ابراهیم خوانین زاده
 ساعت کار بدن انسان بیشتر وقتها, کمتر از 657.000 ساعت است و بعد از آن از کار می افتد  :():کمی فکر کنیم.....

259-734

[/url]
وبلاگ من


وب سایت من
[url=http://www.ebka-intelligent.com/]
آموزش کار با rfm12b,آموزش کامل ای سی ds1307, آموزش اتصال ماژول em18,سنسور رنگ ,سنسور گاز, و ... در وبلاگ من خواهید دید



(آخرین ویرایش در این ارسال: ۲۱-مهر-۱۳۸۹, ۰۸:۰۹:۰۱، توسط EBKA.)
۲۰-مهر-۱۳۸۹, ۲۲:۳۳:۱۲
وب سایت ارسال‌ها
پاسخ
WhiteNoise آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 941
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 8104
( 7796 تشکر در 3061 ارسال )
ارسال: #52
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
من میدونم که تو 8 بیتی میشه هم از رو lcdخوند هم روش نوشت اما روششو بلد نیستم
علی بلده ایشالا بیاد بگه
فقط میدونم باید از کل dbها هم استفاده بشه
البته اگه این پستم چتی نباشه
۲۰-مهر-۱۳۸۹, ۲۳:۴۲:۴۵
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #53
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
مهندس به سه روش میشه یه پورت رو خروجی کرد : ( سه روشی که من بلدم چون شاید روش های دیگه هم باشه )

کد php:
Config Portb Output 
کد php:
Config Portb 255 
کد php:
ddrb 255 

البته 255 در مبنای 2 میشه 11111111
میشه خود مبنای دو رو هم وارد کرد ! ( مبنای 16 هم میشه )
نمونه :

کد php:
ddrb = &b11111111 

در ضمن صفر ورودی هستش و یک خروجی ( اخه تو پست شما اشتباه گفتی )


یه پایه هم فرقی نمی کنه !
اینجوری واسه خروجی کردن پورت ب صفر :

کد php:
Config Portb.0 Output 
کد php:
Config Portb.0 
کد php:
Ddrb.0 


به صورت فابریکی همه پایه ها ورودی هستن و نیازی نیست ورودی کنین ولی جهت احتیاط انجام بدین !!
تو ریجسترهای فوق صفر رو بریزین تا ورودی بشه !



هنگامی که یه پایه ورودی تعریف شده باشه و اون پایه رو یک کنین مثل :

کد php:
Ddrb.0 0
Set Portb.0 

در خط دوم در اصل پوول آپ داخلی رو فعال کردین !!!



cbi اون رجیستر رو صفر می کنه ( ورودی ) و sbi اونو یک می کنه ( خروجی ) !!
این دستور جز دستورات اسمبلی هستش !!!

این دستور رو الان یاد گرفتم پس شد چهار مدل واسه خروجی و ورودی کردن پایه ها !




مهندس چهار بیت اول ال سی دی خروجی هستن و چهار بین دوم ال سی دی ورودی !
ارسال اطلاعات از میکرو به ال سی دی در همه حال با چهار بیت بالا انجام میشه !

با چهار بین پاییین میشه فهمید رو ال سی دی چی نوشته !!!! ( خوندن از ال سی دی )
پایه RW واسه همونه !!

فرم کلی استفاده از مد هشت بیتی در بسکام اینجوریه !

کد php:
CONFIG LCDPIN PIN PORT=PORTxE=PNRS=PN 

خیلی واسم سواله که چرا پایه RW رو استفاده نکرده !!!؟؟؟؟؟؟؟



واسه اون کار ( خروجی کردن پایه متصل به ال سی دی ) خوب مستقم تو همون پورت ها کاراتو انجام بده !

چیز خواصی نداره !
ترجیحا قبلش دستور زیر رو بذار :

کد php:
DISPLAY ON 
۲۱-مهر-۱۳۸۹, ۰۳:۰۹:۳۲
ارسال‌ها
پاسخ
تشکر شده توسط : EBKA, reza555, رسول
EBKA آفلاین
مخترع
****

ارسال‌ها: 1,099
موضوع‌ها: 89
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1655
( 2792 تشکر در 982 ارسال )
ارسال: #54
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
سلام!!!
در مورد جدول lookup میخواستم ببینتم به چه صورته!!!
دستور LOOKUP به چه صورته!!!
بجای GOTO یا JMP چه دستور دیگه ای میشه استفاده کرد!!!
CALL به چه صورته!!! (فراخوانی)

ابراهیم خوانین زاده
 ساعت کار بدن انسان بیشتر وقتها, کمتر از 657.000 ساعت است و بعد از آن از کار می افتد  :():کمی فکر کنیم.....

259-734

[/url]
وبلاگ من


وب سایت من
[url=http://www.ebka-intelligent.com/]
آموزش کار با rfm12b,آموزش کامل ای سی ds1307, آموزش اتصال ماژول em18,سنسور رنگ ,سنسور گاز, و ... در وبلاگ من خواهید دید



۰۱-آبان-۱۳۸۹, ۱۵:۴۹:۵۵
وب سایت ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #55
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
مهندس help بسکام رو بخونی همشون رو توضیح داده !

lookup و lookdown که برعکس هم هستن !
Lookupstr هم واسه رشته هستش !

مهمترین استفاده جدول LOOKUP تو راه اندازی سون سگمنت هستش !!
جدول فوق یه عدد رو واسه ما برمیگردونه !!

کد:
Returns a value from a table.

فرم کلیش اینجوریه :

کد php:
var = LOOKUPvaluelabel

var متغیری که عدد برگشتی تو اون قرار میگیره !
value عدد یا متغیری که عدد مورد نظر از جدول رو می خواد !
label هم آدرس جدول هستش !

نمونه :

کد php:
$regfile "m8def.dat"                                     ' specify the used micro
$crystal = 4000000                                         ' 
used crystal frequency
$baud 
19200                                               ' use baud rate

Dim B1 As Byte , I As Integer

B1 = Lookup(2 , Dta)
Print B1                                                   ' 
Prints 3 (zero based)

Lookup(Dta2)                                       ' print 1000
Print I
End

Dta:
Data 1 , 2 , 3 , 4 , 5

Dta2:
Data 1000% , 2000% 

در حالت معمول عدد بین 0-65535 رو می تونه برگردونه ( اونم از جدول بین 0-255 )
ولی با گذاشتم نمادهایی بعد از عددمیشه long و single و .. رو هم برگردوند !

البته این قضیه تو بیشتر قسمت های بسکام هستش !
مثلا واسه sinlge باید بعد عدد % بذاری !!







واسه پرش همون دوتا رو من سراغ دارم !
gosub هم هستش که کارش فرق داره و با return با اونجای رفته بر میگرده !





زير برنامه ها و فراخواني توابع :


: Declare Function

از اين دستور براي معرفي تابع در ابتداي برنامه استفاده مي شود . زماني که بخواهيم تابعي را معرفي کنيم بايستي تابع معرفي شده باشد . در صورت استفاده از تابع مي بايستي يک داده برگردانده شود .

کد php:
Declare Function Test [([Byref Byval] Var As Type1)] As Type2 

Test نام تابع موردنظر است . انتقال داده بصورت Byval باعث مي شود که يک کپي از متغير به تابع فرستاده شود و در محتواي آن هيچ تغيري ايجاد نشود .ولي در حالت Byref آدرس متغير ارسال و تغيرات در آن اثر مي گذارد و داده برگشتي در صورت انجام عمليات بر روي آن با مقدار اوليه خود برابر نخواهد بود .

در صورت عدم استفاده از گزينه [Byref/Byval] بصورت پيش فرض داده بصورت Byref فرستاده مي شود. Type1 نوع داده ارسال شده وType2 نوع داده برگشتي است . که هر دو مي توانند داده نوع Byte , Integer, word , Long ,String باشند .

مثال :

در مثال زير I بصورت Byval فرستاده شده است بنابراين يک کپي از مقدار I به زير تابع فرستاده مي شود و هيچ تغييري در محتواي آن ايجاد نمي شود. S بصورت Byref فرستاده مي شود و تغير در آن صورت مي گيرد .

فراخواني تابع Myfunction با K و Z از نوع داده Integer و String است و مقدار برگشتي از نوع Integer است که در متغير T قرار مي گيرد . شما مي توانيد در محدوده تابع يک متغير محلي تعريف کنيد .

مثال :

کد php:
$regfile "m16def.dat" $crystal 1000000
Config Lcd 
16 Cls
Config Lcdpin 
Pin Db4 PORTD.0 Db5 PORTD.1 Db6 PORTD.2 _
 
Db7 PORTD.3 PORTD.4 Rs PORTD.5
Declare Function Myfunction(byref I As Word As String )as Word
Dim K 
As Word As String 10 As Word
"123 " Myfunction(Z)
Locate 1 1
Lcd T                
'10
Locate 1 , 9
Lcd Z                '
Bascom
Locate 2 
1
Lcd K                
'24
End

Function Myfunction(byref I As Word , S As String )as Integer
   I = 4 * 6
   S = "Bascom"
   Myfunction = 10
End Function 

از اين دستور براي معرفي زير برنامه استفاده مي شود . زير برنامه اي که قصد فراخواني آن را داريم بايستي در ابتداي برنامه يا حداقل قبل از فراخواني آن معرفي شده باشد .

کد php:
Declare Sub Test [([Byref Byval] Var As Type)] 

زير برنامه برخلاف تابع مقداري برنمي گرداند .در زمان ارسال داده بصورت Byref آدرس داده به زير برنامه فرستاده مي شود و در محتواي آن تغير ايجاد مي شود .ولي در حالت Byval يک کپي از داده فرستاده مي شود و به هيچ وجه در محتواي آن تغيري ايجاد نمي شود . Test نام زيربرنامه و Var نام متغير ارسالي به زير برنامه و Type نوع آن است که مي تواند داده نوع Byte , Integer , Word , String باشند .

براي نوشتن زير برنامه ابتدا نام آنرا توسط دستور زير تعريف کرده و سپس شروع به نوشتن زيربرنامه مي کنيم .

کد php:
Sub Name [(Var1)] 

Name نام زيربرنامه که بايد توسط دستور Declare معرفي شده باشد و با دستور End Subپايان مي يابد .

مثال :

کد php:
$regfile "m16def.dat"
$crystal 1000000
Config Lcd 
16 2
Config Lcdpin 
Pin Db4 PORTD.0 Db5 PORTD.1 Db6 PORTD.2 _
Db7 
PORTD.3 PORTD.4 Rs PORTD.5
Cls
Dim A 
As Byte B1 As Byte As Byte
Declare Sub Test(As Byte)
B1 3
Lcd A 
B1 C                                              '123
Call Test(b1)
End

Sub Test(a As Byte)
   Locate 2 , 1
   Lcd A ; B1 ; C                                           '
223
End Sub 

Call :

توسط اين دستور زير برنامه يا تابعي را فراخ واني مي کنيم .

کد php:
Call Test (Var1 Var2 , ....) 

Var1 , Var2 متغيرهايي که به زير برنامه انتقال مي يابند , هستند . مي توان زير برنامه را بصورت زير نيز فراخواني کرد .

کد php:
TEST VAR1 VAR2 

لازم بتذکر است که نام زير برنامه قبل از فراخواني آن , بايد توسط دستور Declare فراخواني شود. اگر بخواهيم عدد ثابت را به زير برنامه انتقال دهيم بايستي حتما با آرگومان BYVAL آن را انتقال دهيم .

مثال :

کد php:
$regfile "m16def.dat"
$crystal 1000000
Config Lcd 
16 Cls
Config Lcdpin 
Pin Db4 Portd.0 Db5 Portd.1 Db6 Portd.2 _
Db7 Portd.3 Portd.4 Rs Portd.5
Dim A 
As Byte As Byte
Declare Sub Test(b1 As Byte Byval B2 As Byte)
65
Call Test
(5)
Test A 5
Locate 2 
1
Lcd A
End

Sub Test
(b1 As Byte Byval B2 As Byte)
   
B1 10
   B2 
15
   Locate 1 
1
   Lcd B1
   Locate 1 
9
   Lcd B2
End Sub 

Local :

از اين دستور براي تعريف و بکارگیری متغير محلي در زيربرنامه استفاده مي کنيم .

کد php:
Local Var As Type 

Var نام متغير و Type نوع داده است که مي توانند String , Word , Integer , Byte , Single , Long باشند .

نوع داده هاي Eram , Sram , Xram و آرايه ها نمي توانند محلي تعريف شوند .

يک متغير محلي يک متغير موقت است که فقط در هنگام فراخواني زير برنامه مربوطه براي آن فضا در نظر گرفته مي شود و با برگشت از زير برنامه عمر متغير (Life Time) به اتمام مي رسد .

تذکر متغيرهاي بيتي نمي توانند بصورت محلي تعريف شوند .

مانند :

کد php:
$regfile "m16def.dat"
$crystal 1000000
Config Lcd 
16 Cls
Config Lcdpin 
Pin Db4 PORTD.0 Db5 PORTD.1 Db6 PORTD.2 _
Db7 
PORTD.3 =PORTD.4 Rs PORTD.5
Declare Sub Test2
Do
   
Call Test2
Loop

Sub Test2
   Local A 
As Byte
   Incr A
   Home 
Lcd A
   Waitms 200
End Sub 
(آخرین ویرایش در این ارسال: ۱۲-آذر-۱۳۸۹, ۲۱:۱۰:۳۳، توسط t3r!p3000.)
۰۱-آبان-۱۳۸۹, ۱۶:۳۷:۰۲
ارسال‌ها
پاسخ
تشکر شده توسط : EBKA, reza555, رسول, sharin


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question [سوال] کمک در برنامه نویسی دور موتور خودرو HPower 6 2,592 ۲۵-آبان-۱۳۹۷, ۲۲:۰۳:۵۷
آخرین ارسال: alimogmov
  برنامه نویسی AVR به روش فلوچارتی با نرم افزار FLOWCODE AVR V3 koorosh.k 8 12,641 ۲۴-آذر-۱۳۹۵, ۲۲:۴۶:۰۸
آخرین ارسال: 1نفر
  BASCOM-AVR V2.0.5.0 + Patch p3rtic@n 2 5,472 ۰۵-شهریور-۱۳۹۴, ۱۵:۴۵:۰۱
آخرین ارسال: ehsan2774
  برنامه نویسی بیسکام soy1345 17 13,270 ۲۳-مرداد-۱۳۹۴, ۱۷:۱۷:۵۶
آخرین ارسال: MN-123
  آموزش برنامه نویسی ربات مسیریاب kamran0080 3 10,199 ۲۶-تير-۱۳۹۴, ۱۷:۲۵:۳۶
آخرین ارسال: sona2
Exclamation کمک در مورد برنامه نویسی avr . saeedsniper2 5 3,585 ۱۵-اردیبهشت-۱۳۹۴, ۰۹:۲۰:۳۳
آخرین ارسال: kimiafars
  سوال در مورد انتخاب سنسور و برنامه نویسی dj kaka 10 6,397 ۰۲-اسفند-۱۳۹۳, ۰۹:۱۱:۰۳
آخرین ارسال: dj kaka
  کمک در برنامه نویسی mehdi_mecha 1 2,363 ۰۸-بهمن-۱۳۹۳, ۱۵:۵۸:۰۵
آخرین ارسال: a.mehran
  خطا در نصب کامپایلر ۶٫۲ ATMEL Studio cinapa 0 1,536 ۰۷-بهمن-۱۳۹۳, ۱۵:۲۸:۳۱
آخرین ارسال: cinapa
  [آموزشی] Exclamation دانلود ویرایش دوم کتاب اصول کار با میکرو کنترلر های avr و کامپایلر بسکام a.mehran 0 3,259 ۱۷-آبان-۱۳۹۳, ۱۸:۵۵:۳۰
آخرین ارسال: a.mehran

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 4 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS