|
/********************************************************************
汇诚科技
网址:http://www.ourhc.cn
产品有售淘宝店:http://shop36330473.taobao.com
*********************************************************************/
/*P0~P3一个灯循环亮且由慢变快*/
#include<reg52.h> //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int //宏定义无符号整型
uint tc; /*延时变量tc*/
/********************************************************************
主函数
*********************************************************************/
void main()
{
void delay(int t); /*定义延时函数delay(int t)或delay(t)但delay()是错的因此函数是有参数的。*/
void light(); /*void函数应无类型int. float等 说明,定义亮灯函数 light(),其是无参数的。*/
while(1) /*大循环*/
{
tc=5000;
while(tc>500) /*tc由5000开始到500循环*/
{
light();
tc=tc-1500;
}
while(tc>=100) /*tc由500开始到小于100循环*/
{light();
tc=tc-80;}
}
} /*継续大循环*/
/********************************************************************
亮灯子函数
*********************************************************************/
void light() /*亮灯子函数 light()其无直接参数*/
{
uint c;
int i;
c=0x0fe; /*P0口亮*/
for(i=1;i<=9;i++)
{P0=c;
delay(tc);
c=c<<1|1; /*等价c=c<<1;c=c+0x01*/
} /*注:若用P0=P0<<1|1;因读P0再右移再加1,当P0某个脚外电路拉底就不对了*/
c=0x7f;
for(i=1;i<=9;i++)
{P2=c;
delay(tc);
c=c>>1|0X80;
}
c=0x7f;
for(i=1;i<=9;i++)
{P3=c;
delay(tc);
c=c>>1|0X80;
}
c=0x7f;
for(i=1;i<=9;i++)
{P1=c;
delay(tc);
c=c>>1|0X80;
}
}
/********************************************************************
延时函数
*********************************************************************/
void delay(int t) /*延时函数delay(int t)*/
{int i;
for(i=1;i<=t;i++)
{
}
}
/********************************************************************
结束
*********************************************************************/
|
|