×
单片机 > 单片机程序设计 > 详情

51单片机驱动74hc595芯片的程序

发布时间:2021-10-20 发布时间:
|

51单片机驱动74hc595电路图:

下面是51单片机驱动74hc595芯片的程序:

#include //包含51单片机的头文件

#include

#define uint unsigned int

#define uchar unsigned char

//sbit sin_595 =P1^0;

//sbit rclk_595 =P1^1;

//sbit sclk_595 =P1^2;

//sbit s_clr =P1^3;

sbit a_cp_595 =P2^4; //串行移位时钟脉冲 sh_cp_595

sbit b_cp_595 =P2^3; //输出锁存器控制脉冲 st_cp_595

//sbit _oe_595 =P1^5; //8位并行输出使能/禁止(高阻态)

sbit ds_595 =P2^2; //串行数据输入

extern uchar datas[6]; //存放6个数码管的显示数字

uchar ledcode[]={

0xC0, // 0

0xF9, // 1

0xA4, // 2

0xB0, // 3

0x99, // 4

0x92, // 5

0x82, // 6

0xF8, // 7

0x80, // 8

0x90, // 9

0x88, // A

0x83, // B

0xC6, // C

0xA1, // D

0x86, // E

0x8E // F

};

void delay(uint z)

{

uint t1,y;

for(t1=z;t1>0;t1--)

for(y=110;y>0;y--);

}

void led_display(void)

{

uchar i,j;

bit testb;

uchar bdata movebit[6];

uchar bdata test;

//_oe_595=0; //选中数码管

for(i=0;i

movebit=ledcode[datas];

// P1=0;

delay(1);

for(i=0;i

{

test=movebit;

for(j=0;j

{

testb=test&0x80;

test=test

if(testb)

{

ds_595=1;

}

else

{

ds_595=0;

}

a_cp_595=1;

a_cp_595=0;

} //数据移位

}

b_cp_595=0;

b_cp_595=1;

b_cp_595=0;

}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址