前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习单片机第6天

学习单片机第6天

原创
作者头像
笃信好学
发布2022-09-16 04:26:51
1780
发布2022-09-16 04:26:51
举报
文章被收录于专栏:笃信好学

今天学习一下用74HC595 一种IO 口扩展方式-串转并,使用的芯片是74HC595。开发板板载4 个74HC595 芯片,通过芯片级联扩展了32 个IO。

目标:使用开发板上的74HC595 模块中74HC595(A)控制LED。

管脚 左右相同都是该芯片
管脚 左右相同都是该芯片

当MR为高电平,OE为低电平时,数据在SHCP上升沿进入移位寄存器,在STCP上升沿输出到并行端口。

74595的控制端说明
74595的控制端说明
代码语言:javascript
复制
#include"reg52.h"
#include"intrins.h"

typedef unsigned char u8;
typedef unsigned int u16;


sbit SRCLK=P3^6;
sbit R1CLK=P3^5;
sbit SER=P3^4;

void delay_ms(int n) //延时
	{
	unsigned int i=0,j=0;
	for(i=0;i<n;i++)
	for(j=0;j<123;j++);
}


void Hc595SendByte(u8 dat)
{
	u8 a;
	SRCLK = 1;
	R1CLK = 1;
	for(a=0;a<8;a++) //发送8 位数
	{
		SER = dat >> 7; //从最高位开始发送
		dat <<= 1;
		SRCLK = 0; //发送时序
		_nop_();
		_nop_();
		SRCLK = 1;
	}
	R1CLK = 0;
	_nop_();
	_nop_();
	R1CLK = 1;
}


void main(){
	u8 ledNum;
	ledNum = ~0x01;
	while(1)
	{
		Hc595SendByte(ledNum);
		ledNum = _crol_(ledNum, 1); //左移函数
		delay_ms(50);
	}	
					
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档