【第22期】观点:IT 行业加班,到底有没有价值?

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;  //锁存时钟

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

相关文章推荐

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

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

第十七节:两片联级74HC595驱动16个LED灯的基本驱动程序

。 开场白: 上一节讲了如何把矩阵键盘翻译成独立按键的处理方式。这节讲74HC595的驱动程序。要教会大家两个知识点: 第一点:朱兆祺的学习板是用74HC595控制LED,因此可以直接把59...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

树莓派与GPIO:74HC595控制LED数码管

我们可以用8个GPIO去控制这些LED的亮与灭,让亮的LED拼成想要的数字。这当然是可行的,但是会消耗宝贵的GPIO引脚。因此稍微有技术含量一点的做法是用一片串入并出的IC,如74HC595来减少GP...

51单片机利用74HC595驱动数码管

基于51单片机利用八个数码管花样显示如下:xxx11xxx→xx2222xx→x333333x→44444444→x555555x→xx6666xx→x777777x→88888888每个状态各一秒,...

74HC595的中文资料

74HC595——具有三态输出锁存功能的8位串行输入、串行/并行输出移位寄存器 本文翻译自NXP的74HC595的datasheet 74HC595和74HCT595是带有存储寄存器和三态...

74Hc595的使用

74hc595外形图      _______ QB--|1   16|--Vcc QC--|2   15|--QA QD--|3   14|--SI QE--|4   13|--/G Q...

74HC595驱动LED点阵或数码管的正确用法

这几天有些时间想做LED点阵玩玩,所以需要学习74HC595芯片,上网找了几个例程和关于74HC595的几篇应用,照猫画虎实际操作一下,哪知根本不可行,教程都是错误的。 于是自己潜心研究了 4天,现在...

第十八节:把74HC595驱动程序翻译成类似单片机IO口直接驱动的方式

第十八节:把74HC595驱动程序翻译成类似单片机IO口直接驱动的方式。 开场白: 上一节讲了74HC595的驱动程序。为了更加方便操作74HC595输出的每个IO状态,这节讲如何把74HC5...

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   一.概述 数码管的驱动分静态扫描和动态扫描两种,使用最多的是动态扫描,...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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