اموزش ميكروكنترلر AVR به زبان ساده(Basic)-قسمت ششم

 
mojehb
mojehb
کاربر برنزی
تاریخ عضویت : آبان 1391 
تعداد پست ها : 25
محل سکونت : اصفهان

اموزش ميكروكنترلر AVR به زبان ساده(Basic)-قسمت ششم


قسمت ششم:
1-   سلام خوبي
2-   سلام قربانت تو چطوري
1-   خوبم . امروز چي مي خاي يادم بدي
2-   اول بگو كه با اين پروتوس مشكلي نداشتي
1-   اين پروتوس اوايل eror ميداد ولي رفتم مشكلم رو حل كردم
2-   خوبه . امروز مي خام طرز اتصال صفحه كليد ماتريسي به ميكروكنترلر همراه با برنامه اون بهت بگم
1-   صفحه كليد ماتريسي ديگه چيه
2-   همون صفحه كليدي كه ماشين حسابا و تلفن ها دارن
1-   اها ادامه بده
2-   اين صفحه كليد ها از نظر سخت افزاري  8 تا پايه دارن كه مستقيم وصل ميشن به ميكروكنترلر ويك پوت كامل رو اشغال مي كنن
1-   منظورت از اينكه يك پورت كامل رو اشغال مي كنن چيه ؟
2-   منظورم اينه كه بايد وصل بشن به هشتا از پايه هاي ميكرو مثلا وصل بشن به پورت A يا پورت B يا هر پورتي فرقي نداره كدوم پورت ولي بايد اگه مي خاي به پورت A  وصل كني بايد فقط به پايه هاي پورت A وصل بشن نبايد مثلا چندتا رو به پايه هاي A و چندتاي ديگشو وصل كني مثلا به پايه هاي پورت B .
خوب بزار بهتر بهت بگم كه بايد چطوري وصلش كني
1-   يك لحظه وايستا اصلا چرا ما بايد كيبرد رو وصل كنيم به ميكرو خوب كاربردشم بگو ديگه مارو گيج كردي
2-   باشه معزرت مي خام . فرض كن كه مي خاي يك ماشين حساب با ميكروكنترلر درست كني يا اينكه مي خاي اعداد 0 تا  15 رو روي LCD نمايش بدي . يا يكم پيشرفته تر مي توني يك قفل رمز الكترونيكي درست كني
1-   حالا فهميدم ادامه بده
2-   خوب مي خاستم بهت بگم كه چطوري كيبرد رو به ميكرو وصل كني . خوب اين خيلي ساده است ابتدا يك پورتي كه حال كردي كيبرد رو بهش وصل كني رو در نظر مي گيري خوب گفتم كه كيبرد 8 تا پايه داره خوب ميكرو هم هر پورتش 8 تا پايه داره مثلا مي خاي به پورت A وصل كني . خوب براي اين كار پايه اول كيبرد رو  وصل مي كني به پايه A.0 پايه دوم رو وصل مي كني به پايه A.1 و الي اخر كه بايد پايه اخر يعني پايه هشتم كيبرد رو وصل كني به پايه A.7
1-   خوب اين طرز اتصال شو فهميدم برنام چطوري به ميكرو بديم
2-   عجله مي كني يا . خوب حالا مي ريم سر برنامه . قبلش بگم كه وصل كردن صفحه كليد به ميكرو رو در اصطلاح بهش
ميگن اسكن صفحه كليد . اينو گفتم كه يك موقع جايي شنيدي نگي اين ديگه چه اصطلاحيه . خوب برنامه  اتصال صفحه كليد ماتريسي به ميكرو ساده هستش. طرز كار به اين صورت هستش كه ما اول يك متغيير رو از نوع بايت تعريف مي كنيم بعد مقدار خونده شده از كيبرد رو مي ريزيم توي اين متغيير بعد با فرمان CLS  و   LCD اونو روي LCD  نمايش مي ديم به همين سادگي . خوب اول بايد ما براي ميكرو تعريف كنيم كه اقا ما ميخايم يك كيبرد ماتريسي به جنابعالي وصل كنيم تا طفلي بفهمه كه اين جسمي كه بهش وصل شده چيه . يادت مي ياد گفتم كه براي استفاده از امكانات ميكرو بايد اونها رو پيكره بندي كني يا به اصطلاح  CONFIG كني
1-   اره
2-   يادت مياد كه براي استفاده از امكان ورودي خروجي ميكرو از دستور CONFIG  PORTA  = OUTPUT براي خروجي و CONFIG  PINA.0  =  INPUT براي ورودي استفاده مي كرديم
1-   بازم اره
2-   خوب يكي از امكانات ميكروكنترلر AVR اينكه كه مي تونه كليد هايي رو كه روي كيبرد فشرده ميشه رو بخونه كه چه عددي بوده و براي استفاده از اين امكان هم مثل ساير امكانات ديگه بايد از دستور CONFIG  استفاده كنيم
CONFIG  KBD  =  PORTB
با دستور بالا ما به ميكرو فهمانديم كه اقا ما مي خايم يك كيبرد به شما متصل كنيم اون هم به پورت B . توجه كن كه پورتي رو كه جلوي علامتي مساوي مي نويسي مي تونه يكي از چهار پورت A يا B يا C ويا D  باشه ولي هر پورتي رو كه مي نويسي كيبرد رو هم بايد به همون وصل كني .
DIM  A  AS  BYTE
خوب ما يك متغيير تعريف كرديم كه مقدار خونده شده از كيبرد رو بريزيم توي اين متغيير
1-   منظورت از اين كه مقدار خونده شده از كيبرد رو مي ريزيم توي متغيير چيه
2-   خوب ببين ما وقتي كه كار برنامه نويسيمون تموم شد و مدار رو راه اندازي كرديم  مثلا يك كليد رو از روي صفحه كليد فشار داديم  ميكرو قادره مقدار عددي اين كليد فشرده شده رو بخونه مثلا كليد شما ره يك رو فشار داديم ميكرو مي فهمه كه كليد شماره يك فشرده شده خوب اين مقدار عددي بايد در يك جا قرار بگيره  و ما جايي بهتر از اينكه اين مقدار عددي رو انتقال بديم به يك متغيير گير نياورديم . البته وقتي كه مطلب كيبرد رو تموم كردم كامل مي فهمي چي به چيه. بزار يك مثال بزنم . فرض كن كه ما يك كيبرد داريم بايك ميكروكنترلر و يك LCD مي خايم اين سه تا رو به هم وصل كنيم وهنگامي كه يك كليد از روي صفحه كليد فشرده شد ميكرو اونو بخونه و مقدار اون عدد رو روي LCD  نمايش بده كه برنامه به صورت زير هستش :
CONFIG  KBD  =  PORTA
DIM  A  AS  BYTE
MAIN:
DO
A  =  GETKBD( )
IF A < 16  THEN  GOTO  MASHHAD
LOOP
END
MASHHAD :
CLS
LCD  A
DO
A  =  GETKBD ( )
LOOP  UNTIL  A = 16
GOTO  MAIN
كل برنامه همين هستش البته به غير از معرفي ميكرو و انتخاب فركانس كاري كه بايد در اول برنامه نوشته بشن. خوب حالا بريم سر تحليل برنامه.
خط اول كه ما پيكره بندي كيبرد رو مشخص كرديم كه مي خاهد به پورت A متصل بشه
خط دوم ما يك متغيير تعريف كرديم كه مقدار خوانده شده از كيبرد ريخته بشه يا به عبارتي انتقال داده بشه به داخل اين متغيير
خط سوم كه يك زير برنامه تعريف كرديم
خط بعدي نوشتيم DO يعني ابتداي حلقه
خط بعد  نوشتيم  A  =  GETKBD ( ) با اين دستور مقداري كه ميكروكنترلر از كيبرد مي خونه ميريزه توي متغيير A
خط بعد نوشتيم  IF A < 16  THEN  GOSUB  MASHHAD  خوب با  اين دستور اين شرط را گذاشتيم  كه اگر اعدادي كوچكتر از 16 رو خوندي بروي دستور شرط رو كه پرش به زير برنامه MASHHAD هستش رو اجرا كن خوب حالا ممكنه كه از خودت بپرسي كه چرا كوچكتر از 16 خوب الان بهت مي گم چرا . ببين ما گفتيم كه كيبرد ما 15 دكمه داره كه اعدادي كه داره يعني  0 تا 15 كه كلا مي شه 16 كليد پس ما مي تونيم اعداد 0 تا 15 رو روي باهاش نشون بديم پس بايد يك دستوري رو بنويسيم كه اگر عددي كوچكتر از 16 رو خوند بره دستور شرط رو اجرا كنه.
خط بعدي نشتيم LOOP كه پايان حلقه هستش
خط بعدي نوشتيم END كه برنامه هيچ وقت به اين END نمي رسه
خط بعدي نوشتيم MASSHAD: كه همان زير برنامه MASSHAD هستش كه هر اسم ديگه اي مي تونيم براش بزاريم
خط بعدي نوشتيم  CLS كه بايد بدوني كارش چيه
خط بعدي نوشتيم LCD  A  كه با اين دستور مقدار عددي كه ميكرو از كيبرد خونده و ريخته توي متغيير A رو مي تونيم بخونيم اميدوارم كه فهميده باشه كه چرا مقداري رو كه ميكرو مي خونه بايد بريزيم توي يك متغيير .فرض كن كه ما كليدي از كيبرد رو كه روش نوشته 4 رو فشار مي ديم ميكرو مياد اين مقدار رو ميخونه و انتقالش مي ده توي متغيير A  بعد ما براي اينكه ببينيم كليدي رو كه فشرديم چه عددي بوده بايد با دستور LCD  A مقدار متغيير A رو روي LCD نمايش بديم
در خط هاي بعدي نوشتيم
DO
A  =  GETKBD ( )
LOOP  UNTIL  A = 16
GOTO  MAIN
كه اين دستورات هيچ توضيحي نداره و هميشه بايد بنويسيش . اين دستورات براي اينه كه وقتي شما يك دكمه رو فشار مي دي ميكرو نياد هي اون عدد رو روي LCD تند تند نمايش بده . اين سه خط دستور طور كلي مياد يك حالتي رو در برنامه ايجاد مي كنه كه تا وقتي كه ما دستمون رو از روي دكمه فشرده شده برنداشتيم عدد فيكس بمونه بعد وقتي كه دستمون رو از روي كليد برداشتيم مياد خط بعدي رو مي خونه
خط اخر هم نوشتيم GOTO  MAIN كه با اين دستور دوباره برمي گرديم توي حلقه اول و انقدر توي اين حلقه مي مومنه تا يك دكمه ديگه فشرده بشه و بره اونو بخونه به عبارتي روز از نو روزي از نو.
1-   كل برنامش همين بود
2-   اره  اگه شك داري مي توني بري توي پروتوس امتحانش كني
1-   اين كيبرد كجاي پروتوس هستش
2-   وقتي كه كتابخانه نرم افزار رو باز كردي اول مي ري تو قسمت ACTIVE  بعد از اونجا ميتوني يك كيبرد انتخاب كني
1-   ممنون
2-   قربانت . بزار يك مثال كاربدي تر بزنم  همين برنامه رو يكم پيشرفته ترش مي كنيم مثلا مي خايم هر وقت كه دكمه شماره 3 رو فشار داديم يك LED روشن بشه و هر وقت كه دكمه شماره 12  رو فشار داديم LED خاموش بشه . پس ما به طور دلخواه بايد يك پورت رو مثلا پورت A رو براي اتصال كيبرد به ميكرو در نظر بگيريم و يك پورت ديگه هم مثلا پورت B رو براي LED  در نظر بگيريم البته ما از پورت B فقط يك پايه لازم داريم كه مثلا مي تونه B.0 باشه . LCD هم كه حال مي كنيم وصل بشه به پورت C . خوب برنامه اي كه ما بايد بنويسيم به شرح زير است :
CONFIG  PORTB = OUTPUT
CONFIG  PORTA = KBD
DIM  A  AS  BYTE
MAIN:
DO
A  =  GETKBD ( )
IF A < 16 THEN  GOTO  SHOW1
IF A = 3 THEN  GOTO  SHOW2
IF A = 12 THEN  GOTO SHOW3
LOOP
END
SHOW1:
CLS
LCD  A
DO
A = GETKBD ( )
LOOP  UNTIL  A = 16
GOTO MAIN
SHOW2:
SET  PORTB.0
CLS
LCD  A
DO
A = GETKBD ( )
LOOP  UNTIL  A = 16
GOTO  MAIN
SHOW3:
RESET  PORTB.0
CLS
LCD  A
DO
A = GETKBD ( )
LOOP  UNTIL  A = 16
GOTO  MAIN

خوب اين هم يك برنامه كامل براي اين مثالي كه زدم فقط بايد نوع ميكرو و فركانس كاري ميكرو رو خودت بنويسي يا اينكه از داخل نرم افزار تنظيمشون كني . خوب حالا بريم سر تحليل برنامه:
ميكرو مياد از خط اول برنامه شروع مي كنه به خوندن يعني عبارت CONFIG  PORTB = OUTPUT و مي فهمه كه ما يك خروجي رو پيكره بندي كرديم . بعد مياد خط دوم رو مي خونه كه نوشته CONFIG  PORTA = KBD و مي فهمه كه قراره يك كيبرد بهش وصل بشه. بعد خط بعدي رو مي خونه DIM A AS BYTE  اين يعني اينكه ما يك متغيير تعريف كرديم براي همون كه قبلا بهت گفتم كه مي خايم عددي رو كه ميكرو از كيبرد مي خونه بريزه توي يك متغيير براي همون يك متغيير تعريف كرديم . خط بعدي  يك زير برنامه به اسم MAIN تعريف كرديم كه مي تونست هر اسم دخواه ديگه اي با شه كاربردش هم در ادامه بهت مي گم كه چرا گذاشتيمش. خط بعدي نوشتيم DO كه با اين كار ابتداي يك حلقه رو تعريف كرديم. خط بعد نوشتيم كه  A = GETKBD ( ) كه اين جمله كوچيك رو مي تونم اينطوري ترجمه كنم كه اقاي ميكرو هر دكمه اي رو كه فشرده شد عدد او دكمه فشرده شده رو بريز توي اين متغيير A . در خط هاي بعدي سه شرط گذاشتيم كه شرط هاي ما هميشه بايد در داخل حلقه DO –LOOP قرار بگيره
1-   چرا بايد داخل حلقه قرار بگيره
2-   چون كه يكسره ميكرو بياد اين شرط ها رو چك كنه و اگر كه شرطي اجرا شد بره دستور شرط رو اجرا كنه
1-   اها ادامه بده
خوب گفتيم كه ما داخل اين حلقه سه تا شرط گذاشتيم . اولي شرط  نوشتيم كه  IF A < 16 THEN  GOTO  SHOW1
به اين معني كه اگر A   كوچكتر از 16 بود برو دستور شرط رو كه بعد از THEN نوشتيم رو برو اجرا كن خوب حالا دستور شرط چيه اينه :  GOTO  SHOW1 يعني اگر شرط مورد نظر اجرا شد بپر برو توي زير برنامه SHOW1 حال توي زير برنامه SHOW1 چيكار بايد انجام بده رو بهش مي رسيم كه از اين شرط براي خواندن عددي كه دكمه متناظر با اون فشرده شده استفاده ميشه.
شرط دوم نوشتيم كه  IF A = 3 THEN  GOTO  SHOW2   كه با اين جمله اين مطلب رو به ميكرو فهمونديم كه اگر خداي ناكرده  دكمه شماره 3 فشرده شد برو دستور شرط رو كه پرش به زير برنامه SHOW2  هستش رو اجرا كن.
شرط سومي كه گذاشتيم اينه  IF A = 12 THEN  GOTO SHOW3  يعني اگر دكمه شماره 12 فشرده شد برو دستور شرط رو كه پرش به زيربرنامه SHOW3 هستش رو اجرا كن. بعد از اين كه شروط رو نوشتيم LOOP رو كه پايان حلقه هستش رو گذاشتيم . در خط بعد نوشتيم END  كه برنامه ما هيچ وقت به اين END نميرسه و نبايد هم برسه .  در خط هاي بعدي سه تا زير برنامه به نام هاي SHOW1 و SHOW2 و SHOW3 تعريف كرديم البته كه در داخل اين زير برنامه ها چند تا دستور نوشتيم  كه توضيجات اين زير برنامه ها رو حين تحليل دوم برنامه بهت مي گم .
تحليل دوم برنامه : خوب فرض كن كه برنامه رو نوشتيم و ريختيم توي ميكروكنترلر حالا بهت مي گم كه مي كرو با خوندن اين دستورات چيكار مي كنه يا به عبارتي ديگر چكار بايد بكنه . در دو خط اول كه ما يك پورت براي خروجي تعريف كرديم و يك پورت براي اتصال به كيبرد كه ميكرو اين دو خط رو مي خونه و مي ره سر خط سوم در اين خط يك متغيير تعريف كرديم كه اين خط رو هم مي خونه و ميره سر خط بعدي. خط بعدي زير برنامه MAIN رو مي خونه و مي ره سرخط بعدي . خط بعدي كه ما يك DO گذاشتيم و ميكرو اين رو هم مي خونه و هم زمان كه اينو خوند مي فهمه كه ابتداي يك حلقه رسيده و همونجا
ميوفته توي اين حلقه و ميكرو مياد كل چهار خط  اين حلقه رو مي خونه
1-   منظورت از چهار خط داخل اين حلقه همون خط اول + سه تا شرط بعديشه
2-   اره عزيز . بعد كه اين چهار خط رو خوند ميرسه به LOOP مي فهمه كه بايد بره دوباره از خط زير DO شروع كنه به خوندن بعد دوباره مياد اين كار رو مي كنه و بازدوباره اون چهار خط رو ميخونه و بعدش دوباره مي رسه به LOOP و دوباره مي فهمه كه بايد بره برنامه رو از خط زيري DO شروع كنه به خوندن بعد دوباره اين كار رو مي كنه . به عبارت ديگه مي تونم بهت بگم كه داخل اين حلقه يكسره دور مي زنه
1-   خوب پس كي بيرون مياد
2-   اها اين همون سوالي بود كه الان مي خواستم جوابشو بگم . وقتي بيرون ميادش كه يكي از دستورات شرط اجرا بشه فرقي هم نمي كنه كه كدوم يكي از سه تا شرط باشه
1-   حالا شما فرض كن كه شرط اولي اجرا شده خوب چه اتفاقي ميوفته
2-   شرط اولي هستش  IF A<16  THEN GOTO SHOW1 كه مربوط به خوندن عدد دكمه اي است كه روي كيبرد فشرده شده. اگر اين شرط اجرا بشه دستور شرط هم اجرا مي شه دستور شرط همون جمله بعد از THEN هستش كه گفته بپر برو توي زير برنامه SHOW1 و ميكرو هم همين كار رو ميكنه و ميپره ميره توي زيربرنامه SHOW1 و دستوراتي رو كه داخل اين زيربرنامه نوشتيم رو اجرا ميكنه حالا توي زير برنامه SHOW1 نوشتيم كه:
CLS
LCD  A
DO
A = GETKBD ( )
LOOP  UNTIL  A = 16
GOTO MAIN
 خط اول داخل زيربرنامه SHOW1 هستش CLS كه ميكرو با اين دستور مي ره و صفحه LCD رو پاك مي كنه
خط دوم نوشتيم LCD  A يعني اين كه مقدار متغيير A  رو كه عدد دكمه اي هست كه فشرديم اونجا ريخته شده رو با اين دستور ميره روي LCD نمايش مي ده حالا هر عددي كه باشه فرقي نداره مي ره و نشون مي ده
سه خط بعدي هم كه قبلا برات توضح دادم كه براي اينه كه تا وقتي كه دستمون رو از روي دكمه برنداشتيم  همون عدد رو روي LCD  نمايش بده
خط بعدي نوشتيم  GOTO  MAIN كه در اخر اين زير برنامه قرار داره  به اين معني كه بپر برو توي زير برنامه MAIN و ميكرو هم ميره همين كار رو ميكنه . بعد از پريدن توي زيربرناه MAIN ميكرو مياد خط بعديشو مي خونه نوشته DO و باز دوباره ميوفته توي حلقه و دوباره توي اين حلقه دور مي زنه تا يكي از شروط اجرا بشه . فرض كن كه اين دفعه شرط دوم اجرا بشه البته فرقي نميكنه كه كدوم شرط اجرا بشه خوب گفتيم كه فرض رو بر اين ميزاريم كه شرط دوم اجرا شده يعني
IF  A = 3 THEN  GOTO  SHOW2  كه ما با اين دستور اين شرط را گذاشته بوديم كه اگر دكمه شماره 3 فشرده شد برو دسترو شرط رو اجرا كن كه اگر اين شرط اجرا بشه دستور شرط هم كه پرش به زيربرنامه SHOW2 هستش هم اجرا ميشه و ميكرو هم همين كار رو مي كنه و مياد ميپره توي زيربرنامه SHOW2 و دستورات داخل اين زيربرنامه رو  اچرا مي كنه كه دستورات داخل اين زيربرنامه به قرار زير است :
SHOW2:
SET  PORTB.0
CLS
LCD  A
DO
A = GETKBD ( )
LOOP  UNTIL  A = 16
GOTO  MAIN
خط اول نوشتيم كه SET PORTB.0 به اين معني كه پايه B.0 رو يك كن
خط بعدي نوشته شده CLS يعني اينكه صفحه LCD رو پاك كن
خط سوم نوشتيم كه LCD A يعني نشون بده مقدار متغيير A رو كه بايد عدد 3 رو نشون بده
1-   چرا 3
2-   چون كه ما داخل اون حلقه شرط گذاشته بوديم كه اگه دكمه شماره 3 فشرده شده بود بپر برو توي زيربرنامه SHOW2 خوب پس دكمه اي كه فشرده شده شماره سه هستش ديگه پس بايد حتما عدد 3 رو نشون بده
1-   اخر ما نفهميديم كه اين شرط بندي حلاله يا حرام
2-   تو اين جور موارد حلاله . در سه خط بعدي نوشتيم :
DO
A = GETKBD ( )
LOOP  UNTIL  A = 16
كه اينو بهت گفتم براي چيه . براي فيكس شدن عدد روي LCD تا موقعي كه دستمون رو از روي دكمه برنداشتيم
در خط بعدي هم نوشتيم  GOTO  MAIN كه ميكرو با خوندن اين دستور مي پره ميره اولين خط بعد از اين زيربرنامه كه نوشته DO رو مي خونه و مي فهمه كه ابتداي دردسر يعني دور زدن توي اين حلقه شروع شده
1-   خوب اين LED كي خاموش مي شه
2-   وقتي كه شرط سوم يعني فشرده شدن دكمه شماره 12 اجرا بشه كه شرطي كه براش گذاشتيم از اين قراره
IF A = 12 THEN  GOTO SHOW3   اين شرط رو ميشه اينطوري ترجمه كرد كه اگه دكمه شماره 12 ازروي كيبرد فشرده شد بپر برو توي زيربرنامه SHOW3 . حالا توي اين زيربرنامه SHOW3  اين دستورات هستش :
SHOW3:
RESET  PORTB.0
CLS
LCD  A
DO
A = GETKBD ( )
LOOP  UNTIL  A = 16
GOTO  MAIN
خط اول بعد از زير برنامه نوشته شده RESET  PORTB.0 به اين معني كه پايه B.0 رو 0 كن و در اينجا اون LED كه گفتيم خاموش ميشه .
خط بعدي نوشتيم  CLS يعني پاك كن صفحه ال سي دي رو
خط بعدي  LCD A هستش يعني مقدار متغيير  A رو نشون بده كه بايد مقدار 12  رو روي LCD نمايش بده
سه خط بعدي هم از قرار زير هستش :
DO
A = GETKBD ( )
LOOP  UNTIL  A = 16
كه بايد ديگه بدوني مال چي هستش
خط اخر هم GOTO  MAIN هستش كه بعد از اين كه دستورات داخل زيربرنامه اجرا شد و ميكرو به اين خط رسيد با خوندن اين خط ميپره ميره توي زيربرنامه MAIN  و ميكرو هم
1-   بزار من بقشو بگم  ببين ياد گرفتم يا نه
2-   بفرماييد
1-   بعد از اين كه پريد توي زيربرنامه MAIN اولين خط نوشته DO كه دوباره ميوفته توي اين حلقه . بقيشو خودت بگو
2-   خوب بود معلومه كه ياد گرفتي . بعد توي اين حلقه اونقدر دور ميزنه تا دوباره يك شرط ديگه از سه شرط اجرا بشه .
اين هم از تفسير برنامه گمون نكنم كه از اين ساده تر بشه تفسيرش كرد.
يك نكته اي كه من بايد بگم اينه كه تو هر دستور شرطي  رو مي توني توي اين زير برنامه ها قرار بدي مثلا بعد از اين كه PORTB.0 رو SET كرد يك پشبندش يعني خط پايينيش بنويسيم كه CLS
LCD  "AHMAD"  كه با اينكار ميداد هم پايه B.0 رو SET ميكنه و هم روي LCD يك چيزي مي نويسيه و خيلي كاراي ديگه اي هم مي توني بكني كه بستگي به خودت داره   
يك نكته ديگه اينه كه گاهي وقتا لازم هستش كه دكمه هاي صفحه كليد رو مثل ماشين حساب پيكره بندي كني كه بايد از جدول LOOKUP استفاده كني كه من الان حضور ذهن ندارم كه چطوري بودش يادم رفته بايد مراجعه كنم استادم.
درس بعدي استفاده از توابع رياضي هستش كه من همه اونا رو بهت نمي گم چون كه كاربرد نداره
علامت جمع + : به مثال زير توجه كن
DIM  A  AS  BYTE
A = 5 + 1
CLS
LCD  A
END
 اين برنامه هيچ نيازي به توضيح ندارد چون همه چيزش شفاف هستش . فقط همينو بگم كه در مثال بالا ما يك متغيير تعريف كرديم مقداري رو كه به متغيير داديم 5+1  هستش ميكرو مياد با امكاناتي كه داخل خودش داره اين دو عدد رو باهم جمع مي كنه و حاصل كه عدد 6 هست رو هنگامي كه ما دستور LCD  A رو مي خونه يعني عدد 6 روي LCD نمايش ميده . بزار يكم پيشرفته ترش كنيم
CONFIG  PORTB = OUTPUT
DIM A AS BYTE
A = 5+1
IF A = 5 THEN  SET  PORTB.0
IF A = 6 THEN SET  PORTB.1
IF A = 7 THEN SET  PORTB
END
در برنامه بالا ما يك خروجي تعريف كرديم . بعد يك متغيير از نوع بايت تعريف به نام A تعريف كرديم بعد اومديم براي مقدار دهي به متغيير A از جمع دوعدد استفاده كرديم بعني مقدار متغيير A هست 5+1  . بعد اومديم سه تا شرط و سه تا دستور شرط گذاشتيم  اولين شرطي كه گذاشتيم اين بود كه اگر مقدار متغيير A شد 5 برو و دستور شرط رو كه هست SET  PORTB.0 رو اجرا كن . شرط دوم اومدي گفتيم كه اگه مقدار متغيير A شد 6 برو دستور شرط رو كه هست SET  PORTB.1 رو اجرا كن . شرط سوم گفتيم كه اگه مقدار متغيير A شد 7 برو و دستور شرط رو كه هست SET  PORTB رو اجرا كن كه يعني يك كردن كل هشتا پايه پورت B  .
براي امروز ديگه كافيه بقيش باشه براي جلسه بعدي
پايان قسمت ششم

جمعه 3 آذر 1391  7:12 PM
تشکرات از این پست
دسترسی سریع به انجمن ها