找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3036|回复: 0
收起左侧

51单片机流水灯左右循环程序+Proteus仿真图

[复制链接]
ID:666189 发表于 2022-7-12 20:10 | 显示全部楼层 |阅读模式
51单片机流水灯左右循环仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.gif

单片机源程序如下:
  1. #include<reg52.h>


  2. sfr LED = 0x80;
  3. sbit ADDR0 = P1^0;
  4. sbit ADDR1 = P1^1;
  5. sbit ADDR2 = P1^2;
  6. sbit ADDR3 = P1^3;
  7. sbit ENLED = P1^4;


  8. void main()  
  9. {
  10.        
  11.                 unsigned int i,j,k;
  12.                 unsigned char led;
  13.                 unsigned char cnt;
  14.                 unsigned char flag;

  15.        
  16.                 ADDR0 = 0; // 注意这里对应的74HC138芯片是怎样由低位到高位的
  17.                 ADDR1 = 1;
  18.                 ADDR2 = 1;
  19.                 ADDR3 = 1;
  20.                 ENLED = 0;
  21.                 cnt = 0;
  22.                 flag = 0;
  23.                
  24.                
  25.        
  26. /***                while(1)
  27.                 {
  28.                         led = 0x01;       
  29.                         for(j = 0;j<8;j++)
  30.                                 {
  31.                                 LED = ~led;
  32.                           for(i = 0;i<5999;i++)
  33.                                         {
  34.                                                 for(k = 0;k<2;k++)
  35.                                                         {}
  36.                                         }
  37.                                
  38.                                 led = led << 1;//注意这里操作数的左移和右移                       
  39.                                 }
  40.                        
  41.                 }
  42. ***/

  43.                 /*        while(1) //从左到右
  44.                         {
  45.                                         LED = ~(0x01<<cnt);
  46.                                         for(i=0;i<59999;i++)
  47.                                                 {};
  48.                                         cnt++;
  49.                                         if(cnt>=8)
  50.                                         {
  51.                                                 cnt = 0;
  52.                                         }
  53.                         */

  54.                                
  55.                                 while(1) //从左到右,再从右到左
  56.                         {
  57.                                        
  58.                                         led = 0x01;       
  59.                                         for(j = 0;j<8;j++)  
  60.                                                 {
  61.                                                         LED = ~led;
  62.                                                         for(i = 0;i<5999;i++)
  63.                                                                         {
  64.                                                                                 for(k = 0;k<2;k++)
  65.                                                                                 {}
  66.                                                                         }                       
  67.                                                         led = led << 1;//注意这里操作数的左移和右移                       
  68.                                                 }
  69.                                         led = 0x80;
  70.                                         for(j = 0;j<8;j++)
  71.                                                 {
  72.                                                                 LED = ~led;
  73.                                                           for(i = 0;i<5999;i++)
  74.                                                                         {
  75.                                                                                 for(k = 0;k<2;k++)
  76.                                                                                 {}
  77.                                                                         }                       
  78.                                                         led = led >> 1;//注意这里操作数的左移和右移       
  79.                                                 }
  80.                         }
  81. }
复制代码

Keil代码与Proteus8.8仿真下载:
流水灯.zip (92.77 KB, 下载次数: 45)

评分

参与人数 1黑币 +40 收起 理由
admin + 40 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表