|  | 
 
| /******************************************************************** 汇诚科技
 网址: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++)
 {
 }
 }
 /********************************************************************
 结束
 *********************************************************************/
 
 
 
 
 | 
 |