51單片機流水燈左右循環仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif (97.28 KB, 下載次數: 34)
下載附件
2022-7-12 20:20 上傳
單片機源程序如下:
- #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, 下載次數: 45)
2022-7-12 20:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|