找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2507|回复: 6
打印 上一主题 下一主题
收起左侧

单片机P0~P3口32位流水灯代码与电路图

  [复制链接]
跳转到指定楼层
楼主

/******************************************************/
/*P0~P3口32位VD闪动实验                                                          */
/*目标器件:AT89S51                                                              */
/*晶振:12MHZ                                                                          */
/*编译环境:Keil 7.06                                                          */
/*****************************************************/

#include <reg51.h>

sbit VD9  = P0^0;
sbit VD10 = P0^1;
sbit VD11 = P0^2;
sbit VD12 = P0^3;
sbit VD13 = P0^4;
sbit VD14 = P0^5;
sbit VD15 = P0^6;
sbit VD16 = P0^7;

sbit VD1  = P1^0;
sbit VD2  = P1^1;
sbit VD3  = P1^2;
sbit VD4  = P1^3;
sbit VD5  = P1^4;
sbit VD6  = P1^5;
sbit VD7  = P1^6;
sbit VD8  = P1^7;

sbit VD17 = P3^0;
sbit VD18 = P3^1;
sbit VD19 = P3^2;
sbit VD20 = P3^3;
sbit VD21 = P3^4;
sbit VD22 = P3^5;
sbit VD23 = P3^6;
sbit VD24 = P3^7;

sbit VD25  = P2^0;
sbit VD26  = P2^1;
sbit VD27  = P2^2;
sbit VD28  = P2^3;
sbit VD29  = P2^4;
sbit VD30  = P2^5;
sbit VD31  = P2^6;
sbit VD32  = P2^7;

void delay()
{
        unsigned char i,j;
        for(i=0;i<255;i++)
          for(j=0;j<255;j++);
}

void main()
{
        while(1)
        {
//P1口循环亮
/*                VD32= 1; VD1=0;// VD32灭 VD1亮
                delay();
                VD1 = 1; VD2=0;// VD1灭 VD2亮
                delay();
        VD2= 1; VD3=0;// VD2灭 VD3亮
                delay();
                VD3 = 1; VD4=0;// VD3灭 VD4亮
                delay();               
                VD4 = 1; VD5=0;// VD4灭 VD5亮
                delay();
                VD5= 1; VD6=0;// VD5灭 VD6亮
                delay();
                VD6 = 1; VD7=0;// VD6灭 VD7亮
                delay();               
                VD7= 1; VD8=0;// VD7灭 VD8亮
                delay();
                */
//P0口循环亮
                VD8 = 1; VD9=0;// VD8灭 VD9亮
                delay();
                VD9= 1; VD10=0;// VD9灭 VD10亮
                delay();
                VD10= 1; VD11=0;// VD10灭 VD11亮
                delay();               
                VD11 = 1; VD12=0;// VD11灭 VD12亮
                delay();
                VD12= 1; VD13=0;// VD12灭 VD13亮
                delay();
                VD13 = 1; VD14=0;// VD13灭 VD14亮
                delay();               
                VD14= 1; VD15=0;// VD14灭 VD15亮
                delay();
                VD15 = 1; VD16=0;// VD15灭 VD16亮
                delay();
//P3口循环亮
/*
                VD16 = 1; VD17=0;// VD16灭 VD17亮
                delay();
                VD17= 1; VD18=0; // VD17灭 VD18亮
                delay();
                VD18 = 1; VD19=0; // VD18灭 VD19亮
                delay();
        VD19= 1; VD20=0; // VD19灭 VD20亮
                delay();
                VD20 = 1; VD21=0; // VD20灭 VD21亮
                delay();               
                VD21 = 1; VD22=0; // VD21灭 VD22亮
                delay();
                VD22= 1; VD23=0; // VD22灭 VD23亮
                delay();
                VD23 = 1; VD24=0; // VD23灭 VD24亮
                delay();               
        
//P2口循环亮
                VD24= 1; VD25=0; // VD24灭 VD25亮
                delay();
                VD25 = 1; VD26=0;// VD25灭 VD26亮
                delay();
                VD26= 1; VD27=0;// VD26灭 VD27亮
                delay();
                VD27= 1; VD28=0;// VD27灭 VD28亮
                delay();               
                VD28 = 1; VD29=0;// VD28灭 VD29亮
                delay();
                VD29= 1; VD30=0;// VD29灭 VD30亮
                delay();
                VD30 = 1; VD31=0;// VD30灭 VD31亮
                delay();               
                VD31= 1; VD32=0;// VD31灭 VD32亮
                delay();        */
        }        
}

评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:301191 发表于 2022-1-20 18:23 | 只看该作者
顶一下
回复

使用道具 举报

板凳
ID:161164 发表于 2022-1-21 14:07 | 只看该作者
代码太入门了

抛一下砖
  1. #include <reg52.h>

  2. typedef         unsigned char        u8;  //0 to 255
  3. typedef         unsigned int        u16;  //0 to 65535
  4. typedef         unsigned long        u32;  //0 to 4294967295

  5. u32 index = 1;
  6. u16 delay = 0;
  7. void main()
  8. {
  9.     while (1)
  10.     {
  11.                         if(delay > 0)delay--;
  12.                         if(delay == 0)
  13.                         {delay = 6000;
  14.                                 P1 = ~(index & 0xFF);
  15.                                 P0 = ~((index >> 8) & 0xFF);
  16.                                 P3 = ~((index >> 16) & 0xFF);
  17.                                 P2 = ~((index >> 24) & 0xFF);
  18.                                 index <<= 1;
  19.                                 if(index == 0)index = 1;
  20.                         }
  21.     }
  22. }
复制代码
回复

使用道具 举报

地板
ID:883031 发表于 2022-1-26 16:21 | 只看该作者
一山更比一山高。
回复

使用道具 举报

5#
ID:879080 发表于 2022-10-27 09:35 | 只看该作者
lkc8210 发表于 2022-1-21 14:07
代码太入门了

抛一下砖

好厉害呀!
回复

使用道具 举报

6#
ID:399179 发表于 2023-3-8 20:06 来自手机 | 只看该作者
真是一山更比一山高啊!
回复

使用道具 举报

7#
ID:230500 发表于 2023-3-13 08:12 | 只看该作者
lkc8210 发表于 2022-1-21 14:07
代码太入门了

抛一下砖

高手出手;简单好用;
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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