c语言595驱动数码管,74hc595驱动4位数码管程序解析 - 74hc595驱动4位数码管电路连接图及程序解析...

该程序详细展示了如何使用74HC595芯片驱动4位共阳极数码管进行显示。通过定义管脚、设置数码管字符数组,并使用write595函数逐位输出数据,实现了数码管的动态显示。程序中还包括了选择不同数码管段的函数,以实现多数码管同时显示。在主循环中,依次对每个数码管写入预设数值并延时,完成数字显示。
摘要由CSDN通过智能技术生成

74hc595驱动4位数码管程序解析

//MCU:AT89S52

//晶振:11.0592M.

//采用4位共阳极数码管

#include 《regx51.h》

//#include 《INTRINS.H》

#define uint unsigned int

#define uchar unsigned char

#define nop() _nop_();_nop_();

sbit CLK=P2^0;

sbit DAT=P2^1;

sbit RCLK=P2^2;

sbit CS1=P2^3;

sbit CS2=P2^4;

sbit CS3=P2^5;

sbit CS4=P2^6;

uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0};//0-9,-,全灭,全亮——共阳极数码管

void write595(unsigned char word)

{

uchar num,c;

num=tab[word];

for(c=0;c《8;c++)

{

CLK=0;

DAT=num&0x80;

num=num《《1;

CLK=1;

}

RCLK=0;

// nop();

// nop();

RCLK=1;

}

void select1(void)

{

CS1=0;

CS2=1;

CS3=1;

CS4=1;

}

void select2(void)

{

CS1=1;

CS2=0;

CS3=1;

CS4=1;

}

void select3(void)

{

CS1=1;

CS2=1;

CS3=0;

CS4=1;

}

void select4(void)

{

CS1=1;

CS2=1;

CS3=1;

CS4=0;

}

int main(void)

{

//unsigned char i;

while(1)

{

write595(12);

select1();

//for(i=0;i《10;i++) _nop_();

write595(2);

select2();

//for(i=0;i《10;i++) _nop_();

write595(3);

select3();

//for(i=0;i《10;i++) _nop_();

write595(4);

select4();

//for(i=0;i《10;i++) _nop_();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值