/* LED چرخان */
برنامه به این صورت می باشد که همه LED های متصل شده به پورت 1 روشن می باشند و یک LED خاموش از سمت چپ به سمت راست حرکت می کند.
/* LED چرخان */
برنامه به این صورت می باشد که همه LED های متصل شده به پورت 1 روشن می باشند و یک LED خاموش از سمت چپ به سمت راست حرکت می کند.
/-----*-----------*----------------*-------------*----------*--------*---/
()()() ()()() ()()()()()()()() ()() ()()
()() () () ()() ()()()()()()()()()() ()() ()()
()() () () ()() ()() () ()() ()()
()() () () ()() ()() ()()()() ()()()()()()
()() ()() ()() ()() ()() ()() ()() ()()
()() ()() ()() ()()()()()()()() ()() ()()
()() ()() ()()()()()()()() ()() ()()
/-----*-------------*--------------*-----------------*----------*--------/
------------------------------------MGH------------------------*/
------------------- 2 project led right shift---------------------
*/--------project 2 all led on and shift to the right ------------
#include
2 Void wait_mgh()
3 {
4 Unsigned int mc;
5 for(mc=0;mc<33000;mc++);
6 }
7 main()
8 {
9 unsigned char led=128;
10 for(;;)
11 {
12 P1=~led;
13 led=led>>1;
14 if(led==0) led=128;
15 wait_mgh();
16 }
17 }
1) دستورات برای میکرو کنترولر 8051 ترجمه می شوند.
2) و 3) و 4) و 5) و 6) برنامه است که با عدد 33000 تاخیر 1 ثانیه را ایجاد می کند.
7) شروع برنامه اصلی
8)
9) مقدار led را برابر با 128 قرار می دهیم یعنی بیت 7 پورت 1 را برابر با 1 قرار می دهیم.
10) برای ایجاد تاخیر 1 ثانیه در حلقه بمان
11)
12) معکوس عددی که led دارد را روی پورت 1 بریز یعنی اینکه همه بیت ها روشن شوند و بیت 7 خاموش شود. این بخاطر علامت ~ که به معنی NOT می باشد.
13) بیت 7 را به سمت راست حرکت بده
14) اگر led برابر با صفر شد یعنی به بیت 0 رسید دوباره مقدار 128 را به led بده تا این سیکل ادامه داشته باشد.
15) با هر بار چرخش یک ثانیه تاخیر ایجاد کن.