微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 基于51单片机的74系列IC应用

基于51单片机的74系列IC应用

时间:10-02 整理:3721RD 点击:

本帖已删

第一讲:基于51单片机的74系列IC应用_74xx00

机构:影子科技        作 者: 暮汐影子        交流群:312503658



一、74xx00(四与非门)介绍:74xx00是一个四与非门IC,要想知道它的操控方式,我们就必须要先来看懂它的真值表,只要看懂了真值表就知道是怎么用的了。





1、上图是74xx00的真值表,A、B是输入控制端,Y是信号输出端。他们的逻辑表达式是:Y = !(A&B),所以A或者B只要有一个是0,Y就是1;A和B都是1,Y才会是0。所以根据这个特性,我们可以用它来做一些控制,比如:我有两个信号控制量,就启动系统,如果只有一个信号或者没有信号控制量,则不能启动系统。这个比用单独一个信号控制量控制系统要好,更安全。


2、74xx00的详细资料请查看如下PDF文档,此PDF文档不是本人原创,是在网络上下载的。


二、Proteus仿真文件:


三、下面给大家讲一个简单的案例,主要是熟悉如何进行控制。


1、项目要求:用“74xx00(四与非门)”的四路与非门控制4个LED灯,实现以1HZ的频率流水闪。


2、程序设计:


/******************************************************
程序:第三讲:基于51单片机的74系列IC应用_74xx02或非门                                                           
主要内容:  74xx02 的简单应用                 
功能描述:  1、用51单片机控制74xx02实现简单的电机起停。
                   2、起停时间间隔5S。
机构:影子科技                作 者:    暮汐影子   

交流群:312503658

日 期:    2014.09.21
备注:欢迎大家提供更好的想法和方法,一起学习,一起进步。
O(∩_∩)O~
*******************************************************/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar P_Temp = 0;
void F_IC_Init(void);
void L_IO_Init(void);
void F_74xx00(void);
void F_DelayMS(uint Xms)                //延时函数,Xms = 1;大约为1ms。
{
        uint        x;
        for(;Xms>0;Xms--)                                        //Xms * 1ms
                for(x=122;x>0;x--);                        //1ms循环
}
//=======================================
//main:主函数;主函数中一般只调用一些主
//要功能函数,尽量不要把所有的代码都写在
//主函数,要养成功能模块化的好习惯。
//=======================================
void main(void)
{
        F_IC_Init();        //IC初始化
        F_DelayMS(10);//稍作延时,让IC稳定下来。
        while(1)
        {
                F_74xx00();        //74xx00控制LED功能
                F_DelayMS(1000);        //延时1s
        }
}
//=======================================
//F_IC_Init:IC初始化;此处为上电初始化,
//在进入主函数之前,需要将所用到的功能
//寄存器/IO口等等。
//=======================================
void F_IC_Init(void)
{
        L_IO_Init();        //初始化用到的IO口。
}
//=======================================
//L_IO_Init:初始化用到的IO口
//=======================================
void L_IO_Init(void)
{
        P1 = 0x03;
}
//=======================================
//F_74xx00:控制74xx00IC
//=======================================
void F_74xx00(void)
{
        P1=_crol_(P1,2); //_crol_ 循环左移
}


备注:欢迎大家提出不同的意见和方法,以上内容只是为了跟大家一起分享学习。谢谢!



第二讲:基于51单片机的74系列IC应用_74xx01_74xx03与非门(集电极开路)

机构:影子科技        作 者: 暮汐影子        交流群:312503658


一、74xx01(四2输入与非门)介绍:74xx01是一个四路2与非门IC,要想知道它的操控方式,我们就必须要先来看懂它的真值表,只要看懂了真值表就知道是怎么用的了。

真值表:



1、细心的同志们不难发现74xx01和74xx00的真值表是一样的,确实是这样,74xx00和74xx01都是四路2输入与非门,那就奇怪了,功能一样,为什么要搞2种IC呢?其实虽然他们的逻辑是一样的,但是它们还是有区别的。


区别:

(1)与74xx00不同之处在于在74ls01可直接将几个逻辑门(集电极开路门(OC门))的输出端相连。这种输出直接相连,实现输出与功能的方式称为线与。即 Y=Y1·Y2。

(2)普通TTL与非门的输出端是不允许直接相连的, 因为当一个门的输出为高电平(Y1),另一个为低电平(Y2)时, 将有一个很大的电流从UCC经Y1到Y2,对器件造成损坏。


2、说到这里,我们就不得不来了解一下线与功能了。

(1)线与逻辑,即两个输出端(包括两个以上)直接互连就可以实现“AND”的逻辑功能。

(2)一般TTL门输出端并不能直接并接使用,在硬件上,可用集电极开路门(OC门)或三态门(TS门)来实现。用OC门实现线与,应同时在输出端口应加一个上拉电阻。

(3)下面用一张图片来说明:下图中的Y1、Y2连在一起,逻辑Y=Y1*Y2,74xx00不能这样使用,因为74xx00是一般的TTL门输出电路。所以如果需要用到两个(两个以上)输出信号来控制系统的话,可以用74xx01,不能用74xx00。

(4)在这里我要为大家推荐一款逻辑化简软件:logic friday。



3、74xx03也是集电极开路门(OC门)的四路2与非门,那么它跟74xx01的区别不是很大,主要是IC引脚和电气特性不一样,功能是一样的。



4、所以大家一定要注意74xx01、74xx03和74xx00的区别,千万别用错了,不然工程一旦出错,损失将会很严重。


二、附件如下:


备注:欢迎大家提出不同的意见和方法,以上内容只是为了跟大家一起分享学习。下节更精彩,谢谢!


第三讲:基于51单片机的74系列IC应用_74xx02或非门

机构:影子科技        作 者: 暮汐影子        交流群:312503658


一、74xx02(四2输入或非门)介绍:74xx02是一个四路2输入或非门IC,要想知道它的操控方式,我们就必须要先来看懂它的真值表,只要看懂了真值表就知道是怎么用的了。

真值表:


1、上图为74xx02的真值表,A、B为输入控制端,Y为输出端,逻辑表达式件上图,A或者B只要有一个是1,Y就是0;A和B都是0,Y才会是1。根据这个特性,主要应用就是双输入信号控制系统,其实跟与非门的应用差不多,都是通过双输入信号控制输出,主要是逻辑原理不一样。


2、看懂IC的真值表,基本就可以知道怎么应用了,那该IC适不适合你目前的开发项目,这个还要根据项目的具体情况来分析,例如工作电压、工作电流、静态电流、工作温度等等,这就需要通过IC的电气参数来进行分析,看该IC适不适合你的方案,在这里电气参数我就不进行分析,我将74xx02 PDF资料分享给大家,并非本人原创,仅供参考。


二、附件分享:


三、下面给大家讲一个简单的案例,主要是熟悉如何进行控制。

1、项目要求:用“74xx02(四2输入或非门)”控制1个马达起停,控制方法用51单片机和按键两种方式实现。


2、程序设计(仅作参考):


/******************************************************
程序:第三讲:基于51单片机的74系列IC应用_74xx02或非门                                                           
主要内容:  74xx02 的简单应用                 
功能描述:  1、用51单片机控制74xx02实现简单的电机起停。
                   2、起停时间间隔5S。
机构:影子科技                作 者:    暮汐影子   

交流群:312503658

日 期:    2014.09.21
备注:欢迎大家提供更好的想法和方法,一起学习,一起进步。
O(∩_∩)O~
*******************************************************/
#include<reg52.h>
//#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar P_Temp = 0;
void F_IC_Init(void);
void L_IO_Init(void);
void F_74xx02(void);
void F_DelayMS(uint Xms)                //12M晶振,延时函数,Xms = 1;大约为1ms。
{
        uint        x;
        for(;Xms>0;Xms--)                                        //Xms * 1ms
                for(x=122;x>0;x--);                        //1ms循环
}
//=======================================
//main:主函数;主函数中一般只调用一些主
//要功能函数,尽量不要把所有的代码都写在
//主函数,要养成功能模块化的好习惯。
//=======================================
void main(void)
{
        F_IC_Init();        //IC初始化
        F_DelayMS(10);//稍作延时,让IC稳定下来。
        while(1)
        {
                F_DelayMS(5000);        //延时5s
                F_74xx02();        //74xx02控制LED功能
        }
}
//=======================================
//F_IC_Init:IC初始化;此处为上电初始化,
//在进入主函数之前,需要将所用到的功能
//寄存器/IO口等等。
//=======================================
void F_IC_Init(void)
{
        L_IO_Init();        //初始化用到的IO口。
}
//=======================================
//L_IO_Init:初始化用到的IO口
//=======================================
void L_IO_Init(void)
{
        P1 = 0x03;
}
//=======================================
//F_74xx02:控制74xx02IC
//=======================================
void F_74xx02(void)
{
        P1 ^= 0x03; //异或取反
}
说明:仅供交流学习参考。
备注:欢迎大家提出不同的意见和方法,以上内容只是为了跟大家一起分享学习。下节更精彩,谢谢!




Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top