⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 74_595_task.c

📁 C8051F020对74LS595的控制
💻 C
字号:
/**********************************************************************/
//**程序名称:74HC595驱动发光二极管模块
//**    作者:杨占刚
//**作者简介:中南民族大学_电子信息工程学院_电子信息工程专业_本科学号:05071133   

//**芯片说明:8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。
              //数据在SCLK的上升沿输入,在RCLK的上升沿进入的存储寄存器中去。
			  //如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。
//**出口函数:595_TASK()
//**人口函数:无
/***建立时间:2008年7月19号
/*??????????????????????????????????????????????????????????????????????*/
#include  "c8051f020.h"
#include  "config.h"
#include  "intrins.h"


/**************************************************
>>>函数名称: LED_595_TASK(UCHAR d)
>>>函数功能: 74HC595驱动发光二极管LED
>>>入口参数: UCHAR d:对应的8个数码管的亮灭,位为1亮,位为0灭
>>>出口参数: 无
>>>调用模块: 无
/**注意事项:串行到并行的数据转换
***************************************************/
void Write_595(UCHAR d)
{
	UCHAR i,Serial;
	Serial	=	d;
	for(i=0;i<8;i++)
    {
		SCLK = 0;
		SER=Serial&0X80;//因为串口输入是最低位先输入,所以,先右移一位使得最低位变为CY,再执行SER=CY;
		Serial=Serial<<1;
		SCLK = 1;		//数据在SCLK的上升沿输入到移位寄存器中
		_nop_();
	}
	//以下3条指令若在多字节时,应该移入多字节全发送完后在执行此3条指令
	RCLK = 0;	
	_nop_();
	RCLK = 1;	//数据在RCLK的上升沿输输出
} 

void main(void)
{
	config();
	for(;;)
	{
		Write_595(16);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -