新闻中心

EEPW首页>嵌入式系统>设计应用> 点阵调试(附程序)

点阵调试(附程序)

作者: 时间:2016-11-28 来源:网络 收藏

//函数声明;

本文引用地址://m.amcfsurvey.com/article/201611/322947.htm

void HC595_CD(uint Value); //595驱动函数;


void main()
{


uint i = 0;
//P2=tableLie[0];
//HC595_CD(tableHng[0]);
//uint Value;
//P2=0xfd;
//Value = 0x01;
//HC595_CD(Value);
timer0_initialize();
while(1)
{
if(flag==0)
{
for(i=0;i<8;i++)
{
HC595_CD(tableHng[i]);
P2=tableLie[i];
delayS(3);
}
}

if(flag==1)
{
for(i=0;i<8;i++)
{
HC595_CD(table1[i]);
P2=tableLie[i];
delayS(3);
}
}

if(flag==2)
{
for(i=0;i<8;i++)
{
HC595_CD(table2[i]);
P2=tableLie[i];
delayS(3);
}
}

if(flag==3)
{
for(i=0;i<8;i++)
{
HC595_CD(table3[i]);
P2=tableLie[i];
delayS(3);
}
}


if(flag==4)
{
for(i=0;i<8;i++)
{
HC595_CD(table4[i]);
P2=tableLie[i];
delayS(3);
}
}

if(flag==5)
{
for(i=0;i<8;i++)
{
HC595_CD(table5[i]);
P2=tableLie[i];
delayS(3);
}
}

if(flag==6)
{
for(i=0;i<8;i++)
{
HC595_CD(table6[i]);
P2=tableLie[i];
delayS(3);
}
}

if(flag==7)
{
for(i=0;i<8;i++)
{
HC595_CD(table7[i]);
P2=tableLie[i];
delayS(3);
}
}

if(flag==8)
{
for(i=0;i<8;i++)
{
HC595_CD(table8[i]);
P2=tableLie[i];
delayS(3);
}
}

if(flag==9)
{
for(i=0;i<8;i++)
{
HC595_CD(table9[i]);
P2=tableLie[i];
delayS(3);
}
}

}


}
static void timer0_isr(void) interrupt 1 //定时器里避免放大的延时函数 以免发生错误
{
time++;
TR0=0;
TL0=(0X78);
TH0=(0X0C);
TR0=1;
if(time==50)
{
time=0;
flag++;
if(flag==10)
flag=0;
}


}

//74HC595驱动函数;
//功能:把输入的数据输出到对应的引脚上;
//输入函数:Value

void HC595_CD(uint Value)
{
uinti = 0 ;
OE = 1; //芯片输出关闭;
MR = 0; //IC复位;
MR = 1; //复位结束;
for(i = 0; i < 8; i++) //传送8位数据;
{
DS = Value&0x01; //并行数据转串行;
SH_CP = 0; //移位寄存器时钟为0;
ST_CP = 0; //存储寄存器时钟为0;
_nop_();
_nop_();
_nop_(); //短延时;
_nop_();
Value >>= 1; //数据移位;
SH_CP = 1; //产生移位脉冲;
ST_CP = 1;
}
OE= 0; //数据输出;
}


上一页 1 2 下一页

关键词:点阵调

评论


技术专区

关闭