单片机驱动74HC595的c51程序
扫描二维码
随时随地手机看文章
#include
#define uchar unsigned char
#define uint unsigned int
sbit clk=P3^5;
sbit dat=P3^6;
sbit shuo_cun=P3^7;
uchar volatile e,f;
uchar code tab[]={ 0x03,/*0*/
0x9F,/*1*/
0x25,/*2*/
0x0D,/*3*/
0x99,/*4*/
0x49,/*5*/
0x41,/*6*/
0x1F,/*7*/
0x01,/*8*/
0x09,/*9*/
};
void fa_shon(uchar k) //
{
uchar i; //定义循环变量
for(i=0;i<8;i++) //因为是1字节是8位,所以循环8次
{
dat=k&0x01; //将要发送的数据与上0X01送到数据引脚
clk=0; //时钟引脚加低电平
clk=1; //时钟引脚加高电平
k>>=1; //将发送的数据右移1位
}
}
void main()
{
TMOD=0x01;
TH0=15535/256;
TL0=15535%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
uchar a;
for(a=0;a<3;a++)
{
fa_shon(tab[e%10]);
fa_shon(tab[e%100/10]);
fa_shon(tab[e/100]);
}
shuo_cun=0; //锁存为低电平
shuo_cun=1; //锁存为高电平
}
}
void tt()interrupt 1
{
TH0=15535/256;
TL0=15535%256;
f++;
if(f>10)
{
f=0;
e++;
if(e>250)e=0;
}
}