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

ارسال‌ها: 223
موضوع‌ها: 29
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 1071
( 1219 تشکر در 284 ارسال )
ارسال: #122
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
سلام به همگیQuestion
من میخوام با Bascom یه برنامه بنویسم اولین بارمه و زیاد بلد نیستمAmaze
صورت سوال اینه:
ساعت روی lcd نمایش داده بشه و و هنگامی که b.2 زده میشه امکان تنظیم ساعت از روی کامپیوتر فراهم بشه
ارتباط سریال 2 سیمه هست!!و از پروتیوس برای شبیه سازیش کمک گرفتم
من برنامه را نوشتم اما ارور داره نمیتونم مشکلشو بفهممSad
ممنون میشم اگه کسی بگه ارورش چیه
کد:
$regfile = "m32def.dat"
$crystal = 8000000
Config Portc = Output
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Rs = Portc.0 , E = Pinc.2 , Db4 = Pinc.4 , Db5 = Pinc.5 , Db6 = Pinc.6 , Db7 = Pinc.7
Config Clock = Soft

$baud = 9600
Enable Interrupts
Cls : Home
Main:
Do
Home = Led Time$ = "12.00.00"
Debounce Pinb.4 , 0 , Set Time
Loop
Set Time:
Cls : Home : Lcd "set time with"
Input " <hh:mm:ss> " , A
Time$ = A
Goto Main


فایل‌(های) پیوست شده
.rar   serial.rar (اندازه: 13.72 KB / تعداد دفعات دریافت: 24)

هر وقت تو زندگيت به يه در بزرگ و يه قفل بزرگ برخوردي نگران نشو
چون اگه قرار بود باز نشه به جاش ديوار ميذاشتن
۰۵-دى-۱۳۸۹, ۱۸:۵۴:۵۵
ارسال‌ها
پاسخ
WhiteNoise آفلاین
مدیر بازنشسته
*****

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

تشکرها : 8104
( 7796 تشکر در 3061 ارسال )
ارسال: #123
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
اولین مشکلی که هست اینه که نباید از اسم های حساس به جای اسم زیر برنامه استفاده کنین
دوم اینکه به نظر من یه جور دیگه این کارو بکنین شاید جواب بده
بیایان سه تا متغییرsec,min.hour رو از کامپیوتر بگیرین
و بعد با دستورات
کد php:
-sec=sec
-min=min
-hour=hour 
اعداد این متغییر ها رو به عنوان عدد اولیه rtcداخلی بزارین تا با اون شروع کنه
با این یه تست بکنین
فقط باید اعداد متغییر ها با اختلاف 2 ثانیه ارسال بشن
کد php:
$regfile "m32def.dat"
$crystal 8000000
$baud 
9600
Config Portc 
Output
Config Lcd 
16 2
Config Lcdbus 
4
Config Lcdpin 
Pin Rs Portc.0 Pinc.2 Db4 Pinc.4 Db5 Pinc.5 Db6 Pinc.6 Db7 Pinc.7
Config Clock 
Soft
Enable Interrupts
Dim Meen 
As Byte Seco As Byte Hour As Byte
Cls 
Home
Main
:
Do
Time$ = "02:20:00"
Debounce Pinb.4 Mehrdad
Loop
mehrdad
:
Do
Meen Waitkey()
Seco Waitkey()
Hour Waitkey()
 
_sec Seco
 _min 
Meen
 _hour 
Hour
Loop
end 
'end program 

در ضمن تو این میکرو وقتی کریستال رو 8 مگ معرفی کردین
بهتره تو خود پروتئوسم کریستالو براین رو 8
در ضمن مطمئن نیستم ولی فکر کنم بشه اون کلیدرو بعدشو پول آپ کرد
(آخرین ویرایش در این ارسال: ۰۵-دى-۱۳۸۹, ۲۰:۵۲:۱۶، توسط WhiteNoise.)
۰۵-دى-۱۳۸۹, ۲۰:۱۶:۵۸
ارسال‌ها
پاسخ
تشکر شده توسط : bIGBANG, mahdi20, رسول
reza555 غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,073
موضوع‌ها: 17
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 3779
( 3261 تشکر در 1342 ارسال )
ارسال: #124
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
نقل قول: يه سري مشكلات ابتدايي دارم كه چون نمي خوام تاپيك هاي اينطوري زياد بزنم ، سوالاتم رو تو اين تاپيك مطرح مي كنم. ممنون مي شم كمك كنيد...
----------------------------------------------
1-برنامه ي يه پروژه ي ساده رو با بسكام نوشتم و بعد تو پروتوس شبيه سازي كردم . اما نتيجه ي دلخواه رو نداد.
يعني روي سومين دستور BITWAIT ايست نمي كنه !!!
فايل هاي .bas و .hex و .dsn رو در لينك زير گذاشتم.

http://www.4shared.com/file/1Q1TIntr/character_LCD.html


2 برنامه نويسي هست كه نتيجه ي هر 2 مشابه است !!
با BITWAIT اول و دوم مشكلي نداره ، اما با سومي ...
بنظرم اگر پروتوس مشكلي نداشته باشه ، تنها زماني همچين اتفاقي مي يفته كه دستورات از BITWAIT دوم تا آخر همگي در يك پالس ساعت انجام بشن !!!
ممنون مي شم كمك كنيد...
دوست عزیز بهتره برنامه شامل یه اسکلت قابل فهم باشه
و شامل یه حلقه
کد:
Main:
Do
.
.
.
Loop
End program

شما که توی هلپ بسکام نگاه کنید میبینید که برای ال سی دی پاره ها رو به port تعریف کرده .اینجوری:
کد:
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portc.7 , Rs = Portc.6

در صورتی که شما با pin تعریف کردید :
کد:
Config Lcdpin = Pin , Db4 = Pina.0 , Db5 = Pina.1 , Db6 = Pina.2 , Db7 = Pina.3 , Rs = Pina.4 , E = Pina.5

جدا از مبحث 4 پین یا 8 پین درایو کردن ال سی دی

بهتره قبل از نوشته روی ال سی دی اول ال سی دی رو پاک کنید تا اطلاعات روی هم نوشته نشه ، در غیر این صورت اطلاعات پشت سر هم قرار میگیره و بعد از تموم کردن سطر اول ، به سطر دوم میره
کد:
Cls

نکته دیگه این که:
هر وقت از پورتی استفاده میکنید در صورتی که پورت به صورت خروجی تعریف شده باشه ، اول برنامه روی پورت صفر بریزید
در صورتی که پورت رو ورودی تعریف کردین ، روی پورت 1 بریزید .چرا؟
چون این جوری مقاومت بالاکش پورت رو فعال میکنید و باعث جلو گیری از خوندن اطلاعات اشتباه از پورت توسط میکرو میشید

نقل قول: 2-فرق بين PORTA.0 و PINA.0 چي هست ؟؟
( گاهي اوقات به اشتباه جاي همديگه استفاده مي كنم :دي )
در صورتی که پورت مورد نظر خروجی تعریف شده باشه و بخوایم روش اطلاعاتی بریزیم ازport استفاده میکنیم
البته برای خروجی تعریف کردن پورت ها هم از port استفاده میکنیم

در صورتی که بخویام از پورت میکرو اطلاعاتی بخونیم ،اون پایه رو باید ورودی تعریف کنیم دیگه
در این صورت باید برای کار کردن از پورت های مورد نظر از pin استفاده میکنیم

نقل قول: -------------------------------------------
3-پروتوس با دستور WAIT... چه مشكلي داره ؟؟
هر وقت مقداري بيشتر از 1ms استفاده كردم ، جواب نداد ( يعني زمان اش نگذشت )
این که مال شبیه سازیه
وقتی میخواین برنامه ای رو که نوشتید شبیه سازی کنید برای اینکه میکرو توی تاخیر ها نمونه باید از دستور زیر استفاده کنید
کد:
$Sim

موقع پروگرام کردن حواستون باشه قبل از کامپایل کردن این خط دستور رو پاک کنید




زندگی مدیریت فرصت هاست.
۰۹-بهمن-۱۳۸۹, ۲۳:۵۲:۱۲
ارسال‌ها
پاسخ
تشکر شده توسط : sharin, h0x00i, رسول
h0x00i آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 959
موضوع‌ها: 109
تاریخ عضویت: دى ۱۳۸۹

تشکرها : 2866
( 2450 تشکر در 949 ارسال )
ارسال: #125
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
داداش کرکتری که طراحی کردی چه شکلی اون مشکل داره
بعد طرحت یک cls بزار بین هر نمایش یک تایم انتظار بزار waitms 500
ببین درست میشه

:)

دوستان الکترونیکی پیشنهاد می کنم حتما برن python یاد بگیرن ...
پروژه ، مقاله ،... 
۱۰-بهمن-۱۳۸۹, ۰۰:۳۱:۲۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : sharin, reza555, رسول
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #126
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
نقل قول: شما که توی هلپ بسکام نگاه کنید میبینید که برای ال سی دی پاره ها رو به port تعریف کرده .اینجوری:
ممنون از جوابتون.
حقيقت اش بعد از مدت زيادي كه يه كلياتي از ميكرو ها و ساختار و ... شون پيدا كردم ، حدود 2 روز كه با كتاب آموزشيي كه آقاي 1nafar گذاشته ، شروع به يادگيريه بسكام و ... كردم .

اين code هايي كه مي نويسم فقط جهت تمرين و كسب تجربست ...
در اون آموزشي هم كه باهاش دارم مي رم جلو ، همرو با pin نوشته بود. اما گفته ي شما صحيحه ، تو help بسكام با port گفته شده ...
البته بايد بگم با pin جواب گرفتم و مشكلي نداشت . ( مشكل رو فهميدم از كجا بود. تو پست بعديم اونطرف توضيح دادم. )

نقل قول: هر وقت از پورتی استفاده میکنید در صورتی که پورت به صورت خروجی تعریف شده باشه ، اول برنامه روی پورت صفر بریزید
در صورتی که پورت رو ورودی تعریف کردین ، روی پورت 1 بریزید .چرا؟
چون این جوری مقاومت بالاکش پورت رو فعال میکنید و باعث جلو گیری از خوندن اطلاعات اشتباه از پورت توسط میکرو میشید
مي شه بيشتر توضيح بديد ...
منظورتون از port0 و port 1 چي هست ؟؟
مقاومت بالاكش پورت چي هست ؟؟ فعال شدنش چه معنيي مي ده ؟

نقل قول: داداش کرکتری که طراحی کردی چه شکلی اون مشکل داره
بعد طرحت یک cls بزار بین هر نمایش یک تایم انتظار بزار waitms 500
ببین درست میشه

ايول داداشي .
درست شد . نكته اش همون cls بود.
البته خط آخر كاراكتري رو كه طراحي كردم نشون نميده . كاراكتر ه حرف " ي " بود :دي
tanx.

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

ارسال‌ها: 1,073
موضوع‌ها: 17
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 3779
( 3261 تشکر در 1342 ارسال )
ارسال: #127
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
نقل قول: البته بايد بگم با pin جواب گرفتم و مشكلي نداشت . ( مشكل رو فهميدم از كجا بود. تو پست بعديم اونطرف توضيح دادم. )
میشه یه نمونه از اون کدها رو بذارین
راستش من کتاب 1nafar جان رو نخوندم

نقل قول: مي شه بيشتر توضيح بديد ...
منظورتون از port0 و port 1 چي هست ؟؟
مقاومت بالاكش پورت چي هست ؟؟ فعال شدنش چه معنيي مي ده ؟

اصلاح میکنم:
هر وقت از پورتی استفاده میکنید در صورتی که پورت به صورت خروجی تعریف شده باشه ، اول برنامه روی پورت ،مقدار صفر بریزید
در صورتی که پورت رو ورودی تعریف کردین ، روی پورت ،مقدار1 بریزید .چرا؟
چون این جوری مقاومت بالاکش پورت رو فعال میکنید و باعث جلو گیری از خوندن اطلاعات اشتباه از پورت توسط میکرو میشید

منظورم از مقاومت های بالاکش همون مقاومت هاییه که توی پروتئوس کشیدی


زندگی مدیریت فرصت هاست.
۱۰-بهمن-۱۳۸۹, ۰۰:۴۷:۴۸
ارسال‌ها
پاسخ
تشکر شده توسط : sharin, h0x00i, رسول
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #128
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
اگر كتابشون رو دانلود كرديد صفحه ي 25 اش رو نگاه كنيد.
اين فايلي هم كه پيوست كردم ، همون برنامه قبليه هست كه مشكلاتش به كمك شما و حامد خان حل شد ( در اون قسمت جاي port از pin استفاده شده )... :دي

نقل قول: هر وقت از پورتی استفاده میکنید در صورتی که پورت به صورت خروجی تعریف شده باشه ، اول برنامه روی پورت ،مقدار صفر بریزید
در صورتی که پورت رو ورودی تعریف کردین ، روی پورت ،مقدار1 بریزید .چرا؟
چون این جوری مقاومت بالاکش پورت رو فعال میکنید و باعث جلو گیری از خوندن اطلاعات اشتباه از پورت توسط میکرو میشید
مي شه يه نمونه ي كوچولو بذاري ؟؟ فكر كنم آخر شبي ضريب هوشيم اومده پايين :دي ، IQ ضعيفه ديگه :دي

تشكر تشكر.
موفق باشيد.
يا علي.


فایل‌(های) پیوست شده
.rar   Charachter LCD.rar (اندازه: 29.07 KB / تعداد دفعات دریافت: 24)

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

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #129
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
نقل قول: اصلاح میکنم:
هر وقت از پورتی استفاده میکنید در صورتی که پورت به صورت خروجی تعریف شده باشه ، اول برنامه روی پورت ،مقدار صفر بریزید
در صورتی که پورت رو ورودی تعریف کردین ، روی پورت ،مقدار1 بریزید .چرا؟
چون این جوری مقاومت بالاکش پورت رو فعال میکنید و باعث جلو گیری از خوندن اطلاعات اشتباه از پورت توسط میکرو میشید

آها ... ، حالا فهميدم منظورتون چيه !!! :دي
گفتم كه ديشب ...
بله ، اين هم نكته ي خوبيه ...
ممنون.

۱۰-بهمن-۱۳۸۹, ۱۱:۴۰:۳۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : reza555, h0x00i
baran6355 آفلاین
تازه وارد

ارسال‌ها: 19
موضوع‌ها: 3
تاریخ عضویت: بهمن ۱۳۸۷

تشکرها : 0
( 4 تشکر در 3 ارسال )
ارسال: #130
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
سلام
من با برنامه اي كه نوشتم موتور dc رو از راه دور كنترل ميكنم(چپ گرد وراست گرد) من ميدونم كه براي كنترل سرعت موتور بايد ازpwm استفاده كنم
ولي نميدونم بايد برنامشو چه جوري بنويسم؟
لطفا كمكم كنيد
ممنون
۱۰-بهمن-۱۳۸۹, ۱۸:۱۳:۲۵
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #131
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
سلام.
چرا هر وقت به جاي دستور dim x as byte از دستور defbyte x استفاده مي كنم ،‌ بسكام از برنامه ام ايراد مي گيره ؟؟!!

پيشاپيش از جواب اتون ممنونم .

کد:
$regfile = "m16def.dat"
$crystal = 12000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
Defbyte A
Defbyte B
A = 10
b = 20
Cls
Swap A , B
Locate 1 , 1
Lcd A
Locate 2 , 1
Lcd B
End

----------------------------
راستي قبلا گفتم كه در كتاب آقاي 1nafar كه LCD رو به صورت زير كانفيگ كرده ...
... , config lcdpin = pin , db4=pind.0

اما در ادامه ي اون از همون فرمي كه در help استفاده شده ، استفاده كردن ،‌ يعني :
... , config lcdpin = pin , db4=portd.0
احتمالا در صفحه ي 25 ، اشتباه چاپي بوده ، گر چه به صورت pin هم جواب مي ده !!

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

ارسال‌ها: 959
موضوع‌ها: 109
تاریخ عضویت: دى ۱۳۸۹

تشکرها : 2866
( 2450 تشکر در 949 ارسال )
ارسال: #132
RE: سوالهای برنامه نویسی با کامپایلر BASCOM
(۱۵-بهمن-۱۳۸۹, ۰۰:۲۲:۲۸)sharin نوشته است: سلام.
چرا هر وقت به جاي دستور dim x as byte از دستور defbyte x استفاده مي كنم ،‌ بسكام از برنامه ام ايراد مي گيره ؟؟!!

پيشاپيش از جواب اتون ممنونم .

کد:
$regfile = "m16def.dat"
$crystal = 12000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
Defbyte A
Defbyte B
A = 10
b = 20
Cls
Swap A , B
Locate 1 , 1
Lcd A
Locate 2 , 1
Lcd B
End

----------------------------
راستي قبلا گفتم كه در كتاب آقاي 1nafar كه LCD رو به صورت زير كانفيگ كرده ...
... , config lcdpin = pin , db4=pind.0

اما در ادامه ي اون از همون فرمي كه در help استفاده شده ، استفاده كردن ،‌ يعني :
... , config lcdpin = pin , db4=portd.0
احتمالا در صفحه ي 25 ، اشتباه چاپي بوده ، گر چه به صورت pin هم جواب مي ده !!
برای نام گزاری از دو کاراکتر استفاده کن

Defbyte aA



----
مهم نیست از pin یا port برای شناسایی استفاده کنی


:)

دوستان الکترونیکی پیشنهاد می کنم حتما برن python یاد بگیرن ...
پروژه ، مقاله ،... 
(آخرین ویرایش در این ارسال: ۱۵-بهمن-۱۳۸۹, ۰۰:۳۲:۵۵، توسط h0x00i.)
۱۵-بهمن-۱۳۸۹, ۰۰:۳۲:۰۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : 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

پرش به انجمن:


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

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