/*myio.h-自己写的链接库*/
//==声明区=================================================================================
#include <reg51.h>
#define LED P0 //定义LED接至Port0
void debouncer(void); //声明防抖函数
void delay10ms(int); //声明10ms延迟函数
void alter(int); //声明交互闪烁函数
void left(int); //声明单等左移函数
void right(int); //声明单灯右移函数
void pili(int); //声明霹雳灯函数
void flash(int); //声明闪烁函数
//==自己写的子程序==========================================================================
/*防抖动函数,延迟约20ms*/
void debouncer(void) //防抖动函数开始
{ int i; //声明整数变量
for(i=0; i<2400; i++); //计数2400次,延迟约20ms
} //防抖动函数结束
/*延迟函数开始,延迟约x×10ms*/
void delay(int x) //延迟函数开始
{ int i,j; //声明整数变量 i,j
for(i=0; i<x; i++) //计数x次,延迟约x*10ms
for(j=1; j<=1200; j++); //计数1200次,延迟约10ms
} //延迟函数结束
/*高低位交互闪烁函数,执行x次*/
void alter(int x) //高低位交互闪烁开始
{ int i; //声明变量i
LED=0x0f; //初始状态(高位两,低位灭)
for(i=0; i<2*x-1; i++) //i变量for循环执行2x-1次
{ delay10ms(50); //延迟50*10ms=0.5s
LED=~LED; //LED反相输出
} //i变量for循环结束
delay10ms(50); //延迟50*10m=0.5s
} //高低位交互闪烁函数结束
/*全灯闪烁函数,执行x次*/
void flash(int x) //全灯闪烁开始
{ int i; //声明变量i
LED=0x00; //初始状态(全亮)
for(i=0; i<2*x-1; i++) //i变量for循环执行2x-1次
{ delay10ms(50); //延迟50*10m=0.5s
LED=~LED; //P0反相输出
} //i变量循环结束
delay10ms(50); //延迟约50*10ms=0.5s
} //全灯闪烁函数结束
/*单灯左移函数,执行x圈*/
void left(int x) //单灯左移函数开始
{ int i, j; //声明变量i,j
for(i=0;i<x;i++) //i循环,执行x圈
{ LED=0xfe; //初始状态=1111 1110
for(j=0;j<7;j++) //j循环,左移7次
{ delay10ms(25); //延迟25*10m=0.25s
LED=(LED<<1)|0x01; //左移1位后,LSB设为1
} //j循环结束
delay10ms(25); //延迟25*10m=0.25s
} //i循环结束
} //单灯左移函数结束
/*单灯右移函数,执行x圈*/
void right(int x) //单灯右移函数开始
{ int i, j; //声明变量i,j
for(i=0;i<x;i++) //i循环,执行x圈
{ LED=0x7f; //初始状态=1111 1110
for(j=0;j<7;j++) //j循环,左移7次
{ delay10ms(25); //延迟25*10m=0.25s
LED=(LED>>1)|0x80; //右移1位后,LSB设为1
} //j循环结束
delay10ms(25); //延迟25*10m=0.25s
} //i循环结束
} //单灯左移函数结束
/*霹雳灯函数,执行x圈 */
void pili(int x) //霹雳灯函数开始
{ int i; //声明变量i
for(i=0; i<x; i++) //i循环x圈
{ left(1); //单灯左移一圈
right(1); //单灯左移一圈
} //i循环结束
} //霹雳霹雳灯函数结束
/*ch4-6-1.c-多重按钮开关实验之1-P4-26*/
//==声明区===================================================================================
#include <reg51.h>
#include "myio.h" //自己写的I/O链接库
sbit PB1=PB2^0; //声明PB1
sbit PB2=PB2^1; //声明PB2
sbit PB3=PB2^2; //声明PB3
sbit PB4=PB2^3; //声明PB4
//==主程序=====================================================================================
main()
{ LED=0xff; //初始状态 (LED全灭)
P2=0xff; //设计P2输入口
while(1) //无穷循环
{ if(PB1==0) //如果按下PB1
{ debouncer(); //防抖动函数
alter(3); //高低位交互闪烁3次
flash(3); } //全灯闪烁3次
else if(PB2==0) //如果按下PB2
{ debouncer(); //防抖动
left(3); //单灯左移3圈
flash(3);} //全灯闪烁3次
else if(PB3==0) //如果按下PB3
{ debouncer(); //防抖动
right(3); //单灯右移3圈
flash(3);} //全灯闪烁3次
else if(PB4==0) //如果按下PB4
{ debouncer(); //防抖动
Pili(3); //霹雳灯3圈
flash(3); } //全灯闪烁3次
} //while循环结束
} //主程序结束
请问:下面的程序(/*ch4-6-1.c-多重按钮开关实验之1-P4-26*/)错在什么地方?
谢谢!