2、eg51.h>//51芯片管脚定义头文件#include//内部包含延时函数_nop_()#defineucharunsignedchar#defineuintunsignedintucharcodeFFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//正转相序编码ucharcodeREV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//反转相序编码ucharcodeYK_code[]={0xfc,0xf8,0xf4,0xf0,0xec,0xe8,0x
3、e4,0xe0,0xdc,0xd8};//遥控器解码对应的编码“0-9”ucharcodes8[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管显示“0-9”ucharcodePM[2]={0xff,0xbf};//数码管显示正反转ucharcodeSW[2]={0xbf,0x7f};//数码管位显示sbitIR=P3^2;//定义红外接收器控制端口sbitBEEP=P3^6;//定义蜂鸣器控制端口uintLowTime,HighTime;//储存高低电平宽度uchara[4];//储存四位用
4、户码和数据码ucharkey=10;//储存检测到的键值,预先置为无效位ucharcount=1;//数码管显示转动圈数的计数标识位bitflag=0;//正转反转的标志位bitwbs=0;//数码管显示位的标识位/**************************************************函数功能:实现n毫秒延时入口参数:n**************************************************/voiddelaynms(uinti){ucharj;while(i--){for(j=0;j<114;j++)//1
5、ms基准延时程序{;}}}/**************************************************函数功能:蜂鸣器发出响声**************************************************/voidbeep(void){uchari;for(i=0;i<80;i++){BEEP=~BEEP;delaynms(1);//延时}BEEP=1;//关闭蜂鸣器}/**************************************************函数功能:步进电机正转并在数码管上显示出来****
6、**********************************************/voidmotor_ffw(void){uchari,j;for(j=0;j<8;j++)//内部转轴转一圈{if(wbs==0)//控制数码管显示P0=PM[flag];elseP0=s8[count];P2=SW[wbs];wbs=~wbs;for(i=0;i<8;i++)//一个周期转四十五度{P1=FFW[i];//取数据delaynms(1);//调整速度}P2=0xff;}}/*******************************************
7、*******函数功能:步进电机反转并在数码管上显示出来**************************************************/voidmotor_rev(void){uchari,j;for(j=0;j<8;j++)//内部转轴转一圈{if(wbs==0)//控制数码管显示P0=PM[flag];elseP0=s8[count];P2=SW[wbs];wbs=~wbs;for(i=0;i<8;i++)//一个周期转四十五度{P1=REV[i];//取数据delaynms(1);//调整速度}P2=0xff;}}/*********