3.2.了解一些74HC595的预备知识并编写其时序函数

原创 2016年05月30日 22:53:13

实验目的:了解一些74HC595的预备知识并编写其时序函数

预备知识:
(1)芯片与芯片之间的通讯是通过引脚的点评变化以时间轴为参考的变化顺序
(2)芯片与芯片之间的通讯是双方事先定义好的,这就是595芯片的时序
(3)595的时序和RCL、SCLK、有关,SCLK是移位时钟,每当SCLK从低电平上升到高电平时,SER就会输入一位二进制数,每当RCLK从低电平上升到高电平时,从SER输入的二进制数就会移位到595芯片的并信不过输出端QA-QH。
(4)之间使用IO端口通过端口P1、P2、P3、P4来分别控制八个IO引脚,如果要控制一个IO引脚怎么办?通过sbit定义,比如:sbit SER = P3^4;
(5)宏定义 #define uchar unsigned char,在编译的时候将代码中所有的 uchar 替换成unsigned char

实验分析:
(1)搞清595的时序
(2)定义595的三个引脚
(3)编写时序函数
(4)如何从SER传入一位二进制数
(5)传入32位二进制数后如何进行锁存

实验代码:

#include<reg51.h>

sbit SER  = P3^4;
sbit SCLK = P3^5;
sbit RCLK = P3^6;

void SendData(uchar,uchar,uchar,uchar);
void main()
{
    uchar d1,d2,d3,d4;
    SendData(d1,d2,d3,d4);  
}

SenaData(uchar d1,d2,d3,d4)
{
    unsigned char i = 8;
    for(i = 0;i < 8;i++)
    {
         SER  = d1 >> 7;    //d1是八位,右移7位可以讲低7位丢掉,并只保留下最高位,
                            //d1>>7 会产生一个匿名变量,也就是说d1本身没有发生变化
         SCLK = 0;      //制造上升沿,让SER读取输入的一位二进制数
         SCLK = 1;      //
         d1 = d1 << 1;  //将d1的那一位刚刚输入的位丢掉   

    }//循环八次,分别将八位输入

/**************到此已经完成d1的输入,还有三个值未输入***********/

    for(i = 0;i < 8;i++)
    {
         SER  = d2 >> 7;
         SCLK = 0;
         SCLK = 1;  
         d2 = d2 << 1;  

    }
    for(i = 0;i < 8;i++)
    {
         SER  = d3 >> 7;
         SCLK = 0;
         SCLK = 1;  
         d3 = d3 << 1;  

    }
    for(i = 0;i < 8;i++)
    {
         SER  = d4 >> 7;
         SCLK = 0;
         SCLK = 1;  
         d4 = d4 << 1;  

    }

/*******到此为止已经全部将d1,d2,d3,d4四个值输入四个595芯片中去******/

    RCLK = 0;
    RCLK = 1;  //锁存时钟

}
版权声明:本文为博主原创文章,转载请注明出处。

串转并芯片74HC595和74HC164的区别

串转并芯片一般用于对于速度要求不是非常严格并且IO资源有限的系统中,可以通过级联的方式轻松地扩展系统的可用输出IO口数量。同样的也可以使用并转串芯片扩展输入IO口的数量。        这里说一说串转...

STM32 控制74HC595 驱动点阵 文字能移动

遇到了很奇怪的问题,程序明明没错但就是不显示,最后把在main函数中定义的变量count移动到main 外面就正常了 。仿真后发现,在main 函数中定义的局部变量 初始值不为0 ,超出控制范围 , ...
  • xkf321
  • xkf321
  • 2017年02月23日 20:33
  • 1144

STM32篇:74HC595的使用和注意

74595的数据端: QA--QH: 八位并行输出端,可以直接控制数码管的8个段。 QH': 级联输出端。将它接下一个595的SI端。 SI: 串行数据输入端。 74595的控制端说明: /...
  • sddf313
  • sddf313
  • 2017年08月02日 09:27
  • 1016

STm32驱动74HC595引脚图时序图工作原理

74HC595和74hc164一样是在单片机系统中常用的芯片之一他的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片, 使用74HC595可以节约单片机mcu的io口资源,用3...

74HC595引脚图时序图工作原理及pdf中文资料

74HC595和74hc164一样是在单片机系统中常用的芯片之一他的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片, 使用74HC595可以节约单片机mcu的io口资源,用3...

74HC595驱动函数

  • 2016年04月29日 11:03
  • 767B
  • 下载

很全的C51库函数(NOKIA5110、UART、表达式计算器、通用音乐、DS18B20、74HC595、74HC165、delay)

组织结构树: 资源下载(CSDN):http://download.csdn.net/download/zhlechn/5868923 NOKIA5110 LCD函数头文件(ZL_NOK...
  • zhlechn
  • zhlechn
  • 2013年08月04日 22:29
  • 1491

C++算法学习——预备知识(2)——函数模板

函数模板函数模板是可以使用通用类型运行的特殊功能。这允许我们创建一个函数模板,其功能可以适应多种类型或类,而不会重复每种类型的整个代码。 在C ++中,这可以使用模板参数来实现。模板参数是一种特殊类...
  • redRnt
  • redRnt
  • 2017年05月26日 15:25
  • 643

74HC595 使用详解 大神界别 (转载)

74HC595 QB--|1      16|--Vcc QC--|2      15|--QA QD--|3      14|--SI QE--|4      13|--/G QF...

74HC595驱动数码管

摘自:http://blog.21ic.com/user1/8392/archives/2012/91623.html   一.概述 数码管的驱动分静态扫描和动态扫描两种,使用最多的是动态扫描,...
  • li_qcxy
  • li_qcxy
  • 2012年11月14日 11:09
  • 11161
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3.2.了解一些74HC595的预备知识并编写其时序函数
举报原因:
原因补充:

(最多只允许输入30个字)