📄 74_595_task.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 + -