#include
#include
typedef unsigned char uint8 ;
typedef unsigned int uint16;
***it BZ=P3^3;
/*
void delay(uint16 k) // k=1时,延时1.321ms
{
uint16 i,j;
for(i=0;i
for(j=0;j<257;j++);
}
void delay_us(uint8 t) //1~255 US 12MHZ
{
uint8 s;
for(s=0;s
_nop_();
}
*/
void delay_ms(uint16 m) //1~65535 MS 12MHZ
{
uint16 d,g;
for(d=0;d
{
for(g=0;g<1000;g++)
_nop_();
}
}
void BZ_P(bit tt,uint8 d,uint16 z) // NO/OFF;N;delay
{
uint8 s;
if(tt==1)
{
for(s=0;s
{
BZ=~BZ;
delay_ms(z);
}
}
}
void LED_L(bit q,bit i,uint16 ww,uint16 jj)
{
LED_Left(q,ww);
LED_Right(i,jj);
}
void LED_Left(bit cc,uint16 aa) //ON/OFF,ON/OFF,delay;delay
{
uint8 n,tm;
//cc=0;
if(cc==1)
{
tm=0x80;
for(n=0;n<8;n++)
{
P1=~tm;
BZ_P(1,4,50);
delay_ms(aa);
tm>>=1;
}
}
}
void LED_Right(bit dd,uint16 bb)
{
uint8 n,tm;
//dd=0;
if(dd==1)
{
tm=0x01;
for(n=0;n<8;n++)
{
P1=~tm;
BZ_P(1,6,40);
delay_ms(bb);
tm<<=1;
}
}
}
/*void LED_L2(bit ff,dd,uint16 a,b) //ON/OFF,ON/OFF,delay;delay
{
uint8 m;
if(ff==1)
{
for(m=8;m>0;m--)
{
P1=~(1<
BZ_P(0,3,100);
delay(a);
}
}
else if(dd==1)
{
for(m=0;m<8;m++)
{
P1=~(1<
BZ_P(1,1,500);
delay(b);
}
}
void main()
{
while(1)
{
LED_L(0,1,100,10);
}
}
实现开/关左右流水灯+延时的功能,为什么就编译不过去呢?
还有就是数码管的段操作
bai=temp/100;
shi=temp%100/10;
ge=temp%10;
这是3为数码管的推算,如果要是6,8位数码管,该怎么推算呢?
请教高手!!!{:soso_e100:}
|