原理圖:
TIM圖片20171119120439.png (37.52 KB, 下載次數: 27)
下載附件
2017-11-19 12:05 上傳
單片機源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- unsignedchar temp; //定義字符變量temp,temp左移或右移并給連接LED的P1口賦值
- inta; //定義延遲函數delay()
- voiddelay(void);
- voidmain()
- {
- temp=0xfe; //給temp賦初值
- P1=temp; //temp賦值給P1口,第一個LED(紅色)點亮
- while(1) //主程序,括號中的程序將一直循環
- {
- for(a=0;a<7;a++) //左移部分,LED從左到右依次點亮
- {
- temp=_crol_(temp,1); //_crol_語句控制變量temp左移
- delay(); //每個燈點亮之后延遲一會在點下一個燈
- P1=temp;
- }
- for(a=0;a<7;a++) //右移部分,LED從右到左依次點亮
- {
- temp=_cror_(temp,1); //第8個燈點亮后開始右移程序,LED從右向左點亮
- delay();
- P1=temp;
- }
- }
- }
- voiddelay() //延時子程序
- {
- int i,j; //定義局部變量i,j
- for(i=200;i>0;i--) //i,j不斷計數占用CPU時間,達到延時目的
- for(j=1;j<150;j++);
- }
復制代碼
|