流水灯
单片机源程序如下:
- //#include <reg51.h>
- //
- //#define uchar unsigned char
- //void delay()
- //{
- // uchar i,j;
- // for(i=0;i<255;i++)
- // for(j=0;j<255;j++);
- //}
- //void main()
- //{ uchar temp;
- // uchar m;
- // P2=0xff;
- // delay();
- //
- //
- // while(1)
- // {
- // temp=0x01;
- // for(m=0;m<8;m++)
- // {
- //
- // P2=~temp;//1个亮
- // delay();
- // temp=temp<<1;//0x02
- // }
- //
- // }
- //}
- #include<reg51.h> // 包含51单片机寄存器定义的头文件
- unsigned char counter; //计数初值
- main(void )
- {
- TMOD=0x60; //使用T1的工作方式2
- TH1=256-5; // T1的高8位赋初值
- TL1=256-5; // T1的低8位赋初值
- counter=0;
- TR1=1; //启动T1
- while(1)
- {
- while(TF1==1) //如果计满
- {
- TF1=0; //计数器溢出后,将TF1清0
- counter++;
- switch (counter) //检查中断计数值
- {
- case 1: P2=0xfe; break; //则第1个灯亮
- case 2: P2=0xfd; break; //第2个灯亮
- case 3: P2=0xfb; break; //第3个灯亮
- case 4: P2=0xf7; break; //第4个灯亮
- case 5: P2=0xef; break; //第5个灯亮
- case 6: P2=0xdf; break; //第6个灯亮
- case 7: P2=0xbf; break; //第7个灯亮
- case 8: P2=0x00; counter=0; break; //8个灯全亮
- }
- }
- }
- }
- //计数加1
复制代码
所有资料51hei提供下载:
led流水灯.zip
(43.1 KB, 下载次数: 7)
|