找回密码
 立即注册

QQ登录

只需一步,快速开始

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

AT89C2051单片机和74HC595控制64位LED灯 程序原理图

[复制链接]
ID:1133433 发表于 2024-11-5 10:19 | 显示全部楼层 |阅读模式
#include<reg2051.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int


sbit Sh_cp =P1^0;
sbit Ds    =P1^1;
sbit St    =P1^2;

sbit Sh_cp1=P3^0;
sbit Ds1   =P3^1;
sbit St1   =P3^2;

uchar temp;
uchar temp1;
void In_Data(void)
{
         unsigned char i;
         for(i=0;i<8;i++)
         {
          Sh_cp=0;
          _nop_();_nop_();
          temp<<=1;Ds=CY;
          Sh_cp=1;
          _nop_();_nop_();
          Sh_cp=0;
          _nop_();_nop_();
         }
}

void Out_Data(void)
{
         St=0;
         _nop_();_nop_();
         St=1;                          
         _nop_();_nop_();
         St=0;           
}
void In_Data1(void)
{
         unsigned char i;
         for(i=0;i<8;i++)
         {
          Sh_cp1=0;
          _nop_();_nop_();
          temp1<<=1;Ds1=CY;
          Sh_cp1=1;
          _nop_();_nop_();
          Sh_cp1=0;
          _nop_();_nop_();
         }
}

void Out_Data1(void)
{
         St1=0;
         _nop_();_nop_();
         St1=1;                        
         _nop_();_nop_();
         St1=0;           
}

void DelayMS(unsigned int ms)
{
        unsigned char i;
        while(ms--)
        for(i=0;i<120;i++);
}

void main()
{
  uchar i,j;
        while(1)
        {

                for(j=0;j<8;j++)
                {      
                        temp1=1<<j;
                         In_Data1();
                        Out_Data1();
                        for(i=0;i<8;i++)
                        {
                                temp=1<<i;
                                 In_Data();
                          Out_Data();
                          DelayMS(100);
                        }
           }
        }
}


AT89C2051和74HC595控制64位LED灯.png
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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