相关代码:
//跑马灯的升级版!
#include “STC15F2K60S2.h”
//sbit H138_A=P2^5;
//sbit H138_B=P2^6;
//sbit H138_C=P2^7;
void Delay(unsigned int t)//不能用unsigned char 范围不够
{
while(t–);
while(t–);
}
void InitH138(unsigned char n)
{
switch(n)
{
case 4://让Y4输出低电平。
P2 = (P2 & 0x1f) | 0x80;//不打括号行吗
break;
case 5://让Y5输出低电平。
P2 =(P2 & 0x1f )| 0xa0;
break;
case 6://让Y6输出低电平。
P2 =(P2 & 0x1f )| 0xc0;
break;
case 7://让Y7输出低电平。
P2 =(P2 & 0x1f)| 0xe0;
break;
}
}
void OutputP0(unsigned char channel,unsigned char dat)
{
InitH138(channel);
P0=dat;
}
void LEDrunning()
{
unsigned char i;
for(i=0;i<3;i++)
{
OutputP0(4,0x00);
Delay(120000);
OutputP0(4,0xff);
Delay(120000);
}
for(i=0;i<3;i++)
{
OutputP0(4 , 0xff<<i);
Delay(120000);
}
OutputP0(5 , 0x10);
Delay(120000);
OutputP0(5 , 0x00);
for(i=0;i<3;i++)
{
OutputP0(4 , ~(0xff<<i));
Delay(120000);
}
OutputP0(5 , 0x40);
Delay(120000);
OutputP0(5 , 0x00);
}
void Initsystems()
{
OutputP0(5 , 0x00);
}
void main()
{
while(1)
{
LEDrunning();
}
}