工具
1.Proteus 8 仿真器
2.keil 5 编辑器
原理图
讲解
符号 | 引脚 | 说明 |
DSA | 1 | 数据输入 |
DSB | 2 | 数据输入 |
Q0~Q3 | 3~6 | 输出 |
GND | 7 | 地(0V) |
CP | 8 | 时钟输入(低电平到高电平边沿触发) |
/M/R | 9 | 复位输入(低电平有效) |
Q4~Q7 | 10~13 | 输出 |
VCC | 14 | 正电源 |
DSA与DSB并线接单片机 P3.6引脚,MR接正电,CLK(CP)接单片机 P3.7引脚,当 P3.6输入高电平 P3.7低电平到高电平跳跃一次Q0将会是高电平。
注意:仿真器中 VCC GND 默认接入并隐藏,数据通过两个输入(DSA或DSB)之一串行输入;任一输入可以用作通过另一输入的数据输入的有效高使能。两个输入必须连接在一起,或者未使用的输入必须连接到高电平。
代码
#include <REGX52.H>
#include <INTRINS.H>
void Delay(unsigned int xms) // @12.000MHz 延时函数
{
unsigned char i, j;
while(xms--)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
sbit In = P3^6; // 定义信号输入
sbit CLK = P3^7; // 定义时钟输入
void main()
{
unsigned char i;
while(1)
{
for(i=0;i<8;i++) // 循环函数
{
if(i==0) // 如果 i 等于 0
{
CLK = 0; // 初始化 clk 低电平
In = 1 ; // 输入高电平
}
else // 如果 i 不等于 0
{
In = 0 ; // 输入低电平
}
CLK = 0; // 时钟输入低电平
CLK = 1; // 时钟输入高电平
Delay(500); // 赋值一次 等待500ms
}
}
}