51单片机74HC595级联测试proteus

1/实验目的、
单个595的使用;掌握时序图的阅读
3个595级联的效果。掌握595级联的特点;
2、接线
在这里插入图片描述

在这里插入图片描述
//****************************************************************************************************************引脚设置
sbit LEDtestpin=P1^7;
sbit HC595_LATCH = P1^5;//latch pin or rck pin STCP ss 595pin12
sbit datapin=P1^3;
sbit shcp=P1^0;
sbit HC595_OE= P1^1;//oe blank pin 595pin13

3、效果
在这里插入图片描述
在这里插入图片描述


```c
  SendTo595(0x01);SendTo595(0x02);SendTo595(0x03);
		
		HC595_LATCH = 0;    //p10    
    Delay10us();   Delay10us();   Delay10us();
    HC595_LATCH =1; //HC595_LATCH上升沿

		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		
![在这里插入图片描述](https://img-blog.csdnimg.cn/df11555a6104425788e3d9c1a63c5c0d.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/b72a7f17dd3942ddb835ec98d48b3802.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/ad2f47a1599d41e9b8b96e2659a39850.png)
分析

```c
#include <reg52.h>
#include <intrins.h>
#include <stdlib.h>
#include <stdio.h>
//***********************************************************************宏定义位显示
#define LongToBin(n) \
(\
((n >> 21) & 0x80) | \
((n >> 18) & 0x40) | \
((n >> 15) & 0x20) | \
((n >> 12) & 0x10) | \
((n >> 9) & 0x08) | \
((n >> 6) & 0x04) | \
((n >> 3) & 0x02) | \
((n ) & 0x01) \
)
#define B(n) LongToBin(0x##n##l)
//*******************************位操作
//取低字节
#define lowByte(w) ((w) & 0xff)
//取高字节
#define highByte(w) ((w) >> 8)
//读一个bit
#define bitRead(value, bit) (((value) >> (bit)) & 0x01)
//写一个bit
#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
//设置一个bit
#define bitSet(value, bit) ((value) |= (1UL << (bit)))
//清空一个bit
#define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
//生成相应bit
#define bit(b) (1 << (b))
//******************************************位操作结束

//****************************************************************************************************************引脚设置
sbit LEDtestpin=P1^7;
sbit HC595_LATCH = P1^5;//latch pin or rck pin  STCP  ss 595pin12
sbit datapin=P1^3;
sbit shcp=P1^0;
sbit HC595_OE= P1^1;//oe blank pin  595pin13


void Delay10us()		//@11.0592MHz
{
	unsigned char i;
	i = 2;
	while (--i);
}


void Delay500ms()		//@11.0592MHz
{
	unsigned char i, j, k;
	i = 4;
	j = 129;
	k = 119;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void SendTo595(	unsigned char byteData)
{
   char i=0;
   for(;i<8;i++)
   {
		    datapin = byteData>>7;	 
        byteData= byteData<<1;      
        shcp = 0;         
        Delay10us();    Delay10us();    Delay10us();   
        shcp = 1;   //上升沿     
   }  
  

}

void main()
{

	HC595_LATCH =1;
  HC595_OE =0;	
	

	while(1)
	{
	//低电平亮
		//发送数据,送到数据寄存器,先入后出0x01是最后面的595
    SendTo595(0x01);SendTo595(0x02);SendTo595(0x03);
		//输出数据,上升沿输出
		HC595_LATCH = 0;    //p10    
    Delay10us();   Delay10us();   Delay10us();
    HC595_LATCH =1; //HC595_LATCH上升沿

		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		
	SendTo595(0xaa);SendTo595(0xbb);SendTo595(0xcc);
	
	 HC595_LATCH = 0;    //p10    
   Delay10us();   Delay10us();   Delay10us();
   HC595_LATCH =1; //HC595_LATCH上升沿
		
	 
	 	Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		Delay500ms();Delay500ms();Delay500ms();		Delay500ms();Delay500ms();Delay500ms();
		
	}
	
}

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值