打印
[资源共享]

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

[复制链接]
477|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我爱台妹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);

}

}

}


使用特权

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

本版积分规则

45

主题

420

帖子

0

粉丝