frequenc8

frequenc

ادامه نوشته

timer7

timer

ادامه نوشته

intrupt 6

intrupt

ادامه نوشته

5 a2d

a2d

ادامه نوشته

4 lcd

 lcd

ادامه نوشته

ccs 3 pwm

pwm

ادامه نوشته

ccs 2

خب توي آموزش قبلي تعريف کردن ميکرو و کريستال و خروجي کردن يک پايه از ميکرو و 0 و 1 کردن اون رو ياد گرفتيم.
حالا ميخوايم نحوه ي ورودي کردن و خوندن مقدار پورت ( 0 يا 1 بودن ) رو ياد بگيريم.
براي ورودي کردن و خوندن مقدار يه پايه از ميکرو از دستور زير استفاده ميکنيم

1
input(pin_X)


که X اسم پايه اي هستش که شما ميخوايد مقدارش رو بخونيد

حال بايد نحوه تعريف متغير رو ياد بگيريم چون از اينجا به بعد با متغيير کار داريم.
دو نمونه از متغير هاي عددي رو اينجا ميگم تا بعدا در صورت نياز ازشون استفاده کنيم.
اولين نوع Integer است که اعداد صحيح را اختيار ميکنند و با ظرفيت هاي مختلف مورد استفاده قرار ميگرند: 
1- int1 که فضايي معادل 1 بيت را اشغال ميکند و تنها دو مقدار 0 و 1 را ميتواند اختيار کند
2- int8 که فضايي معادل 8 بيت را اشغال ميکند و مقادير از 0 تا 255 را ميتواند اختيار کند 
3- int16 که فضايي معادل 16 بيت را اشغال ميکند و مقادير از 0 تا 65536 را ميتواند اختيار کند 
3- int32 که فضايي معادل 16 بيت را اشغال ميکند و مقادير از 0 تا 4294967295 را ميتواند اختيار کند 
در کامپايلر ccs با تعريف کردن متغير هاي بالا به صورت ديفالت Unsigned ( بدون علامت)در نظر گرفته ميشوند و اگر ميخواهي مقادير منفي را در اين متغيرها ذخيره کنيد بايد عبارت Signed را قبل از آنها بنويسيد. به صورت زير
1- Signed int8 که مقاديري از 128- تا 127+ ميتواند اختيار کند.
2- Signed int16 که مقادير از 32768- تا 32767+ را ميتواند اختيار کند 
3- Signed int32 که مقادير از 2147483648- تا 2147483647+ را ميتواند اختيار کند 

دومين نوع هم متغير float هستش که اعداد اعشاري رو اختيار ميکنه

حالا اگر بخواهيم يک متغير در برنامه تعريف کنيم بايد نوع متغير مورد نظرمون رو بنويسيم و جلوي اون اسمي که براي متغيير ميخواهيم رو بنويسيم. مثلا:

1
int8 x=0;


متغير x از نوع 8 بيتي و بدون علامت تعريف شده است

1
signed int16 x=0,y=0;


متغير x و y نوع 16 بيتي و علامت دار تعريف شده است

1
float z=2.36;


متغير z از نوع اعشاري تعريف شده و مقدار اوليه ان 2.36 در نظر گرفته شده

اين هم يک نمونه کد از دو مبحث بالا

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int1 x=0;
float z=2.36;
 
void main()
{
 
   while(true)
   {
 
   if(input(pin_b1)==1) z+=0.1;
 
   else       x=input(pin_b3);
   }
}


در نمونه بالا گفته شده اگر مقدار پايه ي b1 برابر 1 بود به متغير z مقدار 0.1 رو اضافه کن و اگر نه ( مقدار پايه ي b1 برابر 0 بود) مقدار پايه b3 رو در متغيير x بريز

انشاالله در قسمت بعدي نحوه راه اندازي pwm رو آموزش ميديم.

آموزش کامپايلر CCS

[آموزش] آموزش کامپايلر CCS از صفر با سلام به همه ي دوستان توي اين تاپيک قصد داريم آموزش کاربردي کامپايلر CCS که به زبان C و يکي از بهترين کامپايلر ها براي ميکرو کنترل PIC هستش رو از صفر آغاز کنيم و اون رو تا جايي که علم و زمان اجازه بده ادامه بديم. در بينا بين صحبت ها ممکن است قسمتي هم به آموزش سطحي ميکرو کنترل و حتي آموزش سطحي نرم افزارهايي مثل پروتئوس که در آموزش مبحث اصلي به ما کمک ميکنند انجام گيرد. سعي ميشه برنامه ها با فايل شبيه سازي شده در پروتئوس ارائه بشه آموزش راحت تر باشه. لطفا دوستان نظرات خودشون رو بيان و اشتباهات بنده رو گوشزد کنند. کامپايلر CCS رو ميتونيد از آدرس زير دانلود کنيد که روش نصب رو هم توضيح دادم مهمان عزیز شما حق دیدن لینک ها را ندارید عضویت اضافه شده در تاريخ : خب اول بايد نرم افزار ccs رو تهيه و نصب کنيد. برنامه ccs رو که نصب کرديد بايد يه پروژه ايجاد کنيد.براي اين کار از سربرگ Project گزينه Create رو انتخاب کنيد. اسم پروژه رو تايپ کنيد و ok رو بزنيد تا پروژه شما ايجاد بشه. حالا بريم سراغ کد نويسي. ساده ترين برنامه اي که باهاش ميشه شروع به آموزش يک کامپايلر کرد برنامه led چشمک زن هستش. ميخوايم توي اولين قسمت آموزش اين برنامه رو بنويسيم :nerd: اولين خطي که توي هر کامپايلر و هر برنامه اي وجود داره دستور مربوط به معرفي ميکرو کنترل هستش. پس قبل از هرچيزي بايد ميکرو رو معرفي کنيم. اينکار رو با دستور زير انجام ميديم کد: #include <نوع ميکرو.h> مثلا اگه بخوايم ميکروکنترل 16F877A رو معرفي کنيم به شکل زير اين کار رو انجام ميديم کد: #include <16F877a.h> در خط بعدي بايد مقدار کريستال رو تعيين کنيم. که اين کار رو با دستور زير انجام ميديم. کد: #use delay(xtal=20Mhz) در دستور بالا مقدار کريستال 20 مگا هرتز معرفي شده است. دقت کنيد که اين فرکانس کرستال خارجي است و و براي بدست آوردن فرکانس کاري ميکرو بايد اون رو تقسيم بر 4 کنيم پس سرعت ( فرکانس کاري ميکرو) 5 مگاهرتز است. پس از اين بايد وارد تابع اصلي برنامه شد تا بتونيم عمل چشمک زدن رو انجام بديم. براي روشن و خاموش کردن يک LED توسط پورت ميکرو نياز است تا بتونيم يک پايه از ميکرو رو صفر و يک کنيم. براي 1 کردن هر پايه از ميکرو از دستور زير استفاده ميکنيم: کد: output_high(pin_X); براي 0 کردن هر پايه از ميکرو از دستور زير استفاده ميکنيم: کد: output_low(pin_X); که X ميتونه هر يک از پين هاي ميکروکنترل مورد استفاده شما باشه که قابليت ورودي و خروجي کردن رو داره. مثلا دستور زير پايه b5 رو از پورت b يک ميکنه. کد: output_high(pin_b5); دقت کنيد که دو دستور بالا ، خود هم عمل خروجي کردن پايه و هم 0 يا 1 کردن پايه را انجام ميده. تنها کار ديگه اي که در اين برنامه بايد بکنيم اينه که بتونيم تاخير در برنامه ايجاد کنيم تا بشه به مدت زمان دلخواه LED رو روشن يا خاموش نگه داشت. ايجا تاخير در برنامه رو با دستورات زير انجام ميديم. کد: delay_ms(x); کد: delay_us(x); دستور اول به اندازه x ميلي ثانيه تاخير ايجاد ميکند و دستور دوم به اندازه x ميکروثانيه. خب حالا بريم سراغ برنامه کامل کد: #include <16F877a.h> #use delay(xtal=4Mhz) void main() { while(true) { output_high(pin_b5); delay_ms(200); output_low(pin_b5); delay_ms(200); } } نکته مهم: در کامپايلر ccs حلقه بي نهايت بايد به شکل (while(true نوشته شود نه (while(1 بعد از نوشتن برنامه براي کامپايل اون از سربرگ Compile گزينه Compile رو انتخاب کنيد تا برنامه کامپايل بشه و کد هگز (کدي که بايد روي ميکرو بريزيد) توليد بشه. وقتي اينکار رو انجام ميديد خطاهاي دستوري رو هم بهتون نشون ميده. بعد در نرم افزار پروتئوس فايل هگز رو روي ميکرو ميريزيد و دکمه play رو ميزنيد تا برنامه اجرا بشه( اگه کسي توي اين قسمت مشکل داره بگه تا يه آ�وزسي هم در اين مورد بذارم) اين هم فايل برنامه و فايل شبيه سازي شده در پروتئوس: مهمان عزیز شما حق دیدن لینک ها را ندارید عضویت

ادامه نوشته