51单片机流水灯 内部含有PROTUES搭建的仿真
单片机源程序如下:- #include<reg52.h>
- sfr LED = 0x80;
- sbit ADDR0 = P1^0;
- sbit ADDR1 = P1^1;
- sbit ADDR2 = P1^2;
- sbit ADDR3 = P1^3;
- sbit ENLED = P1^4;
- void main()
- {
-
- unsigned int i,j,k;
- unsigned char led;
- unsigned char cnt;
- unsigned char flag;
-
- ADDR0 = 0; // 注意这里对应的74HC138芯片是怎样由低位到高位的
- ADDR1 = 1;
- ADDR2 = 1;
- ADDR3 = 1;
- ENLED = 0;
- cnt = 0;
- flag = 0;
-
-
-
- /*** while(1)
- {
- led = 0x01;
- for(j = 0;j<8;j++)
- {
- LED = ~led;
- for(i = 0;i<5999;i++)
- {
- for(k = 0;k<2;k++)
- {}
- }
-
- led = led << 1;//注意这里操作数的左移和右移
- }
-
- }
- ***/
- /* while(1) //从左到右
- {
- LED = ~(0x01<<cnt);
- for(i=0;i<59999;i++)
- {};
- cnt++;
- if(cnt>=8)
- {
- cnt = 0;
- }
- */
-
- while(1) //从左到右,再从右到左
- {
-
- led = 0x01;
- for(j = 0;j<8;j++)
- {
- LED = ~led;
- for(i = 0;i<5999;i++)
- {
- for(k = 0;k<2;k++)
- {}
- }
- led = led << 1;//注意这里操作数的左移和右移
- }
- led = 0x80;
- for(j = 0;j<8;j++)
- {
- LED = ~led;
- for(i = 0;i<5999;i++)
- {
- for(k = 0;k<2;k++)
- {}
- }
- led = led >> 1;//注意这里操作数的左移和右移
- }
- }
- }
复制代码 Keil代码与Proteus8.8仿真下载:
流水灯.zip
(92.77 KB, 下载次数: 49)
|