#include<reg52.h>//库文件
#defineucharunsignedchar//字符型宏定义
#defineuintunsignedint//整型宏定义
uchartcnt;//定时器计数初值定义
uintsec;//速度值定义
/********************************************************
控制位定义
********************************************************/
sbitshi_neng=P1^0;//使能控制位
sbitfang_shi=P1^1;//工作方式控制位
sbitfang_xiang=P1^2;//旋转方向控制位
sbitmai_chong=P1^3;//脉冲控制位
sbitzheng_zhuan=P2^0;//定义启动按键为P2.0口
sbitfan_zhuan=P2^1;//定义停止按键为P2.1口
uinty=0;
/********************************************************************
定时中断服务函数
*********************************************************************/
voidt0(void)interrupt1using0//定时中断服务函数
{
tcnt++;//每过250usttcnt加一
if(tcnt==4)//当tcnt满足条件时
{
tcnt=0;//计满重新再计
sec++;
if(sec==5)//括号内数值越小,电机转动速度越快
{
sec=0;//计满重新再计
mai_chong=~mai_chong;//脉冲输出
}
}
}
/********************************************************
初始化
********************************************************/
voidinit()
{
TMOD=0x02;//定时器工作在方式2
ET0=1;
EA=1;
TH0=0x06;//对TH0TL0赋值
TL0=0x06;
TR0=1;//开始定时
sec=0;
mai_chong=1;//脉冲控制位
}
/**************液晶显示子函数***************/
voiddisplay(void)
{
LCDString(0x86,"FX");//显示方向提示词
if(fang_xiang==0){LCDString(0x89,">");}//如果使能为1,显示方向“>”
else{LCDString(0x89,"<");}//显示方向为“<”
LCDString(0xc3,"D");//显示线径提示词
LCDNun(0x86,z%10);//在地址“0x83”(第一行第四个字符开始显示数字)显示线径个位
LCDNum(0x85,z/10);//在地址“0x82”(第一行第三个字符开始显示数字)显示线径十位
LCDString(0xc9,"ZS");//显示匝数提示词
LCDNun(0xcc,x);//在地址0xc3显示总匝数
LCDChar(0xcf,".");//lcd1602包含函数LCDChar,会出现警告提示!
//LCDNum(0x8b,fang_xiang);
}
/***************自动排线主函数*******************/
main()
{
z=1;//触发一次转一步
init();//初始化定时器
shi_neng=0;//使能控制位
fang_shi=1;//工作方式控制位
fang_xiang=1;//旋转方向控制位
mai_chong=1;//脉冲控制位
LCDInit();//LCD初始化,实验板测试程序时,执行一次初始化LCD第二行不显示,两次初始化后正常!
while(1)
{
bujin();//设置线径对应步数
display();//显示参数
/*********手控正反或设置排线方向*********/
if(zheng_zhuan==0){delay(100);shi_neng=1;fang_xiang=0;while(!zheng_zhuan);delay(100);shi_neng=0;fang_xiang=0;}
//如果正传键按下,使能为1,电机持续正传,松开正传键,使能为0,电机停转!
if(fan_zhuan==0){delay(100);shi_neng=1;fang_xiang=1;while(!fan_zhuan);delay(100);shi_neng=0;fang_xiang=1;}
//如果反传键按下,使能为1,电机持续正传,松开正传键,使能为0,电机停转!
if(chufa==0){while(!chufa){shi_neng=1;y=100*z;}x++;}//如果传感器被触发,计算电机步数和累计匝数
while(y>0)//执行转动条件
{y--;//脉冲数递减
mai_chong=~mai_chong;//输出时钟脉冲
}
}
}
Buildtarget'目标1'
compilingbujin.c...
BUJIN.C(56):warningC206:'LCDString':missingfunction-prototype
BUJIN.C(56):errorC267:'LCDString':requiresANSI-styleprototype
目标未创建
就是要声明“LEDString”这个吧,那应该怎样声明?谢谢!!!
#defineucharunsignedchar//字符型宏定义
#defineuintunsignedint//整型宏定义
uchartcnt;//定时器计数初值定义
uintsec;//速度值定义
/********************************************************
控制位定义
********************************************************/
sbitshi_neng=P1^0;//使能控制位
sbitfang_shi=P1^1;//工作方式控制位
sbitfang_xiang=P1^2;//旋转方向控制位
sbitmai_chong=P1^3;//脉冲控制位
sbitzheng_zhuan=P2^0;//定义启动按键为P2.0口
sbitfan_zhuan=P2^1;//定义停止按键为P2.1口
uinty=0;
/********************************************************************
定时中断服务函数
*********************************************************************/
voidt0(void)interrupt1using0//定时中断服务函数
{
tcnt++;//每过250usttcnt加一
if(tcnt==4)//当tcnt满足条件时
{
tcnt=0;//计满重新再计
sec++;
if(sec==5)//括号内数值越小,电机转动速度越快
{
sec=0;//计满重新再计
mai_chong=~mai_chong;//脉冲输出
}
}
}
/********************************************************
初始化
********************************************************/
voidinit()
{
TMOD=0x02;//定时器工作在方式2
ET0=1;
EA=1;
TH0=0x06;//对TH0TL0赋值
TL0=0x06;
TR0=1;//开始定时
sec=0;
mai_chong=1;//脉冲控制位
}
/**************液晶显示子函数***************/
voiddisplay(void)
{
LCDString(0x86,"FX");//显示方向提示词
if(fang_xiang==0){LCDString(0x89,">");}//如果使能为1,显示方向“>”
else{LCDString(0x89,"<");}//显示方向为“<”
LCDString(0xc3,"D");//显示线径提示词
LCDNun(0x86,z%10);//在地址“0x83”(第一行第四个字符开始显示数字)显示线径个位
LCDNum(0x85,z/10);//在地址“0x82”(第一行第三个字符开始显示数字)显示线径十位
LCDString(0xc9,"ZS");//显示匝数提示词
LCDNun(0xcc,x);//在地址0xc3显示总匝数
LCDChar(0xcf,".");//lcd1602包含函数LCDChar,会出现警告提示!
//LCDNum(0x8b,fang_xiang);
}
/***************自动排线主函数*******************/
main()
{
z=1;//触发一次转一步
init();//初始化定时器
shi_neng=0;//使能控制位
fang_shi=1;//工作方式控制位
fang_xiang=1;//旋转方向控制位
mai_chong=1;//脉冲控制位
LCDInit();//LCD初始化,实验板测试程序时,执行一次初始化LCD第二行不显示,两次初始化后正常!
while(1)
{
bujin();//设置线径对应步数
display();//显示参数
/*********手控正反或设置排线方向*********/
if(zheng_zhuan==0){delay(100);shi_neng=1;fang_xiang=0;while(!zheng_zhuan);delay(100);shi_neng=0;fang_xiang=0;}
//如果正传键按下,使能为1,电机持续正传,松开正传键,使能为0,电机停转!
if(fan_zhuan==0){delay(100);shi_neng=1;fang_xiang=1;while(!fan_zhuan);delay(100);shi_neng=0;fang_xiang=1;}
//如果反传键按下,使能为1,电机持续正传,松开正传键,使能为0,电机停转!
if(chufa==0){while(!chufa){shi_neng=1;y=100*z;}x++;}//如果传感器被触发,计算电机步数和累计匝数
while(y>0)//执行转动条件
{y--;//脉冲数递减
mai_chong=~mai_chong;//输出时钟脉冲
}
}
}
Buildtarget'目标1'
compilingbujin.c...
BUJIN.C(56):warningC206:'LCDString':missingfunction-prototype
BUJIN.C(56):errorC267:'LCDString':requiresANSI-styleprototype
目标未创建
就是要声明“LEDString”这个吧,那应该怎样声明?谢谢!!!