打印
[资源共享]

74hc595数码管C语言,74HC595 数码管程序

[复制链接]
3605|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我爱台妹mmd|  楼主 | 2023-3-30 17:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 芯圣电子官方QQ 于 2023-7-20 10:22 编辑
摘要:

74HC595 数码管程序

#include        //51芯片管脚定义头文件 #include      //内部包含延时函数 _nop_();

#de

74HC595 数码管程序

#include        //51芯片管脚定义头文件

#include      //内部包含延时函数 _nop_();

#define uchar unsigned char

#define uint  unsigned int uchar code DAT[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共阴数码管显示码

sbit HC595_SRCLR=P1^0;  // 清空移位寄存器

sbit HC595_sRCLK=P1^1;  // 寄存器输出时钟

sbit HC595_RCLK =P1^2;  // 移位时钟

sbit HC595_OE   =P1^3;  // 并行输出使能

sbit HC595_sER  =P1^4;  // 串行数据

uchar temp;              /********************************************************/

/*

/* 延时子程序

/*

/*******************************************************/ void delay(int ms)

{

int k;

while(ms--)

{

for(k=0; k<250; k++)

{

_nop_();

_nop_();

_nop_();

_nop_();

}

}

} /********************************************************/

/*                                                                                                            */

/*将显示数据送入74HC595内部移位寄存器                                  */

/*                                                                                                            */

/********************************************************/ void WR_595(void)

{

uchar j;

for (j=0;j<8;j++)

{

temp=temp<<1 ;

HC595_sER=CY;

HC595_sRCLK=1;                     //上升沿发生移位

_nop_();

_nop_();

HC595_sRCLK=0;

}

} /********************************************************/

/*                                                                                                            */

/*将移位寄存器内的数据锁存到输出寄存器并显示                              */

/*                                                                                                            */

/********************************************************/ void OUT_595(void)

{

HC595_RCLK=0;

_nop_();

_nop_();

HC595_RCLK=1;                     //上升沿将数据送到输出锁存器

_nop_();

_nop_();

_nop_();

HC595_RCLK=0;

} /********************************************************

*                                                                                                              *

*  主程序                                                                  *

*                                                                                                              *

*********************************************************/ main()

{ //

//以下为输出位初始化   HC595_OE=1;      //并行输出为高阻状态

_nop_();

_nop_();   HC595_sRCLR=0; //清空移位寄存器

_nop_();   HC595_sER=0;  //清零

_nop_();

_nop_();  HC595_RCLK=0;  //移位时钟初始为低

_nop_();    HC595_sRCLK=0; //寄存器时钟初始为低

_nop_();    HC595_OE=0;  //允许并行输出

_nop_();    HC595_sRCLR=1; //结束复位状态

//循环显示 0--9    while(1)

{

uchar i;

for (i=0; i<10; i++)

{

temp=DAT[i];               //取显示数据

WR_595();

OUT_595();

delay(200);

}

}

}


使用特权

评论回复
沙发
有何不可0365| | 2024-7-31 14:55 | 只看该作者
74HC595的QA到QH引脚分别通过限流电阻连接到NPN三极管的基极,三极管的集电极连接到数码管的公共阴极,发射极接地。

使用特权

评论回复
板凳
亚瑟| | 2024-7-31 21:56 | 只看该作者
可以节省不少io口

使用特权

评论回复
地板
tpgf| | 2024-8-3 16:19 | 只看该作者
这是通过什么方式进行控制的数码管呢

使用特权

评论回复
5
晓伍| | 2024-8-3 17:11 | 只看该作者
为什么基本上所有操作数码管的语句都是这么的简单但是语句又那么多呢

使用特权

评论回复
6
磨砂| | 2024-8-3 20:23 | 只看该作者
外部引脚应该如何进行连接呢 需要加电阻吗

使用特权

评论回复
7
木木guainv| | 2024-8-3 21:32 | 只看该作者
有没有专门用于控制数码管的芯片呢

使用特权

评论回复
8
xiaoqizi| | 2024-8-3 22:48 | 只看该作者
能控制数码管的路数和什么有关系呢

使用特权

评论回复
9
wowu| | 2024-8-3 23:58 | 只看该作者
为什么要使用这么多的短延时呢

使用特权

评论回复
10
jxdayz123| | 2024-8-15 16:56 | 只看该作者
temp变量是怎么送到ACC中的不明白

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

55

主题

517

帖子

0

粉丝