74HC595驱动数码管

news/2024/11/23 8:03:40/

摘自:http://blog.21ic.com/user1/8392/archives/2012/91623.html

 

.概述

数码管的驱动分静态扫描和动态扫描两种,使用最多的是动态扫描,优点是使用较少的MCU的IO口就能驱动较多位数的数码管。数码管动态扫描驱动电路很多,其中最常见的是74HC164驱动数码管,这种电路一般用三极管作位选信号,用74HC164作段选信号,占用的MCUIO口线随位数增加而增加,一般驱动四位以下数码管。如果要驱动四位以上数码管,用74HC595驱动最经典,只需4IO口线就能驱动8位数码管,而且不存在消影问题,显示功能也很强大,是很实用的数码管驱动电路之一。

.电路设计

WSF-51DB开发板上,用两片74HC595驱动8位共阴极数码管(由两个4位共阴极数码管组成),一片作位选信号,另一片作段选信号。需要注意的是段选芯片与数码管的连接要使用100-200欧姆电阻作限流,不能太大也不能太小,更不能直接连接。

 

 

 

    三.程序设计

/**************************************************************************

*程序名称:74HC595驱动数码管

*程序功能:数码管显示字符

*开发工具:WSF-51DB开发板

* MCU型号:AT89S52-24PU

*时钟频率:12MHZ

*程序作者:吴师傅

*版权说明:吴师傅版权所有。转载请注明来源和作者。

**************************************************************************/

#i nclude<reg52.h>

unsigned char code segmcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

                           0x77,0x7C,0x39,0x5E,0x79,0x71};//共阴极数码管段码0-f

unsigned char code bitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

                                                                                     //8位共阴极数码管位码

sbit ser=P2^0; //74HC595串行数据输入

sbit oe=P2^1;  //74HC595使能,为0时输出数据,为1时呈高阻态

sbit rclk=P2^2; //74HC595数据锁存

sbit srclk=P2^3;// 74HC595串行时钟

 

//延时毫秒函数:

void Delayms(unsigned int t)

{

         unsigned int x,y;

         for(x=t;x>0;x--)

                for(y=120;y>0;y--);//延时大约1毫秒

}

 

//任意位数码管显示一个字符函数:

void DTDisplayChar(unsigned char segmd,unsigned char bitd )//数码管段码和数码管位码

{

        unsigned char i;

        unsigned int dat;

        dat=bitd;

        dat=dat<<8|segmd; //位码段码合并为一个int型数据

        for(i=0;i<16;i++)//16位数据从高位依次移入74HC595

        {

                 ser=(dat&0x8000)?1:0; //判断最高位,为真取1,为假取0

                 srclk=1;    //上升沿送数据

                 srclk=0;

                 dat<<=1;   //左移取下一位

        }

        rclk=1;  //74HC595锁存数据

        rclk=0; 

}

 

//主函数:

int main(void)

{

        unsigned char j,k;

        oe=0; rclk=0;srclk=0;

        DTDisplayChar(0xff,0x00);//数码管全亮

        Delayms(2000);//延时2秒,检查数码管是否有缺画

        while(1)

        {

                 for(j=0;j<16;j++)//逐个显示0-f  16个字符

                 {

                        DTDisplayChar(segmcode[j],bitcode[j%8]);//从数组取出段码和位码

                                                               //要显示小数点只需在断码上或上0x80即可

                       for(k=0;k<5;k++) /每个字符/闪烁5

                        {

                              oe=0;//打开显示

                              Delayms(200);//延时200毫秒

                              oe=1;//关闭显示

                              Delayms(200);

                        }

                 }

              /*  for(j=0;j<8;j++)//0-7字符同时显示

                 {

                          DTDisplayChar(segmcode[j],bitcode[j]);//从数组取出段码和位码

                          Delayms(1);

                 }  */

        }

        return 0;

}

 


http://www.ppmy.cn/news/181800.html

相关文章

STC8H8K64U——74HC595驱动数码管

动态显示8位数码管 两片74HC595芯片级联&#xff0c;驱动8位数码管。 两片74HC595的移位寄存器时钟输入SH_CP接在一起。 两片74HC595的存储寄存器时钟输入ST_CP接在一起。 接位选端的74HC595的串行输出口D7’&#xff0c;与接段码端的74HC595的DS串行输入口相连。 #include &…

74HC595芯片

芯片 74HC595 该芯片的作用是移位寄存器&#xff0c;通过移位的方式&#xff0c;节省 FPGA 的管脚。 原理 移位寄存器芯片的作用就是将data端传进来的串行数据转化为并行输出。 上图是模拟移位寄存器的结构。data数据端传进来的1001经过四个周期一级一级的传送后&#xff0c;…

STC89C52引脚

单片机STC89C52引脚图&#xff0c;如下图所示&#xff1a; STC89C52功能简述&#xff1a; STC89C52 是一种低功耗、高性能CMOS8位微控制器&#xff0c;具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造&#xff0c;与工业80C51产品指令和引脚完全兼容。片上Fl…

74HC595的使用

介绍 74HC595是一个8位串行输入、并行输出的位移缓存器&#xff1a;并行输出为三态输出。在SCK 的上升沿&#xff0c;串行数据由SDL输入到内部的8位位移缓存器&#xff0c;并由Q7’输出&#xff0c;而并行输出则是在LCK的上升沿将在8位位移缓存器的数据存入到8位并行输出缓存器…

S5PV210的时钟系统

3.0时钟简介 时钟是同步工作系统的工作节拍 例如&#xff1a; 工人按照工作时间上下班 舞者根据音乐节拍做出不同的动作 正步时教官念的121 为什么需要时钟&#xff1f; SoC内部需要一个同步的时钟系统来协调各个内部外设和CPU的工作 SoC的时钟获得方式&#xff1a; 1.SoC有个…

74HC595驱动四位数码管

74HC595驱动四位数码管 数码管编码 出处硬件原理图 出处驱动程序 出处 1.数码管编码介绍 它每一段是一个发光二极管&#xff0c;排成一个“日”字形。通过控制某几段发光二极管的发光来显示数字0~9或字母A、B、C、D…。通常有8个发光二极管&#xff0c;其中七个为日字型&…

msp430g2553时钟

msp430g2553有4个时钟源&#xff0c;3个时钟输出&#xff0c;并用4个时钟寄存器。初始化定时器&#xff0c;串口&#xff0c;pwm波等等也需要先要设置时钟&#xff0c;下面对时钟的寄存器&#xff0c;时钟源&#xff0c;时钟输出总结 寄存器包括 DCOCTL BCSCTL1 BCSCTL2 BC…

三星 s7 edge SM-G9350 获取root教程

一、下载samfirm,获取固件包 samfirm:SamFirm Tool - Download Samsung Firmware Tool 然后根据手机型号在model中输入&#xff0c;国行region输入&#xff1a;CHC,然后check update 成功后&#xff0c;download然后解压备用 二、手机开启权限 设置->关于手机->版本号…